Archive for June, 2011
If your GoFlex Net is no longer booting cause you made some change you will probably need to establish a serial connection to troubleshoot the problem. For this you need a serial adapter, but the GoFlex Net uses 3.3 V TTL levels so do not connect your PC’s serial connector to the device as its 12 V.
To establish a serial connection you will need the following items
- USB Serial Adapter – You can get one from eBay based on the PL2303 or CP2102 chips.
- Wire Testing Hooks – You will need this to properly attach the cable to the pins.
On the left you can see how my adapter looked after attaching the hooks.
Now you need to open the GoFlex Net to get access to the serial port. For this you will need a plastic pry tool. Use the pry tool to slowly detach the bottom panel from the GoFlex. There are small clips which is holding the bottom panel.
Once you have removed the bottom panel, you will be able to see the 10 pin port as shown below.
Now use the cable hooks to attach the cables to respective pins and the final result would be something like below. It may take a while to attach the hooks properly as the pins are really close together.
Now attach the serial adapter to the PC, install the drivers and you are ready. If you are using Windows you can use Putty to see the serial output. Configure putty with correct COM port, speed as 115200 and no flow control.
In linux you can simply run
From there you can interrupt uBoot to fix any issues with the uBoot environment for instance. But be careful as you don’t want to brick the device by messing too much with the boot loader and you will probably need a JTAG to recover the device if its bricked.
This how-to assumes that you have a working Debian installation on a USB drive. If not check Jeff’s site on how to install debian Squeeze on the GoFlex Net.
Once you have installed debian and have verified everything is working fine, we can go ahead with the modifications. It would be a good idea to configure netconsole so that you can monitor and make changes to uBoot if there is any problem. The steps are described in detail here.
The default kernel installed doesn’t have support for the GoFlex Net SATA ports. So we are going to replace it with a newer and updated kernel.
Now we will download and install the updated kernel.
wget http://www.varkey.in/files/linux-image-126.96.36.199-goflex_1.0_armel.deb dpkg -i linux-image-188.8.131.52-goflex_1.0_armel.deb cd /boot # Create the images for uBoot /usr/bin/mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-184.108.40.206 -d /boot/vmlinuz-220.127.116.11-goflex /boot/uImage /usr/bin/mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /boot/initrd.img-18.104.22.168-goflex /boot/uInitrd
After that reboot GoFlex Net and ‘uname –r’ should show ‘22.214.171.124-goflex’ if the kernel installation was successful. Once you have made sure it’s the updated kernel we can update uBoot environment to the new GoFlex Arch Number to enable the SATA ports.
setenv arcNumber 3089
Reboot again and check the output of ‘dmesg’, it should show something like this
[ 1.068182] sata_mv sata_mv.0: version 1.28 [ 1.072505] sata_mv sata_mv.0: slots 32 ports 2 [ 1.079814] scsi0 : sata_mv [ 1.083250] scsi1 : sata_mv [ 1.086582] ata1: SATA max UDMA/133 irq 21 [ 1.090697] ata2: SATA max UDMA/133 irq 21
Now you can modify the uBoot environment again to make it boot from a SATA drive.
fw_setenv sata_boot 'ide reset; mw 0x800000 0 1; ext2load ide 0:1 0x800000 /boot/uImage; if ext2load ide 0:1 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi' fw_setenv sata_bootcmd 'run usb_set_bootargs; run sata_boot' fw_setenv 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'
Shutdown the GoFlex Net, connect the hard disk to the *right* side SATA port. There seems to be a bug in Jeff’s uBoot for GoFlex Net, so within uBoot only the right port works. That would be all and the GoFlex Net should now boot from the attached SATA disk.
Here are the logs from a successful SATA boot.
And my uBoot environment settings as well.
If you do not have a GoFlex Hard Disk, you can attach an external eSata disk to the GoFlex Net using these cables.
If you are having any trouble setting this up, leave a comment.