====== Raspberry Pi 5 mit Qualcomm NCM 865 / WCM7850 ====== Um den Raspberry Pi 5 mit Qualcomm NCM 865 / WCM7850 zu betreiben sind einige Vorbereitungen nötig. Stand 14.04.2025 ist das notwendige Kernelmodul nicht Teil des Kernels der in Raspberry Pi OS (Stand Debian testing/trixie) enthalten ist. ===== Aktuelle Kernelkonfiguration prüfen ===== pi@wifitux:~ $ sudo modprobe configs pi@wifitux:~ $ zless /proc/config.gz ... # CONFIG_ATH11K is not set <- Wi-Fi 6E # CONFIG_ATH12K is not set <- Wi-Fi 7 -- z.B. Qualcomm NCM 865 / WCM7850 ... pi@wifitux:~ $ uname -a Linux wifitux 6.12.20+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.12.20-1+rpt1~bpo12+1 (2025-03-19) aarch64 GNU/Linux ===== lspci -vvv (ohne passendes Kernelmodul) ===== Das Wireless-Modul wird korrekt erkannt, es muss später beachtet werden dass Änderungen in der /boot/firmware/config.txt notwendig sind, damit es korrekt geladen werden kann. 0001:01:00.0 Network controller: Qualcomm Technologies, Inc WCN785x Wi-Fi 7(802.11be) 320MHz 2x2 [FastConnect 7800] (rev 01) Subsystem: Quectel Wireless Solutions Co., Ltd. Device 8000 Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- ===== Anpassungen in /boot/firmware/config.txt ===== # Wi-Fi 7 test dtparam=pciex1 dtparam=pciex1_gen=3 # ath12k / mt7925e dtoverlay=pcie-32bit-dma dtoverlay=pciex1-compat-pi5,no-mip ===== Eigenen Kernel bauen (derzeit 6.12.22) ===== Ich führe dies auf meiner arm64 (Apple M1 via UTM) Debian VM aus. MLO steht in diesem Kernel-Tree nicht zur Verfügung. benny@debian:~$ mkdir linux6.12 benny@debian:~$ cd linux6.12 benny@debian:~/linux6.12$ git clone --depth=1 --branch rpi-6.12.y https://github.com/raspberrypi/linux Cloning into 'linux'... remote: Enumerating objects: 92719, done. remote: Counting objects: 100% (92719/92719), done. remote: Compressing objects: 100% (85549/85549), done. remote: Total 92719 (delta 9801), reused 25006 (delta 6182), pack-reused 0 (from 0) Receiving objects: 100% (92719/92719), 256.07 MiB | 8.04 MiB/s, done. Resolving deltas: 100% (9801/9801), done. Updating files: 100% (87504/87504), done. benny@debian:~/linux6.12$ ls linux benny@debian:~/linux6.12$ cd linux/ benny@debian:~/linux6.12/linux$ ls arch COPYING Documentation include ipc kernel MAINTAINERS net rust security usr block CREDITS drivers init Kbuild lib Makefile README samples sound virt certs crypto fs io_uring Kconfig LICENSES mm README.md scripts tools benny@debian:~/linux6.12/linux$ KERNEL=kernel_2712 benny@debian:~/linux6.12/linux$ make bcm2712_defconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/confdata.o HOSTCC scripts/kconfig/expr.o LEX scripts/kconfig/lexer.lex.c YACC scripts/kconfig/parser.tab.[ch] HOSTCC scripts/kconfig/lexer.lex.o HOSTCC scripts/kconfig/menu.o HOSTCC scripts/kconfig/parser.tab.o HOSTCC scripts/kconfig/preprocess.o HOSTCC scripts/kconfig/symbol.o HOSTCC scripts/kconfig/util.o HOSTLD scripts/kconfig/conf # # configuration written to .config # benny@debian:~/linux6.12/linux$ make menuconfig HOSTCC scripts/kconfig/mconf.o HOSTCC scripts/kconfig/lxdialog/checklist.o HOSTCC scripts/kconfig/lxdialog/inputbox.o HOSTCC scripts/kconfig/lxdialog/menubox.o HOSTCC scripts/kconfig/lxdialog/textbox.o HOSTCC scripts/kconfig/lxdialog/util.o HOSTCC scripts/kconfig/lxdialog/yesno.o HOSTCC scripts/kconfig/mnconf-common.o HOSTLD scripts/kconfig/mconf *** End of the configuration. *** Execute 'make' to start the build or try 'make help'. benny@debian:~/linux6.12/linux$ benny@debian:~/linux6.12/linux$ benny@debian:~/linux6.12/linux$ make -j4 Image.gz modules dtbs ===== Eigenen Kernel bauen (derzeit 6.14.xx) ===== MLO steht in diesem Kernel-Tree nicht zur Verfügung. benny@debian:~$ mkdir linux6.14 benny@debian:~$ cd linux6.14 benny@debian:~/linux6.14$ ls benny@debian:~/linux6.14$ git clone --depth=1 --branch rpi-6.14.y https://github.com/raspberrypi/linux Cloning into 'linux'... remote: Enumerating objects: 93971, done. remote: Counting objects: 100% (93971/93971), done. remote: Compressing objects: 100% (86561/86561), done. remote: Total 93971 (delta 10026), reused 25590 (delta 6391), pack-reused 0 (from 0) Receiving objects: 100% (93971/93971), 258.42 MiB | 8.54 MiB/s, done. Resolving deltas: 100% (10026/10026), done. Updating files: 100% (88708/88708), done. benny@debian:~/linux6.14$ cd linux benny@debian:~/linux6.14/linux$ KERNEL=kernel_2712 benny@debian:~/linux6.14/linux$ benny@debian:~/linux6.14/linux$ make bcm2712_defconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/confdata.o HOSTCC scripts/kconfig/expr.o LEX scripts/kconfig/lexer.lex.c YACC scripts/kconfig/parser.tab.[ch] HOSTCC scripts/kconfig/lexer.lex.o HOSTCC scripts/kconfig/menu.o HOSTCC scripts/kconfig/parser.tab.o HOSTCC scripts/kconfig/preprocess.o HOSTCC scripts/kconfig/symbol.o HOSTCC scripts/kconfig/util.o HOSTLD scripts/kconfig/conf # # configuration written to .config # benny@debian:~/linux6.14/linux$ benny@debian:~/linux6.14/linux$ make menuconfig HOSTCC scripts/kconfig/mconf.o HOSTCC scripts/kconfig/lxdialog/checklist.o HOSTCC scripts/kconfig/lxdialog/inputbox.o HOSTCC scripts/kconfig/lxdialog/menubox.o HOSTCC scripts/kconfig/lxdialog/textbox.o HOSTCC scripts/kconfig/lxdialog/util.o HOSTCC scripts/kconfig/lxdialog/yesno.o HOSTCC scripts/kconfig/mnconf-common.o HOSTLD scripts/kconfig/mconf *** End of the configuration. *** Execute 'make' to start the build or try 'make help'. benny@debian:~/linux6.14/linux$ benny@debian:~/linux6.14/linux$ benny@debian:~/linux6.14/linux$ make -j4 Image.gz modules dtbs