did you do this ?
sudo systemctl enable sound --now
-
sudo reboot now
Try this and let me know else we need to find the alsa card conf for this device.
did you do this ?
sudo systemctl enable sound --now
sudo reboot now
No luck, sound still not working
Ok what’s your device name again please.
I will share an alsa card conf you can try.
Can you share
inxi -Fzxi
aplay -l
[pedro@sala ~]$ inxi -Fzxi
System:
Kernel: 5.9.12-2-MANJARO-ARM aarch64 bits: 64 compiler: gcc v: 10.2.0
Console: tty 0 Distro: Manjaro ARM
Machine:
Type: ARM Device System: Shenzhen Amediatech Technology Co., Ltd X96 Max
details: N/A
CPU:
Info: Quad Core model: N/A variant: cortex-a53 bits: 64 type: MCP
arch: ARMv8
features: Use -f option to see features bogomips: 0
Speed: 100 MHz min/max: 100/1800 MHz Core speeds (MHz): 1: 1512 2: 1512
3: 1512 4: 1512
Graphics:
Device-1: meson-g12a-mali driver: panfrost v: kernel bus ID: N/A
Device-2: meson-g12a-dw-hdmi driver: meson_dw_hdmi v: kernel bus ID: N/A
Display: server: X.org 1.20.10 driver: modesetting tty: 80x24
Message: Unable to show advanced data. Required tool glxinfo missing.
Audio:
Device-1: meson-g12a-dw-hdmi driver: meson_dw_hdmi v: kernel bus ID: N/A
Device-2: axg-sound-card driver: axg_sound_card bus ID: N/A
Sound Server: ALSA v: k5.9.12-2-MANJARO-ARM
Network:
Device-1: meson-g12a-dwmac driver: meson8b_dwmac v: N/A port: N/A
bus ID: N/A
IF: eth0 state: up speed: 100 Mbps duplex: full mac:
IP v4: type: dynamic noprefixroute scope: global
IP v6: type: dynamic noprefixroute scope: global
IP v6: type: noprefixroute scope: link
Device-2: pwm-clock driver: pwm_clock v: N/A port: N/A bus ID: N/A
Device-3: pwm-clock driver: pwm_clock v: N/A port: N/A bus ID: N/A
WAN IP:
Drives:
Local Storage: total: 117.72 GiB used: 6.63 GiB (5.6%)
ID-1: /dev/mmcblk0 model: SC64G size: 59.48 GiB
ID-2: /dev/mmcblk1 vendor: HP model: DF4064 size: 58.24 GiB
Partition:
ID-1: / size: 58.26 GiB used: 6.58 GiB (11.3%) fs: ext4
dev: /dev/mmcblk0p2
ID-2: /boot size: 213.4 MiB used: 53.1 MiB (24.9%) fs: vfat
dev: /dev/mmcblk0p1
Swap:
ID-1: swap-1 type: zram size: 5.31 GiB used: 0 KiB (0.0%) dev: /dev/zram0
Sensors:
Message: No sensors data was found. Is sensors configured?
Info:
Processes: 165 Uptime: 5m Memory: 3.54 GiB used: 893.7 MiB (24.6%)
Init: systemd Compilers: gcc: N/A Packages: 792 Shell: Bash v: 5.0.18
inxi: 3.1.08
[pedro@sala ~]$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: G12AX96MAX [G12A-X96-MAX], device 0: fe.dai-link-0 () []
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: G12AX96MAX [G12A-X96-MAX], device 1: fe.dai-link-1 () []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: G12AX96MAX [G12A-X96-MAX], device 2: fe.dai-link-2 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
Create a new conf file called G12A-X96-MAX.conf
in /usr/share/alsa/cards/
Copy this content in G12A-X96-MAX.conf`
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2020-present Team LibreELEC (https://libreelec.tv)
<confdir:pcm/hdmi.conf>
AMLOGIC-HDMI.pcm.hdmi.0 {
@args [ CARD AES0 AES1 AES2 AES3 ]
@args.CARD {
type string
}
@args.AES0 {
type integer
}
@args.AES1 {
type integer
}
@args.AES2 {
type integer
}
@args.AES3 {
type integer
default 0x01 # IEC958_AES3_CON_FS_NOTID
}
type iec958
slave {
format IEC958_SUBFRAME_LE
pcm {
type hooks
slave.pcm {
type hw
card $CARD
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{
name "IEC958 Playback Default"
optional true
lock true
preserve true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
]
}
}
}
status [ $AES0 $AES1 $AES2 $AES3 ]
hdmi_mode true
}# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2020-present Team LibreELEC (https://libreelec.tv)
<confdir:pcm/hdmi.conf>
AMLOGIC-HDMI.pcm.hdmi.0 {
@args [ CARD AES0 AES1 AES2 AES3 ]
@args.CARD {
type string
}
@args.AES0 {
type integer
}
@args.AES1 {
type integer
}
@args.AES2 {
type integer
}
@args.AES3 {
type integer
default 0x01 # IEC958_AES3_CON_FS_NOTID
}
type iec958
slave {
format IEC958_SUBFRAME_LE
pcm {
type hooks
slave.pcm {
type hw
card $CARD
device 0
}
hooks.0 {
type ctl_elems
hook_args [
{
name "IEC958 Playback Default"
optional true
lock true
preserve true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
]
}
}
}
status [ $AES0 $AES1 $AES2 $AES3 ]
hdmi_mode true
}
Restart. Make sure sound service is enabled.
Good Luck.
May I ask why G12A?
The S905X3 is SM1.
Why do other DTBs even work and why would one use a different DTB than for SM1 if it’s a SM1 unit?
I’m sorry if this should be obvious, but I’m not quite sure what’s up with the different DTB files and their implication.
Depending on the kernel I get different dtb working. On the latest kernels the meson-g12a-x96-max.dtb and the @TheMojoMan custom made dtbs (for vim images) are the ones that work for me
For now, no luck. Trying with other dtb
Sorry if I may be intruding, but given that you are trying to use this dtb
it might match with the following G12A-X96-MAX.conf
sound card from Armbian/LibreElec
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
<confdir:pcm/hdmi.conf>
G12A-X96-MAX.pcm.hdmi.0 {
@args [ CARD AES0 AES1 AES2 AES3 ]
@args.CARD { type string }
@args.AES0 { type integer }
@args.AES1 { type integer }
@args.AES2 { type integer }
@args.AES3 { type integer }
type hooks
slave.pcm {
type hw
card $CARD
device 0
subdevice 0
}
hooks.0 {
type ctl_elems
hook_args [
{
interface MIXER
name "IEC958 Playback Default"
lock true
preserve true
optional true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
]
}
hint.device 0
}
<confdir:pcm/iec958.conf>
G12A-X96-MAX.pcm.iec958.0 {
@args [ CARD AES0 AES1 AES2 AES3 ]
@args.CARD { type string }
@args.AES0 { type integer }
@args.AES1 { type integer }
@args.AES2 { type integer }
@args.AES3 { type integer }
type hooks
slave.pcm {
type hw
card $CARD
device 1
subdevice 0
}
hooks.0 {
type ctl_elems
hook_args [
{
interface MIXER
name "IEC958 Playback Default"
lock true
preserve true
optional true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
]
}
hint.device 0
}
Or, it might not…
That is the beauty with this cheap Chinese box The method is trying!
Yes this should work.
I think the issue is with the meson-g12a-x96-max.dtb, because I downgraded to 5.9.8-1 linux-vim with this dtb shows the same symptoms, every works except sound. For this kernel the custom made dtb by @TheMojoMan gives me sound
Like you said:
Edit: On a more serious note, I think that we (the community) will have to come up with some way of collecting and somehow sorting this type of information (so that it can be more easily found). (Eventually, when a box is officially supported this is taken care of by the official HowTo, but I’m talking of the period before that.) One prime example of this is of course dtb’s provided by the community (such as those by TheMojoMan). Maybe we could tag them (posts/links) somehow. (Or somehow make it easier to find using the built in search with some standard/specified keywords.)
Edit2: Like #WorksForMe, #X96Air, #dtb (or something like that).
I face the same problem.
Was not able to boot with my usual .dtbs for vim and mainline kernel but meson-g12a-sei510.dtb works as well (but no ethernet here).
Soundcard is recognized but no sound even after running /usr/bin/g12_sound.sh, starting sound service and rebooting.
(Will experiment with modifying .dtbs later.)
Did you tried meson-g12a-x96-max.dtb? For me boots with Ethernet.
Maybe meson-g12a-x96-max.dtb could be changed with your x96maxplus-vim.dtb sound configuration?
Looks pretty confusing to me. So is there a DTB for the X96 Air P3 (S905X3 = SM1) with working gigabit ethernet port?
I don’t care about sound or video as long as the gigabit ethernet port is working properly (and not only with 100Mbit/s), as this one is intended as a headless server.
I don’t think now there is any dtb working at gigabit Ethernet, 100 Mega is possible in mainline kernel 5.9.12-2 booting with meson-g12a-x96-max.dtb (I know we have a SM1 box) but for same reason this mainline kernel is only booting with meson-g12a dtb. You have to understand that amlogic doesn’t give support (or poor support) to linux, so everything is trying and error. Sorry for my poor English
So there is a connection between the used kernel and DTB?
Gigabit ethernet is supposedly working on CoreELEC with the SM1 DTB.
CoreELEC uses kernel 4.19 (the same as the Android from this boxes that is a legacy kernel) so android dtb can be used with linux. For me, a server should use Mainline kernel for having the latest security paches