-
Notifications
You must be signed in to change notification settings - Fork 2
Install
The best way to get a proper operating system installation onto a RB600 is by means of a CompactFlash card. (For the RB333, the NAND is already partitioned for a kernel and a root filesystem.)
The CompactFlash card needs to be partitioned as follows:
Number | Size | Type |
---|---|---|
1 | 16-20MB (more than enough to hold a compressed kernel image) | 0×27 |
2 | remaining | Linux (0×83) |
You should then configure RouterBOOT to use the CompactFlash slot for booting.
The default kernel image does not make assumptions about where the root filesystem to mount is. You need to specify this explicitly on the command-line by appending a special ELF section called kernparm
to the kernel. Do this as follows:
$ echo "root=/dev/sda2 console=ttyS0,115200" >kernel_parameters.dat
$ powerpc-linux-gnu-objcopy --add-section kernparm=kernel_parameters.dat dtbImage.rb600.elf
Substitute root devices (e.g., /dev/mtdblock1
for the on-board NAND) and images (e.g., dtbImage.rb333.elf
for RB333) as necessary.
Write the kernel to the first partition using dd
:
# dd if=dtbImage.rb600.elf of=/dev/sdX1
Create an ext4 filesystem (or some other Linux-compatible filesystem, if you like) on the second partition:
# mkfs.ext4 /dev/sdX2
Feel free to tune inode sizes, etc. to fit the performance characteristics of your CompactFlash card (or for the on-board NAND).
Mount your new filesystem and copy the Linux distribution of your choice to it. Of somewhat primary importance is copying your kernel modules to the modules directory on that filesystem. Here’s an example for Debian:
# mount -t ext4 /dev/sdX2 /mnt/tmp
# cdebootstrap -v --foreign -a powerpc stable /mnt/tmp
# cp -a modules/lib/modules/3.0.0-00020-g0f28538 /mnt/tmp/lib/modules
# editor /mnt/tmp/etc/fstab
> # /etc/fstab: static file system information.
> #
> # <file system> <mount point> <type> <options> <dump> <pass>
> proc /proc proc defaults 0 0
> /dev/sda2 / ext4 defaults 0 2
# editor /mnt/tmp/etc/inittab
> # /etc/inittab: init(8) configuration.
> # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
>
> # The default runlevel.
> id:2:initdefault:
>
> # Boot-time system configuration/initialization script.
> # This is run first except when booting in emergency (-b) mode.
> si::sysinit:/etc/init.d/rcS
>
> # What to do in single-user mode.
> ~~:S:wait:/sbin/sulogin
>
> # /etc/init.d executes the S and K scripts upon change
> # of runlevel.
> #
> # Runlevel 0 is halt.
> # Runlevel 1 is single-user.
> # Runlevels 2-5 are multi-user.
> # Runlevel 6 is reboot.
>
> l0:0:wait:/etc/init.d/rc 0
> l1:1:wait:/etc/init.d/rc 1
> l2:2:wait:/etc/init.d/rc 2
> l3:3:wait:/etc/init.d/rc 3
> l4:4:wait:/etc/init.d/rc 4
> l5:5:wait:/etc/init.d/rc 5
> l6:6:wait:/etc/init.d/rc 6
> # Normally not reached, but fallthrough in case of emergency.
> z6:6:respawn:/sbin/sulogin
>
> # What to do when CTRL-ALT-DEL is pressed.
> ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
>
> # Action on special keypress (ALT-UpArrow).
> #kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
>
> # What to do when the power fails/returns.
> pf::powerwait:/etc/init.d/powerfail start
> pn::powerfailnow:/etc/init.d/powerfail now
> po::powerokwait:/etc/init.d/powerfail stop
>
> # /sbin/getty invocations for the runlevels.
> #
> # The "id" field MUST be the same as the last
> # characters of the device (after "tty").
> #
> # Format:
> # <id>:<runlevels>:<action>:<process>
> #
> # Note that on most Debian systems tty7 is used by the X Window System,
> # so if you want to add more getty's go ahead but skip tty7 if you run X.
> #
> #1:2345:respawn:/sbin/getty 38400 tty1
> #2:23:respawn:/sbin/getty 38400 tty2
> #3:23:respawn:/sbin/getty 38400 tty3
> #4:23:respawn:/sbin/getty 38400 tty4
> #5:23:respawn:/sbin/getty 38400 tty5
> #6:23:respawn:/sbin/getty 38400 tty6
>
> # Example how to put a getty on a serial line (for a terminal)
> #
> T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
> #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
>
> # Example how to put a getty on a modem line.
> #
> #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
# umount /mnt/tmp
Note that you can also get base files from the support repository.
Hook up a serial console to your RouterBOARD (115200 baud, 8-N-1) and reboot into your new Linux installation!