5.10 kernel?
With dual boot?
Yes
Not yet.
Update: We have found the audio fix for Mainline kernel so for those who want to give it a try can download the latest kernel pushed to unstable linu-5.9.12-2
this one have AMlogic G12 audio fix and also some vdec config enabled. This will help users test panfrost support for their device.
Great work. So now we can boot up on 5.10 kernel on TV Box using Android BSP uboot? Will give linux-5.9.12-2 when it reach Testing Branch.
Looking forwad to Beelink kernel panic solution.
Yes, great work. Amazing how manjaro arm is improving for SBC and TV boxes.
Do you think itâs viable to use such an Arm based TV box like the X96 Air P3 (S905X3) as a full fledged replacement to a more common x86 SBC (for example like the ODROID-H2+ which I have been considering as well) for a small home server with low requirements?
I mean such a TV box is really cheap compared to a regular SBC and I could think of a couple of such TV boxes for different tasks instead of one regular SBC which still comes a lot cheaper.
Yes I have been using a small ARM based device for nas drive, jellyfin server and now etherpad server and itâs working just fine.
If you want high resolution video playback then you cannot compare it with x86 against ArM on linux but on Android you can.
Depends on what task you want to fulfill with it.
The performance will almost be the same as long as the tv box have good heat dissipation. Linux still lack video processing support as vpu drivers are still not available but video processing upto 1080p on cpu load works quite well but it depends on the tv screen as it does look choppy at times in a big screen while 720p works just fine.
Yes, I just did a market search for S905X3 tv boxes and theyâre dirty cheap like $30 for 4Gb Ram with 32b storage. If you plan to run it as a server for applications then it will work perfectly
Tried linux-5.9.12-2 on my X96 air S905X3, booted with meson-g12a-x96-max.dtb. Ethernet works, sound is showed but I didnât get any sound. I couldnât play any video without hardware acceleration or with it.
Video is fixed with software acceleration if I press in any part of it the frame is showed but video doesnât run.
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
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âŚ
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