by auzn » Sun Dec 29, 2013 7:45 pm
A little progress.
I just noticed that somehow my device is recognized by uboot as GoFlex Net (See my uboot log in previous post). But I am very certain that my device is in fact GoFlex Home, so this is very weird.
What I ended up doing is boot the device with USB, change the arcNumber to 3089, and repeat the upgrade process (this time I set it to try USB first then SATA). Below is the fw_printenv, I think repeating the upgrade process messed up the environment a little:
$this->bbcode_second_pass_code('', '
ethact=egiga0
bootdelay=3
baudrate=115200
mainlineLinux=yes
console=ttyS0,115200
led_init=green blinking
led_exit=green off
led_error=orange blinking
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
mtdids=nand0=orion_nand
partition=nand0,2
stdin=serial
stdout=serial
stderr=serial
rescue_installed=0
rescue_set_bootargs=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts $rescue_custom_params
rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000; else run pogo_bootcmd; fi
pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi
force_rescue=0
force_rescue_bootcmd=if test $force_rescue -eq 1 || ext2load usb 0:1 0x1700000 /rescueme 1 || fatload usb 0:1 0x1700000 /rescueme.txt 1; then run rescue_bootcmd; fi
ubifs_mtd=3
ubifs_set_bootargs=setenv bootargs console=$console ubi.mtd=$ubifs_mtd root=ubi0:rootfs rootfstype=ubifs $mtdparts $ubifs_custom_params
ubifs_bootcmd=run ubifs_set_bootargs; if ubi part data && ubifsmount rootfs && ubifsload 0x800000 /boot/uImage && ubifsload 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; fi
usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done
usb_scan_list=1 2 3 4
usb_scan_1=usb=0:1 dev=sda1
usb_scan_2=usb=1:1 dev=sdb1
usb_scan_3=usb=2:1 dev=sdc1
usb_scan_4=usb=3:1 dev=sdd1
usb_init=run usb_scan
usb_device=0:1
usb_root=/dev/sda1
usb_rootfstype=ext2
usb_rootdelay=10
usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts $usb_custom_params
usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot
usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
arcNumber=3089
sata_device=0:1
sata_root=/dev/sda1
sata_rootfstype=ext3
sata_rootdelay=10
sata_set_bootargs=setenv bootargs console=$console root=$sata_root rootdelay=$sata_rootdelay rootfstype=$sata_rootfstype $mtdparts $sata_custom_params
sata_boot=ide reset; mw 0x800000 0 1; ext2load ide $sata_device 0x800000 /boot/uImage; if ext2load ide $sata_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
sata_bootcmd=run sata_set_bootargs; run sata_boot
bootcmd=usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run sata_bootcmd; run rescue_bootcmd; run pogo_bootcmd; reset
ipaddr=10.10.10.6
ncip=10.10.10.5
ncipk=10.10.10.4
serverip=10.10.10.3
preboot=run nc_test nc_start
nc_test=ping $ncip
nc_start=setenv stdin nc; setenv stdout nc; setenv stderr nc; version
usb_custom_params=ignore_loglevel netconsole=6665@10.10.10.3/eth0,6666@10.10.10.4/
sata_custom_params=ignore_loglevel netconsole=6665@10.10.10.3/eth0,6666@10.10.10.4/
')
After this I rebooted the device. At this point, the device will have kernel panic if I only leave SATA in the device. The kernel panic seems to due to rootfs in SATA not being ext3.
Oddly though, the device can boot into the archlinux on SATA if I have both usb and SATA in the device. I checked the mount, and it showed that rootfs (on /dev/sda1) is mounted as ext2. I tried "tune2fs -j /dev/sda1" to convert it to ext3, and reboot the device. Now the device can boot up properly with only SATA in.
I have only 2 remaining questions:
1: Why is my device recognized as GoFlex Net by Uboot?
2: The environment from fw_printenv seems quite messy, and the u-boot log from netconsole shows some error at the beginning. The device does boot into archlinux without much problem, so Should I just keep the environment this way? If I need to clean up the environment, what should I do?