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

From eLinux.org
Jump to: navigation, search
(idea)
(Added to category DHT-Walnut)
(2 intermediate revisions by one other user not shown)
Line 5: Line 5:
 
you need  
 
you need  
 
* a PC running a tftpboot server
 
* a PC running a tftpboot server
* the new ramrootfs ( see [[Flameman/dht-walnut#new_ramrootfs.2C_tftp_uboot_uImage:_install.2Frecovery.2Ffirst-aid]] )
+
* the new ramrootfs  
 
* for an empty 2..4Gbyte storage for the full gentoo rootfs
 
* for an empty 2..4Gbyte storage for the full gentoo rootfs
 
* for an empty 512Mb..1Gbyte storage for the embedded gentoo rootfs
 
* for an empty 512Mb..1Gbyte storage for the embedded gentoo rootfs
  
==== new ramrootfs, tftp uboot uImage: install/recovery/first-aid ====
+
== new ramrootfs, tftp uboot uImage: install/recovery/first-aid ==
  
 
<pre>
 
<pre>
Line 27: Line 27:
 
* badklocks/fsck.{ext2,ext3,minix} a disk
 
* badklocks/fsck.{ext2,ext3,minix} a disk
 
* fdisk, mac-fdisk a disk
 
* fdisk, mac-fdisk a disk
* scp/wget file from the lan (it's very goot to install gentoo stages from gentoo mirrors)
+
* scp/wget file from the lan (it's very god to install gentoo stages from gentoo mirrors)
 
* ssh/telnet to/from hostes
 
* ssh/telnet to/from hostes
 
* sync your system date to the internet rdate
 
* sync your system date to the internet rdate
Line 229: Line 229:
 
...
 
...
 
</pre>
 
</pre>
 +
 +
 +
[[Category:DHT-Walnut]]

Revision as of 21:33, 12 April 2011

rootfs

what you need

you need

  • a PC running a tftpboot server
  • the new ramrootfs
  • 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

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