Yes it will work as it is just user space audio config.
Still no luck.
I used asound.state from my vim image that has sound working, to my image with mainline kernel
[pedro@sala .config]$ alsactl --file ~/.config/asound.state restore
No state is present for card G12AX96MAX
alsa-lib main.c:1014:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -2
Found hardware: “G12A-X96-MAX” “” “” “” “”
Hardware is initialized using a generic method
No state is present for card G12AX96MAX
and no sound in my x96air s905x3
few hours later, trying to custom dtb, I just gave up ![]()
It does not always work. I also have problems with the mainline kernel. If the kernel finds the sound device but no audio it will often work.
Sorry about this but some devices are weird as it maybe using some different i2s connection on board.
Does sound work on armbian?
Can you share the link of the device from where you bought it?
I am not sure if I can help much but I can try.
Is it supported in upstream kernel?
Does it see soundcard in aplay -l ?
Cant download dtb files from link.
Hope y can upload files some where else like Gdrive.
The trouble that I’m having is that the dtb that works with sound in the vim images meson-sm1-sei610-x96maxplus.dtb doesn’t boot in the mainline kernel. I can only boot in the mainline kernel and on vim-linux kernel with meson-g12a-x96-max.dtb, but in both kernels I don’t have sound. I tried custom the meson-g12a-x96-max.dtb with the meson-sm1-sei610-x96maxplus.dtb sound parts but I wasn’t able to boot. Then I tried the other way round change meson-sm1-sei610-x96maxplus.dtb following TheMojoMan instructions to boot in the mainline kernel, but the I got errors that didn’t let me go from the dts to dtb file. With the TheMojoMan dtbs from meson-sm1-x96-air-4g.dtb and the mod version I was able to boot but I didn’t have Ethernet and sound. My box is x96air P3 s905x3
This is the link for the dtb files
dtb files wont help me as I dont have the device to test while dts can help so I can do some comparision to know whats different between 2 dts
Hi spikerguy, here is the link to the dts
Thanks
Hi Spikerguy,
Just an update, I updated Beelink latest firmware update 914P0 yesterday on GT King Pro. But unfortunately Kernel Panic still persist.
Yes I asked them the same but they said they have not changed anything in the bootloader side only bug fixes so far.
It is holidays season so I cannot even ping Neil as I do not want to disturb him, will wait for him to respond.
Good Luck.
Just additional information on what causes kernel panic on GTKPro on mainline kernel .
Playing hi-res video (eg. 1080p) with MPV (video file from local HDD) for around 8 minutes, kernel panic will strike and freeze. This happen with (mesa) without Panfrost or (mesa-git) with Panfrost.
Update 2: (Still no) sound on X96 Max+ - but problem narrowed down
I did another series of extensive tests to get sound running on my X96 Max+ with mainline kernel. All tests were done using only one sd card running Manjaro Arm XFCE where I changed .dtb’s and kernels.
You can find the three dtb/dts files that I used for testing here.
Starting point is the .dts from chewitt from his 5.9.y kernel branch (see here) which I compiled and named meson-sm1-x96-air-4g-kernel59.dtb. With this I can boot my box and sound and ethernet is working well with linux-vim kernel. However, as pointed out before the mainline kernel does not boot with this .dtb.
(Thanks @dante6913 for confirming that it also does not work on X96 Air! (x96maxplus.dtb is quite similar to above .dtb))
I won’t go into detail about all my failed attempts here. So, to make a long, long, long journey short: I finally found out that only one single line in ‘meson-sm1-x96-air-4g-kernel59.dts’ is responsible for the .dtb not to boot with mainline kernel.
In the following section of the .dts (which I decompiled using ‘dtc’) which contains almost all audio-controller:
bus@60000 {
compatible = "simple-bus";
reg = <0x00 0x60000 0x00 0x1000>;
#address-cells = <0x02>;
#size-cells = <0x02>;
ranges = <0x00 0x00 0x00 0x60000 0x00 0x1000>;
clock-controller@0 {
status = "okay";
compatible = "amlogic,sm1-audio-clkc";
...
}
...
}
the line
compatible = "amlogic,sm1-audio-clkc";
has to be changed to
compatible = "amlogic,g12a-audio-clkc";
or
compatible = "amlogic,g12b-audio-clkc";
I have called the new .dts files ‘meson-sm1-x96-air-4g-kernel59-g12a.dts’ and ‘meson-sm1-x96-air-4g-kernel59-g12b.dts’, respectively.
With these three .dtb’s I checked if mainline kernel is booting, if soundcard is recognized (aplay -l) and if sound is working. I have summarized the results in the following table:
Although - as you can see - I still get no sound in the mainline kernel it seems to be purely connected to the fact that “sm1” driver is not used for the clock because sound is also broken in the VIM kernel when using “g12a” or “g12b” drivers for the clock.
So, @spikerguy and @Strit, I hope that these results may have narrowed down the problem a little bit and help you to find a fix for the problem (hopefully soon
)!
(BTW, I guess you are aware of the S905X3 documentation that you can find here?!? Details about sound registers start at p. 781)
–
Here comes some additional information (which might no be too relevant; you might stop reading here):
dmesg | grep sound shows the same (errors) for all kernel/dtb combinations (also when sound is working!):
[ 5.687870] No soundcards found.
[ 9.001770] systemd[1]: Configuration file /usr/lib/systemd/system/sound.service is marked executable. Please remove executable permission bits. Proceeding anyway.
[ 11.074351] axg-sound-card sound: ASoC: no DMI vendor name!
[ 17.634659] audit: type=1131 audit(1608223112.205:34): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=sound comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 37.456044] axg-sound-card sound: ASoC: PRE_PMU: be.dai-link-4-playback event failed: -22
[ 37.499683] axg-sound-card sound: ASoC: PRE_PMU: be.dai-link-4-playback event failed: -22
dmesg | grep audio shows the following for all cases where a soundcard was recognized:
[ 37.443176] hdmi-audio-codec hdmi-audio-codec.1.auto: Not able to map channels to speakers (-22)
[ 37.446309] hdmi-audio-codec hdmi-audio-codec.1.auto: ASoC: error at snd_soc_dai_hw_params on i2s-hifi: -22
Even if we look into this still we won’t be able to help much unless we have device to test on.
Also we need to understand which device is it coz every vendor uses different methods.
I don’t only into the documentation and match the dts but you will have to do trial and error until you figure out a solution.
Always here to help.
@TheMojoMan Hey,
I found one issue in the sound script for newer kernel.
Can you get sound card listed on aplay -l if you can see it by still you don’t get audio out over hdmi then the newer pkg will fix that but if you don’t get soundcard in aplay -l then I am not sure.
Updated the pkg to unstable.
khadas-utils-4-1 have the updated sound config script
Thanks @spikerguy! Soundcard is still recognized when changing compatible = "amlogic,sm1-audio-clkc"; to compatible = "amlogic,g12a-audio-clkc"; which I need to do to get my box booting when using mainline kernel (see table in my last post).
I have installed the new package and ran the script but it did not fix the problem. ![]()
I have the strong feeling that sm1 clock driver (and not g12a or g12b) has to be used to get sound working on S905X3.
There must be a reason that sound is working with sm1 driver with VIM kernel (and not working when using g12a or g12b also with VIM kernel). And there must be a reason that mainline kernel is not booting when sm1 driver is set in .dtb.
Therefore, may I ask if you or @Strit can have another look at the implementation of “sm1” clock driver in vim kernel compared to mainline kernel?
The solution to the problem must be within the vim kernel because sound is working when using the vim kernel and not working with mainline kernel. So, there must be a difference somehow.
I think to remember that you wrote that you have a Vim3L which is based on S905D3 that is almost identical to S905X3 (except for DSI output and CSI input). Shouldn’t it be possible to do testing with this device? Or does sound already work on Vim3L using mainline kernel?
Hi all.
I also give a try to run Manjaro on TV Box… and i did it.
I have Tanix TX3 Mini:
CPU: S905W up to 2.0 GHz, Quad core ARM Cortex-A53
GPU: Mali-450 penta-core, up to 750MHz+(DVFS)
RAM: 2GB DDR3
Storage: 16GB eMMC
First i tried Manjaro-ARM-xfce-vim1-20.10.img ( because they have similar CPU S905X), but it didn’t work. I was able to boot to Android or to Recovery.
Then i tried Manjaro-ARM-xfce-vim2-20.10.img and it’s working.
I found Youtube tutorial for other Tanix boxes, and this was my steps:
- Download and unpack Manjaro-ARM-xfce-vim2-20.10.img.xz
- Format SD Card ( 32 GB in my case )
- Burn Manjaro-ARM-xfce-vim2-20.10.img to SD Card with BalenaEtcher
- Eject SD Card and reinsert it
- Edit file uEnv.ini on BOOT_MNJRO partition
- In that file i changed this line:
FDT=/dtbs/amlogic/meson-gxm-khadas-vim2.dtb
to this
FDT=/dtbs/amlogic/meson-gxl-s905w-tx3-mini.dtb - Save changes and put SD card in Tanix
- Press and hold reset button and plug power
- After Tanix logo started to flash i release reset button and Manjaro started booting
- After first boot i setup user, keyboard layout, timezone, hostname, and after saving Tanix rebooted and voila i got login screen
- After login i updated OS and currently it’s release Manjaro-ARM 20.12 and kernel is 5.9.8.2
I still have to test sound, and i don’t have Wireless.
I will also give a try to Manjaro-ARM-xfce-vim3-20.06.img, but for now i will test this version.
I’ll give you my experiences with the Odroid C4, which is an S905X3 based board.
We recently got sound on this board, with this commit in the mainline kernel.
But we found out that all our Amlogic based boards where missing sound cards on mainline, because of a missing kernel config option, which we added recently.
The option was:
CONFIG_RESET_MESON_AUDIO_ARB
and was added to our 5.9.12-2 kernel version and above. So that should be in all our branches.
So, I would say, check if the mainline DTS you are using a DTS that includes the sound node, like the commit I linked above.
Hi Strit and Spikerguy,
TV Box: Beelink GT King Pro (S922X, G52), Manjaro_Xfce_Linux-5.9.13-1
I am now on Testing Branch and the latest update 2020-12-18 basically will update to linux-5.10.1-1. I understand from Spikerguy, for GT King Pro to be able to boot on linux-5.10, require a new U-Boot else it won’t boot.
Appreciate your advise on next course of action. Thank you.
Hi Spikerguy,
TV Box: Beelink GT King Pro, Xfce-Linux 5.9.13-1 on Testing Branch
I just notice in the latest Testing Branch Update 2020-12-18 the new kernel is linux-5.10.1-1. I am checking whether there is already a new U-Boot for GT King Pro available that can boot up with linux-5.10 kernel? If not please advise what is the next course of action.
@Strit thanks for your reply!
As suggested I did a comparison of chewitt’s meson-sm1-x96-air-4g.dtb that I use and meson-sm1-odroid-c4.dtb and code for sound section, audio clock and audio-controllers are identical. And - as expected - odroid.dtb also uses compatible = "amlogic,sm1-audio-clkc";
So, in principle meson-sm1-x96-air-4g.dtb should work with the mainline kernel but (as described before) it does not boot when sm1 driver is used in audio clock controller section ![]()
I am really running out of ideas why x96air.dtb boots and sound is working with the VIM kernel and it does not boot with mainline kernel.
I think your and @spikerguy’s expertise is desperately needed here again …
@spikerguy So does sound on VIM3L work with mainline kernel as well now?
