This is an old revision of the document!
How-to chroot into Gentoo
Files needed
- stage3-ppc-uclibc-2005.0 (recommended for gentoo chroot) or stage3-ppc-uclibc-2006.1 (recommended for gentoo boot).
Installing steps
ln -s /mnt/HD_a2/bzip2 /mnt/HD_a2/bzcat
mkdir /mnt/HD_a2/gentoo
cd /mnt/HD_a2/gentoo
/mnt/HD_a2/bzcat stage3-ppc-uclibc-2005.0.tar.bz2 | /mnt/HD_a2/tar -xvpf -
cd /mnt/HD_a2/gentoo/usr
/mnt/HD_a2/bzcat portage-latest.tar.bz2 | /mnt/HD_a2/tar -xvf -
mount -o bind /dev /mnt/HD_a2/gentoo/dev
mount -t proc none /mnt/HD_a2/gentoo/proc
cp /etc/resolv.conf /mnt/HD_a2/gentoo/etc/
/mnt/HD_a2/chroot /mnt/HD_a2/gentoo /bin/bash
env-update && source /etc/profile
rc-update add net.eth0 default
rc-update add dropbear default
passwd root
If you did choose to use 2005.0 stage then you must update e2fsprogs!
emerge e2fsprogs
Always make sure that devfsd is installed!
emerge -pv devfsd
It is also recommended that you update sys-apps/baselayout package. Its needed by net configuration to change mac address
However, by default, baselayout pulls in and builds module-init-tools with support only for 2.6 kernels. So, to allow the updated module-init-tools to be built with support for both 2.4 and 2.6 kernels:
echo "sys-apps/module-init-tools old-linux" >> /etc/portage/package.use
emerge sys-apps/baselayout
/etc/make.conf
CFLAGS="-Os -pipe -mcpu=603e -mtune=603e" CHOST="powerpc-pc-linux-uclibc" CXXFLAGS="-Os -pipe -mcpu=603e -mtune=603e" LDFLAGS="-Wl,-z,relro" USE="-*" RSYNC_EXCLUDEFROM="/etc/portage/rsync_excludes" SYNC="rsync://rsync1.ee.gentoo.org/gentoo-portage" GENTOO_MIRRORS="http://ftp.linux.ee/pub/gentoo/distfiles ftp://ftp.linux.ee/pub/gentoo/distfiles"
/etc/fstab
/dev/sda3 / ext3 noatime 0 0 /dev/sda1 none swap sw 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0
/etc/conf.d/net
net is needed only if you are going to boot gentoo using loader.o or flashed custom kernel.
config_eth0=( "192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255" ) routes_eth0=( "default gw 192.168.1.1" ) mac_eth0="00:13:46:D9:D7:75" dns_servers_eth0=( "192.168.1.1" )
/etc/conf.d/wireless
wireless is needed only if you are going to boot gentoo using loader.o or flashed custom kernel.
Get new (1.1.0 BETA4) rt2500.o from here.
iwpriv_yourssid=( "set AuthMode=WPAPSK" "set EncrypType=TKIP" "set WPAPSK=your-wpa-psk" ) sleep_scan_ra0="5" essid_ra0="yourssid" channel_ra0="11" prefarred_aps=( "yourssid" ) associate_order_ra0="forceprefarred" dns_servers_yourssid=( "192.168.1.1" ) dns_domain_yourssid=( "you-domain" ) key_yourssid="s:your-wpa-psk enc open" config_yourssid=( "192.168.1.3/24 brd 192.168.1.255" ) routes_yourssid=( "default via 192.168.1.1" )
/etc/portage/rsync_excludes
- app-accessibility/ - metadata/cache/app-accessibility/ - app-emulation/ - metadata/cache/app-emulation/ - app-laptop/ - metadata/cache/app-laptop/ - app-office/ - metadata/cache/app-office/ - app-pda/ - metadata/cache/app-pda/ - dev-games/ - metadata/cache/dev-games/ - games-*/ - metadata/cache/games-*/ - gnome-*/ - metadata/cache/gnome-*/ - kde-*/ - metadata/cache/kde-*/ - rox-*/ - metadata/cache/rox-*/ - media-tv/ - metadata/cache/media-tv/ - media-video/ - metadata/cache/media-video/ - sci-*/ - metadata/cache/sci-*/ - x11-*/ - metadata/cache/x11-*/ - xfce-*/ - metadata/cache/xfce-*/
Cleaning portage
cd /usr/portage
rm -r `gawk '{ printf(”%s ”,$2) }' /etc/portage/rsync_excludes`
Testing
USE=unicode emerge links
Additional software
chrooting
If you have exited from chroot environment after installing gentoo chroot or if you have rebooted your DSM-G600 then you need following commands to enter back in chroot environment.
mount -o bind /dev /mnt/HD_a2/gentoo/dev
mount -t proc none /mnt/HD_a2/gentoo/proc
/mnt/HD_a2/chroot /mnt/HD_a2/gentoo /bin/bash
Chrooted DropBear
will fail by default due to the default kernel not supporting uni98 ptys.
Correct build:
EXTRA_ECONF=--disable-openpty emerge dropbear
First time installation:
ln -s /dev/urandom /dev/random mkdir /etc/dropbear/ /usr/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key /usr/bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
Auto-start from fun_plug (assuming a working busybox):
ln -s /mnt/HD_a2/bin/busybox /bin/chroot ln -s /mnt/HD_a2/bin/busybox /bin/makedevs cd /dev /bin/makedevs ptyp c 2 0 0 9 /bin/makedevs ttyp c 3 0 0 9 ln -s urandom random mount -o bind /dev /mnt/HD_a2/gentoo/dev mount -t proc none /mnt/HD_a2/gentoo/proc cp /etc/resolv.conf /mnt/HD_a2/gentoo/etc/ /bin/chroot /mnt/HD_a2/gentoo /usr/sbin/dropbear
Successful Gentoo boot log
* U-Boot 0.2.0 (May 11 2005 - 18:56:16) CPU: MPC8245 V1.2 at 170.503 MHz: Board: Sandpoint 8245 DRAM: 32 MB FLASH: FUJI_DL323BE In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => bootm FFF10000 ## Booting image at fff10000 ... Image Name: Linux-2.4.21-pre4 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 884424 Bytes = 863.7 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK Total memory 33554432 MB. Memory BAT mapping: BAT2=32Mb, BAT3=0Mb, residual: 0Mb Total memory is 33554432. CPU = 82xx Linux version 2.4.21-pre4 (root@serv) (gcc version 2.95.4 20010319 (prerelease)) #480 Mon Feb 19 17:19:05 EET 2007 OpenPIC_Addr in mpc10x_bridge_init function is fc040000 Motorola SPS Sandpoint Test Platform Port by MontaVista Software, Inc. (source@mvista.com) On node 0 totalpages: 8192 zone(0): 8192 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: root=/dev/sda3 console=ttyS0,9600 OpenPIC Version 1.2 (1 CPUs and 123 IRQ sources) at fc040000 Calibrating delay loop... 133.12 BogoMIPS Memory: 30176k available (1564k kernel code, 584k data, 56k init, 0k highmem) Dentry cache hash table entries: 4096 (order: 3, 32768 bytes) Inode cache hash table entries: 2048 (order: 2, 16384 bytes) Mount cache hash table entries: 512 (order: 0, 4096 bytes) Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 8192 (order: 3, 32768 bytes) POSIX conformance testing by UNIFIX PCI: Probing PCI hardware PCI fixup irq: (PCI device 1814:0201) got 0 PCI fixup irq: (PCI device 1033:0035) got 1 PCI fixup irq: (PCI device 1033:0035) got -1 PCI fixup irq: (PCI device 1033:00e0) got 2 PCI fixup irq: (PCI device 13f0:1023) got 3 PCI fixup irq: (PCI device 1191:0008) got 4 Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket Starting kswapd Journalled Block Device driver loaded devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au) devfs: boot_options: 0x1 udf: registering filesystem pty: 256 Unix98 ptys configured Serial driver version 5.05c (2001-07-08) with MANY_PORTS SERIAL_PCI enabled ttyS00 at 0xfc004500 (IOMEM)(irq = 121) is a ST16650 ttyS01 at 0xfc004600 (IOMEM)(irq = 122) is a ST16650 loop: loaded (max 8 devices) ipg : v0.36 10/31/01 Written by Craig Rich, www.sundanceti.com IC PLUS IP1000 1000/100/10 based NIC found. Ethernet device registered as: eth0 IPG module loaded. SCSI subsystem driver Revision: 1.00 atp86x_detect: ACARD ATP-865 PCI ATA133 2-Channels Host Adapter: 0 IO:FEBFFEF8, IRQ:4. ID: 0 FUJITSU MHT2060AT UDMA5 (100) scsi0 : ACARD ATP86X PCI ATA133 Adapter Driver Ver: 0.78 Date: 2004/01/15 Vendor: FUJITSU Model: MHT2060AT Rev: Type: Direct-Access ANSI SCSI revision: 02 Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 SCSI device sda: 117210239 512-byte hdwr sectors (30006 MB) Partition check: p1 p2 p3 p4 USI AMD/FUJITSU flash: probing 8-bit flash bus Amd/Fujitsu Extended Query Table at 0x0040 number of CFI chips: 1 cfi_cmdset_0002: Disabling fast programming due to code brokenness. Creating 5 MTD partitions on "USI Intel flash": 0x00000000-0x00010000 : "Linux mtd1" 0x00010000-0x00020000 : "Linux mtd2" 0x00020000-0x00300000 : "Linux Ramdisk" 0x00300000-0x00310000 : "U-BOOT BOOT LOADER" 0x00310000-0x00400000 : "Linux Kernel" usb.c: registered new driver hub NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 2048 bind 2048) NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with ordered data mode. VFS: Mounted root (ext3 filesystem) readonly. Mounted devfs on /dev Freeing unused kernel memory: 56k init INIT: version 2.86 booting Gentoo Linux; http://www.gentoo.org/ Copyright 1999-2005 Gentoo Foundation; Distributed under the GPLv2 * Mounting proc at /proc ... [ ok ] * Kernel automatically mounted devfs at /dev ... [ ok ] * Starting devfsd ...Started device management daemon v1.3.25 for /dev [ ok ] * Activating (possible) swap ...Adding Swap: 506480k swap-space (priority -1) [ ok ] * Skipping root filesystem check (fstab's passno == 0) ... [ ok ] * Remounting root filesystem read/write ... [ ok ] * Setting hostname to dsmg600 ... [ ok ] * Calculating module dependencies ... [ ok ] * Checking all filesystems ... [ ok ] * Mounting local filesystems ... [ ok ] * Activating (possibly) more swap ... [ ok ] * Setting system clock to hardware clock [Local Time] ... * Cannot access the Hardware Clock via any known method. Use the --debug option to see the details of our search for an access method. Cannot access the Hardware Clock via any known method. Use the --debug option to see the details of our search for an access method. * Failed to set system clock to hardware clock [ !! ] * Failed to start /etc/init.d/clock * Setting DNS domainname to penthouse.lan ... [ ok ] * Configuring kernel parameters ... [ ok ] * Updating environment ... [ ok ] * Cleaning /var/lock, /var/run ... [ ok ] * Cleaning /tmp directory ... [ ok ] * Starting lo * Bringing up lo ... [ ok ] * Initializing random number generator ... [ ok ] INIT: Entering runlevel: 3 * Starting eth0 * Bringing up eth0 * 192.168.1.10 [ ok ] [ ok ] * Adding routes * default gw 192.168.1.1 ... [ ok ] * Starting dropbear ... [ ok ] * Mounting network filesystems ... [ ok ] * Setting clock via the NTP client 'ntpdate' ... [ ok ] * Starting local ... [ ok ] INIT: no more processes left in this runlevel
Troubleshooting
- If you can't get to the login then press ctrl+c right after /dev and sda3 is mounted.
- If your root file system is read-only then use
mount -t ext3 -o rw,remount /dev/sda3 /
to get write access.