Eigene Kernel-Module für den Raspi kompilieren

Wer mal so richtig in eine verschimmelt saure Zitrone beißt und sich eigene Kernel-Module für den Raspi bauen muss, weil z.B. der vxcan- Treiber nicht im Standard-Kernel enthalten ist, hier die unter Schmerzen entstandene Anleitung:

erstmal das alte python 2 installieren

sudo apt install python2

Dann den Anweisungen auf https://github.com/RPi-Distro/rpi-source folgen

sudo apt install git bc bison flex libssl-dev
sudo wget https://raw.githubusercontent.com/RPi-Distro/rpi-source/master/rpi-source -O /usr/local/bin/rpi-source && sudo chmod +x /usr/local/bin/rpi-source && /usr/local/bin/rpi-source -q --tag-update
rpi-source

dann noch fix das ncurses- Paket

sudo apt install libncurses5-dev

Danach ist im aktuellen Verzeichnis ein Verzeichnis linux mit all den Sourcen.

Da kann man dann reinwechseln und sich mit

sudo modprobe configs
zcat /proc/config.gz > .config

die aktuelle Config ziehen, händisch editieren

und mit

make oldconfig
make

beginnt stundenlanges Warten…

Am nächsten Morgen findet sich dann das ersehnte Kernel- Modul in ~/linux/drivers/net/can und kann dann mit einem beherzten

sudo insmod vxcan.ko

eingebunden werden

Kurzform

Scheinbar gibt's zum Compilieren doch noch die Kurzform, ohne den ganzen Kernel machen zu müssen: Die Konfig .config wie oben beschrieben erzeugen und anpassen, und dann

cd ~/linux/drivers/net/can/
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules