|
|
(2 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | = rootfs =
| |
| | | |
− | == what you need ==
| |
− |
| |
− | you need
| |
− | * a PC running a tftpboot server
| |
− | * the new ramrootfs ( see [[Flameman/dht-walnut#new_ramrootfs.2C_tftp_uboot_uImage:_install.2Frecovery.2Ffirst-aid]] )
| |
− | * for an empty 2..4Gbyte storage for the full gentoo rootfs
| |
− | * for an empty 512Mb..1Gbyte storage for the embedded gentoo rootfs
| |
− |
| |
− | == new ramrootfs, tftp uboot uImage: install/recovery/first-aid ==
| |
− |
| |
− | <pre>
| |
− | Image Name: "ramrootfs"
| |
− | Created: Fri Jul 3 15:51:20 2009
| |
− | Image Type: PowerPC unix Kernel uboot-uImage (gzip compressed)
| |
− | Load Address: 0x00000000
| |
− | Entry Point: 0x00000000
| |
− | </pre>
| |
− |
| |
− | ==== goal ====
| |
− |
| |
− | this is a pretty embedded kit able to bootstrap the dht-walunt with a early ram rootfs populated with the essential you need to
| |
− |
| |
− | * mount/nfs mount a disk
| |
− | * nano/hexedit configure mounted disk files from disaster
| |
− | * badklocks/fsck.{ext2,ext3,minix} a disk
| |
− | * fdisk, mac-fdisk a disk
| |
− | * scp/wget file from the lan (it's very goot to install gentoo stages from gentoo mirrors)
| |
− | * ssh/telnet to/from hostes
| |
− | * sync your system date to the internet rdate
| |
− |
| |
− | ==== about ====
| |
− |
| |
− | this rootfs has been build with
| |
− | * gcc powerpc-softfloat-linux-uclibc v4.1.2
| |
− | * static stripped elf
| |
− |
| |
− | it is based on the following packages:
| |
− |
| |
− | * bash-3.2_p33: ok
| |
− | * busybox-1.7.4: ok
| |
− | * dropbear-0.49: ok
| |
− | * e2fsprogs-1.40.9: ok
| |
− | * hexedit-1.2.12: ok
| |
− | * mac-fdisk-hacked-for-mips-arm: ok
| |
− | * nano-2.1.5: ok
| |
− | * nfs-utils-1.1.0: ok
| |
− | * openssh-4.7_p1-r6: ok
| |
− | * shadow-4.0.18.2: ok
| |
− | * sysvinit-2.86: ok
| |
− | * my-init: no
| |
− | * tty-redirect-openpty: ok
| |
− |
| |
− |
| |
− | ==== it works ====
| |
− |
| |
− | * locally on the serial console, where it bootstrap
| |
− | * remotely on telnet with the ip 192.168.1.2
| |
− |
| |
− | sorry sshd is not provided yet, you have to telnet
| |
− |
| |
− |
| |
− |
| |
− | ==== issue ====
| |
− |
| |
− | there is an issue if you decide to use ssh/scp on the serial console
| |
− | the problem is related to a redirection of /dev/console to /dev/tty
| |
− | so to avoid you need to invoke openpty (an app i prepared as temporary fixup)
| |
− |
| |
− |
| |
− | scp is reporting
| |
− | <pre>
| |
− | debug1: Next authentication method: password
| |
− | debug1: read_passphrase: can't open /dev/tty: No such device or address
| |
− | </pre>
| |
− |
| |
− |
| |
− | workaround
| |
− |
| |
− | <pre>
| |
− | uc-earlyrootfs ~ # tty
| |
− | /dev/ttyS0
| |
− | uc-earlyrootfs ~ # echo "hAllo" > /dev/tty
| |
− | /dev/tty no such decice or address
| |
− | uc-earlyrootfs ~ # openpty
| |
− | uc-earlyrootfs ~ # tty
| |
− | /dev/pts/0
| |
− | uc-earlyrootfs ~ # echo "hAllo" > /dev/tty
| |
− | hAllo
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | ==== missing ====
| |
− |
| |
− | * /dev/initctl
| |
− | * halt/reset/shudown
| |
− | * sshd, fptd
| |
− | * ...
| |
− |
| |
− | ==== download ====
| |
− |
| |
− | 07-2009: kernel 2.6.15.4+initramfs full tested and working [[Media:kernel-dht-walnut-ramrootfs-uImage.tgz|kernel-dht-walnut-ramrootfs-uImage.tgz]]
| |
− |
| |
− | file size: 3.97 MB, MIME type, the original was 4.3Mb but this wiki is refusing to upload file greater than 4Mb, so the kernel has been reduced and in features: no scsi and graph console support
| |
− |
| |
− | contents:
| |
− |
| |
− | gentoo-2.6.15.4-dht-walnut-uImage -> what you have to tftpboot to dht-walnut
| |
− |
| |
− | gentoo-2.6.15.4-dht-walnut-uImage.md5 -> the md5sum should be b6c1e725984c665e46c1428d0f953149
| |
− |
| |
− | ==== tested with ====
| |
− |
| |
− | * U-Boot 1.2.0-g7882751c-dirty (Apr 14 2007 - 16:44:37): working (with ide support, working, tftp bug)
| |
− | * U-Boot 2009.06-00273-g59869ca-dirty (Jul 08 2009 - 08:12:46): working (but this version has no ide capabilities, so no disk-boot is possible)
| |
− | * U-Boot 1.2-2009 (Jul 24 2009 - still under development): working (with ide support, working, suggest as the final firmware)
| |
− |
| |
− | ==== firmware issues with ====
| |
− |
| |
− | reported issues with uboot 1.1.4 and ppcboot 1.1.6
| |
− |
| |
− | * host: tftp-boot-image, md5 check passes
| |
− | ** gentoo-walnut-rammrootfs-uImage has md5 B6C1E725984C665E46C1428D0F953149
| |
− | ** the image file size is 4161527 bytes, crc32 of the file is 8031f4dc
| |
− | * target: tftp
| |
− | ** set up the ramrootfs boot args and tftp the image into the DHT-walnut
| |
− | ** full 4161527 bytes were transferred.
| |
− | ** loaded image, performed a crc32 command, passes
| |
− | ** bootm, panic, It reports "4161463 Bytes = 4063 kB = 3 MB"
| |
− |
| |
− | ==== usage ====
| |
− |
| |
− | assure you have bootargs console=ttyS0,9600 rdinit=/sbin/init init=/bin/bash in your tftp
| |
− |
| |
− | here it is my whole environment, in where i simply invoke 2 macro + bootm
| |
− |
| |
− | * run ramrootfs
| |
− | * run boot-tftp
| |
− | * bootm
| |
− |
| |
− | <pre>
| |
− | earlyrootfs login: root
| |
− | Password: (enter, no password)
| |
− | </pre>
| |
− |
| |
− |
| |
− | <pre>
| |
− | => printenv
| |
− | bootdelay=5
| |
− | loads_echo=1
| |
− | netdev=eth0
| |
− | ramargs=setenv bootargs root=/dev/ram rw
| |
− | addip=setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off panic=1
| |
− | addtty=setenv bootargs ${bootargs} console=ttyS0,${baudrate}
| |
− | kernel_addr=fff80000
| |
− | ramdisk_addr=fff80000
| |
− | update=protect off fffc0000 ffffffff;era fffc0000 ffffffff;cp.b 100000 fffc0000 40000;setenv filesize;saveenv
| |
− | ethact=ppc_4xx_eth0
| |
− | hostname=walnut-ppc405
| |
− | ethaddr=DE:AD:BE:EF:DE:AD
| |
− | preboot=echo "ide.part.1th stores kernel rawimage"
| |
− | myroot=/dev/hda4
| |
− | myinit=/sbin/init
| |
− | fileaddr=800000
| |
− | netmask=255.255.255.0
| |
− | bootcmd=run boot-disk ; bootm
| |
− | myboot_diskpart=0:1
| |
− | myboot_kernel_addr=800000
| |
− | baudrate=9600
| |
− | myuart=ttyS0
| |
− | setconsole_uart=setenv myconsole ${myuart},${baudrate}
| |
− | setconsole_video=setenv myconsole tty video=${myvideofb}
| |
− | myvideofb=matroxfb:800x600-16@60
| |
− | setbootargs=setenv bootargs console=${myconsole} root=${myroot} init=${myinit}
| |
− | myconsole=ttyS0,9600
| |
− | bootargs=console=ttyS0,9600 root=/dev/hda4 init=/sbin/init
| |
− | boot-tftp=tftpboot ${myboot_kernel_addr} ${myboot_file}
| |
− | boot-disk=diskboot ${myboot_kernel_addr} ${myboot_diskpart}
| |
− | ipaddr=192.168.1.5
| |
− | serverip=192.168.1.14
| |
− | gatewayip=192.168.1.1
| |
− | myboot_file=gentoo-walnut-ramrootfs.img
| |
− | ramrootfs=setenv bootargs console=ttyS0,9600 rdinit=/sbin/init init=/bin/bash
| |
− | stdin=serial
| |
− | stdout=serial
| |
− | stderr=serial
| |
− | ver=U-Boot 1.2.0-g7882751c-dirty (Apr 14 2007 - 16:44:37)
| |
− |
| |
− | Environment size: 1405/16379 bytes
| |
− | => run ramrootfs
| |
− | => run boot-tftp
| |
− | PHY speed read failed, assuming 10bT
| |
− | PHY duplex read failed, assuming half duplex
| |
− | ENET Speed is 10 Mbps - HALF duplex connection (EMAC0)
| |
− | Using ppc_4xx_eth0 device
| |
− | TFTP from server 192.168.1.14; our IP address is 192.168.1.5
| |
− | Filename 'gentoo-walnut-ramrootfs.img'.
| |
− | Load address: 0x800000
| |
− | Loading: #################################################################
| |
− | #################################################################
| |
− | #################################################################
| |
− | #################################################################
| |
− | #################################################################
| |
− | #################################################################
| |
− | #################################################################
| |
− | #################################################################
| |
− | #################################################################
| |
− | #################################################################
| |
− | #################################################################
| |
− | #################################################################
| |
− | #################################################################
| |
− | ##############################
| |
− | done
| |
− | Bytes transferred = 4161527 (3f7ff7 hex)
| |
− | => bootm
| |
− | ## Booting image at 00800000 ...
| |
− | Image Name: "ramrootfs"
| |
− | Created: 2009-07-06 11:19:06 UTC
| |
− | Image Type: PowerPC Linux Kernel Image (gzip compressed)
| |
− | Data Size: 4161463 Bytes = 4 MB
| |
− | Load Address: 00000000
| |
− | Entry Point: 00000000
| |
− | Verifying Checksum ... OK
| |
− | Uncompressing Kernel Image ... OK
| |
− | kernel 2.6.15.4-sliding-snow-leopard-dht-walnut-ppc405 (root@minerva) (gcc version 4.1.2) #30 Fri Jul 3 15:14:11 CEST 2009
| |
− | IBM Walnut port (C) 2000-2002 MontaVista Software, Inc. (source@mvista.com)
| |
− | ...
| |
− | </pre>
| |