I use the following to check if usb is available:
export CONSOLE=/dev/ttyAM1
DEVPATH=/dev/scsi/host0/bus0/target0/lun0
until test -e $DEVPATH/part1
do
busybox ls $DEVPATH > /dev/null
busybox usleep 100000
busybox echo -n "." >$CONSOLE 2>&1
done
busybox echo "usb seen" >$CONSOLE 2>&1
It outputs dots on ttyAM1 while waiting for usb.
When it is finally available, you'll get "usb seen" message and can
proceed to mount.
As it looks in your code, I am not sure that you can release initrd
memory after starting init.
To fix that, you can use following:
exec ./sbin/chroot . ./bin/true < .$CONSOLE > .$CONSOLE 2>&1
which only does chroot.
When initrd exits, kernel automatically continues trying to mount root
according to command line params.
If kernel command line contains something like
root=/dev/scsi/host0/bus0/target0/lun0/part1
it will mount usb partition and start init, without any further help.
So initrd will only take care of loading neccessary modules and
waiting for usb and let kernel do the rest.
--- In "carol9078" <> wrote:
>
>
> I changed the sleep from 3 to 7 seconds and it just worked, was
> previously getting the kernel panic, and attempting to kill init
messages.
>
>
>
>
> --- In "tedapt" <tedapt@> wrote:
> >
> > Does anyone have a working initrd image they can share which enables
> > the TS-7250 to boot up to Debian from a USB drive?
> >
> > I have exhausted the possibilities for creating one of my own. The TS
> > documentation suggests that this is possible, but I just haven't been
> > able to make it work.
> >
> > My attempted initrd results in a kernel panic ("Kernel panic:
> > Attempted to kill init!"). I think its because the final invocation
> > of /sbin/init in the linuxrc script below won't work because there is
> > already a process with PID of 1, and apparently busybox requires
> > /sbin/init to be chroot exec'd with a PID of 1...
> >
> > For the record, here's what I've tried:
> >
> > - attempted to adapt instructions for booting a TS-7260 from an SD
> > card, as per
http://www.seiner.com/mediawiki/index.php/Booting_to_sdcard
> >
> > - the initrd posted on that site was too small to add the required
> > USB modules, so I found a TS-7300 which was large enough to accomodate
> > the modules, replaced its filesystem with that from the TS-7260
> > initrd, added modules per /usr/bin/loadUSBModules.sh and modified
> > linuxrc as follows:
> >
> > #!/bin/sh
> >
> > cd /
> > mount -t proc proc /proc
> > # load the USB modules
> > insmod -f usbcore.o -o usbcore0
> > insmod -f pcipool.o -o pcipool0
> > insmod -f usb-ohci.o -o usb-ohci0
> > insmod -f usb-ohci-ep93xx.o -o usb-ohci-ep93xx0
> > insmod -f scsi_mod.o -o scsi_mod0
> > insmod -f sd_mod.o -o sd_mod0
> > insmod -f usb-storage.o -o usb-storage0
> > # sleep 'til the scsi filesystem is available (would be better to
> > loop/check)
> > sleep 3
> > # mount scsi drive
> > mount /dev/scsi/host0/bus0/target0/lun0/part1 /mnt
> > cd /mnt
> > # pivot_root to the current directory, rename old directory to "tmp"
> > pivot_root . tmp
> > # move the old dev and proc directories to the new file system?
> > # Is this correct way to move /proc and /dev to /mnt/proc and
> /mnt/dev as
> > you suggested?
> > /bin/mount --move tmp/dev /dev
> > /bin/mount --move -t proc tmp/proc /proc
> > # all seems OK 'til now, but no matter how I exec /sbin/init, I get
> > the Kernel panic message...
> > exec /usr/sbin/chroot . /bin/sh <<- EOF
> > exec /sbin/init
> > EOF
> >
> > - Place the initrd on my webserver so I can load it remotely, then
> > execute the following from RedBoot:
> >
> > load -m http -h 192.168.1.12 -p 8080 -r -b 0x00600000
/test/initrdusb
> > # load existing kernel from flash
> > fis load vmlinux
> > # exec kernel
> > exec -r 0x00600000 -s 0x200000 -b 0x00218000 -l 0x000C0000 -c
> > "console=ttyAM0,115200 root=/dev/ram0 init=/linuxrc rw"
> >
> > But the boot process ends always with:
> >
> > Kernel panic: Attempted to kill init!
> >
> > Any insight into why the kernel panic happens would be great, but I
> > would greatly appreciate a working initrd if anyone has one!
> >
>
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|