Thanks moonman and summer for your effort trying to save me! Okay, I'll do this all over again:
1. Flash the uboot downloaded from this site
here. It is a .tar.xz file. So I extract it on to my laptop and copy the uboot-goflexthome.kwb file to a FAT32 formatted USB.
$this->bbcode_second_pass_code('', 'GoFlexHome> usb reset
resetting USB…
USB0: USB EHCI 1.00
scanning bus 0 for devices… 2 USB Device(s) found
scanning usb for storage devices… 1 Storage Device(s) found
GoFlexHome> fatload usb 0:1 0x0800000 uboot-goflexhome.kwb
reading uboot-goflexhome.kwb
524288 bytes read in 40 ms (12.5 MiB/s)
GoFlexHome> nand erase 0x0 0x80000
NAND erase: device 0 offset 0x0, size 0x80000
Erasing at 0x0 — 25% complete.
Erasing at 0x20000 — 50% complete.
Erasing at 0x40000 — 75% complete.
Erasing at 0x60000 — 100% complete.
OK
GoFlexHome> nand write.e 0x800000 0x0 0x80000
NAND write: device 0 offset 0x0, size 0x80000
524288 bytes written: OK
GoFlexHome> reset
resetting …
')
It seems the new (older?) uboot successfully write into the NAND, however it still not load from HDD.
$this->bbcode_second_pass_code('', 'U-Boot 2016.09.01-1 (Oct 10 2016 - 23:11:39 -0600) Arch Linux ARM
Seagate GoFlex Home
SoC: Kirkwood 88F6281_A1
DRAM: 128 MiB
WARNING: Caches not enabled
NAND: 256 MiB
In: serial
Out: serial
Err: serial
Net: egiga0
88E1116 Initialized on egiga0
IDE: Bus 0: OK Bus 1: not available
Device 0: Model: ST2000DL003-9VT166 Firm: CC98 Ser#: 5YD45PSQ
Type: Hard Disk
Supports 48-bit addressing
Capacity: 1907729.0 MB = 1863.0 GB (3907029168 x 512)
Hit any key to stop autoboot: 3 2 1 0
Reset IDE: Bus 0: OK Bus 1: not available
Device 0: Model: ST2000DL003-9VT166 Firm: CC98 Ser#: 5YD45PSQ
Type: Hard Disk
Supports 48-bit addressing
Capacity: 1907729.0 MB = 1863.0 GB (3907029168 x 512)
starting USB…
USB0: USB EHCI 1.00
scanning bus 0 for devices… 2 USB Device(s) found
scanning usb for storage devices… 1 Storage Device(s) found
Partition Map for IDE device 0 — Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 2048 41943040 47c3842a-01 83
2 41945088 3865084080 47c3842a-02 83
Partition Map for USB device 0 — Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 2048 30527488 00000000-01 0b
Attempting to boot from usb 0:1…
reading /boot/uEnv.txt
** Unable to read file /boot/uEnv.txt **
Checking if uenvcmd is set …
Running default loadzimage …
reading /boot/zImage
** Unable to read file /boot/zImage **
Running default loaduimage …
reading /boot/uImage
** Unable to read file /boot/uImage **
')
printenv gives this
$this->bbcode_second_pass_code('', 'GoFlexHome> printenv
baudrate=115200
bootcmd=ide reset; usb start; setenv letter 9;for type in ide usb; do for disk in 0; do if ${type} part ${disk};then setexpr letter $letter + 1;run load;fi;done;done;
bootdelay=3
bootm=echo Booting from ${disk} …; run setargs; bootm ${loadaddr};
bootz=echo Booting from ${disk} …; run setargs; bootz ${loadaddr} - ${fdt_addr};
console=ttyS0
ethact=egiga0
ethaddr=xx:xx:xx:xx:xx:xx (masked)
fdt_addr=0x800000
fdt_file=/boot/dtbs/kirkwood-goflexnet.dtb
fileaddr=800000
filesize=80000
importbootenv=echo Importing environment (uEnv.txt)…; env import -t $loadaddr $filesize
letter=a
load=echo Attempting to boot from ${type} ${disk}:1…;if run loadbootenv; then run importbootenv;fi;echo Checking if uenvcmd is set …;if test -n $uenvcmd; then echo Running uenvcmd …;run uenvcmd;fi;echo Running default loadzimage …;if run loadzimage; then run loadfdt;run bootz;fi;echo Running default loaduimage …;if run loaduimage; then run bootm;fi;
loadaddr=0x810000
loadbootenv=load ${type} ${disk}:1 ${loadaddr} /boot/uEnv.txt
loadfdt=load ${type} ${disk}:1 ${fdt_addr} ${fdt_file}
loaduimage=load ${type} ${disk}:1 ${loadaddr} ${uimage}
loadzimage=load ${type} ${disk}:1 ${loadaddr} ${zimage}
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:1M(u-boot),-(rootfs)
setargs=setenv bootargs console=${console},${baudrate} ${optargs} root=/dev/sd${letter}1 rw rootwait ${mtdparts}
uimage=/boot/uImage
zimage=/boot/zImage
Environment size: 1479/131068 bytes
')
Now I'm following what summer suggests as follow. Seems the only things failed were loading the initramfs-linux.img.
$this->bbcode_second_pass_code('', 'GoFlexHome> ide reset
Reset IDE: Bus 0: OK Bus 1: not available
Device 0: Model: ST2000DL003-9VT166 Firm: CC98 Ser#: 5YD45PSQ
Type: Hard Disk
Supports 48-bit addressing
Capacity: 1907729.0 MB = 1863.0 GB (3907029168 x 512)
GoFlexHome> ext4ls ide 0:1 /
<DIR> 4096 .
<DIR> 4096 ..
<DIR> 16384 lost+found
453736436 ArchLinuxARM-kirkwood-latest.tar.gz
<SYM> 7 bin
<DIR> 4096 boot
<DIR> 4096 dev
<DIR> 4096 etc
<DIR> 4096 home
<SYM> 7 lib
<DIR> 4096 mnt
<DIR> 4096 opt
<DIR> 4096 proc
<DIR> 4096 root
<DIR> 4096 run
<SYM> 7 sbin
<DIR> 4096 srv
<DIR> 4096 sys
<DIR> 4096 tmp
<DIR> 4096 usr
<DIR> 4096 var
GoFlexHome> ext4ls ide 0:1 /boot
<DIR> 4096 .
<DIR> 4096 ..
4623320 uImage
7764705 initramfs-linux.img
GoFlexHome>
GoFlexHome> load ide 0:1 ${loadaddr} /boot/uImage
4623320 bytes read in 908 ms (4.9 MiB/s)
GoFlexHome> load ide 0:1 ${fdtaddr} /boot/btbs/kirkwood-goflexhome.dtb
load - load binary file from a filesystem
Usage:
load <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
- Load binary file ‘filename’ from partition ‘part’ on device
type ‘interface’ instance ‘dev’ to address ‘addr’ in memory.
‘bytes’ gives the size to load in bytes.
If ‘bytes’ is 0 or omitted, the file is read until the end.
‘pos’ gives the file byte position to start reading from.
If ‘pos’ is 0 or omitted, the file is read from the start.
GoFlexHome> part uuid ide 0:1 uuid
GoFlexHome> setenv root PARTUUID=${uuid}
GoFlexHome> setenv bootargs console=${console} ${mtdparts} root=${root} rw rootwait ${optargs} ${ncargs}
GoFlexHome> saveenv
Saving Environment to NAND…
Erasing NAND…
Erasing at 0xc0000 — 100% complete.
Writing to NAND… OK
GoFlexHome> load ide 0:1 ${rdaddr} /boot/initramfs-linux.img
load - load binary file from a filesystem
Usage:
load <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
- Load binary file ‘filename’ from partition ‘part’ on device
type ‘interface’ instance ‘dev’ to address ‘addr’ in memory.
‘bytes’ gives the size to load in bytes.
If ‘bytes’ is 0 or omitted, the file is read until the end.
‘pos’ gives the file byte position to start reading from.
If ‘pos’ is 0 or omitted, the file is read from the start.
GoFlexHome> load ide 0:1 ${rdaddr} /boot/initramfs-linux-img
load - load binary file from a filesystem
Usage:
load <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
- Load binary file ‘filename’ from partition ‘part’ on device
type ‘interface’ instance ‘dev’ to address ‘addr’ in memory.
‘bytes’ gives the size to load in bytes.
If ‘bytes’ is 0 or omitted, the file is read until the end.
‘pos’ gives the file byte position to start reading from.
If ‘pos’ is 0 or omitted, the file is read from the start.
GoFlexHome> bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr}
Bad Linux ARM zImage magic!
GoFlexHome> boot
Reset IDE: Bus 0: OK Bus 1: not available
Device 0: Model: ST2000DL003-9VT166 Firm: CC98 Ser#: 5YD45PSQ
Type: Hard Disk
Supports 48-bit addressing
Capacity: 1907729.0 MB = 1863.0 GB (3907029168 x 512)
Partition Map for IDE device 0 — Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 2048 41943040 47c3842a-01 83
2 41945088 3865084080 47c3842a-02 83
Partition Map for USB device 0 — Partition Type: DOS
Part Start Sector Num Sectors UUID Type
1 2048 30527488 00000000-01 0b
Attempting to boot from usb 0:1…
reading /boot/uEnv.txt
** Unable to read file /boot/uEnv.txt **
Checking if uenvcmd is set …
Running default loadzimage …
reading /boot/zImage
** Unable to read file /boot/zImage **
Running default loaduimage …
reading /boot/uImage
** Unable to read file /boot/uImage **
')
So I redownloaded the ArchLinux from
here. Copied it to the HDD and bsdtar it hoping that was the problem, but still no go
$this->bbcode_second_pass_code('', '[root@alarm /]# cp mnt/sdb1/ArchLinuxARM-kirkwood-latest.tar.gz .
[root@alarm /]# ls
ArchLinuxARM-kirkwood-latest.tar.gz dev lib opt run sys var
bin etc lost+found proc sbin tmp
boot home mnt root srv usr
[root@alarm /]# bsdtar -xpf ArchLinuxARM-kirkwood-latest.tar.gz
[root@alarm /]# cd boot
[root@alarm boot]# ls -l
total 12596
-rw-r—r— 1 root root 8249092 Aug 9 17:58 initramfs-linux.img
-rw-r—r— 1 root root 4621184 Jun 13 03:57 uImage
')
$this->bbcode_second_pass_quote('moonman', 'M')y suggestion to you is to install proper arhclinuxarm u-boot by booting from USB drive and running "pacman -S uboot-goflexhome"
This will ensure you have all variables in order to boot up ALArm. There is nothing wrong with bodhi's u-boot, but it may not be setup the same way. You gain nothing feature-wise with either.
You do not have *.dtb and zImage is because by default rootfs is supplied with uImage which does not need dtb file (old method of booting these devices). After you get these booting problems solved, you can upgrade to zImage+dtb by install linux-kirkwood-dt package.Our U-Boot environment is setup so it will boot up with either zImage + dtb or uImage.
$this->bbcode_second_pass_quote('summers', 'Y')es just load the uImage instead (and change the boot command to a "bootm"). You also won't need the dtb in that case.
The partuuid of the HDD, you can get when you boot up from USB, with the HDD installed. The command "blkid" - just note the PARTUUID of the root on the HDD, and type that number by hand. You could also use /dev/sdX name - but PARTUUID should ensure its the HDD that is selected as root.
As moonman says, once you do manage to boot, with upgrading to modern kernel, which uses the dtb. Do check if you need GoFlex Home or GoFlex Net - you mention both in the thread, and not clear to me which you have.