linux-rpi and linux-rpi2 don't load kernel modules in sys mode installation
I’ve installed Alpine Linux on both my Raspberry Pi 3 and my Pi B+ in sys mode using the following steps:
- Partitioned an SD Card with a small primary FAT32 first partition and a big ext4 partition as second partition
- Installed Alpine Linux base system on the ext4 partition using this guide: https://wiki.alpinelinux.org/wiki/Installing\_Alpine\_Linux\_in\_a\_chroot (I’ve done this by using binfmt and a static compiled qemu to be able to chroot into it)
- Mounted the first FAT32 partition under “/boot” of the ext4 partition and chroot’ed into the ext4 partition
- Installed the correct kernel for the Pi version (linux-rpi for Pi B+ / linux-rpi2 for Pi 3) and copied all content of /usr/lib/linux-$version-rpi to /boot
- Installed the Raspberry Pi firmware including bootloader in /boot (fixup**.dat, start**.elf, bootcode.bin) and configuration (config.txt, cmdline.txt)
This resulted in a booting and working system. Sadly linux-rpi2 starting version 4.4.15-r0 did no longer load kernel modules, resulting in a system without network drivers, keyboard/mouse drivers loaded and without fbcon. X did still work and I could see the clock is working, so the system is not frozen, but I simply had no way to interact with the Pi without input or network. I have the exact same problem with my Pi B+ for linux-rpi in version 4.4.17-r0 and 4.4.20-r0, but for linux-rpi in version 4.1.20-r0 everything works fine. (I haven’t tested more kernels on the Pi B+). After updating the kernel I always made sure that the device tree files (.dtb) in /boot did match the kernel version by copying the file from /usr/lib/linux-$version-rpi into /boot. (Wrong.dtb files seems to result in the Pi not booting at all, rather than a booting system but kernel modules not being loaded.)
I’m not totally sure that this really is a bug or I’m just missing something.
Btw: Wouldn’t it be a good idea to build the driver of the ethernet port of the Pi in the kernel rather than a module? First everybody running the Pi kernel will load that driver anyway and second in case of modules not being loaded correctly one could at least connect to the Pi using SSH to investigate in fix the problem.
Best wishes,
maribu
(from redmine: issue id 6130, created on 2016-09-10)