Zusammenbau
Unbedingt darauf achten, dass das Kabel richtig herum angeschlossen wurde. Beachtet dazu die Pfeile an den Kabelenden

Mittels lspci schauen, ob das Modul erkannt wurde

Kernel kompilieren
Ich empfehle ein separates Ubuntu-System um den Kernel zu kompilieren, das macht den Vorgang etwas einfacher. Ich habe hierzu ein aktuelles Ubuntu 24.04 LTS verwendet, welches unter amd64 läuft, also kein arm basiertes system.
Es vereinfacht die Sache, wenn auf dem Raspberry Pi SSH Zugriff für root mittels Password aktiviert wird.
vi /etc/ssh/sshd_config
die Zeile
PermitRootLogin prohibit-password
in
PermitRootLogin yes
ändern. Und falls noch nicht geschehen, root ein Password geben
sudo su
passwd
Dann mit dem folgenden Befehl schauen, welcher Kernel aktuell läuft
sudo uname -r
Bei mir ist das 6.12, wie im folgenden Bild zu sehen.

Dann auf die Raspberry Pi Kernel Seite gehen (https://github.com/raspberrypi/linux) und den passenden Kernel auswählen

Die URL des Repositories einfach mal zwischenspeichern, die benötigen wir im laufe des folgenden Ablaufs. Die URL findet ihr hier:

Weiter geht es auf dem Ubuntu System
Abhängigkeiten installieren
sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev sshfs neovim gcc-aarch64-linux-gnu
Arbeitsverzeichnis erstellen
mkdir ~/cm4
mkdir ~/cm4/gcc-linaro
GCC compiler herunterladen und installieren
wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
mv gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu gcc-linaro
Umgebungsvariablen anpassen
# vi ~/.bashrc
export PATH=$PATH:~/cm4/gcc-linaro/bin
Umgebung aktualisieren
source ~/.bashrc
Nun das Linux repository klonen (URL, welche wir uns oben gemerkt haben):
git clone --depth=1 https://github.com/raspberrypi/linux/…
Config Datei erstellen
cd linux
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
Kernel Treiber auswählen
device drivers > network device support > wireless LAN > intel devices > intel wireless wifi next gen agn(iwlwifi)
device drivers > network device support > wireless LAN > intel devices > intel wireless wifi next gen agn(iwlwifi) > intel wireless wifi MVM
Kernel kompilieren (das wird eine Zeit dauern)
make -j8 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs
Nachdem der Kernel kompiliert wurde, können wir die Dateien auf den Raspberry Pi übertragen
sudo mkdir /mnt/pi
sudo mkdir /mnt/pi-boot
sudo sshfs root@192.168.x.x:/ /mnt/pi
sudo sshfs root@192.168.x.x:/boot /mnt/pi-boot
(192.168.x.x ist die IP-Adresse des Raspberry Pi)
sudo env PATH=$PATH make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=/mnt/pi modules_install
cd ~/cm4/linux
sudo cp arch/arm64/boot/Image /mnt/pi-boot/kernel8.img
sudo cp arch/arm64/boot/dts/broadcom/*.dtb /mnt/pi-boot/
sudo cp arch/arm64/boot/dts/overlays/*.dtb* /mnt/pi-boot/overlays/
sudo cp arch/arm64/boot/dts/overlays/README /mnt/pi-boot/overlays/
Auf dem Raspberry Pi den Kernel aktivieren
sudo vi /boot/firmware/config.txt
arm_64bit=1 kernel=kernel8.img
(Die Zeile arm_64bit=1 existiert schon, den Parameter mir kernel einfach anhängen)
Den Raspberry Pi neu starten und schauen, ob der Treiber vorhanden ist und geladen wurde.
Das geschieht mittels
dmesg | grep iwlwifi

In meinem Beispiel ist zu erkennen, dass iwlwifi-ty-a0-gf-a0* fehlt. Es genügt hier, die neuste Version zu holen und zu installieren.
Dazu auf https://gitlab.com/kernel-firmware/linux-firmware gehen und die Datei, inkl. Versionsnummer, in die Suche eintragen. Dann die fehlende Firmware Datei auf dem Raspberry Pi ins richtige Verzeichnis herunterladen
cd /lib/firmware
wget https://gitlab.com/kernel-firmware/linux-firmware/-/raw/main/intel/iwlwifi/iwlwifi-ty-a0-gf-a0-89.ucode
Auf meinem System fehlte anschließend noch die iwlwifi-ty-a0-gf-a0.pnvm, welche ich auf der gleichen Seite gesucht und heruntergeladen habe.

cd /lib/firmware
wget https://gitlab.com/kernel-firmware/linux-firmware/-/raw/main/intel/iwlwifi/iwlwifi-ty-a0-gf-a0.pnvm
Nach einem erneuten Neustart sollte der Treiber dann geladen werden und das neue Gerät steht zur Verfügung
