Sequence to Update Pogo E02
February 07, 2020 04:04PM
I have a Pogo E02 that has been out of service for a few years and want to update it and configure it as a NAS. It has an old u boot:

U-Boot 2011.12 (Feb 20 2012 - 21:21:59)  BTW, is this the orignal Pogo u boot. or perhaps Jeff's first Kirkwood u boot?

and is currently running Bodhi's 4.4.0 file system. I'm thinking I should update the u boot before updating to the latest Debian fs. Recognizing that there is some risk in messing with u boot, does the reward of the latest u boot offset the risk? I've done this before on multiple Pogo's so I'm comfortable with the process. Also, I can crack it open and connect serial if really needed.

If I update the u boot first, can I boot it with the current 4.4.0 file system prior to updating the file system? I'm pretty sure this file system is built with the dtb embedded in zimage (or wherever it is supposed to go). Or do I need to generate the kernel on another box prior to booting? Or, update the file system first, then the u boot?

Thanks.
Re: Sequence to Update Pogo E02
February 07, 2020 04:52PM
Mike,


> If I update the u boot first, can I boot it with
> the current 4.4.0 file system prior to updating
> the file system? I'm pretty sure this file system
> is built with the dtb embedded in zimage (or
> wherever it is supposed to go)

Yes you can upgrade u-boot first and boot the 4.4 kernel. Howver, one minor modification is needed. And there are 2 different ways.

Install new u-boot and then do option 1 or 2 below.

1. Restore the uImage in /boot to the original

cd /boot
cp -a uImage uImmage.pogo_eo2
cp -a uImage.orig uImmage

2. Or you can also leave the uImage with DTB embedded. Just rename the pogo_e02 DTB file to something else to make uboot fail to find it (thus it will know you want to boot with uImage with DTB embedded).

cd /boot/dts
mv kirkwood_pogo_e02.dtb kirkwood_pogo_e02.bak

I would use approach 1 to make it boot with separate DTB.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)



Edited 1 time(s). Last edit at 02/07/2020 05:01PM by bodhi.
Re: Sequence to Update Pogo E02
February 07, 2020 05:21PM
Good suggestions, thanks. I'll do #1.

I forgot to include the u boot environments. Here they are:
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:00:BD:CF
machid=dd6
usb_rootfstype=ext3

Any issues? They look a little different from what we used on Dell M300, The Pogo fs is still there, as it will boot without a USB stick, but none of the usual passwords work as root. Does the new u boot do away with the Pogo fs? Not that it makes much of a difference to me.
Re: Sequence to Update Pogo E02
February 07, 2020 05:33PM
MIke,

The envs look quite normal. BTW, This is Jeff's u-boot, not the stock uboot.

> Any issues? They look a little different from
> what we used on Dell M300, The Pogo fs is still
> there, as it will boot without a USB stick, but
> none of the usual passwords work as root.

> Does
> the new u boot do away with the Pogo fs? Not that
> it makes much of a difference to me.

Right, after you flash new uboot, the Pogo file system will still be there untouched. But it is not bootable any more. The envs need further modification to boot stock kernel.

This is where it would boot stock.
pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi

If you like to use that as a rescue system, I will show you a minor modification to env.

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