Manjaro arm on Amlogic Tv box?

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.

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

1 Like

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

Summary
# 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…

1 Like

That is the beauty with this cheap Chinese box :grinning:The method is trying!

1 Like

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

1 Like

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).

1 Like

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

1 Like