Welcome! Log In Create A New Profile

Advanced

PogoPlug Mobile - Stuck at "booting the kernel."

Posted by maldridge 
PogoPlug Mobile - Stuck at "booting the kernel."
September 22, 2017 01:49AM
Having flashed the 2016.05-tld-1 uboot without incident I followed the directions from bodhi's excellent thread (Bodhi's Linux Kernel Kirkwood Thread) but my board simply refuses to boot. It seems to load the kernel and initrd from my flash drive fine and the checksums come back OK, but after it reaches the message "booting the kernel." it just stops.

I have tried this several times with different flash drives and I have observed the same behavior in all cases. The system just hangs with both the red and green LEDs on and no further output occurs on the serial console, nor does the disk access light blink on the flash drive.

Ultimately my goal is to be using a different distribution than Debian (if anyone has info on what makes the kirkwood kernels special I'd love to know it, I'd much rather boot a clean upstream kernel if possible), but I figure the most direct way to get there at the moment is to boot Debian and then swap out the userland before ultimately going the full custom image route. Of course if I can't boot at all I won't be making much progress!

Thanks in advance for any advice anyone might have.

UPDATE: Some more poking and I get some more info. On some boots I will get various messages like this:
EHCI timed out on TD - token=0x1e008d80

The hex address changes between a handful of values and then it may boot after a few minutes. It seems to be random if this happens or not. I also get this message on some attempts:

 ** ext4fs_devread read error - block

The furthest its gotten so far is a kernel panic due to /dev/sda1 being unavailable. I suspect that this may be due to a bad image, but the drive comes up clean on my desktop and fsck reports no errors. The EHCI errors make me think that the timing might not be totally correct on the drive, but I have insufficient tooling to confirm this. I have these errors both with name brand drives and with cheap drives. I can procure a brand new drive to try this with if its likely the drive at fault.

For completeness, here is the boot log on the most successful attempt so far: https://hastebin.com/bonawimolu.vbs. Note that I had to run on early debugging to see any of that output, it was otherwise as described above with no output.



Edited 1 time(s). Last edit at 09/22/2017 02:09AM by maldridge.
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 22, 2017 02:11AM
maldridge,

> simply refuses to boot. It seems to load the
> kernel and initrd from my flash drive fine and the
> checksums come back OK, but after it reaches the
> message "booting the kernel." it just stops.

Do you have a serial console log that you can post here? (from this info, you definitely have serial console or netconsole). The log should be from the u-boot banner until it stops booting. This is quite common, so hopefully I can point out the problem in setting up.

In either serial console or netconsole, interrupt console and print out the env before letting it continue to boot:

printenv
boot


> I have tried this several times with different
> flash drives and I have observed the same behavior
> in all cases. The system just hangs with both the
> red and green LEDs on and no further output occurs
> on the serial console, nor does the disk access
> light blink on the flash drive.

This usually indicated just that, the kernel stopped booting and stuck at that state where the LED light never get to set to green (solid green = at the point where kernel has successfully booted, and before the rootfs was mounted successfully).

> Ultimately my goal is to be using a different
> distribution than Debian (if anyone has info on
> what makes the kirkwood kernels special I'd love
> to know it, I'd much rather boot a clean upstream
> kernel if possible),

It is entire possible to boot another distro using a mainline rootfs for this box. Just that the Pogo Mobile is not supported upstream, so most users use my released Debian rootfs and kernel for this box.

Which one do you have in mind? perhaps I could make an educated guess and save you some research time.

>but I figure the most direct
> way to get there at the moment is to boot Debian
> and then swap out the userland before ultimately
> going the full custom image route.

Yes, that's how to do it. Sounds like you have thought about the steps. You could run a mainline rootfs from any "easy to switch" distro such as Arch, Fedora, Ubuntu, Gentoo. But booting Debian first is a prudent approach, because it eliminates a lot of unknowns.

As long as you have an armv5 rootfs for the other distro already running in another ARM box, usually you can switch easily.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 22, 2017 02:14AM
Looks like we are posting at the same time :)

I've looked at the log and glad to see you have serial console.

This is an easy problem to solve after I see your listing of the envs in serial console.

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



Edited 1 time(s). Last edit at 09/22/2017 02:16AM by bodhi.
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 22, 2017 02:21AM
Indeed it looks like I was editing as you were typing.

I am inclined to believe that these older drives I have may be having problems talking to the USB controller on the board. If that is the case, I believe this may be easier to troubleshoot running from an SD card than a USB key. What do you think?

As far as choice of distro, I'm one of the people behind Void Linux, so it was reasonably trivial for me to spin up a build for a complete base filesystem in the armv5 flavor. We actually have the kirkwood kernel from the ALARM project packaged, but I was hopeful to use a mainline kernel. Taking a closer look at the kirkwood-kernel package though it does seem that it requires jumping through some hoops to get it to boot, so I think I'll just bring Void's kirkwood-kernel package up to date instead.
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 22, 2017 02:29AM
maldridge,

> I am inclined to believe that these older drives I
> have may be having problems talking to the USB
> controller on the board. If that is the case, I
> believe this may be easier to troubleshoot running
> from an SD card than a USB key. What do you
> think?

USB is much better. If you have Sandisk brand, it's the most reliable for booting Kirkwood boxes.

But looking at you bootargs, it is the wrong one.
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/sda1 rootdelay=10 rootfstype=ext3 mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)

So you did step 4 in the rootfs creation?

Quote

4. 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).

With the new u-boot, you should not do step 4. The original uImage must be used.

> so I think I'll just bring Void's
> kirkwood-kernel package up to date instead.

That would be best. And then all you need to do is to use my released kirkwood-pogoplug_v4.dtb to boot Void Linux. If it is successult, then take the source DTS and compile it in your environment to make sure it is consistent.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 22, 2017 02:38AM
Yes, I did step 4 in the instructions, though I do not believe it is making it as far as that in booting. Per your request, here is the bootlog:

U-Boot 2016.05-tld-1 (Jun 12 2016 - 13:41:47 -0700)
Pogoplug V4

SoC:   Kirkwood 88F6192_A1
DRAM:  128 MiB
WARNING: Caches not enabled
NAND:  128 MiB
MMC:   kwsdio: 0
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Hit any key to stop autoboot:  0
Pogov4> printenv
arcNumber=3960
baudrate=115200
bootcmd=run bootcmd_mmc; run bootcmd_usb; run bootcmd_sata; run bootcmd_pogo; reset
bootcmd_mmc=run mmc_init; run set_bootargs_mmc; run mmc_boot
bootcmd_pogo=if ubi part root 2048 && ubifsmount ubi:rootfs && ubifsload 0x800000 uboot.mtd0.dockstar.original.kwb ; then go 0x800200; fi
bootcmd_sata=run sata_init; run set_bootargs_sata; run sata_boot;
bootcmd_usb=run usb_init; run set_bootargs_usb; run usb_boot;
bootdelay=10
console=ttyS0,115200
device=0:1
ethact=egiga0
ethaddr=00:25:31:05:a7:5b
if_netconsole=ping $serverip
ipaddr=192.168.0.231
led_error=orange blinking
led_exit=green off
led_init=green blinking
machid=F78
mainlineLinux=yes
mmc_boot=mw 0x800000 0 1; run mmc_load_uimage; if run mmc_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
mmc_init=mmc rescan
mmc_load_uimage=ext2load mmc $device 0x800000 /boot/uImage
mmc_load_uinitrd=ext2load mmc $device 0x1100000 /boot/uInitrd
mmc_root=/dev/mmcblk0p1
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)
partition=nand0,2
preboot_nc=run if_netconsole start_netconsole
rootdelay=10
rootfstype=ext3
sata_boot=mw 0x800000 0 1; run sata_load_uimage; if run sata_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
sata_init=ide reset
sata_load_uimage=ext2load ide $device 0x800000 /boot/uImage
sata_load_uinitrd=ext2load ide $device 0x1100000 /boot/uInitrd
sata_root=/dev/sda1
serverip=192.168.0.220
set_bootargs_mmc=setenv bootargs console=$console root=$mmc_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
set_bootargs_sata=setenv bootargs console=$console root=$sata_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
set_bootargs_usb=setenv bootargs console=$console root=$usb_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
stderr=serial
stdin=serial
stdout=serial
usb_boot=mw 0x800000 0 1; run usb_load_uimage; if run usb_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
usb_init=usb start
usb_load_uimage=ext2load usb $device 0x800000 /boot/uImage
usb_load_uinitrd=ext2load usb $device 0x1100000 /boot/uInitrd
usb_root=/dev/sda1
usb_rootfstype=ext3

Environment size: 2415/131068 bytes
Pogov4> boot
** Bad device mmc 0 **
** Bad device mmc 0 **
Wrong Image Format for bootm command
ERROR: can't get kernel image!
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
3831876 bytes read in 482 ms (7.6 MiB/s)
7245696 bytes read in 621 ms (11.1 MiB/s)
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-4.12.1-kirkwood-tld-1
   Created:      2017-09-22   6:30:03 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3831812 Bytes = 3.7 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 01100000 ...
   Image Name:   initramfs-4.12.1-kirkwood-tld-1
   Created:      2017-07-24   0:18:23 UTC
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    7245632 Bytes = 6.9 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
Using machid 0xf78 from environment

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

With the original uImage (same drive just moving the backup into place) it does get slightly further, but crashes all the same.

U-Boot 2016.05-tld-1 (Jun 12 2016 - 13:41:47 -0700)
Pogoplug V4

SoC:   Kirkwood 88F6192_A1
DRAM:  128 MiB
WARNING: Caches not enabled
NAND:  128 MiB
MMC:   kwsdio: 0
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Hit any key to stop autoboot:  0
Pogov4> printenv
arcNumber=3960
baudrate=115200
bootcmd=run bootcmd_mmc; run bootcmd_usb; run bootcmd_sata; run bootcmd_pogo; reset
bootcmd_mmc=run mmc_init; run set_bootargs_mmc; run mmc_boot
bootcmd_pogo=if ubi part root 2048 && ubifsmount ubi:rootfs && ubifsload 0x800000 uboot.mtd0.dockstar.original.kwb ; then go 0x800200; fi
bootcmd_sata=run sata_init; run set_bootargs_sata; run sata_boot;
bootcmd_usb=run usb_init; run set_bootargs_usb; run usb_boot;
bootdelay=10
console=ttyS0,115200
device=0:1
ethact=egiga0
ethaddr=00:25:31:05:a7:5b
if_netconsole=ping $serverip
ipaddr=192.168.0.231
led_error=orange blinking
led_exit=green off
led_init=green blinking
machid=F78
mainlineLinux=yes
mmc_boot=mw 0x800000 0 1; run mmc_load_uimage; if run mmc_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
mmc_init=mmc rescan
mmc_load_uimage=ext2load mmc $device 0x800000 /boot/uImage
mmc_load_uinitrd=ext2load mmc $device 0x1100000 /boot/uInitrd
mmc_root=/dev/mmcblk0p1
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)
partition=nand0,2
preboot_nc=run if_netconsole start_netconsole
rootdelay=10
rootfstype=ext3
sata_boot=mw 0x800000 0 1; run sata_load_uimage; if run sata_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
sata_init=ide reset
sata_load_uimage=ext2load ide $device 0x800000 /boot/uImage
sata_load_uinitrd=ext2load ide $device 0x1100000 /boot/uInitrd
sata_root=/dev/sda1
serverip=192.168.0.220
set_bootargs_mmc=setenv bootargs console=$console root=$mmc_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
set_bootargs_sata=setenv bootargs console=$console root=$sata_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
set_bootargs_usb=setenv bootargs console=$console root=$usb_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
stderr=serial
stdin=serial
stdout=serial
usb_boot=mw 0x800000 0 1; run usb_load_uimage; if run usb_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
usb_init=usb start
usb_load_uimage=ext2load usb $device 0x800000 /boot/uImage
usb_load_uinitrd=ext2load usb $device 0x1100000 /boot/uInitrd
usb_root=/dev/sda1
usb_rootfstype=ext3

Environment size: 2415/131068 bytes
Pogov4> boot
** Bad device mmc 0 **
** Bad device mmc 0 **
Wrong Image Format for bootm command
ERROR: can't get kernel image!
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
3821592 bytes read in 482 ms (7.6 MiB/s)
EHCI timed out on TD - token=0x30008d80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x1f8c80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x1f8c80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x1f8c80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x1f8c80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x1f8c80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008d80
 ** ext4fs_devread read error - block
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-4.12.1-kirkwood-tld-1
   Created:      2017-07-20   8:11:24 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3821528 Bytes = 3.6 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
Using machid 0xf78 from environment

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

Error: unrecognized/unsupported machine ID (r1 = 0x00000f78).

Available machine support:

ID (hex)        NAME
ffffffff        Generic DT based system
ffffffff        Marvell Kirkwood (Flattened Device Tree)

Please check your kernel config and/or bootloader.
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 22, 2017 02:59AM
maldridge,

The current envs setting is from old u-boot. You did not flash the default envs image when you installed U-Boot 2016.05-tld-1.

Quote

8. Flashing default u-boot envs image:

As described in step 1, u-boot envs must be defined in etc/fw_env.config as

# MTD device name Device offset Env. size Flash sector size Number of sectors
/dev/mtd0 0xc0000 0x20000 0x20000

A special section (B. Flashing default u-boot envs image) about flashing default u-boot envs is included at the end of this installation procedure. Please follow the instruction in this section B to perform this step before continuing with step 9.

That explained why it booted with the uImage with DTB embedded in step 4. And because of that, the bootargs was the one from the DTB.

In the next post I will post a temporary fix.
.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 22, 2017 03:21AM
With the USB Debian rootfs that has the original uImage.

Power up, interrupt serial console and

setenv bootargs_usb 'console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 earlyprintk=serial'
setenv usb_load_dtb 'ext2load usb $device 0x1c00000 /boot/dts/kirkwood-pogoplug_v4.dtb'
setenv usb_boot 'mw 0x800000 0 1; run usb_load_uimage; run usb_load_uinitrd; run usb_load_dtb; bootm 0x800000 0x1100000 0x1c00000'
printenv
boot

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 22, 2017 05:11PM
> > so I think I'll just bring Void's
> > kirkwood-kernel package up to date instead.
>
> That would be best. And then all you need to do is
> to use my released kirkwood-pogoplug_v4.dtb to
> boot Void Linux. If it is successult, then take
> the source DTS and compile it in your environment
> to make sure it is consistent.

I might have missed your point here! Did you mean the mainline kernel, not one from Arch?

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 22, 2017 10:37PM
Success!

I was able to use your shim values to boot into the flash drive and from there write the correct variables back out to u-boot.

Yes, I was referring to booting with an upstream kernel as obtained from kernel.org and cross compiled for armv5. I have such a kernel for 4.13.1, but I could not get it to go further than the "booting the kernel". You mentioned that the upstream kernels don't support the kirkwood architecture, but they do include a "kirkwood-pogoplug-series-4.dtb" file in the dtbs, perhaps you can shed some light on this?
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 23, 2017 12:00AM
maldridge,

> Success!
>
> I was able to use your shim values to boot into
> the flash drive and from there write the correct
> variables back out to u-boot.

Cool!

> Yes, I was referring to booting with an upstream
> kernel as obtained from kernel.org and cross
> compiled for armv5. I have such a kernel for
> 4.13.1, but I could not get it to go further than
> the "booting the kernel". You mentioned that the
> upstream kernels don't support the kirkwood
> architecture, but they do include a
> "kirkwood-pogoplug-series-4.dtb" file in the dtbs,
> perhaps you can shed some light on this?

No, I did not mean that the mainline kernel does not support kirkwood. In fact it does support several kirkwood boxes such as dockstar, pogo V4, sheevaplug. What I meant was most of the time, the kirkwood boxes that have DTS in upstream don't take full advantage of the kirkwood boxes. So users usually come here or to Arch site to get the downstream kernel.

For your Pogo V4 Mobile boxes, you could install the upstream kernel, and then use either upstream version or my version of the DTS (either copy the DTB as is, or compile the DTS using my patch). Then you 'll be all set!

For a majority of Kirkwood boxes they are not in maintsream, so you would have to experiment by running a vanilla Kirkwood kernel, and then use my DTB in the Debian-4.12.1-kirkwood-tld-1-rootfs-bodhi.tar.bz2 rootfs. If successful, you can copy the DTS from the patch in kernel tarbal
linux-4.12.8-kirkwood-tld-1-bodhi.tar.bz2 and compile it in your environment.

Since you can boot Debian successfully now, it's just a matter of using a right DTB to boot your Void Linux amrv5 rootfs :) some u-boot envs might need adjustment (because the Void Linux rootfs might be organized differently from Debian rootfs).

I'll be glad to help you getting it booting. If you are not sure about something, post the serial bootlog, and the file structure of Void Linux rootfs (such as where is the kernel image, initrd, ad DTB).

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 23, 2017 03:35AM
Thanks!

I made some progress today (I just didn't check back here until now). Basically what I'm looking at for the moment is that Void's default kernel builds export a zImage. I can alter this to be a uImage containing a zImage, but since your more modern uboot seems to support booting the zImage directly I'd much rather do that.

Ultimately I've got the following:
/boot/zImage
/boot/uInitrd
/boot/dtbs/kirkwood-pogoplug-series-4.dtb

The rest of the system is a reasonably standard FHS compliant Linux chroot and it expects to come up via a call to /sbin/init, I expect that this will be a mostly standard boot once the initrd and kernel are loaded, but I'm struggling a bit to figure out which variables in u-boot should be modified to hunt for a zImage instead of a uImage.

So I guess my next steps hinge on whether or not the zImage format is sufficiently stable to boot with or if I'm better off repackaging the zImage archive into a uImage.
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 23, 2017 03:57AM
maldridge,

> I made some progress today (I just didn't check
> back here until now). Basically what I'm looking
> at for the moment is that Void's default kernel
> builds export a zImage. I can alter this to be a
> uImage containing a zImage, but since your more
> modern uboot seems to support booting the zImage
> directly I'd much rather do that.

Nice!

> Ultimately I've got the following:
>
> /boot/zImage
> /boot/uInitrd
> /boot/dtbs/kirkwood-pogoplug-series-4.dtb
>

We should be able to boot the zImage and these kernel files.


> The rest of the system is a reasonably standard
> FHS compliant Linux chroot and it expects to come
> up via a call to /sbin/init, I expect that this
> will be a mostly standard boot once the initrd and
> kernel are loaded, but I'm struggling a bit to
> figure out which variables in u-boot should be
> modified to hunt for a zImage instead of a
> uImage.

It is best that I can see your current envs in u-boot prompt to show you how to change them to use bootz.

-----

However, as an example, assuming you have not changed u-boot envs to the default envs. These envs are what we had before for temporary booting previously:
setenv bootargs_usb 'console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 earlyprintk=serial'
setenv usb_load_dtb 'ext2load usb $device 0x1c00000 /boot/dts/kirkwood-pogoplug_v4.dtb'
setenv usb_boot 'mw 0x800000 0 1; run usb_load_uimage; run usb_load_uinitrd; run usb_load_dtb; bootm 0x800000 0x1100000 0x1c00000'
printenv
boot

We can change these envs to boot zImage. The differences are: use bootz instead of bootm, and since you want to use the mainline DTB. The boot commands will be

setenv bootargs_usb 'console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 earlyprintk=serial'
setenv usb_load_image 'ext2load usb $device 0x800000 /boot/zImage'
setenv usb_load_dtb 'ext2load usb $device 0x1c00000 /boot/dtbs/kirkwood-pogoplug-series-4.dtb
setenv usb_boot 'mw 0x800000 0 1; run usb_load_image; run usb_load_uinitrd; run usb_load_dtb; bootz 0x800000 0x1100000 0x1c00000'
boot

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 23, 2017 03:17PM
Ah, I should have mentioned that I wrote the new u-boot envs after you mentioned that was an issue. Here is the current state of the environment:



U-Boot 2016.05-tld-1 (Jun 12 2016 - 13:41:47 -0700)
Pogoplug V4

SoC:   Kirkwood 88F6192_A1
DRAM:  128 MiB
WARNING: Caches not enabled
NAND:  128 MiB
MMC:   kwsdio: 0
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Hit any key to stop autoboot:  0
Pogov4> printenv
arcNumber=3960
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec
bootcmd_exec=run load_uimage; if run load_initrd; then if run load_dtb; then bootm $load_uimage_addr $load_initrd_addr
 $load_dtb_addr; else bootm $load_uimage_addr $load_initrd_addr; fi; else if run load_dtb; then bootm $load_uimage_add
r - $load_dtb_addr; else bootm $load_uimage_addr; fi; fi
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootdelay=10
bootdev=usb
device=0:1
devices=usb ide mmc
disks=0 1 2 3
dtb_file=/boot/dts/kirkwood-pogoplug_v4.dtb
ethact=egiga0
ethaddr=00:25:31:05:a7:5b
if_netconsole=ping $serverip
ipaddr=192.168.0.231
led_error=orange blinking
led_exit=green off
led_init=green blinking
load_dtb=echo loading DTB $dtb_file ...; load $bootdev $device $load_dtb_addr $dtb_file
load_dtb_addr=0x1c00000
load_initrd=echo loading uInitrd ...; load $bootdev $device $load_initrd_addr /boot/uInitrd
load_initrd_addr=0x1100000
load_uimage=echo loading uImage ...; load $bootdev $device $load_uimage_addr /boot/uImage
load_uimage_addr=0x800000
machid=f78
mainlineLinux=yes
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)
partition=nand0,2
preboot_nc=run if_netconsole start_netconsole
scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide reset";  setenv
scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; fo
r disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_uima
ge_addr /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv
 bootdev $dev; fi; fi; done; fi; done
serverip=192.168.0.220
set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; vers
ion;
stderr=serial
stdin=serial
stdout=serial
uenv_addr=0x810000
uenv_import=echo importing envs ...; env import -t $uenv_addr $filesize
uenv_init_devices=setenv init_usb "usb start";  setenv init_ide "ide reset";  setenv init_mmc "mmc rescan"; for devtyp
e in $devices; do run init_$devtype; done;
uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices;  do for disknum in 0; do run uenv_read
_disk; done; done;
uenv_read=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 $uenv_addr /boot/uEnv.txt; then se
tenv uenv_loaded 1; fi
uenv_read_disk=if test $devtype -eq mmc; then if $devtype part; then run uenv_read;  fi; else if $devtype part $disknu
m; then run uenv_read; fi;  fi
usb_ready_retry=15

Environment size: 2877/131068 bytes
Pogov4>

Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 23, 2017 05:01PM
maldridge,

Power up, interrupt serial console, and
setenv dtb_file '/boot/dtbs/kirkwood-pogoplug-series-4.dtb'
setenv load_image 'echo loading Image ...; load $bootdev $device $load_image_addr /boot/zImage
setenv bootcmd_exec 'run load_image; if run load_initrd; then if run load_dtb; then bootz $load_image_addr $load_initrd_addr $load_dtb_addr; else bootz $load_image_addr $load_initrd_addr; fi; else if run load_dtb; then bootz $load_image_addr - $load_dtb_addr; else bootz $load_image_addr; fi; fi'
boot

Please post the entire serial console log.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 23, 2017 07:52PM
Ok, it took substantially longer than I expected to get the uInitrd build reliably working but I now have a complete filesystem.



U-Boot 2016.05-tld-1 (Jun 12 2016 - 13:41:47 -0700)
Pogoplug V4

SoC:   Kirkwood 88F6192_A1
DRAM:  128 MiB
WARNING: Caches not enabled
NAND:  128 MiB
MMC:   kwsdio: 0
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Hit any key to stop autoboot:  0
Pogov4> setenv dtb_file '/boot/dtbs/kirkwood-pogoplug-series-4.dtb'
Pogov4> setenv load_image 'echo loading Image ...; load $bootdev $device $load_image_addr /boot/zImage'
Pogov4> setenv bootcmd_exec 'run load_image; if run load_initrd; then if run load_dtb; then bootz $load_image_addr $lo
ad_initrd_addr $load_dtb_addr; else bootz $load_image_addr $load_initrd_addr; fi; else if run load_dtb; then bootz $lo
ad_image_addr - $load_dtb_addr; else bootz $load_image_addr; fi; fi'
Pogov4> printenv
arcNumber=3960
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec
bootcmd_exec=run load_image; if run load_initrd; then if run load_dtb; then bootz $load_image_addr $load_initrd_addr $
load_dtb_addr; else bootz $load_image_addr $load_initrd_addr; fi; else if run load_dtb; then bootz $load_image_addr -
$load_dtb_addr; else bootz $load_image_addr; fi; fi
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootdelay=10
bootdev=usb
device=0:1
devices=usb ide mmc
disks=0 1 2 3
dtb_file=/boot/dtbs/kirkwood-pogoplug-series-4.dtb
ethact=egiga0
ethaddr=00:25:31:05:a7:5b
if_netconsole=ping $serverip
ipaddr=192.168.0.231
led_error=orange blinking
led_exit=green off
led_init=green blinking
load_dtb=echo loading DTB $dtb_file ...; load $bootdev $device $load_dtb_addr $dtb_file
load_dtb_addr=0x1c00000
load_image=echo loading Image ...; load $bootdev $device $load_image_addr /boot/zImage
load_initrd=echo loading uInitrd ...; load $bootdev $device $load_initrd_addr /boot/uInitrd
load_initrd_addr=0x1100000
load_uimage=echo loading uImage ...; load $bootdev $device $load_uimage_addr /boot/uImage
load_uimage_addr=0x800000
machid=f78
mainlineLinux=yes
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)
partition=nand0,2
preboot_nc=run if_netconsole start_netconsole
scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide reset";  setenv
scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; fo
r disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_uima
ge_addr /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv
 bootdev $dev; fi; fi; done; fi; done
serverip=192.168.0.220
set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; vers
ion;
stderr=serial
stdin=serial
stdout=serial
uenv_addr=0x810000
uenv_import=echo importing envs ...; env import -t $uenv_addr $filesize
uenv_init_devices=setenv init_usb "usb start";  setenv init_ide "ide reset";  setenv init_mmc "mmc rescan"; for devtyp
e in $devices; do run init_$devtype; done;
uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices;  do for disknum in 0; do run uenv_read
_disk; done; done;
uenv_read=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 $uenv_addr /boot/uEnv.txt; then se
tenv uenv_loaded 1; fi
uenv_read_disk=if test $devtype -eq mmc; then if $devtype part; then run uenv_read;  fi; else if $devtype part $disknu
m; then run uenv_read; fi;  fi
usb_ready_retry=15

Environment size: 2968/131068 bytes
Pogov4> boot
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices...
Use USB retry period from the environment: 15 second(s)
1 Storage Device(s) found

Reset IDE: ide_preinit failed

Partition Map for USB device 0  --   Partition Type: DOS

Part    Start Sector    Num Sectors     UUID            Type
  1     2048            15656960        4efd6d24-01     83 Boot
loading envs from usb 0 ...
** File not found /boot/uEnv.txt **

no IDE devices available
running scan_disk ...
Scan device usb
device usb 0:1
** File not found /boot/uImage **
device usb 1:1
** Bad device usb 1 **
device usb 2:1
** Bad device usb 2 **
device usb 3:1
** Bad device usb 3 **
Scan device ide

Reset IDE: ide_preinit failed
device ide 0:1
** Bad device size - ide 0 **
device ide 1:1
** Bad device size - ide 1 **
device ide 2:1
** Bad device ide 2 **
device ide 3:1
** Bad device ide 3 **
Scan device mmc
device mmc 0:1
** Bad device mmc 0 **
device mmc 1:1
MMC Device 1 not found
MMC Device 1 not found
** Bad device mmc 1 **
device mmc 2:1
MMC Device 2 not found
MMC Device 2 not found
** Bad device mmc 2 **
device mmc 3:1
MMC Device 3 not found
MMC Device 3 not found
** Bad device mmc 3 **
loading Image ...
load - load binary file from a filesystem

Usage:
load <interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]
    - Load binary file 'filename' from partition 'part' on device
       type 'interface' instance 'dev' to address 'addr' in memory.
      'bytes' gives the size to load in bytes.
      If 'bytes' is 0 or omitted, the file is read until the end.
      'pos' gives the file byte position to start reading from.
      If 'pos' is 0 or omitted, the file is read from the start.
loading uInitrd ...
44126192 bytes read in 1740 ms (24.2 MiB/s)
loading DTB /boot/dtbs/kirkwood-pogoplug-series-4.dtb ...
10694 bytes read in 4429 ms (2 KiB/s)
Bad Linux ARM zImage magic!
Pogov4>

It looks like there's a check failing to find /boot/uImage. I'll keep poking at it but I must admit your knowledge of u-boot far exceeds my own.

EDIT:
Loading by hand I get a little bit further:

Pogov4> load usb 0 0x800000 /boot/zImage
7589664 bytes read in 606 ms (11.9 MiB/s)
Pogov4> load usb 0 0x1100000 /boot/uInitrd
44126192 bytes read in 1743 ms (24.1 MiB/s)
Pogov4> load usb 0 0x1c00000 /boot/dtbs/kirkwood-pogoplug-series-4.dtb
10694 bytes read in 4429 ms (2 KiB/s)
Pogov4> bootz 0x800000 0x1100000 0x1c00000
Kernel image @ 0x800000 [ 0x000000 - 0x73cf20 ]
## Loading init Ramdisk from Legacy Image at 01100000 ...
   Image Name:   Void Linux
   Created:      2017-09-23  23:58:05 UTC
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    44126128 Bytes = 42.1 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... Bad Data CRC
Ramdisk image is corrupt or invalid
Pogov4>

Given that this is a clean build I'm not really that inclined to say it could be corrupt, but I'm very certain it could be built incorrectly. That ramdisk is built with the following command:

env -i /usr/bin/mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n 'Void Linux' -d /boot/initrd /boot/uInitrd

All the examples I've seen say that I can just use null addresses for the ramdisk, but maybe that's not quite right?



Edited 2 time(s). Last edit at 09/23/2017 07:58PM by maldridge.
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 24, 2017 01:35AM
Ah!

1. Couple more env needs to be adjusted

setenv load_image_addr 0x800000
setenv scan_disk 'echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide reset";  setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_image_addr /boot/zImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv bootdev $dev; fi; fi; done; fi; done'

setenv dtb_file '/boot/dtbs/kirkwood-pogoplug-series-4.dtb'
setenv load_image 'echo loading Image ...; load $bootdev $device $load_image_addr /boot/zImage
setenv bootcmd_exec 'run load_image; if run load_initrd; then if run load_dtb; then bootz $load_image_addr $load_initrd_addr $load_dtb_addr; else bootz $load_image_addr $load_initrd_addr; fi; else if run load_dtb; then bootz $load_image_addr - $load_dtb_addr; else bootz $load_image_addr; fi; fi'
boot

2. Your uInitrd is way too big. So there is something wrong there. The ramdisk was corrupted because it was overwritten by the DTB loading at 0x1c00000.

## Loading init Ramdisk from Legacy Image at 01100000 ...
   Image Name:   Void Linux
   Created:      2017-09-23  23:58:05 UTC
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    44126128 Bytes = 42.1 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... Bad Data CRC

This is how we generate the uInitrd for Debian

cd /boot
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs-4.13.2-kirkwood-tld-1 -d initrd.img-4.13.2-kirkwood-tld-1 uInitrd

This indicated that you did not use compression.
env -i /usr/bin/mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n 'Void Linux' -d /boot/initrd /boot/uInitrd

Also check the size of your initrd. My initrd is quite large compare to others, and it is only 6.8M. Is there things other than kernel modules in your initrd?
-rw-r--r-- 1 root root 6.8M Sep 23 03:11 /boot/initrd.img-4.13.2-kirkwood-tld-1

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 24, 2017 02:18AM
Nope, nothing but kernel modules in there and a handful of binaries to bring the rest of the system up. Now I should mention that for some reason it has every possible module that can be built for armv5, but that's besides the point...

I'll sort this out so that it has a more reasonable number of modules and try again.
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 24, 2017 02:43AM
maldridge,

This initrd probably includes desktop sofware packages? which we don't need for headless system such as this plug.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 24, 2017 02:54AM
Nope, no desktop software, just a lot of modules: https://hastebin.com/zacoveraqe.diff

I think I can safely get rid of (at a high level) the following modules:
* drm
* resume
* i18n
* terminfo

That should slim it down some, and removing kernel modules that shouldn't be loaded will get it the rest of the way. I could probably remove the btrfs modules as well, but since those are part of Void's base system package, that would be a bit of a hack.
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 24, 2017 03:37AM
> That should slim it down some, and removing kernel
> modules that shouldn't be loaded will get it the
> rest of the way. I could probably remove the
> btrfs modules as well, but since those are part of
> Void's base system package, that would be a bit of
> a hack.

OK. Sounds good. However, if it's too much works to get to a good size (< 20M), we''ll adjust the load address of the DTB to be way up, to get all 3 images loaded. U-Boot will take care of the actual reallocation before booting.

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



Edited 1 time(s). Last edit at 09/24/2017 03:39AM by bodhi.
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 24, 2017 03:45AM
With your current initrd

Quote

Data Size: 44126128 Bytes = 42.1 MiB

The DTB load address should be set to 48M:

setenv load_dtb_addr 0x3000000

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 25, 2017 12:32AM
Hmm, no luck there:

U-Boot 2016.05-tld-1 (Jun 12 2016 - 13:41:47 -0700)
Pogoplug V4

SoC:   Kirkwood 88F6192_A1
DRAM:  128 MiB
WARNING: Caches not enabled
NAND:  128 MiB
MMC:   kwsdio: 0
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Hit any key to stop autoboot:  0
Pogov4> setenv load_image_addr 0x800000
Pogov4> setenv scan_disk 'echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide reset";  setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run
 scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_image_addr /boot/zImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknu
m:1; setenv bootdev $dev; fi; fi; done; fi; done'
Pogov4> setenv dtb_file '/boot/dtbs/kirkwood-pogoplug-series-4.dtb'
Pogov4> setenv load_image 'echo loading Image ...; load $bootdev $device $load_image_addr /boot/zImage'
Pogov4> setenv bootcmd_exec 'run load_image; if run load_initrd; then if run load_dtb; then bootz $load_image_addr $load_initrd_addr $load_dtb_addr; else bootz $load_image_addr $load_initrd_addr; fi; else if run load_dtb; then bootz $load
_image_addr - $load_dtb_addr; else bootz $load_image_addr; fi; fi'
Pogov4> setenv load_dtb_addr 0x3000000
Pogov4> boot
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices...
Use USB retry period from the environment: 15 second(s)
1 Storage Device(s) found

Reset IDE: ide_preinit failed

Partition Map for USB device 0  --   Partition Type: DOS

Part    Start Sector    Num Sectors     UUID            Type
  1     2048            15656960        4efd6d24-01     83 Boot
loading envs from usb 0 ...
** File not found /boot/uEnv.txt **

no IDE devices available
running scan_disk ...
Scan device usb
device usb 0:1
1 bytes read in 317 ms (0 Bytes/s)
Found bootable drive on usb 0
loading Image ...
7589664 bytes read in 608 ms (11.9 MiB/s)
loading uInitrd ...
44126192 bytes read in 1758 ms (23.9 MiB/s)
loading DTB /boot/dtbs/kirkwood-pogoplug-series-4.dtb ...
10694 bytes read in 4429 ms (2 KiB/s)
Kernel image @ 0x800000 [ 0x000000 - 0x73cf20 ]
## Loading init Ramdisk from Legacy Image at 01100000 ...
   Image Name:   Void Linux
   Created:      2017-09-23  23:58:05 UTC
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    44126128 Bytes = 42.1 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... Bad Data CRC
Ramdisk image is corrupt or invalid
Pogov4> printenv
arcNumber=3960
bootargs=console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec
bootcmd_exec=run load_image; if run load_initrd; then if run load_dtb; then bootz $load_image_addr $load_initrd_addr $load_dtb_addr; else bootz $load_image_addr $load_initrd_addr; fi; else if run load_dtb; then bootz $load_image_addr - $l
oad_dtb_addr; else bootz $load_image_addr; fi; fi
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootdelay=10
bootdev=usb
device=0:1
devices=usb ide mmc
disks=0 1 2 3
dtb_file=/boot/dtbs/kirkwood-pogoplug-series-4.dtb
ethact=egiga0
ethaddr=00:25:31:05:a7:5b
fileaddr=3000000
filesize=29c6
if_netconsole=ping $serverip
init_ide=ide reset
init_mmc=mmc rescan
init_usb=usb start
ipaddr=192.168.0.231
led_error=orange blinking
led_exit=green off
led_init=green blinking
load_dtb=echo loading DTB $dtb_file ...; load $bootdev $device $load_dtb_addr $dtb_file
load_dtb_addr=0x3000000
load_image=echo loading Image ...; load $bootdev $device $load_image_addr /boot/zImage
load_image_addr=0x800000
load_initrd=echo loading uInitrd ...; load $bootdev $device $load_initrd_addr /boot/uInitrd
load_initrd_addr=0x1100000
load_uimage=echo loading uImage ...; load $bootdev $device $load_uimage_addr /boot/uImage
load_uimage_addr=0x800000
machid=f78
mainlineLinux=yes
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)
partition=nand0,2
preboot_nc=run if_netconsole start_netconsole
scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide reset";  setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for
disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_image_addr /boot/zImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv boot
dev $dev; fi; fi; done; fi; done
scan_ide=ide reset
scan_mmc=mmc rescan
scan_usb=usb start
serverip=192.168.0.220
set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
stderr=serial
stdin=serial
stdout=serial
uenv_addr=0x810000
uenv_import=echo importing envs ...; env import -t $uenv_addr $filesize
uenv_init_devices=setenv init_usb "usb start";  setenv init_ide "ide reset";  setenv init_mmc "mmc rescan"; for devtype in $devices; do run init_$devtype; done;
uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices;  do for disknum in 0; do run uenv_read_disk; done; done;
uenv_loaded=0
uenv_read=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 $uenv_addr /boot/uEnv.txt; then setenv uenv_loaded 1; fi
uenv_read_disk=if test $devtype -eq mmc; then if $devtype part; then run uenv_read;  fi; else if $devtype part $disknum; then run uenv_read; fi;  fi
usb_ready_retry=15

Environment size: 3314/131068 bytes
Pogov4>

I'll keep trying to reduce the size of the initrd.
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 25, 2017 01:17AM
maldridge,

Try this

setenv load_dtb_addr  0x600000

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 25, 2017 01:42AM
A little bit further this time:

U-Boot 2016.05-tld-1 (Jun 12 2016 - 13:41:47 -0700)
Pogoplug V4

SoC:   Kirkwood 88F6192_A1
DRAM:  128 MiB
WARNING: Caches not enabled
NAND:  128 MiB
MMC:   kwsdio: 0
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Hit any key to stop autoboot:  0
Pogov4> printenv
arcNumber=3960
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec
bootcmd_exec=run load_uimage; if run load_initrd; then if run load_dtb; then bootm $load_uimage_addr $load_initrd_addr
 $load_dtb_addr; else bootm $load_uimage_addr $load_initrd_addr; fi; else if run load_dtb; then bootm $load_uimage_add
r - $load_dtb_addr; else bootm $load_uimage_addr; fi; fi
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootdelay=10
bootdev=usb
device=0:1
devices=usb ide mmc
disks=0 1 2 3
dtb_file=/boot/dts/kirkwood-pogoplug_v4.dtb
ethact=egiga0
ethaddr=00:25:31:05:a7:5b
if_netconsole=ping $serverip
ipaddr=192.168.0.231
led_error=orange blinking
led_exit=green off
led_init=green blinking
load_dtb=echo loading DTB $dtb_file ...; load $bootdev $device $load_dtb_addr $dtb_file
load_dtb_addr=0x1c00000
load_initrd=echo loading uInitrd ...; load $bootdev $device $load_initrd_addr /boot/uInitrd
load_initrd_addr=0x1100000
load_uimage=echo loading uImage ...; load $bootdev $device $load_uimage_addr /boot/uImage
load_uimage_addr=0x800000
machid=f78
mainlineLinux=yes
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)
partition=nand0,2
preboot_nc=run if_netconsole start_netconsole
scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide reset";  setenv
scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; fo
r disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_uima
ge_addr /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv
 bootdev $dev; fi; fi; done; fi; done
serverip=192.168.0.220
set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; vers
ion;
stderr=serial
stdin=serial
stdout=serial
uenv_addr=0x810000
uenv_import=echo importing envs ...; env import -t $uenv_addr $filesize
uenv_init_devices=setenv init_usb "usb start";  setenv init_ide "ide reset";  setenv init_mmc "mmc rescan"; for devtyp
e in $devices; do run init_$devtype; done;
uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices;  do for disknum in 0; do run uenv_read
_disk; done; done;
uenv_read=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 $uenv_addr /boot/uEnv.txt; then se
tenv uenv_loaded 1; fi
uenv_read_disk=if test $devtype -eq mmc; then if $devtype part; then run uenv_read;  fi; else if $devtype part $disknu
m; then run uenv_read; fi;  fi
usb_ready_retry=15

Environment size: 2877/131068 bytes
Pogov4> setenv load_dtb_addr  0x600000
Pogov4> setenv load_image_addr 0x800000
Pogov4> setenv scan_disk 'echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide
reset";  setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; r
un scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disk
num:1 $load_image_addr /boot/zImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $di
sknum:1; setenv bootdev $dev; fi; fi; done; fi; done'
Pogov4> setenv dtb_file '/boot/dtbs/kirkwood-pogoplug-series-4.dtb'
Pogov4> setenv bootcmd_exec 'run load_image; if run load_initrd; then if run load_dtb; then bootz $load_image_addr $lo
ad_initrd_addr $load_dtb_addr; else bootz $load_image_addr $load_initrd_addr; fi; else if run load_dtb; then bootz $lo
ad_image_addr - $load_dtb_addr; else bootz $load_image_addr; fi; fi'
Pogov4> setenv load_image 'echo loading Image ...; load $bootdev $device $load_image_addr /boot/zImage'
Pogov4> setenv set_bootargs 'setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 earlyprintk=serial $m
tdparts $custom_params'
Pogov4> boot
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices...
Use USB retry period from the environment: 15 second(s)
1 Storage Device(s) found

Reset IDE: ide_preinit failed

Partition Map for USB device 0  --   Partition Type: DOS

Part    Start Sector    Num Sectors     UUID            Type
  1     2048            15656960        4efd6d24-01     83 Boot
loading envs from usb 0 ...
** File not found /boot/uEnv.txt **

no IDE devices available
running scan_disk ...
Scan device usb
device usb 0:1
1 bytes read in 317 ms (0 Bytes/s)
Found bootable drive on usb 0
loading Image ...
7589664 bytes read in 608 ms (11.9 MiB/s)
loading uInitrd ...
44126192 bytes read in 1758 ms (23.9 MiB/s)
loading DTB /boot/dtbs/kirkwood-pogoplug-series-4.dtb ...
10694 bytes read in 4429 ms (2 KiB/s)
Kernel image @ 0x800000 [ 0x000000 - 0x73cf20 ]
## Loading init Ramdisk from Legacy Image at 01100000 ...
   Image Name:   Void Linux
   Created:      2017-09-23  23:58:05 UTC
   Image Type:   ARM Linux RAMDisk Image (uncompressed)
   Data Size:    44126128 Bytes = 42.1 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 00600000
   Booting using the fdt blob at 0x600000
   Loading Ramdisk to 050f9000, end 07b0dfb0 ... OK
   Loading Device Tree to 050f3000, end 050f89c5 ... OK
Using machid 0xf78 from environment

Starting kernel ...

For good measure I turned on the serial printk, but it seems to just sit there and the disk access light is off. I have a build running with your kernel config and I will see if that fixes anything tomorrow evening. I can also just try to use the debian kernel directly and see if it boots further with that.
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 25, 2017 03:10AM
When it is stuck like this without serial printk output, the kernel image could have been corrupted.

Starting kernel ...

Note that this kernel file is also quite big (~7M).

7589664 bytes read in 608 ms (11.9 MiB/s)

1. Since we have moved the DTB to lower memory, you could move the uInitrd out further, such as

setenv load_initrd_add  0x2100000

2. Or try booting with uImage instead of zImage. And then after it's working, switch to zImage.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 26, 2017 12:57AM
Success!

I rebuilt the kernel using an updated version of your .config and it now boots happily. I have some cleanup work to do and then I will write-up the process in case someone else wants to get Void running on similar hardware. Needless to say there will be a shoutout to you in there!

For completeness, here's the boot log and some commands that give an idea of what the default system looks like straight out of the build. Ultimately I think I will go with muslc so that I can ditch the locales and try to fit inside the NAND footprint, though an SD card will work fine for now. Screen seems to have truncated the boot log a bit, the commands to boot are exactly those shown above. I will try to get a complete banner-to-login log later.

[   12.319973] mv643xx_eth_port mv643xx_eth_port.0 eth0: port 0 with MAC address 00:25:31:05:a7:5b
[   12.328852] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[   12.335437] ehci-pci: EHCI PCI platform driver
[   12.339957] ehci-orion: EHCI orion driver
[   12.344276] orion-ehci f1050000.ehci: EHCI Host Controller
[   12.349780] orion-ehci f1050000.ehci: new USB bus registered, assigned bus number 1
[   12.357682] orion-ehci f1050000.ehci: irq 29, io mem 0xf1050000
[   12.392732] orion-ehci f1050000.ehci: USB 2.0 started, EHCI 1.00
[   12.399044] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[   12.405848] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   12.413065] usb usb1: Product: EHCI Host Controller
[   12.417930] usb usb1: Manufacturer: Linux 4.13.3_1 ehci_hcd
[   12.423509] usb usb1: SerialNumber: f1050000.ehci
[   12.429141] hub 1-0:1.0: USB hub found
[   12.433012] hub 1-0:1.0: 1 port detected
[   12.437823] usbcore: registered new interface driver usb-storage
[   12.444382] mousedev: PS/2 mouse device common for all mice
[   12.792735] usb 1-1: new high-speed USB device number 2 using orion-ehci
[   12.990312] usb 1-1: New USB device found, idVendor=05dc, idProduct=c75c
[   12.997032] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   13.004192] usb 1-1: Product: USB Flash Drive
[   13.008534] usb 1-1: Manufacturer: Lexar
[   13.012448] usb 1-1: SerialNumber: 55B6FA74BBD32312E06D
[   13.018737] usb-storage 1-1:1.0: USB Mass Storage device detected
[   13.025336] scsi host1: usb-storage 1-1:1.0
[   13.522726] rtc-mv f1010300.rtc: internal RTC not ticking
[   13.528354] i2c /dev entries driver
[   13.533899] hidraw: raw HID events driver (C) Jiri Kosina
[   13.539838] drop_monitor: Initializing network drop monitor service
[   13.546553] NET: Registered protocol family 17
[   13.551096] Key type dns_resolver registered
[   13.556573] registered taskstats version 1
[   13.560653] Loading compiled-in X.509 certificates
[   13.565549] zswap: loaded using pool lzo/zbud
[   13.588342] Key type big_key registered
[   13.609760] Key type encrypted registered
[   13.615881] hctosys: unable to open rtc device (rtc0)
[   13.625971] Freeing unused kernel memory: 1024K
[   14.085215] scsi 1:0:0:0: Direct-Access     Lexar    USB Flash Drive  8.07 PQ: 0 ANSI: 4
[   14.105630] sd 1:0:0:0: [sda] 15659008 512-byte logical blocks: (8.02 GB/7.47 GiB)
[   14.124916] sd 1:0:0:0: [sda] Write Protect is off
[   14.142518] sd 1:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[   14.183356]  sda: sda1
[   14.195018] sd 1:0:0:0: [sda] Attached SCSI removable disk
[   14.367683] dracut: dracut-046
[   14.906234] systemd-udevd[183]: starting version 3.2.4
[   14.934203] udevd[184]: starting eudev-3.2.4
[   15.406631] input: gpio_keys as /devices/platform/gpio_keys/input/input0
[   15.530029] usbcore: registered new interface driver uas
[   15.693673] mvsdio f1090000.mvsdio: Got CD GPIO
[   15.731876] mvsdio f1090000.mvsdio: Got WP GPIO
[   16.224929] EXT4-fs (sda1): mounting ext3 file system using the ext4 subsystem
[   16.243502] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[   16.543582] dracut: Checking ext3: /dev/disk/by-label/rootfs
[   16.551678] dracut: issuing e2fsck -a  /dev/disk/by-label/rootfs
[   16.640153] dracut: rootfs: clean, 9946/489600 files, 116303/1957120 blocks
[   16.686701] dracut: Mounting /dev/disk/by-label/rootfs with -o defaults
[   16.737314] EXT4-fs (sda1): mounting ext3 file system using the ext4 subsystem
[   16.758265] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[   16.896206] dracut: Mounted root filesystem /dev/sda1
[   17.396652] dracut: Switching root
- runit: $Id: 25da3b86f7bed4038b8a039d2f8e8c9bbcf0822b $: booting.
- runit: enter stage: /etc/runit/1
=> Welcome to Void!
=> Mounting pseudo-filesystems...
[   18.392809] raid6: int32x1  gen()    63 MB/s
[   18.563194] raid6: int32x1  xor()    42 MB/s
[   18.732831] raid6: int32x2  gen()    78 MB/s
[   18.903190] raid6: int32x2  xor()    60 MB/s
[   19.073027] raid6: int32x4  gen()    81 MB/s
[   19.243258] raid6: int32x4  xor()    55 MB/s
[   19.413161] raid6: int32x8  gen()    84 MB/s
[   19.583077] raid6: int32x8  xor()    57 MB/s
[   19.587330] raid6: using algorithm int32x8 gen() 84 MB/s
[   19.592616] raid6: .... xor() 57 MB/s, rmw enabled
[   19.597415] raid6: using intx1 recovery algorithm
[   19.605292] xor: measuring software checksum speed
[   19.702758]    arm4regs  :   726.000 MB/sec
[   19.802772]    8regs     :   436.000 MB/sec
[   19.902707]    32regs    :   634.000 MB/sec
[   19.906881] xor: using function: arm4regs (726.000 MB/sec)
[   20.065223] Btrfs loaded, crc32c=crc32c-generic
[   20.096950] tun: Universal TUN/TAP device driver, 1.6
[   20.130334] PPP generic driver version 2.4.2
[   20.197592] device-mapper: uevent: version 1.0.3
[   20.202607] device-mapper: ioctl: 4.36.0-ioctl (2017-06-09) initialised: dm-devel@redhat.com
[   20.419442] Bluetooth: Core ver 2.22
[   20.423230] NET: Registered protocol family 31
[   20.427655] Bluetooth: HCI device and connection manager initialized
[   20.434033] Bluetooth: HCI socket layer initialized
[   20.438905] Bluetooth: L2CAP socket layer initialized
[   20.444005] Bluetooth: SCO socket layer initialized
=> Loading kernel modules...

=> Starting udev and waiting for devices to settle...
[   20.691083] udevd[357]: starting version 3.2.4
[   20.769017] udevd[358]: starting eudev-3.2.4
[   21.578690] marvell-cesa f1030000.crypto: CESA device successfully registered
[   21.617180] orion_wdt: Initial timeout 25 sec
=> Remounting rootfs read-only...
[   23.158797] random: crng init done
[   30.559392] EXT4-fs (sda1): re-mounted. Opts: data=ordered
=> Activating btrfs devices...
Scanning for Btrfs filesystems
=> Activating encrypted devices...
=> Checking filesystems:
=> Mounting rootfs read-write...
[   31.302345] EXT4-fs (sda1): re-mounted. Opts: data=ordered
=> Mounting all non-network filesystems...
=> Initializing swap...
=> Initializing random seed...
=> Setting up loopback interface...
=> Setting up hostname to 'void-live'...
=> Loading sysctl(8) settings...
* Applying /usr/lib/sysctl.d/void.conf ...
kernel.core_uses_pid = 1
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
kernel.kptr_restrict = 1
kernel.dmesg_restrict = 1
kernel.perf_event_paranoid = 2
kernel.kexec_load_disabled = 1
sysctl: cannot stat /proc/sys/kernel/yama/ptrace_scope: No such file or directory
* Applying /etc/sysctl.conf ...
=> Initialization complete, running stage 2...
- runit: leave stage: /etc/runit/1
- runit: enter stage: /etc/runit/2
runsvchdir: default: current.
[   32.794247] udevd[420]: starting version 3.2.4
[   32.845833] udevd[420]: starting eudev-3.2.4

Void 4.13.3_1 (void-live) (console)

void-live login: r[   37.062997] mv643xx_eth_port mv643xx_eth_port.0 eth0: link up, 100 Mb/s, full duplex, flow contro
l disabled
oot
Password:
Last login: Thu Jan  1 00:00:40 on console
# [   41.212161] NET: Registered protocol family 10
[   41.219135] Segment Routing with IPv6

# pstree
runit---runsvdir-+-runsv---sshd
                 |-runsv---login---sh---pstree
                 |-runsv---udevd---udevd
                 `-runsv---dhcpcd
# uname -a
Linux void-live 4.13.3_1 #1 PREEMPT Mon Sep 25 05:39:14 UTC 2017 armv5tel GNU/Linux
# free -m
              total        used        free      shared  buff/cache   available
Mem:            114          12          74           0          28          97
Swap:             0           0           0
# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs         52M     0   52M   0% /dev
tmpfs            58M     0   58M   0% /dev/shm
tmpfs            58M  144K   58M   1% /run
/dev/sda1       7.3G  271M  6.7G   4% /
cgroup           58M     0   58M   0% /sys/fs/cgroup
tmpfs            58M     0   58M   0% /tmp
#
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 26, 2017 02:46AM
maldridge,

Awesome :)

Please do repost the envs for booting and a complete serial log whenever you got that!

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 28, 2017 01:57AM
Here's a full bootlog. This is with a muslc implementation, but it is effectively identical to the glibc trace.



U-Boot 2016.05-tld-1 (Jun 12 2016 - 13:41:47 -0700)
Pogoplug V4

SoC:   Kirkwood 88F6192_A1
DRAM:  128 MiB
WARNING: Caches not enabled
NAND:  128 MiB
MMC:   kwsdio: 0
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
Hit any key to stop autoboot:  0
Pogov4> printenv
arcNumber=3960
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec
bootcmd_exec=run load_uimage; if run load_initrd; then if run load_dtb; then bootm $load_uimage_addr $load_initrd_addr
 $load_dtb_addr; else bootm $load_uimage_addr $load_initrd_addr; fi; else if run load_dtb; then bootm $load_uimage_add
r - $load_dtb_addr; else bootm $load_uimage_addr; fi; fi
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootdelay=10
bootdev=usb
device=0:1
devices=usb ide mmc
disks=0 1 2 3
dtb_file=/boot/dts/kirkwood-pogoplug_v4.dtb
ethact=egiga0
ethaddr=00:25:31:05:a7:5b
if_netconsole=ping $serverip
ipaddr=192.168.0.231
led_error=orange blinking
led_exit=green off
led_init=green blinking
load_dtb=echo loading DTB $dtb_file ...; load $bootdev $device $load_dtb_addr $dtb_file
load_dtb_addr=0x1c00000
load_initrd=echo loading uInitrd ...; load $bootdev $device $load_initrd_addr /boot/uInitrd
load_initrd_addr=0x1100000
load_uimage=echo loading uImage ...; load $bootdev $device $load_uimage_addr /boot/uImage
load_uimage_addr=0x800000
machid=f78
mainlineLinux=yes
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:2M(u-boot),3M(uImage),3M(uImage2),8M(failsafe),112M(root)
partition=nand0,2
preboot_nc=run if_netconsole start_netconsole
scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide reset";  setenv
scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; fo
r disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_uima
ge_addr /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv
 bootdev $dev; fi; fi; done; fi; done
serverip=192.168.0.220
set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; vers
ion;
stderr=serial
stdin=serial
stdout=serial
uenv_addr=0x810000
uenv_import=echo importing envs ...; env import -t $uenv_addr $filesize
uenv_init_devices=setenv init_usb "usb start";  setenv init_ide "ide reset";  setenv init_mmc "mmc rescan"; for devtyp
e in $devices; do run init_$devtype; done;
uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices;  do for disknum in 0; do run uenv_read
_disk; done; done;
uenv_read=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 $uenv_addr /boot/uEnv.txt; then se
tenv uenv_loaded 1; fi
uenv_read_disk=if test $devtype -eq mmc; then if $devtype part; then run uenv_read;  fi; else if $devtype part $disknu
m; then run uenv_read; fi;  fi
usb_ready_retry=15

Environment size: 2877/131068 bytes
Pogov4> setenv load_image_addr 0x800000
Pogov4> setenv scan_disk 'echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide
reset";  setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; r
un scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disk
num:1 $load_image_addr /boot/zImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $di
sknum:1; setenv bootdev $dev; fi; fi; done; fi; done'
Pogov4> setenv dtb_file '/boot/dtbs/kirkwood-pogoplug-series-4.dtb'
Pogov4> setenv load_image 'echo loading Image ...; load $bootdev $device $load_image_addr /boot/zImage'
Pogov4> setenv bootcmd_exec 'run load_image; if run load_initrd; then if run load_dtb; then bootz $load_image_addr $lo
ad_initrd_addr $load_dtb_addr; else bootz $load_image_addr $load_initrd_addr; fi; else if run load_dtb; then bootz $lo
ad_image_addr - $load_dtb_addr; else bootz $load_image_addr; fi; fi'
Pogov4> setenv load_dtb_addr 0x3000000
Pogov4> boot
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices...
Use USB retry period from the environment: 15 second(s)
1 Storage Device(s) found

Reset IDE: ide_preinit failed

Partition Map for USB device 0  --   Partition Type: DOS

Part    Start Sector    Num Sectors     UUID            Type
  1     2048            15728640        6f963f29-01     83 Boot
loading envs from usb 0 ...
** File not found /boot/uEnv.txt **

no IDE devices available
running scan_disk ...
Scan device usb
device usb 0:1
1 bytes read in 317 ms (0 Bytes/s)
Found bootable drive on usb 0
loading Image ...
3839416 bytes read in 548 ms (6.7 MiB/s)
loading uInitrd ...
11926531 bytes read in 940 ms (12.1 MiB/s)
loading DTB /boot/dtbs/kirkwood-pogoplug-series-4.dtb ...
10694 bytes read in 935 ms (10.7 KiB/s)
Kernel image @ 0x800000 [ 0x000000 - 0x3a95b8 ]
## Loading init Ramdisk from Legacy Image at 01100000 ...
   Image Name:   Void Linux
   Created:      2017-09-28   6:21:12 UTC
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    11926467 Bytes = 11.4 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 03000000
   Booting using the fdt blob at 0x3000000
   Loading Ramdisk to 06fae000, end 07b0dbc3 ... OK
   Loading Device Tree to 06fa8000, end 06fad9c5 ... OK
Using machid 0xf78 from environment

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.13.3_1 (maldridge@darkstar) (gcc version 6.3.0 (GCC)) #1 PREEMPT Tue Sep 26 06:20:29 UT
C 2017
[    0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=0005397f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] OF: fdt: Machine model: Cloud Engines PogoPlug Series 4
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 mtdparts=orion_nand:2M(u-boot)
,3M(uImage),3M(uImage2),8M(failsafe),112M(root)
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 104860K/131072K available (8192K kernel code, 712K rwdata, 2008K rodata, 1024K init, 284K bss,
26212K reserved, 0K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xc8800000 - 0xff800000   ( 880 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0900000   (9184 kB)
[    0.000000]       .init : 0xc0c00000 - 0xc0d00000   (1024 kB)
[    0.000000]       .data : 0xc0d00000 - 0xc0db228c   ( 713 kB)
[    0.000000]        .bss : 0xc0db8cec - 0xc0dffd0c   ( 285 kB)
[    0.000000] random: get_random_u32 called from cache_alloc_refill+0x378/0x8dc with crng_init=0
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Tasks RCU enabled.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] clocksource: orion_clocksource: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 11467562657 ns
[    0.000014] sched_clock: 32 bits at 166MHz, resolution 6ns, wraps every 12884901885ns
[    0.000067] Switching to timer-based delay loop, resolution 6ns
[    0.000771] Console: colour dummy device 80x30
[    0.000825] Calibrating delay loop (skipped), value calculated using timer frequency.. 333.33 BogoMIPS (lpj=1666666
)
[    0.000859] pid_max: default: 32768 minimum: 301
[    0.001149] Security Framework initialized
[    0.001363] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.001400] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.002717] CPU: Testing write buffer coherency: ok
[    0.004252] Setting up static identity map for 0x100000 - 0x100058
[    0.004660] mvebu-soc-id: MVEBU SoC ID=0x6281, Rev=0x3
[    0.005038] Hierarchical SRCU implementation.
[    0.010036] devtmpfs: initialized
[    0.015716] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.015756] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.016357] prandom: seed boundary self test passed
[    0.022757] prandom: 100 self tests passed
[    0.022785] pinctrl core: initialized pinctrl subsystem
[    0.024412] NET: Registered protocol family 16
[    0.025161] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.027334] cpuidle: using governor ladder
[    0.027437] cpuidle: using governor menu
[    0.028154] Feroceon L2: Enabling L2
[    0.028217] Feroceon L2: Cache support initialised.
[    0.028733] [Firmware Info]: /ocp@f1000000/ethernet-controller@72000/ethernet0-port@0: local-mac-address is not set
[    0.035719] No ATAGs?
[    0.049514] vgaarb: loaded
[    0.049993] SCSI subsystem initialized
[    0.050745] usbcore: registered new interface driver usbfs
[    0.050856] usbcore: registered new interface driver hub
[    0.050971] usbcore: registered new device driver usb
[    0.052631] clocksource: Switched to clocksource orion_clocksource
[    0.187263] VFS: Disk quotas dquot_6.6.0
[    0.187385] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.202127] NET: Registered protocol family 2
[    0.203277] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.203316] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.203346] TCP: Hash tables configured (established 1024 bind 1024)
[    0.203472] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.203508] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.203766] NET: Registered protocol family 1
[    0.204367] RPC: Registered named UNIX socket transport module.
[    0.204385] RPC: Registered udp transport module.
[    0.204396] RPC: Registered tcp transport module.
[    0.204407] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.204761] Unpacking initramfs...
[    1.211169] Freeing initrd memory: 11648K
[    1.211399] NetWinder Floating Point Emulator V0.97 (double precision)
[    1.212809] audit: initializing netlink subsys (disabled)
[    1.213542] Initialise system trusted keyrings
[    1.213636] Key type blacklist registered
[    1.213771] audit: type=2000 audit(1.210:1): state=initialized audit_enabled=0 res=1
[    1.213892] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[    1.213993] zbud: loaded
[    1.215282] NFS: Registering the id_resolver key type
[    1.215321] Key type id_resolver registered
[    1.215334] Key type id_legacy registered
[    1.215359] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.215374] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    1.215684] jffs2: version 2.2. (NAND) (SUMMARY)  � 2001-2006 Red Hat, Inc.
[    1.215972] fuse init (API version 7.26)
[    1.216530] orangefs_debugfs_init: called with debug mask: :none: :0:
[    1.216929] orangefs_init: module version upstream loaded
[    1.216944] SGI XFS with ACLs, security attributes, realtime, no debug enabled
[    2.552642] random: fast init done
[   10.106961] Key type asymmetric registered
[   10.106984] Asymmetric key parser 'x509' registered
[   10.107085] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[   10.107102] io scheduler noop registered
[   10.107114] io scheduler deadline registered
[   10.107229] io scheduler cfq registered (default)
[   10.108916] kirkwood-pinctrl f1010000.pin-controller: registered pinctrl driver
[   10.111828] mvebu-pcie mbus@f1000000:pcie-controller@82000000: PCI host bridge to bus 0000:00
[   10.111859] pci_bus 0000:00: root bus resource [io  0x1000-0xfffff]
[   10.111880] pci_bus 0000:00: root bus resource [mem 0xe0000000-0xefffffff]
[   10.111900] pci_bus 0000:00: root bus resource [bus 00-ff]
[   10.112416] PCI: bus0: Fast back to back transfers disabled
[   10.112452] pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[   10.112951] PCI: bus1: Fast back to back transfers enabled
[   10.113033] pci 0000:00:01.0: PCI bridge to [bus 01]
[   10.113860] mv_xor f1060800.xor: Marvell shared XOR driver
[   10.173807] mv_xor f1060800.xor: Marvell XOR (Registers Mode): ( xor cpy sg intr )
[   10.174115] mv_xor f1060900.xor: Marvell shared XOR driver
[   10.233783] mv_xor f1060900.xor: Marvell XOR (Registers Mode): ( xor cpy sg intr )
[   10.234408] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[   10.236296] console [ttyS0] disabled
[   10.236391] f1012000.serial: ttyS0 at MMIO 0xf1012000 (irq = 25, base_baud = 10416666) is a 16550A
[   10.900719] console [ttyS0] enabled
[   10.915482] loop: module loaded
[   10.919385] sata_mv f1080000.sata: slots 32 ports 1
[   10.926455] scsi host0: sata_mv
[   10.929934] ata1: SATA max UDMA/133 irq 32
[   10.935202] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xf1
[   10.941597] nand: Hynix H27U1G8F2BTR-BC
[   10.945468] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[   10.953044] Scanning device for bad blocks
[   11.072842] 5 cmdlinepart partitions found on MTD device orion_nand
[   11.079083] Creating 5 MTD partitions on "orion_nand":
[   11.084242] 0x000000000000-0x000000200000 : "u-boot"
[   11.090793] 0x000000200000-0x000000500000 : "uImage"
[   11.097380] 0x000000500000-0x000000800000 : "uImage2"
[   11.104078] 0x000000800000-0x000001000000 : "failsafe"
[   11.110950] 0x000001000000-0x000008000000 : "root"
[   11.120199] libphy: Fixed MDIO Bus: probed
[   11.125461] libphy: orion_mdio_bus: probed
[   11.136162] mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4
[   11.264296] ata1: SATA link down (SStatus 0 SControl F300)
[   12.249896] mv643xx_eth_port mv643xx_eth_port.0 eth0: port 0 with MAC address 00:25:31:05:a7:5b
[   12.258771] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[   12.265340] ehci-pci: EHCI PCI platform driver
[   12.269867] ehci-orion: EHCI orion driver
[   12.274188] orion-ehci f1050000.ehci: EHCI Host Controller
[   12.279694] orion-ehci f1050000.ehci: new USB bus registered, assigned bus number 1
[   12.287596] orion-ehci f1050000.ehci: irq 29, io mem 0xf1050000
[   12.322677] orion-ehci f1050000.ehci: USB 2.0 started, EHCI 1.00
[   12.328990] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[   12.335798] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   12.343024] usb usb1: Product: EHCI Host Controller
[   12.347888] usb usb1: Manufacturer: Linux 4.13.3_1 ehci_hcd
[   12.353467] usb usb1: SerialNumber: f1050000.ehci
[   12.359107] hub 1-0:1.0: USB hub found
[   12.362976] hub 1-0:1.0: 1 port detected
[   12.367775] usbcore: registered new interface driver usb-storage
[   12.374344] mousedev: PS/2 mouse device common for all mice
[   12.722677] usb 1-1: new high-speed USB device number 2 using orion-ehci
[   12.914976] usb 1-1: New USB device found, idVendor=090c, idProduct=1000
[   12.921673] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   12.928829] usb 1-1: Product: USB DISK
[   12.932565] usb 1-1: Manufacturer: SMI Corporation
[   12.938403] usb-storage 1-1:1.0: USB Mass Storage device detected
[   12.945004] scsi host1: usb-storage 1-1:1.0
[   13.442669] rtc-mv f1010300.rtc: internal RTC not ticking
[   13.448299] i2c /dev entries driver
[   13.453860] hidraw: raw HID events driver (C) Jiri Kosina
[   13.459802] drop_monitor: Initializing network drop monitor service
[   13.466510] NET: Registered protocol family 17
[   13.471048] Key type dns_resolver registered
[   13.476515] registered taskstats version 1
[   13.480596] Loading compiled-in X.509 certificates
[   13.485496] zswap: loaded using pool lzo/zbud
[   13.503678] Key type big_key registered
[   13.520175] Key type encrypted registered
[   13.526314] hctosys: unable to open rtc device (rtc0)
[   13.536422] Freeing unused kernel memory: 1024K
[   14.100284] dracut: dracut-046
[   14.286767] scsi 1:0:0:0: Direct-Access     SMI      USB DISK         1100 PQ: 0 ANSI: 4
[   14.304928] sd 1:0:0:0: [sda] 15730688 512-byte logical blocks: (8.05 GB/7.50 GiB)
[   14.320763] sd 1:0:0:0: [sda] Write Protect is off
[   14.336526] sd 1:0:0:0: [sda] No Caching mode page found
[   14.341902] sd 1:0:0:0: [sda] Assuming drive cache: write through
[   14.370000]  sda: sda1
[   14.379079] sd 1:0:0:0: [sda] Attached SCSI removable disk
[   14.642245] systemd-udevd[183]: starting version 3.2.4
[   14.663629] udevd[184]: starting eudev-3.2.4
[   15.128556] input: gpio_keys as /devices/platform/gpio_keys/input/input0
[   15.307889] usbcore: registered new interface driver uas
[   15.450271] mvsdio f1090000.mvsdio: Got CD GPIO
[   15.505688] mvsdio f1090000.mvsdio: Got WP GPIO
[   15.953225] EXT4-fs (sda1): mounting ext3 file system using the ext4 subsystem
[   15.974823] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[   16.257174] dracut: Checking ext3: /dev/disk/by-label/rootfs
[   16.265753] dracut: issuing e2fsck -a  /dev/disk/by-label/rootfs
[   16.359341] dracut: rootfs: clean, 8998/491520 files, 98475/1966080 blocks
[   16.394506] dracut: Mounting /dev/disk/by-label/rootfs with -o defaults
[   16.481352] EXT4-fs (sda1): mounting ext3 file system using the ext4 subsystem
[   16.504562] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[   16.655543] dracut: Mounted root filesystem /dev/sda1
[   17.125111] dracut: Switching root
- runit: $Id: 25da3b86f7bed4038b8a039d2f8e8c9bbcf0822b $: booting.
- runit: enter stage: /etc/runit/1
=> Welcome to Void!
=> Mounting pseudo-filesystems...
[   17.952863] raid6: int32x1  gen()    63 MB/s
[   18.123295] raid6: int32x1  xor()    42 MB/s
[   18.292837] raid6: int32x2  gen()    78 MB/s
[   18.462976] raid6: int32x2  xor()    60 MB/s
[   18.632901] raid6: int32x4  gen()    81 MB/s
[   18.802851] raid6: int32x4  xor()    55 MB/s
[   18.973168] raid6: int32x8  gen()    84 MB/s
[   19.143055] raid6: int32x8  xor()    57 MB/s
[   19.147314] raid6: using algorithm int32x8 gen() 84 MB/s
[   19.152599] raid6: .... xor() 57 MB/s, rmw enabled
[   19.157401] raid6: using intx1 recovery algorithm
[   19.165438] xor: measuring software checksum speed
[   19.262700]    arm4regs  :   726.000 MB/sec
[   19.362722]    8regs     :   436.000 MB/sec
[   19.462650]    32regs    :   634.000 MB/sec
[   19.466823] xor: using function: arm4regs (726.000 MB/sec)
[   19.627082] Btrfs loaded, crc32c=crc32c-generic
[   19.658523] tun: Universal TUN/TAP device driver, 1.6
[   19.692327] PPP generic driver version 2.4.2
[   19.748812] device-mapper: uevent: version 1.0.3
[   19.753925] device-mapper: ioctl: 4.36.0-ioctl (2017-06-09) initialised: dm-devel@redhat.com
[   19.971918] Bluetooth: Core ver 2.22
[   19.975681] NET: Registered protocol family 31
[   19.980107] Bluetooth: HCI device and connection manager initialized
[   19.986482] Bluetooth: HCI socket layer initialized
[   19.991345] Bluetooth: L2CAP socket layer initialized
[   19.996472] Bluetooth: SCO socket layer initialized
=> Loading kernel modules...

=> Starting udev and waiting for devices to settle...
[   20.240414] udevd[361]: starting version 3.2.4
[   20.302068] udevd[362]: starting eudev-3.2.4
[   21.180807] orion_wdt: Initial timeout 25 sec
[   21.328545] marvell-cesa f1030000.crypto: CESA device successfully registered
=> Remounting rootfs read-only...
[   22.734682] EXT4-fs (sda1): re-mounted. Opts: data=ordered
=> Activating btrfs devices...
Scanning for Btrfs filesystems
[   23.343099] random: crng init done
=> Activating encrypted devices...
=> Checking filesystems:
=> Mounting rootfs read-write...
[   23.503376] EXT4-fs (sda1): re-mounted. Opts: data=ordered
=> Mounting all non-network filesystems...
=> Initializing swap...
=> Initializing random seed...
=> Setting up loopback interface...
=> Setting up hostname to 'longshot-musl'...
=> Loading sysctl(8) settings...
* Applying /usr/lib/sysctl.d/void.conf ...
kernel.core_uses_pid = 1
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
kernel.kptr_restrict = 1
kernel.dmesg_restrict = 1
kernel.perf_event_paranoid = 2
kernel.kexec_load_disabled = 1
sysctl: cannot stat /proc/sys/kernel/yama/ptrace_scope: error code 2
* Applying /etc/sysctl.conf ...
=> Initialization complete, running stage 2...
- runit: leave stage: /etc/runit/1
- runit: enter stage: /etc/runit/2
runsvchdir: default: current.
[   24.955903] udevd[424]: starting version 3.2.4
[   24.993278] udevd[424]: starting eudev-3.2.4
[   25.428640] NET: Registered protocol family 10

Void 4.13.3_1 (longshot-musl) (console)

void-live login: root
Password:
Last login: Thu Jan  1 00:00:32 on console
# xbps-uhelper arch
armv5tel-musl
# uname -a
Linux longshot-musl 4.13.3_1 #1 PREEMPT Tue Sep 26 06:20:29 UTC 2017 armv5tel GNU/Linux
# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs         52M     0   52M   0% /dev
tmpfs            58M     0   58M   0% /dev/shm
tmpfs            58M  132K   58M   1% /run
/dev/sda1       7.4G  201M  6.8G   3% /
cgroup           58M     0   58M   0% /sys/fs/cgroup
tmpfs            58M     0   58M   0% /tmp
# free -m
              total        used        free      shared  buff/cache   available
Mem:            114          11          76           0          26          98
Swap:             0           0           0
# pstree
runit---runsvdir-,-runsv---sshd
                 |-runsv---login---sh---pstree
                 |-runsv---dhcpcd
                 |-runsv---udevd
Re: PogoPlug Mobile - Stuck at "booting the kernel."
September 28, 2017 03:18AM
Thanks maldridge! I've added this to the Wiki thread.

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