This article documents configuration steps I used to get all the peripherals working on my Odroid N2+ running the 6.7.9-1-MANJARO-ARM linux kernel. It might help you today; it will definitely help me in 8 months when something stops working.
The Odroid N2+ has no built in wireless device, but Odroid sells a USB Wifi/Bluetooth module with the Realtek RTL8821CU chip. The Manjaro ARM kernel doesn't have a driver available by default, but you can install the rtw88 firmware package using dkms.
Some sources will still point you to brektrou's rtl8821CU package or morrownr's 8821c1-20210916, but neither support linux kernel versions 6.x, and are superseded by rtw88. rtw88 is distributed as an AUR package, but I couldn't get makepkg to build it correctly and just built and installed directly from github using dkms. The only kernel header package I needed was linux-headers:
pacman -S linux-headers
This was more difficult to figure out.
First you need to set setup your /etc/asound.conf file to establish which output device to use. Here's mine based on information from the Odroid Wiki:
pcm.!default {
type plug
slave {
#pcm "hw:0,0" # HDMI output
pcm "hw:0,1" #Internal DAC(audio jack) output
#pcm "hw:0,2" # SPDIF output
}
}
This configuration sets the 3.5mm jack as the default output, you could swap in the one of the commented lines to use another output device.
Annoyingly, ALSA enumerates 56 different controls on this board, most of which are esoteric minor settings. qwr's Armbian forum post provides a list of commands to put these esoteric settings into a reasonable state where I was able to play sound:
amixer sset 'FRDDR_A SINK 1 SEL' 'OUT 1'
amixer sset 'FRDDR_A SRC 1 EN' 'on'
amixer sset 'TDMOUT_B SRC SEL' 'IN 0'
amixer sset 'TOHDMITX I2S SRC' 'I2S B'
amixer sset 'TOHDMITX' 'on'
amixer sset 'FRDDR_B SINK 1 SEL' 'OUT 2'
amixer sset 'FRDDR_B SRC 1 EN' 'on'
amixer sset 'TDMOUT_C SRC SEL' 'IN 1'
amixer sset 'TOACODEC SRC' 'I2S C'
amixer sset 'TOACODEC OUT EN' 'on'
amixer sset 'TOACODEC Lane Select' '0'
amixer sset 'ACODEC' '255'
amixer sset 'FRDDR_C SINK 1 SEL' 'OUT 3'
amixer sset 'FRDDR_C SRC 1 EN' 'on'
amixer sset 'SPDIFOUT SRC SEL' 'IN 2'
You can then make these settings the persistent defaults with:
alsactl store
When everything is working you should be able to play sound with speaker-test.
speaker-test -D hw:0,1
Archwiki - Network Configuration; Drivers and Firmware