FC4 CF-based Router
rchiodin at bellsouth.net
Mon Dec 19 19:55:17 UTC 2005
On Mon, 2005-12-19 at 09:56 -0800, Steven Ringwald wrote:
> >echo 0x0100 > /proc/sys/kernel/real-root-dev
> >echo Starting system
> >cd $SYSROOT
> >chroot .
> >cd /
> >Letting linuxrc just exit.
> From what I saw, I need to use 1792 rather than 0x100, since my sysroot
> is not in ram0, but in loop0.... I can do the chroot, but I can't seem
> to chroot and start init. I am thinking that for some reason, the script
> is not running as process 0, and I cannot for the life of me figure out
> what is, so that I can start the next step in booting.
> Thanks for your continuing help, though!
A thought about process ID's. What is the PID of bash?
I had similar thoughts concerning the real-root-dev trying to setup a
bootable partition on a Disk-On-Chip a while back. After building a
kernel specific for the hardware, it seems that I had to run rdev to set
up the correct root device so that I did not need a ramdisk. It also
seems that real-root-dev needs to be the device prior to pivot_root if
you are using a ramdisk. Honestly, I don't know why I think that.
Hopefully someone will enlighten em.
After thinking for a while and not trying to repeat my past mistakes,
why not build the CF as Fedora or other distro's build a "real" disk?
Build your root partition into an ext2 formated partition on your CF
(say /dev/hda2), set up Grub in hda1 (/boot) and the MBR in /dev/hda,
make a vfat partition in hda3 for your other OS's. I think at this
point you can either set the root device of your embedded kernel with
rdev, or pass in the device with root=/dev/hda2 (e.g.). All of the
required device files would have to exist on your CF based root. You
would also need a busybox compatible /etc/inittab that runs the
appropriate startup scripts. Those scripts can then set up any
additional devices, do your mounting and start whatever services you
Then in theory your linuxrc can just be a link to busybox. This should
work whether your device is a CF or a USB stick. Use sda instead of
Keep in mind that you should/must run rdev against a COPY of the kernel,
not the one running on your desktop.
You could alternately use syslinux as the boot loader instead of grub.
hda1 would need to to be DOS-like (I used FAT12) in this case.
More information about the fedora-list