Welcome! Log In Create A New Profile

Advanced

Pogoplug will not boot from USB device

Posted by Grand Total 
Pogoplug will not boot from USB device
July 28, 2011 09:52PM
I own two Pogoplugs. The first runs Debian Squeeze and boots from a USB Hard Drive, the second does not.

When I bought the second Pogoplug I was able to load Debian Lenny onto a USB HD and boot from it, I was unable to load Squeeze because, as has been documented elsewhere, Jeff's Squeeze install became broken. Subsequently I found other instructions to load Squeeze, tried them and since then am unable to boot from USB HD. I have, among other things, even tried loading the mtd0-mtd3 files from my good Pogoplug to the bad one, but it still resolutely refuses to boot from a USB HD.

I have tried several other USB Flash drives as well as the USB HD. Also, when I restore the Pogoplug to normal Pogoplug operation it has no problem reading from the USB HD.

I'm not a Linux guy really and I'm pretty much out of ideas, so if anyone has any thoughts I'd be happy to hear them.



Edited 2 time(s). Last edit at 07/28/2011 09:54PM by Grand Total.
Re: Pogoplug will not boot from USB device
July 29, 2011 05:52AM
I left out some pertinent information:

When the Pogoplug starts it does appear to access the USB drive (HD or flash) and it never makes it to a state where I can communicate with it. Remove the USB drive and do a hard reboot and I can talk to it again via SSH.
Re: Pogoplug will not boot from USB device
July 29, 2011 10:15AM
First and foremost, you need to set up serial or network console acces and post the uBoot output so we can see what's really happening.

Second, you try to use your known good USB boot disk. But since it won't work without a modification though, and to prevent leaving you without a working device, I suggest you clone it to another disk using Clonezilla Live. Once you have a copy of your known good working boot disk, you should to boot your working Pogoplug with it.

Assuming your working Pogoplug boots with it, make this modification:
rm -f /etc/udev/rules.d/70-persistent-net.rules

Debian's persistent network rule generator will create a new rule to that file which binds eth0 to the MAC address of your dockstar on whichever one you boot with it. If you move your boot disk between devices, eth0 won't match and it'll give you an eth1 and you won't have network access.

And again, make sure you have either serial or network console access setup so you can watch the uBoot startup and post the output here for review.
Re: Pogoplug will not boot from USB device
July 29, 2011 04:39PM
Thanks very much for the suggestions, I'll try them.

I do not have the skills to make a serial connection to the Pogoplug, but I did try NetConsole. I was not successful in getting any output, I shall try again.
Re: Pogoplug will not boot from USB device
July 30, 2011 12:52PM
I set up for NetConsole as per the instructions elsewhere on this site and got nothing.

I have satisfied myself that nc listening on my PC is working correctly.

I tried to communicate with nc listening on my PC from the Pogoplug manually, but was only able to do so via TCP because the nc on my Pogoplug does not appear to support UDP. In case the uBoot startup was relying on nc on the Pogoplug I setup my listening PC without the UDP option, but still nothing.
Re: Pogoplug will not boot from USB device
July 30, 2011 03:00PM
1. Remove your USB drive from your Pogoplug, boot into its default Unix, run the command /usr/sbin/fw_printenv (as root), and post the results.

2. Give us the exact 'nc' command you are using to listen on your PC, plus the PC's IP address and the OS you are running on it.
Re: Pogoplug will not boot from USB device
July 31, 2011 04:30AM
Printenv gives this:

Pogoplug:~$ /usr/sbin/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_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:25:31:00:B9:51
arcNumber=2097
serverip=192.168.15.100
ipaddr=192.168.15.133
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
Pogoplug:~$

The exact command I'm using on my PC is 'nc -l -u -p 6666'

The PC's IP address is 192.168.15.100

The PC runs Windows 7, the nc it is running came from the source mentioned in Jeff's post in the topic "Use netconsole to troubleshoot uBoot without a serial cable".
Re: Pogoplug will not boot from USB device
July 31, 2011 02:51PM
I've never attempted to use a cygwin or native win32 version of netcat. Try using your working debian dockstar as your netconsole listener, just "apt-get install netcat"
Re: Pogoplug will not boot from USB device
July 31, 2011 04:01PM
I tried running nc on my working Pogoplug, but the result was the same, no uboot output displayed. I tested the instance of nc running on the Pogoplug and it is listening and shows output when I send it a message from my PC or from the "non-working" Pogoplug. However, the version of nc on the "non-working" Pogoplug is not able to send UDP packets, only TCP. It's just not an option, this is what the nc -help output looks like:

Pogoplug:~$ nc -h
nc: invalid option -- h
BusyBox v1.7.0 (2008-02-26 19:25:17 IST) multi-call binary

Usage: nc [-iN] [-wN] [-l] [-p PORT] [-f FILENAME|IPADDR PORTNUM] [-e COMMAND]

Open a pipe to IP:port or file

Options:
        -e      Exec rest of command line after connect
        -i SECS Delay interval for lines sent
        -w SECS Timeout for connect
        -f FILE Use file (ala /dev/ttyS0) instead of network
        -l      Listen mode, for inbound connects
                (use -l twice with -e for persistent server)
        -p PORT Local port number

I don't know if that's relevant or not.

I did remember to modify the serverip value to point to my working Pogoplug.
Re: Pogoplug will not boot from USB device
July 31, 2011 09:10PM
Don't worry about the version of nc on the non-working pogo. It's just busybox's "slim" version. It doesn't matter. The uboot itself is what's sending the netconsole udp messages, not nc, when the device boots up. You're other pogoplug is running debian and you installed the full version of netcat, right? You can try listening with tcpdump or wireshark instead of nc but I don't think it'll make a difference. If you're not getting messages in nc, its either because they are not being sent by uboot (which can happen if it cant ping "serverip" possibly), or because what you're listening on has some firewall blocking the packets.
Re: Pogoplug will not boot from USB device
July 31, 2011 09:22PM
Yes, I installed the full version of netcat on the working Pogo.

The working Pogo that is listening can see packets from my PC and (TCP) packets from the non-working Pogo. So, we're left with uboot not sending messages, which is what I think is happening. The question is why not? The other thing we know about the non-working Pogo is that it won't boot from a USB device. Where we (I) go from here, I have no idea.
Re: Pogoplug will not boot from USB device
July 31, 2011 10:03PM
Thanks for posting your environment. I see nothing out of the ordinary that stands out.

Two suggestions:

1. After downloading a full version of 'nc' on the "listening" pogoplug (or other Linux box), try invoking it as:
$ nc -klu 6666
(That's what I use successfully here to interact with netconsole from a Ubuntu PC.)

2. The Pogoplug does have mini-LEDs on its ethernet connector. When it first boots, the uBoot prints some info about itself and then does a 10 second count down. Can you observe the LEDs on the ethernet flashing at a 1-second interval shortly after the Pogoplug is powered on? If so, it would tend to indicate that the plug is emitting the packets from netconsole, so the question becomes where are the packets being sent and/or is the nc command working?

Good luck.
Re: Pogoplug will not boot from USB device
July 31, 2011 10:33PM
1. On my working Pogo I have to use nc -k -l -u -p 6666. This is working as it should.

2. The ethernet LEDs are on most of the time and flash frequently most of the time. I would not say I see the flash at 1 second intervals shortly after startup.
Re: Pogoplug will not boot from USB device
July 31, 2011 10:52PM
Does your Windows box respond to a ping?
Re: Pogoplug will not boot from USB device
August 01, 2011 08:00AM
Yes, my Windows box does respond to a ping, but my Windows box is now out of the picture. I'm listening with my 'good' pogo running Debian now.

I had an idea overnight, but I don't know how to achieve it. Is it possible to direct uboot's output to a file on the 'bad' Pogo instead of sending it out over the network? I don't suspect network problems at all, but it would take the network out of the picture completely. Is it simply a matter of changing the setenv statements, and if so how?
Re: Pogoplug will not boot from USB device
August 01, 2011 08:42PM
For giggles, did you test your netconsole configuration with netcat on windows with your working pogo? If that works, you're going to have to just build a serial cable to diagnose the bad one.
Re: Pogoplug will not boot from USB device
August 01, 2011 09:07PM
I tried it. My 'working' Pogo does not appear to output anything on startup either. I don't know what to make of this.
Re: Pogoplug will not boot from USB device
August 03, 2011 12:06PM
Interesting... That means you're doing something wrong, or something is blocking the packets. But it's not obvious what that may be. Your "nc" config from above looks good. The other thing I could think of is some firewall or packet filter that's blocking the udp messages. Unless you can figure out why you're not getting any netconsole messages from the working one, you're going to have to bite the bullet and make a serial cable to get any further.
Greenfrog
Re: Pogoplug will not boot from USB device
November 13, 2011 07:52AM
Hi, did you ever solve this? I have the same problem. What brand of USB flash drive worked for you? Thanks.
Re: Pogoplug will not boot from USB device
November 15, 2011 07:24PM
No, I never got to the bottom of this. The working drive (note I don't think the drive is the problem) is an Hitachi 500MB drive picked up cheaply because it is one of the drives that requires 2 USB sockets.
mizar44
Re: Pogoplug will not boot from USB device
January 05, 2012 09:19PM
I have the same problem on a pogoplug-e02, it is black by the way. I have tried several usb flash drives and one usb hdd. I have tried debian and archlinux installs and they always install with no problems. But on reboot they hang up at "Starting kernel ...". Below is the boot logs and the printenv. I am pretty much out of ideas, so if you have any please post them.


U-Boot 2010.09 (Oct 23 2010 - 11:51:16)
Marvell-PinkPogo by Jeff Doozan
Hit any key to stop autoboot:  0 
(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 3 USB Device(s) found
       scanning bus for storage devices... 1 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)
1435728 bytes read
Loading file "/boot/uInitrd" from usb device 0:1 (usbda1)
4527021 bytes read
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-2.6.32-5-kirkwood
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1435664 Bytes = 1.4 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 01100000 ...
   Image Name:   initramfs-2.6.32-5-kirkwood
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    4526957 Bytes = 4.3 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...


Printenv
Pogoplug:~$ /usr/sbin/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_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:25:31:02:0F:02
serverip=192.168.37.102
ipaddr=192.168.37.107
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
arcNumber=2097
Pogoplug:~$ 

pidow
Re: Pogoplug will not boot from USB device
January 10, 2012 07:55AM
Hello,
Sorry i'm french and my english is little bad.
I ve the same problem, & don't know how to resolv it.
Can you help me ?
Thx !!
Re: Pogoplug will not boot from USB device
January 10, 2012 08:44AM
Have you looked at this thread for known working USB flash drives?
http://forum.doozan.com/read.php?2,1915,2604#msg-2604
pidow
Re: Pogoplug will not boot from USB device
January 11, 2012 03:22AM
Hello,
I have try 2 USB flash drive.
SanDisk cruzer (8GB) and an other flashdisk.
But i don't know why, after installation of debian, the system reboot and the stardock no respond to ping.
When i restart with pogo OS, i go see log of debian and dmes is empty so linux don't boot ?!

I don't have understand this topic:
http://forum.doozan.com/read.php?3,14
I dont know how to apply this, can you help me ? thx !!
RayFifo
Re: Pogoplug will not boot from USB device
February 09, 2012 09:21PM
I'm having the same issue with an E02 (very similar netcat output as above -- getting to "Starting Kernel" and then nothing). Looking at my router, the PogoPlug keeps renewing the DHCP lease every 6 seconds. Most likely, the kernel or init is cycling and dhcpcd is restarting every 6 seconds.

A continous ping occasionally returns one or two pings as they catch it at just the right moment, so it looks like networking might be set up just before it restarts. Nothing further on the netcat, though.
Re: Pogoplug will not boot from USB device
February 11, 2012 05:08PM
I was observing the same symptoms as mizar44. I think the problem started after some changes I had made to the uBoot environment settings.

What helped me just now was to reflash uBoot using Jeff's script.

http://jeff.doozan.com/debian/uboot/

At the end, the script reset the uBoot environment for me, and now my E02 boots again from the USB flash drive. (I have not tried booting from a hard drive.)
Author:

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: