[BPI-R64] Image builder Arch-Linux, Ubuntu and Debian

in all images there is a problem, a high idle cpu temperature. and even higher temp on MT7531 switch that ends up with serial minicom hangs.

Latest changes:

Firmware is downloaded in a more robust way.

Wifi eeprom is now loaded. Wifi range has improved a lot.

Changes are in the script only for now. There will not be a new release image at every change. If you like to use the buildR64ubuntu project, I suggest using the script. It will also help applying future changes to existing installations.

1 Like

how much is your idle temp?

for serial problem you can try this:

https://patchwork.kernel.org/project/linux-mediatek/patch/[email protected]/

I can’t monitor sensors because this is ubuntu-18.04.3-bpi-r64-5.4 I touch heat-sink that become a lot hotter then CPU. Thank you for reference.

Does this also not work?

# cat /sys/class/thermal/thermal_zone0/temp 

Have you tried using another kernel e.g. 5.10 from my repo?

ubuntu-18.04.3-bpi-r64-5.4 idle temps:

[root@r64 ~]# cat /sys/class/thermal/thermal_zone0/temp
58300
58100

and stay at this level

On this ubontu I didn’t experiment with kernels but this is good idea, thanks

Have you looked if your system is really idle on both cpu?

connected to serial, no wifi or ssh.

after 15min:

[root@r64 ~]# cat /sys/class/thermal/thermal_zone0/temp
55100

all the time this ps:

[root@r64 ~]# ps ax -o pid,rss,pcpu,comm --sort -pcpu|less
  PID   RSS %CPU COMMAND
    1  8004  0.3 systemd
 1380  5380  0.2 bash
 1758     0  0.2 kworker/1:3-eve
   16     0  0.1 kworker/1:0-eve
 1588     0  0.1 kworker/1:1-eve
 1712     0  0.1 kworker/0:3-eve
    2     0  0.0 kthreadd
    3     0  0.0 rcu_gp
    4     0  0.0 rcu_par_gp
    6     0  0.0 kworker/0:0H-mm
    7     0  0.0 kworker/u4:0-ev
    8     0  0.0 mm_percpu_wq
    9     0  0.0 ksoftirqd/0
   10     0  0.0 rcu_preempt
   11     0  0.0 migration/0
   12     0  0.0 cpuhp/0
   13     0  0.0 cpuhp/1
   14     0  0.0 migration/1
   15     0  0.0 ksoftirqd/1
   18     0  0.0 kdevtmpfs
   19     0  0.0 netns
   20     0  0.0 rcu_tasks_kthre

Maybe you can use the script of which this topic is about and move on to kernel 5.12. many issues were solved, so a good chance this issue is solved as well. You could at least try the image and compare idle temperature after 15 minutes.

Major update 31-08-2021

  • Able to install Arch-Linux, it is also now the default. Guess the repo needs a name change.
  • Using systemd’s dhcp server.
  • Using systemd-resolved
  • Many other small changes

As the image uses the newest kernels, I wanted to use the newest systemd and iproute2. With Arch-Linux it is easier to keep these up to date to a very new version. Arch-Linux uses rolling updates… I like it so much, it is now the default.

ATF mtksoc branch was fixed in a squashed commit, so I never saw it had a new commit which fixed the rebooting issue. Default branch is now the newest mtksoc branch of ATF.

U-Boot has a bug since 2021-04-rc1 in clk-uclass.c with log_ret(). Applied a patch so now the newest U-Boot is used.

So both issues are fixed? Are my repos affected (do i need to update/patch it)?

Atf you can just use the mtksoc branch, the fix is in that repo.

U-boot (mainline) needs a fix.

Mtksoc from my repo is fixed? I took it sometime from vendor repo,so i do not know if it’s last version

For uboot it is this patch? Imho it should be fixed upstream.could you send a patch to ML?

Atf the repo of openwrt was fixed.

Uboot it is about:

.https://github.com/openwrt/openwrt/blob/master/package/boot/uboot-mediatek/patches/000-mtk-01-Revert-clk-Add-debugging-for-return-values.patch

afair openwrt uses mtk-repo for atf

so i guess this is fixed…

fetched mtk-repo again and made a diff, my branch has same base, only my changes are different

$ git diff --name-only mtk/mtksoc..HEAD
.gitignore
README.md
bpi-r64-storage.svg
bpi-r64_headless.gpt
build.conf
build.sh
header_emmc.bin
header_sdmmc.bin
u-boot.bin

as far as i see the clock-patch is already reverted in my uboot-repo (branches 2021-04-bpi,2021-07-bpi and 2021-10-bpi)

afair in 2021-04 i added this (not upstream), but the other 2 should be upstream

edit: tested 2021.07-bpi while creating debian bullseye image…works without problems

1 Like

Now introduced an option for F2FS filesystem, it is also the default (except when using U-Boot).

F2FS is specially designed for flash devices that use a Flash Translation Layer, basically all mmc devices. Samsung has started to install it on some new phones now.

Also worth mentioning that the builder now builds a bootchain without U-Boot by default. Bootchain with U-Boot is still an option.

1 Like

Now Published v1.0-rc2. with 2 new binairy downloads.

Pre-build images, separate SDMMC and EMMC versions.

  • Setup as router
  • No U-Boot
  • F2FS File Sysyem
  • Torvalds kernel v5.15-rc1
  • Arch Linux.
2 Likes

Yet another small chage to bootchain:

BL31 is included in the BL2 image. This puts the entire ATF boot inside a single image. No more ATF divided over 2 images. The ATF boot recognises automatically if a linux kernel image is loaded. If so It will also load the dtb from the fip image. If there is another kind of image, like U-Boot, no dtb is loaded.

Now the fip image is build with only U-Boot inside, when booting with U-Boot (no more BL31).

The default option without U-Boot, the fip image is build with only the kernel and dtb inside (no more BL31).

See:

@ ericwoud: thank you very much for the script. I’m currently trying it out on my Arch Linux host system to get an appropriate image for the bpi64 onto an SD card. Unfortunately, the chroot does not work yet. (Error message: “chroot: failed to run command : No such file or directory” for all commands). I’ve been trying to solve the problem for a while now (arch-chroot, additional mounting points) but so far it hasn’t helped. Do you have any ideas here? I am very grateful for any help.