I’ve been messing around with Alpine on the Raspberry Pi Zero as of late for a personal project. Has anyone here tried getting Alpine running on the Duo? I imagine it would run a bit slower than the Buildroot, but could be more capable.
I build the image, loop mount, and then replace rootfs with alpine. (need to copy many files and lib from the original image to alpine) The result is quite perfect.
Do you think you can upload the image to GitHub or somewhere else? Thanks.
Let me refine some parts of it, then I will upload my final image.
@boba here the image and instruction. Release Proof of Concept 1 · cwt/duo-buildroot-sdk · GitHub
Thanks! I’ll be sure to check it out when I get the chance…
I tried it - thanks!
My feedback:
- rndis works, see my persistent MAC addresses here: https://xyzdims.com/3d-printers/misc-hardware-notes/iot-milk-v-duo-risc-v-esbc-running-linux/#Static_IP_for_Host_with_RNDIS which you might include
- I had to use
apk [add|update] --no-check-certificate
otherwise installations fail
I tried Ubuntu (as posted in Ubuntu on the milk-v duo) but apt
is really slow, so for now ArchLinux and AlpineLinux are the best choices with a decent package manager.
may be you ran it before the RTC was set? I will take some time after boot to be able to get time from the NTP server.
I didn’t use rndis much, but I use ethernet on the IO board. I added this file:
milkv-duo:~# cat /etc/network/if-pre-up.d/set_eth0_mac
#!/bin/sh
if test -d /sys/class/net/eth0; then
ifconfig eth0 down
ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX # <-- there should be some algorithm to ensure that this MAC is unique and without overlapping any some well-known manufacturers?
ifconfig eth0 up
fi
Just apk update && apk upgrade
today, there is something wrong with clang-17:
milkv-duo:~# clang
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: clang
1. Compilation construction
Illegal instruction
while dmesg
show this:
[ 300.985245] clang[1570]: unhandled signal 4 code 0x1 at 0x0000003fe2314a46 in libLLVM-17.so[3fe1696000+7a8d000]
[ 301.000945] CPU: 0 PID: 1570 Comm: clang Tainted: GF O 5.10.4-tag- #4
[ 301.008917] epc: 0000003fe2314a46 ra : 0000003fe2314a46 sp : 0000003fffdd8110
[ 301.016318] gp : 0000002ae3503800 tp : 0000003fed535e68 t0 : 0000000000000039
[ 301.023872] t1 : 0000003fed5339b0 t2 : 0000000000000036 s0 : 0000003fe1181410
[ 301.031405] s1 : 0000003fe1167400 a0 : 000000000213c800 a1 : 0000000000000015
[ 301.038938] a2 : 0000000000000000 a3 : 0000000000200000 a4 : 000000000233c800
[ 301.046437] a5 : 000000000213c800 a6 : 000000007fffffff a7 : 0000002ae3507cb4
[ 301.053928] s2 : ffffffffffffffff s3 : 0000003fffdd8330 s4 : ffffffffffffffff
[ 301.061418] s5 : 0000003fe11673b0 s6 : 0000003fffdd82e8 s7 : 0000003fe1181410
[ 301.068907] s8 : 0000003fffdd8680 s9 : 0000000000000001 s10: 0000003febbd3d22
[ 301.076397] s11: 0000003fffdd8340 t3 : 0000003fed4c0b72 t4 : 0000000000000006
[ 301.083884] t5 : 0000000000000008 t6 : 000000000000002d
[ 301.089402] status: 8000000201804020 badaddr: 000000008330000f cause: 0000000000000002
I guess that the instruction code in libLLVM-17.so
contains something that cannot be executed on Duo.