User:Imyxh/Allwinner Nezha

From Gentoo Wiki
Jump to:navigation Jump to:search

The Allwinner Nezha is a RISC-V board released in 2021 based on the Allwinner D1 SoC.

I received the board from the D1 sponsorship program, but my original plan to use it for physics research didn't work out due to timing. I am new to Gentoo but trying to install it onto the Nezha, and will be writing up my findings here. Surely at some point I'll find something I can help with.

Installing Gentoo

My approach is to first install Fedora with free space on the SD card (done), then install Gentoo via the stage 3 tarballs (TODO).

Radio

The Nezha uses the XR829 chip for WiFi and Bluetooth. It seems the drivers and firmware for the XR829 are not in the mainline Linux kernel.

Instead, by downloading the Tina Linux SDK, we can look through their source tree and see the following important paths.

package/firmware/linux-firmware/xr819/
package/firmware/linux-firmware/xr819a/
package/firmware/linux-firmware/xr829/
package/utils/rftest/xr829/
package/utils/bluez/patches/006-xradio_hciattach-optimize-validity-check-of-mac-addr.patch
package/utils/bluez/patches/002-add-xradio-hciattach-support.patch
package/allwinner/smartlinkd/src/protocol/dependent/xradio/
package/allwinner/alsa-ucm-aw/ucm_configs/r328s2/r328s2-perf2_xr829/
package/allwinner/btmanager/config/xradio_bt_init.sh
lichee/linux-5.4/drivers/bluetooth/xradio_btlpm.c
lichee/linux-5.4/drivers/net/wireless/xr829/

I am unsure of the best way to integrate these drivers and firmware into Gentoo. Perhaps a loadable kernel module? The code seems to be mostly—if not entirely—GPLv2, so perhaps we could even put it in the kernel source tree directly. I am unfamiliar of best practices here.