Doesn't always boot with another USB stick plugged in

This forum is for Marvell Kirkwood devices such as the GoFlex Home/Net, PogoPlug v1/v2, SheevaPlug, and ZyXEL devices.

Doesn't always boot with another USB stick plugged in

Postby cancel » Fri Sep 28, 2012 3:02 am

Hi all,

I'm new to all of this stuff... I have a Pogoplug E02 (black version) which runs Archlinux on an 8GB Patriot USB drive plugged in the back socket.

If I plug another USB drive anywhere above the USB socket of the Patriot, it no longer boots up. In serial console I see "Kernel panic - not syncing: No init found".

If I plug the second stick later after Archlinux boots up on the Patriot stick, it works fine.

If I move the Patriot stick, above of the second stick's USB socket, or in the front socket, it boots up correctly.

The second stick does not have Linux stuff in it.

Before this, I had Archlinux installed on a 2GB microSD + Sandisk card reader. That one worked in any position.

I guess I can just leave the Patriot above the other stick, but I'd really like to fix it if possible... Any ideas what I should be checking?


$this->bbcode_second_pass_code('', 'U-Boot 2011.12 (Feb 20 2012 - 21:21:59)
Pogoplug E02

SoC: Kirkwood 88F6281_A0
DRAM: 256 MiB
WARNING: Caches not enabled
NAND: 128 MiB
In: serial
Out: serial
Err: serial
Net: egiga0
88E1116 Initialized on egiga0
No link on egiga0
ping failed; host 192.168.5.100 is not alive
Hit any key to stop autoboot: 0
(Re)start USB...
USB: Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 4 USB Device(s) found
scanning bus for storage devices... 2 Storage Device(s) found
Loading file "/rescueme" from usb device 0:1 (usbda1)
** File not found /rescueme
reading /rescueme.txt

** Unable to read "/rescueme.txt" from usb 0:1 **
Creating 1 MTD partitions on "nand0":
0x000002500000-0x000008000000 : "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: 91 MiB
UBI: number of good PEBs: 727
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: 716
UBI: total number of reserved PEBs: 11
UBI: number of PEBs reserved for bad PEB handling: 7
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'!
Loading file "/boot/uImage" from usb device 0:1 (usbda1)
1 bytes read
Found bootable drive on usb 0:1
Loading file "/boot/uImage" from usb device 0:1 (usbda1)
2856016 bytes read
Loading file "/boot/uInitrd" from usb device 0:1 (usbda1)
** File not found /boot/uInitrd
## Booting kernel from Legacy Image at 00800000 ...
Image Name: Linux-3.1.10-13-ARCH
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2855952 Bytes = 2.7 MiB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[ 19.866698] rtc-mv rtc-mv: internal RTC not ticking
[ 19.875110] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[ 21.493760] sd 0:0:0:0: [sdb] No Caching mode page present
[ 21.499303] sd 0:0:0:0: [sdb] Assuming drive cache: write through
[ 21.508511] sd 0:0:0:0: [sdb] No Caching mode page present
[ 21.514025] sd 0:0:0:0: [sdb] Assuming drive cache: write through
[ 21.524886] sd 0:0:0:0: [sdb] No Caching mode page present
[ 21.530438] sd 0:0:0:0: [sdb] Assuming drive cache: write through
[ 22.128889] sd 1:0:0:0: [sda] No Caching mode page present
[ 22.134401] sd 1:0:0:0: [sda] Assuming drive cache: write through
[ 22.143389] sd 1:0:0:0: [sda] No Caching mode page present
[ 22.148924] sd 1:0:0:0: [sda] Assuming drive cache: write through
[ 22.158635] sd 1:0:0:0: [sda] No Caching mode page present
[ 22.164145] sd 1:0:0:0: [sda] Assuming drive cache: write through
[ 29.910802] Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
[ 29.923356] [<c000d290>] (unwind_backtrace+0x0/0xe0) from [<c03c6d14>] (panic+0x58/0x198)
[ 29.931628] [<c03c6d14>] (panic+0x58/0x198) from [<c03c6a14>] (init_post+0xa0/0xc4)
[ 29.939356] [<c03c6a14>] (init_post+0xa0/0xc4) from [<c052a8cc>] (kernel_init+0x120/0x14c)
')

$this->bbcode_second_pass_code('', '# 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_installed=0
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_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:25:31:02:E5:1A
arcNumber=3542
usb_rootfstype=ext3
serverip=192.168.5.100
ipaddr=192.168.5.31
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')
cancel
 
Posts: 3
Joined: Thu Sep 13, 2012 3:04 am

Re: Doesn't always boot with another USB stick plugged in

Postby hydro » Fri Sep 28, 2012 2:46 pm

$this->bbcode_second_pass_code('', '
Loading file "/boot/uImage" from usb device 0:1 (usbda1)
...
[ 21.524886] sd 0:0:0:0: [sdb] No Caching mode page present
[ 21.530438] sd 0:0:0:0: [sdb] Assuming drive cache: write through
[ 22.128889] sd 1:0:0:0: [sda] No Caching mode page present
[ 22.134401] sd 1:0:0:0: [sda] Assuming drive cache: write through
')PARTUUID
$this->bbcode_second_pass_code('', '
usb_scan_1=usb=0:1 dev=sda1
')

My interpretation is that U-Boot finds the kernel on what it considers to be the first USB storage device, so it passes root=/dev/sda1 to the kernel, but from the point of view of the kernel, sda is the second stick, so it fails to run /sbin/init from it. To avoid such confusion I have switched from MBR to GPT and modified U-Boot to pass the PARTUUID of the root partition to the kernel.
viewtopic.php?f=23&t=1357
Another option is to create an uInitrd and use the UUID or Label of the ext file system on the root partition.
viewtopic.php?f=23&t=1248
VDR on DockStar / Pogoplug E02: http://linux.bplaced.net/
hydro
 
Posts: 210
Joined: Wed Jun 15, 2011 2:03 pm
Location: Germany

Re: Doesn't always boot with another USB stick plugged in

Postby cancel » Sat Sep 29, 2012 1:38 am

Thanks hydro! That does sound like the problem I'm experiencing. I'll try using GPT/UUID.
cancel
 
Posts: 3
Joined: Thu Sep 13, 2012 3:04 am


Return to Marvell Kirkwood

Who is online

Users browsing this forum: No registered users and 13 guests