Quantcast
Channel: Linux Device Hacking
Viewing all articles
Browse latest Browse all 3178

GoFlex Home - IDE Reset powers off device (7 replies)

$
0
0
Appears to be a great community and knowledge base on this forum which has helped a lot over the last few weeks.
Any help would be greatly appreciated.

The Issue
As the GoFlex Home boots I get an intermittent green LED for a number of seconds, I hear the SATA disk begin to spin up, then the entire GoFlex device powers off.

Brand new disk, up-to-date uboot and new-ish kernel & rootfs.
See below for more details.

Background
My trusty GoFlex Home has been running great for a number of years with Arch, but I now wanted to fit a SATA disk with more storage space.

The uboot was very out of date and I wanted to switch to debian.
I therefore fitted the brand new SATA disk and updated to the following listed below with the respective guide links.

UBoot 2017.07 - https://forum.doozan.com/read.php?3,12381
Debian 5.2.9 Kirkwood (25/08/2019 as per first time install note) - https://forum.doozan.com/read.php?2,12096

I was able to boot fully (through uboot and the kernel) and use the distro fine from SSH prior to the issue existing.
However ,every boot now powers down the GoFlex (appears to be at the point "ide reset" is issued); NC output below.

Just in case it helps, on the last successful boot, I issued:
apt-get update
apt-get upgrade
reboot (and then powered off for a number of days)

Note: As indicated in the Debian rootfs guide, if apt-get updates initramfs, uInitrd should be re-generated. Which I did as specified before powering down.

Other notes
-I have also used CloneZilla to create an iso from the new disk prior to the issue presenting.
-Exactly the same occurs when the 3.5" SATA disk is fitted within a powered USB SATA caddy and connected to the GoFlex by USB (to rule out power draw of the new disk).
-A USB flash drive boots successfully within the GoFlex and I can SSH in (without the SATA disk connected).

NC output when issue occurs
Note nothing else is listed as the device is then "offline".

host 192.168.0.25 is alive
host 192.168.0.25 is alive
host 192.168.0.25 is alive
host 192.168.0.25 is alive
host 192.168.0.25 is alive

U-Boot 2017.07-tld-1 (Sep 05 2017 - 00:21:31 -0700)
Seagate GoFlex Home
gcc (Debian 6.3.0-18) 6.3.0 20170516
GNU ld (GNU Binutils for Debian) 2.28
Hit any key to stop autoboot:  0 
Initializing devices...
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Reset IDE: Bus 0: ..

Print Env for completeness
printenv
arcNumber=3338
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec
bootcmd_exec=run load_uimage; if run load_initrd; then if run load_dtb; then bootm $load_uimage_addr $load_initrd_addr $load_dtb_addr; else bootm $load_uimage_addr $load_initrd_addr; fi; else if run load_dtb; then bootm $load_uimage_addr - $load_dtb_addr; else bootm $load_uimage_addr; fi; fi
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi; sleep 3
bootdelay=10
bootdev=usb
device=0:1
devices=usb ide mmc
disks=0 1 2 3
dtb_file=/boot/dts/kirkwood-goflexhome.dtb
ethact=egiga0
ethaddr=[purposefully omitted]
if_netconsole=ping $serverip
ipaddr=192.168.0.90
led_error=orange blinking
led_exit=green off
led_init=green blinking
load_dtb=echo loading DTB $dtb_file ...; load $bootdev $device $load_dtb_addr $dtb_file
load_dtb_addr=0x1c00000
load_initrd=echo loading uInitrd ...; load $bootdev $device $load_initrd_addr /boot/uInitrd
load_initrd_addr=0x1100000
load_uimage=echo loading uImage ...; load $bootdev $device $load_uimage_addr /boot/uImage
load_uimage_addr=0x800000
mainlineLinux=yes
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:1M(u-boot),-(rootfs)
nc_ready=1
ncip=192.168.0.25
ncipk=192.168.0.26
partition=nand0,2
preboot=run preboot_nc
preboot_nc=setenv nc_ready 0; for pingstat in 1 2 3 4 5; do; sleep 1; if run if_netconsole; then setenv nc_ready 1; fi; done; if test $nc_ready -eq 1; then run start_netconsole; fi
scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide reset";  setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_uimage_addr /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv bootdev $dev; fi; fi; done; fi; done
serverip=192.168.0.25
set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
stderr=nc
stdin=nc
stdout=nc
uenv_addr=0x810000
uenv_import=echo importing envs ...; env import -t $uenv_addr $filesize
uenv_init_devices=echo Initializing devices...; setenv init_usb "usb start";  setenv init_ide "ide reset";  setenv init_mmc "mmc rescan"; for devtype in $devices; do run init_$devtype; done
uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices; do for disknum in $disks; do if test $uenv_loaded -eq 0; then setenv device_type $devtype; setenv disk_number $disknum; run uenv_read; fi; done; done;
uenv_read=echo Loading envs from $device_type $disk_number...; if load $device_type  $disk_number:1 $uenv_addr /boot/uEnv.txt; then setenv uenv_loaded 1; echo ... envs loaded; fi
usb_ready_retry=15

=====
moderator edit: use code tag for envs listing.

Viewing all articles
Browse latest Browse all 3178

Trending Articles