====== How-to chroot into Gentoo ======
===== Files needed =====
* [[http://dns323.kood.org/downloads/bzip2-1.0.3.tar.bz2|bzip2]]
* [[http://dns323.kood.org/downloads/tar-1.15.92.tar.bz2|tar]]
* [[http://dns323.kood.org/downloads/chroot-5.97.tar.bz2|chroot]]
* [[http://ftp.eenet.ee/gentoo/experimental/ppc/embedded/stages/stage3-ppc-uclibc-2005.0.tar.bz2|stage3-ppc-uclibc-2005.0]] (recommended for gentoo chroot) or [[http://ftp.eenet.ee/gentoo/experimental/ppc/embedded/stages/stage3-ppc-uclibc-2006.1.tar.bz2|stage3-ppc-uclibc-2006.1]] (recommended for gentoo boot). Don't use 2008.0 stage because it is compiled against 2.6 kernel headers.
* [[http://ftp.eenet.ee/gentoo/snapshots/portage-latest.tar.bz2|portage tree]]
===== 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 /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/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''
- Update [[howto:chroot_gentoo#etc_make.conf|/etc/make.conf]]
- Update [[howto:chroot_gentoo#etc_conf.d_net|/etc/conf.d/net]]
- ''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''
- **If you are going to hddboot, 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 yourGatewayAddress" )
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 [[http://download.dsmg600.info/people/sala/rt2500.o|here]]. For more info look [[http://forum.dsmg600.info/p26074-Today-17%3A03%3A31.html#p26074|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 ====
* [[http://dns323.kood.org/forum/t788-ntpclient-gentoo-hdd-boot-chroot.html|NTPclient]]
* [[http://dns323.kood.org/forum/t955-chkbutton-replacement.html|DSMG600 button and leds]]
===== 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.
* 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 running ''echo '>=sys-fs/e2fsprogs-1.40.4' >> /etc/portage/package.mask'' before 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
===== Links =====
* [[http://dns323.kood.org/forum/t18-Gentoo-howto.html|Forum thread]]
* [[http://www.gentoo.org/doc/en/handbook/handbook-ppc.xml?full=1|Gentoo handbook]]