New debian install
June 17, 2012 07:49AM
I am having trouble booting from a usb harddrive attached to my dockstar. I have the most recent uboot (see output below) and the most recent rescue system installed on the dockstar (2.8.1). Running Jeff's debian install script from the rescue system in NAND seems to work fine but when the install ends and I reboot I get the following output on netconsole.

U-Boot 2011.12 (Feb 12 2012 - 21:33:07)
Seagate FreeAgent DockStar
arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2009q3-67) 4.4.1
GNU ld (Sourcery G++ Lite 2009q3-67) 2.19.51.20090709
Hit any key to stop autoboot:  0 
(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... EHCI timed out on TD - token=0x80008c80
3 USB Device(s) found
       scanning bus for storage devices... 0 Storage Device(s) found
** Block device usb 0 not supported

** Invalid boot device **
Creating 1 MTD partitions on "nand0":
0x000002500000-0x000010000000 : "mtd=3"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    129024 bytes
UBI: smallest flash I/O unit:    2048
UBI: sub-page size:              512
UBI: VID header offset:          512 (aligned 512)
UBI: data offset:                2048
UBI: attached mtd1 to ubi0
UBI: MTD device name:            "mtd=3"
UBI: MTD device size:            219 MiB
UBI: number of good PEBs:        1751
UBI: number of bad PEBs:         1
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     0
UBI: available PEBs:             1730
UBI: total number of reserved PEBs: 21
UBI: number of PEBs reserved for bad PEB handling: 17
UBI: max/mean erase counter: 1/1
UBIFS error (pid 0): ubifs_get_sb: cannot open "ubi:rootfs", error -19
Error reading superblock on volume 'ubi:rootfs'!
** Block device usb 0 not supported
** Block device usb 1 not supported
** Block device usb 2 not supported
** Block device usb 3 not supported
** Block device usb 0 not supported
** Block device usb 0 not supported
Wrong Image Format for bootm command
ERROR: can't get kernel image!
stopping USB..

NAND read: device 0 offset 0x100000, size 0x400000
 4194304 bytes read: OK
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-3.3.2-kirkwide
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3627768 Bytes = 3.5 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

It seems as though the new usb debian install does not boot because the usb harddrive is not recognised. The partitions on the harddrive are recognised by 'fdisk -l' as…

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         125     1004031   83  Linux
/dev/sda2             126         250     1004062+  82  Linux swap / Solaris
/dev/sda3             251       30645   244147837+  83  Linux
/dev/sda4           30646       60801   242228070   83  Linux

These partitions are not new, I made them for an old (2010) install of debian using Jeff's script. Is there something about these partitions that creates the 'Block device usb 0 not supported' message from Uboot? Or is the problem 'Wrong Image Format for bootm command ERROR: can't get kernel image!'?

My uboot environment is…

rescue:~# fw_printenv
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_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
bootcmd=usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset
ethaddr=00:10:75:1A:86:5E
rescue_installed=1
arcNumber=2998
if_netconsole=ping $serverip
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
preboot=run if_netconsole start_netconsole
serverip=192.168.1.xx
ipaddr=192.168.1.xx

Any help appreciated.

/Stuart



Edited 1 time(s). Last edit at 06/17/2012 09:28AM by Stuarty.
Re: New debian install
June 17, 2012 09:48AM
You say the partitions are from 2010? If so, have you tried wiping them and repartitioning it?

Or you could try just installing the rootfs _only_ from my Zyxel NSA320 tarball. It will boot on just about anything.
Don't use the Zyxel uboot, just the rootfs.

=====================================================
Re: New debian install
June 18, 2012 06:16PM
Quote

USB EHCI 1.00
scanning bus for devices... EHCI timed out on TD - token=0x80008c80
3 USB Device(s) found
scanning bus for storage devices... 0 Storage Device(s) found
** Block device usb 0 not supported
Quote

It seems as though the new usb debian install does not boot because the usb harddrive is not recognised.
Correct. 0 Storage Device(s) found means Uboot is not even seeing the drive(s). At that point it hasn't even made it to the partitioning. So the partitoning and what's on the partiton is irrelevant at that point.

The part "EHCI timed out on TD" may have something to do with it.

Can you see/mount the drives once booted from the nand? If not then you need to fix that. I found that certain USB drive enclosures and cables can cause problems (not to mention that USB is dirt slow, that is why I abandoned my Dockstar and am using GoFlex with SATA - it's 1000 times faster!). If you can see the drive(s) in Debian or whatever then you need to check if Uboot sees them. You posted Uboot console output, so use the Uboot USB subsystem commands to see if Uboot can see the drive. You can also use the Uboot console to see if the partition(s) are visible and if it can load the kernel.
srbellare
Re: New debian install
September 10, 2012 02:05AM
This is a somehwhat late response but may help someone someday. I was facing the same issue as the OP where uboot was timing out before detecting the storage device. But when I interrupt the uboot and type "usb start" a couple of times, it will detect the storage device ultimately. It seems that the timing between the USB drive coming up and uboot searching for a storage device is not matching. Anyways, since mine is a Pogo E02 which neither has SATA nor SD card slot and since there wasn't a spare USB pen lying around, I had to rely on my HDD to boot into Debian. So I employed the following dirty hack to uboot.

setenv usb_timer 1 2 3 4 5
setenv usb_init 'for time in $usb_timer; do usb start; if usb storage; then exit; fi; done'
setenv bootcmd 'usb init; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset'
saveenv


The above steps assume that when you manually type in usb start, you are able to detect storage. I had to do it a max 4 times before it could detect mine, sometimes even a couple would suffice.
This will try to detect the storage 5 times, if it fails it will boot into the PlugOS. This has worked for me consistently over many reboots and power cycles in the past week. Hence, I wanted to share this trick.

Lastly, thanks Jeff, Davy and others for making the Debian possible for our Plugs.
srbellare
Re: New debian install
September 10, 2012 08:38AM
Apologies, but I seem to have unknowingly used a default uboot variable. Though it is working without problems on my setup as there is a valid call to usb_init from usb_bootcmd, it is best to use a unique variable. Please disregard the above steps and use something like below:

setenv usb_timer 1 2 3 4 5
setenv usb_detect 'for time in $usb_timer; do usb start; if usb storage; then exit; fi; done'
setenv bootcmd 'run usb_detect; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset'
saveenv

If someone has reset their default usb_init, use below steps to revert:

setenv usb_init 'run usb_scan'
savenev


Cheers
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: