[BPI-R64] Imagebuilder R64 ArchlinuxArm, linux-rolling-stable

See this post, how to fix:

1 Like

Thank you very much for this post. It helped a lot.

One further question: I used the following script from lynxthecat to enable and apply for using Cake as congestion control: https://github.com/lynxthecat/cake-dual-ifb

To apply this some kernel options needed to be changed / added, please see the attached Git patch file for the “defconfig” file.

Would it be possible to add/change these kernel options in your AUR-repository for building the linux kernel.

Thank you very much in advance. Kernel_Options_for_Cake_congestion_control.patch (2.4 KB)

@frank-w and @ericwoud Thank you very much for these posts. They helped a lot an I was able to set the PPOE-connection properly.

I’ll see what is needed for cake, those options are not all related.

Add cake using systemd-networkd would be the easiest way.

@Keks So I’ve added CONFIG_NET_SCH_CAKE=m, and rebuilt the kernel. Update the linux-bpir-git package and it should be available.

@ericwoud Thank you for adding the kernel option.

Sorry, I accidentally posted an incorrect link in my last post. I’ve just updated the link again. As described here, most of the kernel options are necessary… I did a bit of try-and-error here and built the kernel with different options. There are certainly a few options in there that are not absolutely necessary, but most of them seem to be necessary.

So just use:

https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html#%5BCAKE%5D%20Section%20Options

Edit:

I just added a few more dependencies, but it is scheduled to be rebuild at nighttime.

Thank you for adding the dependencies.

Unfortunately, the added options do not seem to be sufficient for cake. I get the following error message: Dependency failed for Apply Cake scheduling based upon dual IFB interface (ingress handling).

Can you try if we are missing

CONFIG_NET_SCH_INGRESS=m

PKGBUILD obtained like so:

git clone --branch linux-bpir-git https://github.com/ericwoud/archlinuxarm-repo.git

I already added the option, so makepkg the package, or wait 24h and it will be in prebuild package.

Thank you again for investigating and supporting.

Yes, that one is definetely missing:

CONFIG_NET_SCH_INGRESS=m

Unfortunately, it is not that easy to identify after many trials the really needed modules. In the following I will try to give some further info based on my mind, I hope remember as good as possible.

Furthermore I am pretty sure to remember that the following are needed:

CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_DSMARK=m

Also further _CLS modules were needed, but I am sure which (at least _CLS, _CLS_BASIC and DS marks are used and the matchall):

CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_RSVP=n
CONFIG_NET_CLS_RSVP6=n
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_MATCHALL=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_FLOWER=m

Not sure about this one:

CONFIG_NET_EMATCH=y

Also here some of those are needed, at least the _CTINFO and _CONNMARK, not sure about the others:

CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CTINFO=m
CONFIG_NET_ACT_SKBMOD=m
CONFIG_NET_ACT_IFE=m
CONFIG_NET_ACT_TUNNEL_KEY=m
CONFIG_NET_ACT_CT=m
CONFIG_NET_ACT_GATE=m

Besides the CONNTRACK_PPTP, which you already added for us (thanks again) I remember that here also some furthers were needed:

CONFIG_NF_CONNTRACK_ZONES=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CONNTRACK_TIMEOUT=y
CONFIG_NF_CONNTRACK_TIMESTAMP=y
CONFIG_NF_CONNTRACK_LABELS=y

When it came to bridges there were also some things needed, but again not sure which:

CONFIG_BRIDGE_NETFILTER=m
CONFIG_NFT_BRIDGE_META=m
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_CONNTRACK_BRIDGE=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_MRP=y

Also here I remeber one or more those were needed:

CONFIG_NF_DUP_NETDEV=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_REJECT_NETDEV=m

Ok, added lots more, give it a try, build or wait 24h.

1 Like

Did you know you can now build the linux package on a x86-64 machine running archlinux (in a chroot)?

Thank you very much. I will try it then and give you feedback.

No, I didn’t. Do you have more details on that? I’m very interested.

Just makepkg on x86 machine…

1 Like

The new 6.10.3 now has the new options in prebuild package.

ALERT:

Router Setup using dsa port 5 now is broken, because port 5 became a dsa conduit port in the newer kernels.

Moved the repo server and image-files server over to Oracle always-free-services tier, which has a static ip. There should be no problems migrating. It may be better reachable, perhaps even through the great wall of china.

Ftp and http servers are up, https is to follow up.

http://woudstra.mywire.org

All packages are also built on this (aarch64) server periodially, keeping them up to date.

I have a new custom and simple initrd build script. It can replace mkinitcpio.

It creates a smaller imagefile and it does not use busybox, just uses the normal linux commands. Basic necessary commands for initrd are included.

It is the default for new installations. It uses the same configuration files as mkinitcpio (from the linux-bpir-git package).

To change to the new script:

pacman -Rdd mkinitcpio
pacman -Syu bpir-initrd
pacman -S linux-bpir-git

See for source of script:

https://github.com/ericwoud/archlinuxarm-repo/blob/bpir-initrd/bpir-initrd

Default config:

https://github.com/ericwoud/archlinuxarm-repo/blob/linux-bpir-git/mkinitcpio.conf

Default hook:

https://github.com/ericwoud/archlinuxarm-repo/blob/linux-bpir-git/mkinitcpio.hook

On the R64 booting from nand with a distroboot version of U-Boot is now also supported.

It boots extlinux.conf or boot.scr from sd, emmc or sata.

When no extlinux.conf or boot.scr is found on sd, emmc or sata, then a rescue linux is started from nand.

It is installed with (update all packages, including uboot and atf):

pacman -Syu bpir-uboot-git bpir-atf-git
bpir-toolbox --nand-format

See: