This is something I discovered recently, and only recently did it actually start to matter for Manjaro ARM.
Because of the way we do our images and build or packages, the .install and .hook scripts from pacman packages does not get run when the manjaro-arm-tools
does it's pacstrap
section.
It seems to be because pacstrap uses the hosts pacman
to execute on the guest chroot, which is another architecture for us.
I did hope that the qemu binaries for arm, would fix this, but not quite. According to Eli from Arch Linux, using pacstrap to create a chroot for another architecture, will probably result in problems. But we did not have these problems, until recently.
Because pacman (x86_64) assumes an x86_64 architecture when it runs inside the chroot with pacstrap, any packages providing a .install or .hook will (appearently) not get it run when on armv7h or aarch64 architectures instead. This can be seen by lines like execv failed
when running the build commands. Most of the time it does not matter, but right now we have encountered a problem with a kernel update for the raspberry pi.
The rpi2 18.09 images use kernel 4.14.66, which works fine from the image. But if you try updating that kernel, to say the current 4.14.74 in the repo, USB input devices will seize to work, probably all USB devices in general.
But if I create an image with kernel 4.14.74 on it and boot it, I have working USB.
The only difference I can see, is that when I create the image, the .install and .hook from the kernel package does not get run properly, and thus it still works. These scripts will obviously get run when a normal update on the device is performed.
So my question is this. What inside the .install and .hook files can result in USB not working?
The device still boots.
Disclaimer: I have not tested this out on other devices/kernels. I will when I get home. So I don't know if this is also a problem with them.
PS: These .install files not running, might also be the problem with certain package builds failing on armv7h too. But it seems odd that aarch64 is not affected by this.