Welcome! Log In Create A New Profile

Advanced

Pogoplug e02

Posted by Teldo 
Pogoplug e02
May 29, 2024 03:16PM
So sorry to disturb you but could not ask in the topic, PM does not work either.
i thought perhaps you agreed help me install 6.5.7 rootfs on Pogoplug E02?

I tried this tutorial miim.com/thebside/e04linux/indextoto.shtml but did not work, URLs are gone 10 years after.

I have this bootloader:
e84a5fd0a0205bb79aed07c3c6fbd145 pinkpogo davygravy-2012-02-20-current

I formatted usb flash drive to ext3 (ext2 SEC_TYPE) on rasbpian, unpacked 6.5.7 rootfs bz2, pogo did not boot.

would be possible fix this without flashing new bootloader?
Re: Pogoplug e02
May 29, 2024 04:32PM
Teldo,

> I have this bootloader:
> e84a5fd0a0205bb79aed07c3c6fbd145 pinkpogo
> davygravy-2012-02-20-current
>
> I formatted usb flash drive to ext3 (ext2
> SEC_TYPE) on rasbpian, unpacked 6.5.7 rootfs bz2,
> pogo did not boot.
>
> would be possible fix this without flashing new
> bootloader?

Normally I would recommend to connect serial console so we can see clearly why it did not boot. However, if I remember correctly how davygravy 2012 u-boot works, there is no need to install new u-boot, or connect serial console yet. But you need to treat this u-boot as stock u-boot.

I think you might have created the rootfs incorrectly. You need to follow the instruction in the release thread very closely.

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

Installation can be done on any Linux box, with a fresh USB drive (HDD would work fine too).

Warning: If you want to install this rootfs on SD card (such as for the Pogo V4 or Sheevaplug), then you need to see Note 8 below before doing the installation.

Note: all steps below must be done while logging in as root user (not sudo). If you are not the root user then don't continue, because the rootfs will not work.

1. Format a new USB drive with a single Ext3 partition, and label it rootfs. This step should be done at Linux command line using fdisk, mkfs.ext3 (don't use GUI or gparted). Once you have booted the box, then you could try GPT partition and/or Ext4.

If you are running the latest U-Boot for Kirkwood then you can use Ext4. But be aware that Ext4 file system format needs to be "finalized" before it can be used for booting.

2. Mount the drive on a Linux box. cd to top level directory and extract it. It is assuming the USB drive is mounted at /media/sdb1
cd /media/sdb1
tar xjf Debian-6.5.7-kirkwood-tld-1-rootfs-bodhi.tar.bz2

3. Adjust fstab (optional).

Edit /media/sdb1/etc/fstab entry for root device to match the rootfstype of your rootfstype if you use Ext4 or Ext2. However, you can keep it as is without problem in booting since the kernel will figure out which file system the rootfs was formatted.

LABEL=rootfs / ext3 noatime,errors=remount-ro 0 1

4. (Stock u-boot only) Create uImage with embedded DTB for booting with older u-boots (2012 or earlier). Skip this step if you have installed the latest U-Boot for Kirkwood (or are installing this u-boot at the same time, or running kwboot with latest u-boot image).

Please replace kirkwood-goflexnet.dtb below with the correct DTB name for your box (see the folder /media/sdb1/boot/dts for the exact spelling of your Kirkwood box name).

Generate the uImage with DTB embedded inside:
cd /media/sdb1/boot
cp -a zImage-6.5.7-kirkwood-tld-1 zImage.fdt
cat dts/kirkwood-goflexnet.dtb >> zImage.fdt
mv uImage uImage.orig
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-6.5.7-kirkwood-tld-1 -d zImage.fdt uImage
sync

If your Linux box does not have mkimage, then install it
apt-get install u-boot-tools

5. Done.

If you are installing on a Kirkwood box that runs stock u-boot (it is not on the new u-boot support list) then see
Boot Kirkwood rootfs with stock u-boot.

Take this USB rootfs to your plug and cold start. After booted into Debian, see Note 1-6 below.

Note 1 (Strongly Recommended):

To keep the rootfs extremely basic and small, there is no swap space set up for it. The first thing you should do after the 1st boot is to set up a swap file to make the system run better. In fact, system upgrades oftently fail to run without swap. Please see here for instruction how to do that.


Note 2 (Optional):

The rootfs will automatically generate new SSH keys at 1st boot (see /etc/rc.local). However, if you would like to generate the keys again then do:

rm /etc/ssh/ssh_host*
ssh-keygen -A

Note 3 (Optional):

Update your rootfs to get the latest Debian package security updates (if the installation is done at a much later date than the time of this release).

Check the system clock to make sure it is the current time (boxes without RTC is using NTP so quite slow to update the clock).

date
And upgrade
apt-get update
apt-get upgrade

Warning: Watch the apt-get upgrade progress. If the apt-get upgrade results in a new initramfs, the log would shows this message:
update-initramfs: Generating /boot/initrd.img-6.5.7-kirkwood-tld-1

Then you need to regenerate the uInitrd boot file:
cd /boot
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs-6.5.7-kirkwood-tld-1 -d initrd.img-6.5.7-kirkwood-tld-1 uInitrd

For boxes without RTC , also consider install fake-hwclock to ensure the clock is relatively close to real time after a reboot or cold start.
apt-get install fake-hwclock

Note 4 (Optional):

Some network environment is not very robust in propagating the host name advertised by avahi. If you cannot find the host name (debian.local) of this rootfs in your network, or you cannot find the other hosts by name, you need to install libnss-mdns.

apt-get install libnss-mdns

Note 5 (Optional):

Note 5.1. To boot with systemd

After loged into Debian, run:

apt-get install systemd
And then add parameter init=/usr/bin/systemd to your u-boot env bootargs.

- For example,
fw_setenv set_bootargs 'setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts init=/usr/bin/systemd'
- Or, if you are booting with my latest u-boot images you can also use the uEnv.txt capability to do this. In the default envs, custom_params is a variable that allows you to add extra bootargs. So add the following line to uEnv.txt:
custom_params=earlyprintk=serial init=/usr/bin/systemd

Note 5.2. To boot back to sysvinit

Reverse the env setting (there is no need to remove systemd, you can switch back and forth from/to sysvinit and systemd):
fw_setenv set_bootargs 'setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts'
Or if you've used uEnv.txt then just remove that from the custom_params env
custom_params=earlyprintk=serial

Note 6. Shrink initramfs to smaller size (Optional):

In Debian bookworm, the default compression is zstd. However, to keep it simple, the initramfs (initramfs-6.5.7-kirkwood-tld-1) in this rootfs was compressed using gzip, which is perfectly OK. If you need to have a smaller initramfs (for example, you are trying to fit it in a limited sized NAND partition), see here for tutorial: How To Shrink initramfs.

Note 7. Ethernet Naming Issue (Optional):

In Debian 12.4, the ethernet "Predictable Names" scheme is enabled. So the ethernet device assigned is no longer "eth0", but is "end0". This "predictable naming" scheme broke a lot of existing applications that still relying on "eth0" is the network device name. It does not affect this Kirkwood rootfs (due to some setup I had in the past).

However, if after a future Debian upgrade of this rootfs, the network is no longer eth0, then this is the way to bring it back.

cat /etc/network/interfaces
rename /end0=eth0
auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
Beware of software apps, such as OMV, that do not respect users' configuration and so wiping out this change during its installation! I'd suggest to make a backup of this file, so you can compare that with any new /etc/network/interfaces after installing OMV, and restore the rename command.

There are also many other ways to force the eth0 name. However, it is more cumbersome to do than just watching out for this file being changed by OMV or other major apps installation. Also, other methods might not survive a future Debian upgrade :)

Note 8 (Required for SD card rootfs, Optional for all other storage devices):

If you are installing this rootfs for the Pogo V4 or the Sheevaplug on SD card, it is best to use a USB-SD adapter and install boot the box with USB first. After it booted successfully, install the latest kernel (linux-6.6.3-kirkwood-tld-1, at the time of this writing). Reboot to make sure it is running OK. Shutdown and then boot with the SD card in its slot.

Also see this post for further detailed explanation and other approaches in booting this rootfs on SD card.


Being root (not using sudo), create 1 partition Ext2/Ext3 on the USB, label it rootfs. And then extract the rootfs tarball as described in Steps 1-5. During Steps 1-5, you must be the root user.

And since you are running with old u-boot you need to do Step 4 with the Pogo E02 dtb file.

Quote

4. (Stock u-boot only) Create uImage with embedded DTB for booting with older u-boots (2012 or earlier). Skip this step if you have installed the latest U-Boot for Kirkwood (or are installing this u-boot at the same time, or running kwboot with latest u-boot image).
....
cat dts/kirkwood-pogo_e02.dtb >> zImage.fdt
.....

=====

If it still does not boot, you should connect serial console (the header in this box is already populated, no soldering needed).

Or you can post the entire session how you create the rootfs here, perhaps I can spot some errors.

-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: