Seagate GoFlex Net : Installing Rescue System

After installing Debian using the install script on Jeff Doozan’s page, the stock PogoPlug OS fails to boot on a GoFlex Net even though it works perfectly on a Dockstar or PogoPlug Device. So the alternative is to install Jeff’s Rescue System on the GoFlex Net, but the default installation fails to boot as well and requires a slight modification for it to work properly.

First boot into debian from a USB device and run the following commands

cd /tmp  
wget http://jeff.doozan.com/debian/rescue/install_rescue.sh  
chmod +x install_rescue.sh  
./install_rescue.sh

Once the installation is complete, run the following command

fw_setenv rescue_bootcmd 'if test $rescue_installed -eq 1; then run rescue_set_bootargs; nand read.e 0x500000 0x100000 0x400000; bootm 0x500000; else run pogo_bootcmd; fi'

After this you can shutdown the device, remove the USB drive and restart, it will successfully boot into the rescue system.

You can also load the Rescue System from a USB drive (you need console access), thanks to Johannes. For this you need to download the rescue system from here and put the files on the root directory of a FAT formatted USB drive.

Now you need to interrupt the boot process through the console by pressing a key when prompted. You can either use a serial adapter or netconsole (provided you have set it up already)  for this.

U-Boot 2010.09 (Oct 23 2010 - 11:53:10)  
Marvell-GoflexNet by Jeff Doozan, Peter Carmichael  
Hit any key to stop autoboot:  0

Once you have interrupted uBoot and at the Marvell>> prompt, connect the USB drive and run the following commands

usb start  
fatload usb 0:1 0x500000 uimage  
fatload usb 0:1 0xe00000 uinitrd  
setenv bootargs console=$console $mtdparts  
bootm 0x500000 0xe00000

The rescue system now boots and you can re run the debian installer or do further troubleshooting.

Seagate GoFlex Net : Serial Connection

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

  1. USB Serial Adapter – You can get one from eBay based on the PL2303 or CP2102 chips.
  2. Wire Testing Hooks – You will need this to properly attach the cable to the pins.

IMG_0778You can also get a Nokia CA-42 data cable as the serial adapter but you will have to identify the correct wires etc which might be a little tricky.

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.

IMG_0771

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.

IMG_0786

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.

serial-puttyNow start the Putty session and then power on the GoFlex Net, you should see the console output.

In linux you can simply run

screen /dev/ttyUSB0 115200

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.

Boot debian from SATA - Seagate GoFlex Net

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-2.6.37.6-goflex_1.0_armel.deb

dpkg -i linux-image-2.6.37.6-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-2.6.37.6 -d /boot/vmlinuz-2.6.37.6-goflex /boot/uImage
/usr/bin/mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /boot/initrd.img-2.6.37.6-goflex /boot/uInitrd


After that reboot GoFlex Net and ‘uname –r’ should show ‘2.6.37.6-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.

How-To Configure Seagate FreeAgent Dockstar as a 3G Gateway

This how-to explains how to configure a Seagate Dockstar running Debian to establish a 3G connection using a USB data card like the Huawei E122 / UMG181 etc and configure it to act as a gateway so that the internet can be shared with the other devices connected to the network.

You need to have a Dockstar running Debian, if not check Jeff's site on how to install Debian on your Seagate Dockstar.

Configuring the USB Modem and PPP Dialler

First install the following packages using apt-get

  1. usb-modeswitch
  2. usb-modeswitch-data
  3. ppp
apt-get install usb-modeswitch usb-modeswitch-data ppp

After that connect your 3G USB modem, and wait for few seconds. After that give the command 'dmesg' and check if you can see something like this

option 1-1.4:1.0: GSM modem (1-port) converter detected usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB0 option 1-1.4:1.1: GSM modem (1-port) converter detected usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB1 option 1-1.4:1.2: GSM modem (1-port) converter detected usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB2 option 1-1.4:1.5: GSM modem (1-port) converter detected usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB3

If you see similar lines saying 'modem attached to ttyUSBx', then the USB modem is detected fine.

Now edit the file '/etc/ppp/peers/provider' and replace its contents with the following

/dev/ttyUSB0  
modem  
crtscts  
noauth  
defaultroute  
noipdefault  
nopcomp  
noaccomp  
novj  
nobsdcomp  
holdoff 10  
usepeerdns  
persist  
lcp-echo-failure 2  
lcp-echo-interval 5  
nodeflate  
maxfail 0  
debug  
connect "/usr/sbin/chat -v -f /etc/chatscripts/BSNL3G"

After that edit the file '/etc/chatscripts/BSNL3G' and replace its contents with the following

ABORT 'BUSY'  
ABORT 'NO CARRIER'  
ABORT 'VOICE'  
ABORT 'NO DIALTONE'  
ABORT 'NO DIAL TONE'  
ABORT 'NO ANSWER'  
ABORT 'DELAYED'  
REPORT CONNECT  
TIMEOUT 10  
'' 'ATZ'  
'OK-AT-OK' 'ATZ'  
TIMEOUT 10  
#'OK' 'ATZ'
#'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2'
OK AT\^SYSCFG=14,2,2780380,0,1  
'OK' 'AT+CGDCONT=1,"IP","bsnlnet"'  
'OK' 'ATDT*99#'  
TIMEOUT 30  
CONNECT ''

Now if everything works as expected you should be able to connect by giving the command 'pon'. Try pinging Google.com to verify if the internet is working. You can disconnect by giving the command 'poff'

To make the dock connect to the internet automatically on start-up, append the following to the '/etc/network/interfaces' file

  
auto ppp0  
iface ppp0 inet ppp  
provider provider

Reboot the Dockstar to verify if everything is working fine.

Configuring the Dockstar to act as a Gateway

If you do not have iptables installed, install it with the following command

apt-get install iptables

Now edit '/etc/sysctl.conf' and change the line that says 'net.ipv4.ipforward = 0' to 'net.ipv4.ipforward = 1' and also make sure that the line is uncommented.

After that execute the following commands

/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE  
/sbin/iptables -A FORWARD -i ppp0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT

Now we need to get these rules loaded at boot time, for that follow the steps below

iptables-save > /etc/firewall.conf

Edit the file '/etc/network/if-up.d/iptables' and add the following

  
#!/bin/sh
iptables-restore < /etc/firewall.conf

Next step is to make the file executable

chmod +x /etc/network/if-up.d/iptables reboot

That's it, now your Seagate Dockstar will act as a gateway and you can share your 3G internet connection with the other devices on your network. Make sure you manually set the Gateway IP address to that of the Dockstar in each device.

If there is any problem leave a comment.

HostGator Web Hosting - Black Friday Promotion &ndash; Upto 80% Off

HostGator is running a CRAZY promotion for Black Friday which will go live in about 24 hours from now. It would be the best time to get a hosting account with one of the best shared hosts.

So here are the details of their Black Friday 2010 Special Offer on November 26th:

50% OFF EVERYTHING From 12:00AM CST – 5AM CST ( 11:30 AM – 4:30 PM IST 26th Nov)

80% OFF EVERYTHING From 5AM – 9AM CST ( 4:30 PM – 8:30 PM IST 26th Nov) WHILE SUPPLIES LAST (first come, first receive; so definitely don't miss out!)

From 9AM – 11:59PM CST ( 8:30 PM (26th)  - 11:29 AM (27th) ) OR after 80% OFF accounts have sold out, 50% OFF EVERYTHING

This applies to ALL Accounts and ALL Term Lengths. That includes Shared Hosting, Reseller Hosting, VPS Hosting AND even Dedicated Servers!

So during this promotion you can get 3 Years Hosting on their Baby Plan ( Unlimited everything :P ) for $57.24!

To avail this special offer, click here.

Asianet Dataline Auto Login

Asianet had migrated to a new system Mettle Wire few months back and here is how you can set up the Auto Login for night downloads.

For this you need the following

First install Python to a location of your choice ( I used C:\login\Python ) Next extract the login script to C:\login. Open the login script with a text editor like Notepad and update the username and password. Do not use Microsoft Word as it may alter the file.

Now open JIT Scheduler and click the ‘New’ task button on top and enter the details as shown in the images below to login automatically at the specified time. Also repeat the process every 5 minutes in case you are automatically logged out by the system.

adl_1 adl_2 adl_3

You may need to update the command in the first image depending on the location you installed Python and where you extracted the login script.

adl_4 After creating the task, right click on the task and select ‘Task Properties’ and change the option in Window to Minimized in the System menu as shown in picture so that login script is run in the background.

Now you need to create another task to shutdown the system at 8 AM and can be done as shown below.

adl_5 adl_6

If you are facing any problems, leave a comment.