Welcome! Log In Create A New Profile

Advanced

PogoPlug E02 - Debian Install Guide Aggregation Attempt, ERROR: can't get kernel image!

Posted by ds351 
My father-in-law had a PogoPlug laying around that he never used. I figured may as well take it out of the box or throw it away now. At first glance the link in the product docs was dead so I figured flashing it to run linux was now, in 2024, the only option.

I initially believed that the device was secured to the extent that I needed to hook serial wires into it to do anything but as it turns out, the root password leaked (root:ceadmin) so no hardware modifications were required and I could get into it over ssh with a slightly custom ssh config.

(~/.ssh/config)
```
Host pogo
HostName 192.168.1.50
User root
PasswordAuthentication yes
KexAlgorithms +diffie-hellman-group1-sha1
HostKeyAlgorithms=+ssh-rsa
```

After that I think I downloaded the tools following this guide https://forum.doozan.com/read.php?3,27280

Then I ran into this guide which included a step by step procedure that could be followed in a coherent manor:

https://web.archive.org/web/20140208000546/https://archlinuxarm.org/platforms/armv5/pogoplug-v2-pinkgray

A few modifications to the procedure were made however. I used a slightly custom command to create the ext3 file system with a label of rootfs because of a line of code I ran into that made me think the bootloader would be searching for partitions with that exact label.

```
mke2fs -L rootfs -j /dev/sda1
```

Further, there was an issue that my POGO-E02 didn't have a wget that was compiled with TLS support and the files were being served in such a manor that the requests to http were automatically being redirected to https. That meant just getting the script to the machine required me to re-serve the script over http instead of https. Rather than configure an nginx reverse proxy, I decided to just use a one-liner to server a local folder over http and just cache assets there with wget since my local machine's wget supported https. This was the one-liner for reference:

```
ruby -run -e httpd .
```

And here's the errors I saw when trying to use wget on https urls:

```
-bash-3.2# wget https://google.com
wget: not an http or ftp url: https://google.com
-bash-3.2# busybox wget
BusyBox v1.21.1 (2013-07-08 10:13:48 CDT) multi-call binary.
```

After wgetting install_uboot_mtd0.sh over http, I was able to update the URLs in it to point to my machine's true http server and after a few manual wgets to load up my cache, the script claimed it ran successfully.

I was pretty happy but that's where the guide ran out of luck because as it turns out, Arch Linux couldn't afford to maintain support for Kirkwood chipset and the link to the prior arch linux distro was long dead.

I was at least able to partition and format the USB drive I wound up downloading a more recent version of busybox by following the guide here https://tcpmeta.wordpress.com/2018/04/01/pogoplug-unlocking/

Once I hit the missing Arch Linux distro problem, I returned to a forum post which included what seemed to be a Debian linux distro that was compiled for the Kirkwood chipset...

https://forum.doozan.com/read.php?2,12096

It was kind of hard to follow, and required references to what I assume was the original guide written on the internet archive's arch linux guide I referenced above, but following the text after "Updated 01 Nov 2023:" and through to the following occurrence of "===============" (as though it was its own web page) revealed a guide specific to installing Debian on POGO-E02.

Mostly what I did was replace the file containing the arch linux distro (which is lost to the internet it seems) with the file containing the Debian distro, Debian-6.5.7-kirkwood-tld-1-rootfs-bodhi.tar.bz2.

I also followed some other instructions somewhere, which I believe were duplicates of what the install_uboot_mtd0.sh had already done, but I wasn't convinced of anything at this point. That involved using fw_setenv to configure mtdparts and ethaddr.

It felt like a pretty sloppy go of it, but I decided it was time to check my work with a reboot. I assumed I bricked it when I lost connection to it. I was out of the house when I ran the reboot command, so couldn't be sure until I got back. When I arrived home, I did a few extra power cycles with and without the Debian USB stick. Still I was getting nothing on my network. "Finally it's a brick and I can justify throwing it out and moving on," I thought to myself, but after connecting to the serial port again, it was still printing out text. Here's what it said:

...
loading uImage ...
** Bad device usb 0 **
loading uInitrd ...
** Bad device usb 0 **
loading DTB /boot/dts/kirkwood-pogo_e02.dtb ...
** Bad device usb 0 **
Wrong Image Format for bootm command
ERROR: can't get kernel image!
```

Does that mean U-Boot is actually installed correctly, but my USB device hasn't been prepared correctly? It was kind of nice before I did the flash because I didn't need to have a usb drive in there to ssh into the machine. Was that feature traded away with the U-Boot upgrade or does that mean the U-Boot flash was botched?
Re: PogoPlug E02 - Debian Install Guide Aggregation Attempt, ERROR: can't get kernel image!
June 18, 2024 01:53PM
ds351,

What you should have done is to look at the sticky threads in thee Debian sub-forum. There you will find the Wiki thread

https://forum.doozan.com/read.php?2,23630

Quote

Kirkwood plugs

Basic steps to install Debian and new u-boot on Kirkwood boxes
Boot Kirkwood rootfs with stock u-boot

Latest Linux Kirkwood kernel and rootfs
Latest Kirkwood u-boots

> ...
> loading uImage ...
> ** Bad device usb 0 **
> loading uInitrd ...
> ** Bad device usb 0 **
> loading DTB /boot/dts/kirkwood-pogo_e02.dtb ...
> ** Bad device usb 0 **
> Wrong Image Format for bootm command
> ERROR: can't get kernel image!
> ```
>
> Does that mean U-Boot is actually installed
> correctly, but my USB device hasn't been prepared
> correctly?

Probably. But first, let's check the u-boot instllation to see if it was done OK.

With serial console connected, power up, Interrupt u-boot at cound down, and

printenv
boot

And post the entire serial console log here (from u-boot banner until the device stop booting).

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
I don't have any JST gear on-hand atm so to get serial connected, I've been jamming some 2.54mm pitch female jumper wires into the JST socket and holding them with the other ends going to a Sparkfun Serial Basic usb adapter. Sometimes I get garbled characters on the screen, and sometimes I get proper output, but I haven't been able to interrupt the count down yet. I had better luck the first go at it.

I've been rebuilding the USB drive using a Debian Bookworm VM. I think when I made the file system, it either just did something random or made it as ext2 due to a missing `-t ext3` switch. It kills me that I can't double check that command now, but anyway with the redone USB drive, I'm able to connect to the pogo plug and see that it's now running Debian! Thanks for sharing your work on this and making these binaries available!
Re: PogoPlug E02 - Debian Install Guide Aggregation Attempt, ERROR: can't get kernel image!
June 18, 2024 04:58PM
ds351,

> It kills
> me that I can't double check that command now

I know the feeling :)

> anyway with the redone USB drive, I'm able to
> connect to the pogo plug and see that it's now
> running Debian!

Congrats!

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
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: