Difference between revisions of "Flameman/dht-walnut/rootfs"

From eLinux.org
Jump to: navigation, search
(rootfs)
Line 16: Line 16:
  
  
== partition ==
 
  
coming soon
+
=== other rootfs ===
  
== install ==
+
==== new ramrootfs, tftp uboot uImage: install/recovery/first-aid ====
  
coming soon
+
<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>

Revision as of 03:55, 31 January 2010

rootfs

what you need

you need

idea

  • put the dht-walnut harddisk into PC ide slot
  • partition the storage device
  • install all the gentoo portages
  • remove the harddisk and put it into dht-walnut ide slot


other rootfs

new ramrootfs, tftp uboot uImage: install/recovery/first-aid

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

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

debug1: Next authentication method: password
debug1: read_passphrase: can't open /dev/tty: No such device or address


workaround

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


missing

  • /dev/initctl
  • halt/reset/shudown
  • sshd, fptd
  • ...

download

07-2009: kernel 2.6.15.4+initramfs full tested and working 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
earlyrootfs login: root
Password: (enter, no password)


=> 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)
...