Issue with booting Alpine on an ARM SBC over the network

Emmanuel Blot
Message ID
DKIM signature
Download raw message

I’d like to boot an Orange Pi Zero SBC over the network (PXE-like 

I have first downloaded and successfully booted and used the ARM vanilla
image on the OPi0, including networking, from the MMC device, to ensure
a regular boot from a MMC card was Ok.

Next I have:

* installed uboot on OPi0 embedded SPI, and booted it up w/o any MMC
* installed and run a small bootp/dhcp/pxe/tftp/http server on a local 
   to allocate IP through DHCP and serve files to the OPi0 overt TFTP & 
* added the missing drivers to the initramfs file (namely: dwmac_sun8i,
   mdio_mux, stmmac_platform, stmmac and af_packet)
* built the uBoot-compatible initramfs file

I’m now able to boot up the Alpine vanilla kernel, that is
   vmlinuz + modified uinitrd + OPi0 DTB.

However, I do not see a way to provide Alpine Linux w/ a modloop file: 
if it could be (inefficiently) downloaded over TFTP, I did not find a 
way to
specify the modloop file as a preloaded RAM area.
 From https://wiki.alpinelinux.org/wiki/PXE_boot#HOWTO, it appears the 
way is to serve it over HTTP. So far, so good.

Nevertheless, it seems that the modloop= kernel argument does nothing: 
does not trigger any attempt to download a file over HTTP.

To sum up, I have defined the boot environment as:

   dhcp ${kernel_addr_r} boot/vmlinuz-vanilla
   dhcp ${ramdisk_addr_r} boot/uinitramfs-vanilla-net
   dhcp ${fdt_addr_r} boot/dtbs/sun8i-h2-plus-orangepi-zero.dtb

   setenv bootargs "bootargs=earlyprintk

   bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}

The TCP/IP stack and wget work as expected, as alpine.apkovl.tar.gz is
successfully downloaded (apkovl= argument).

However, no trace about the modloop… What did I miss? I did not find a
reference to this argument in the init script BTW.

These are the last lines of the boot sequence trace message:

  * Mounting boot media: [    2.920674] sunxi-mmc 1c0f000.mmc: Linked as 
a consumer to regulator.2
[    2.929237] sunxi-mmc 1c0f000.mmc: Got CD GPIO
[    2.957549] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 
16384 KB
[    2.965675] sunxi-mmc 1c10000.mmc: Linked as a consumer to 
[    2.973525] sunxi-mmc 1c10000.mmc: Dropping the link to regulator.4
  * Setting IP (eth0)...: [    8.428907] sunxi-mmc 1c10000.mmc: Linked 
as a consumer to regulator.4
[    8.437202] Generic PHY 0.1:01: attached PHY driver [Generic PHY] 
(mii_bus:phy_addr=0.1:01, irq=POLL)
[    8.437723] sunxi-mmc 1c10000.mmc: Dropping the link to regulator.4
[    8.456542] dwmac-sun8i 1c30000.ethernet eth0: No Safety Features 
support found
[    8.463882] dwmac-sun8i 1c30000.ethernet eth0: No MAC Management 
Counters available
[    8.471591] dwmac-sun8i 1c30000.ethernet eth0: PTP not supported by 
Connecting to (
[   12.645254] dwmac-sun8i 1c30000.ethernet eth0: Link is Up - 
100Mbps/Full - flow control rx/tx
alpine.apkovl.tar.gz 100% |********************************|   611  
0:00:00 ETA
  * Loading user settings from /tmp/alpine.apkovl.tar.gz: ok.
  * Installing packages to root filesystem: OK: 0 MiB in 0 packages
grep: /sysroot/etc/inittab: No such file or directory
/sbin/init not found in new root. Launching emergency recovery shell
Type exit to continue boot.
sh: can't access tty; job control turned off
/ #