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). Don't use 2008.0 stage because it is compiled against 2.6 kernel headers.
Installing steps
ln -s /mnt/HD_a2/bzip2 /mnt/HD_a2/bzcatmkdir /mnt/HD_a2/gentoocd /mnt/HD_a2/gentoo/mnt/HD_a2/bzcat /mnt/HD_a2/stage3-ppc-uclibc-2006.1.tar.bz2 | /mnt/HD_a2/tar -xvpf -cd /mnt/HD_a2/gentoo/usr/mnt/HD_a2/bzcat /mnt/HD_a2/portage-latest.tar.bz2 | /mnt/HD_a2/tar -xvf -mount -o bind /dev /mnt/HD_a2/gentoo/devmount -t proc none /mnt/HD_a2/gentoo/proccp /etc/resolv.conf /mnt/HD_a2/gentoo/etc//mnt/HD_a2/chroot /mnt/HD_a2/gentoo /bin/bash- Update /etc/make.conf
- Update /etc/conf.d/net
env-update && source /etc/profilerc-update add net.eth0 defaultrc-update add dropbear defaultpasswd 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="-*" PORTAGE_RSYNC_EXTRA_OPTS="—exclude-from=/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=( "yourNASip netmask 255.255.255.0 broadcast yourBroadcastAddress" ) routes_eth0=( "default gw yourGatewayAdress" ) mac_eth0="yourMACaddress" dns_servers_eth0=( "yourDNSserverAddress" )
Example :
config_eth0=( "192.168.0.20 netmask 255.255.255.0 broadcast 192.168.0.255" ) routes_eth0=( "default gw 192.168.0.254" ) mac_eth0="00:15:E9:6D:22:11" dns_servers_eth0=( "212.20.30.40" )
/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. For more info look 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/portagerm -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/devmount -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. - Current e2fsprogs 1.40.4 fails to build with following error:
../../lib/libuuid.so: undefined reference to `___tls_get_addr'See http://bugs.gentoo.org/show_bug.cgi?id=204102 for more details. Workaround is to use version 1.40.3 by runningecho '>=sys-fs/e2fsprogs-1.40.4' » /etc/portage/package.maskbefore emerging.
Installing an older package
Current version gentoo packages may not work on DSM-G600. If you gets Masked packages because of unsupported EAPI or package only support kernel 2.6, try to install an older package by browsing to /usr/portage/category/application or going to the CSV tree : http://sources.gentoo.org/viewcvs.py/gentoo-x86/ and searching older version of the package. Once the version found, install it with this command :
emerge -av =category/package-version