Jose Cardoso Posted November 8 Posted November 8 Hi, I’m working on enabling I²S audio output using a PCM5102 DAC on an Orange Pi Zero 2W (SoC: Allwinner H618) running Armbian_community_25.11.0-trunk.334_trixie_current_6.12.47_minimal. Despite several tests and rebuild attempts, I haven’t been able to obtain any sound output from the I²S interface. Below is a summary of what has been done so far. Hardware setup Board: Orange Pi Zero 2W SoC: Allwinner H618 DAC: PCM5102 (I²S input, analog stereo output) Connections: I2S0 → used for DAC (pins LRCK, BCLK, DIN, GND, 3.3V) Confirmed pin mappings according to H618 documentation and available DTS files. OS Image: Armbian_community_25.11.0-trunk.334_Orangepizero2w_trixie_current_6.12.47_minimal What has been done 1. Kernel confirmed to be mainline-based (6.12.47-current-sunxi64). Linux orangepizero2w 6.12.47-current-sunxi64 #1 SMP aarch64 GNU/Linux 2. Checked kernel symbols to verify presence of sunxi audio modules: Shows sound/soc/sunxi/sun8i-codec.c among others. Created a custom overlay at /boot/overlay-user/sun50i-h618-i2s0-pcm5102.dtso, based on examples from sun8i boards, with simple-audio-card referencing the i2s0 controller. Enabled overlay in /boot/armbianEnv.txt : user_overlays=sun50i-h618-i2s0-pcm5102 Rebooted and verified device tree loading → No audio device or sound card is registered. Also tried with predefined overlay sun50i-h618-i2s2-pcm5102 included in the Armbian tree → no sound card detected (aplay -l returns “no soundcards found”). Findings It seems that the H618 SoC has no upstream audio codec driver (unlike H616 which includes sun8i-codec). The I²S controller node exists in the mainline kernel sources, but may not be fully supported or linked to a DAI (Digital Audio Interface) for external DACs. simple-audio-card bindings appear to compile correctly in the overlay, but the device never registers in ALSA. Questions Is there any working DTS overlay or patch enabling I²S output (no internal codec) for the H618 platform? If not, what would be the correct approach — patching the DTS at kernel source level or adding a compatible binding manually? Has anyone successfully used a PCM5102 (or similar DAC) with the H618-based boards under Armbian? My goal To have a functional stereo I²S audio output through PCM5102 (or any compatible DAC), recognized as an ALSA sound card in Linux. Any help, hints, or working overlay examples would be greatly appreciated. Thanks in advance for your time and expertise! Jose Cardoso 0 Quote
Jose Cardoso Posted November 12 Author Posted November 12 Hello everyone, As I said, previous post, I’ve been trying to enable I²S audio output on my Orange Pi Zero 2W (Allwinner H618) using an external PCM5102 DAC, but so far the kernel does not recognize any sound device. I read that the driver sound/soc/sunxi/sun4i-i2s.c supports the H6, and “going” (posted March 4) suggested trying: compatible = "allwinner,sun50i-h6-i2s" to trigger that driver, since the H618 I²S block might be similar. Overlay compiles successfully using armbian-add-overlay and loads on boot. However, after reboot: dmesg | grep -i i2s dmesg | grep -i pcm aplay -l → aplay: no soundcards found... Could anyone confirm whether this driver can handle the H618 I²S, or if kernel patching is required to make it work? Any advice or example DTS overlay for H618 + I²S would be very helpful. Thanks in advance for your time and for the excellent work on Armbian Jose Cardoso 0 Quote
Avenom Posted 25 minutes ago Posted 25 minutes ago Just today I ran into an error "aplay: no soundcards found" I decided to follow the sequence of actions below, log in to root: ### **Symptoms** * `aplay -l` → **no soundcards found** * in `/proc/asound/cards' — empty * there is no "analog-codec" item in `armbian-config` * The sound through the mini jack does not work * the DT output ('dtc -I fs') indicates that the codec is present but not active The reason is always the same: **the kernel/DT does not include AHUB + codec machine-driver**, so ALSA does not create maps. --- > I also created the default alsa config ``` nano /etc/asound.conf ``` Inserted there so far: `` pcm.!default { type hw card 0 device 0 } ctl.!default { type hw card 0 } ``` # **Solution** ## **1. Set the desired audio overlay: `sun50i-h616-audiogpu`** ### 1.1 Cloning the repository ```bash cd /root git clone https://github.com/hviana/orangepizero2w-audio.git cd orangepizero2w-audio ``` ### 1.2 There is already a ready-made file in the repository: ``` sun50i-h616-audiogpu.dtbo ``` You don't need to compile anything. ### 1.3 Copying the overlay to the desired location ```bash mkdir -p /boot/dtb/allwinner/overlay cp sun50i-h616-audiogpu.dtbo /boot/dtb/allwinner/overlay/ ``` --- ## **2. Configure `/boot/armbianEnv.txt `** Open: ```bash nano /boot/armbianEnv.txt ``` And set **two required lines**: ```ini overlay_prefix=sun50i-h616 overlays=audiogpu ``` Delete old attempts like `analog-codec`, `sun8i-h3-codec`, etc. Save → Exit. --- ## **3. Reboot** ```bash reboot ``` --- ## **4. Check the sound after downloading** ```bash aplay -l ``` It should appear: ``` card 0: audiocodec [...] card 1: ahubi2s0 [...] card 2: HDMI [...] ``` If there are cards, the sound is restored. important! WORKING WITH SOUND (for example, playback) SHOULD BE DONE NOT FROM UNDER THE root USER, BUT FROM UNDER THE REGULAR USER! If PulseAudio, for example, is running from the system from root, then the devices may not be available. Also, if you use Home Assistant Supervised, then docker will have a self-healing hassio_audio container that will run Pulse Audio from root on the host machine and thereby block all devices. You won't be able to control the sound in this case. There's an addon that's supposed to kill this container every time it starts, but it doesn't work properly for me. Literally now, I've run out of nerves, and I've taken down my system. I will try installing Proxmox or in Docker 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.