ODROID HiFi Shield 2 not detected as soundcard (ODROID C2)



Using Manjaro ARM LXQT Edition 18.12.1 on the Odroid C2 (on eMMC module).
First, thanks to member ‘eunkenk’ for bringing it to notion on the Hardkernel forum.
Second, whoa, that LXQT edition is a fantastic distro for the C2. Simply installable via dd-command, runs out-of-the-box, fast with latest software. Thank you, well done!

A few issues are still present: Foremost that an additional hardware plugged onto the C2, the Odroid HiFi Shield 2, is not detected as soundcard. Checked it with #asound -l, and also with PulseAudio.

On Debian as well as Ubuntu (image provided by Hardkernel), it gets detected.


As it’s using the GPIO’s I have no idea how the system would detect it.
I assume it will use the USB bus, since there is no PCI bus.

Does lsusb see it?


Thank you for your reply. Unfortunately not being able to see it with lsusb as it only shows:
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Should probably start a thread in the Audio Section of the ODROID forum to gain the needed information for ARM distros.


It should use I2S and I2C like Raspberry Pi soundcards

I guess similar like this Raspberry Pi Official 7" Touchscreen Displays Black Screen

Setting the name of the devide tree file that correspond to that card in config.txt

Odroid use device tree?

search a thread first, I don’t think you are the first one to have a not detected soundcard


Both links to their wiki are broken, the correct one is https://wiki.odroid.com/accessory/sound/hifi_shield#hifi-shield2

Plain copied form there:

  1. To ensure that the Hifi-Shield2 kernel modules are loaded on Terminal.
odroid@odroid64:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ODROIDHDMI [ODROID-HDMI], device 0: I2S dit-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
odroid@odroid64:~$ su
Password:  /* root password is "odroid" */
root@odroid64:/home/odroid# modprobe aml_i2c
root@odroid64:/home/odroid# modprobe snd_soc_pcm512x
root@odroid64:/home/odroid# modprobe snd_soc_pcm512x_i2c
root@odroid64:/home/odroid# echo pcm5242 0x4c > /sys/class/i2c-adapter/i2c-1/new_device
root@odroid64:/home/odroid# modprobe snd-soc-odroid-dac2
root@odroid64:/home/odroid# aplay -l
**** List of PLAYBACK Hardware Devices ***
card 0: ODROIDHDMI [ODROID-HDMI], device 0: I2S dit-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ODROIDDAC2 [ODROID-DAC2], device 0: I2S pcm512x-hifi-0 []
  Subdevices: 0/1
  Subdevice #0: subdevice #0


Thank you, @Lolix, for your kind help.

Tried both your Odroid wiki link as well as a installation method mentioned in a DietPi thread.

Unfortunately without success on Manjaro-ARM:

[manjaro@manjaro-arm ~]$ aplay -l
aplay: device_list:272: no soundcards found...

[root@manjaro-arm manjaro]# modprobe aml_i2c
modprobe: FATAL: Module aml_i2c not found in directory /lib/modules/4.20.0-1-MANJARO-ARM


You don’t have odroid-hdmi either

The Arch kernel (linux-odroid-c2) have it, but is the old vendor’s branch 3.16.61, likely is not upstread

$ locate aml_


Our Odroid-C2 image runs the linux-aarch64 kernel, which is at 4.20 now.
I bet the kernel modules needed or not upstreamed yet.


Ah, I see. Thank you both for the friendly and helpful discussion.

Overall this seems a non-trivial task. And since there are also other ODROID hardware components like the oCam camera module etc., I guess we have to wait if all those needed modules and drivers will find their way into the Manjaro kernel.

Would be nice - yet quite something to ask for.


I will gladly apply patches if you find any. :stuck_out_tongue: