Monday, November 29, 2021

[fedora-arm] Re: HDMI Audio output on Pine64 with Fedora 35

So a note from an upstream kernel thread [1] and basically there needs
to be a new DW HDMI audio driver rather than "simple audio card",
apparently it's almost done but it hasn't been posted for review and
that may take some time.

[1] https://www.spinics.net/lists/arm-kernel/msg936293.html

On Mon, Nov 8, 2021 at 8:30 AM Tommy He <lovenemesis@gmail.com> wrote:
>
> Ian,
>
> Thanks for the extra effort to look into the kernel tree! Not sure why it wasn't merged but probably because of decreased interests about this SBC.
> I guess I will have to choose between modern Fedora and HDMI Audio Armbian, then.
>
> On a side note, I notice Pine64+ was marked with NIC instablibility on Wiki for Fedora 35: https://fedoraproject.org/wiki/Architectures/ARM/Fedora_Linux_35
> In my experience it seems to run stable enough to download and finish all post-launch upgrades. I will try more and update the Wiki accordingly.
>
> Thanks to all who have helped me with this!
>
> Tommy
>
>
>
>
> On Sun, Nov 7, 2021 at 9:21 PM Ian McInerney <ian.s.mcinerney@ieee.org> wrote:
>>
>> On Fri, Nov 5, 2021 at 3:41 AM Tommy He <lovenemesis@gmail.com> wrote:
>>>
>>> Like the content in alsa-ucm package?
>>>
>>> I checked the corresponding folder(/usr/share/alsa) under Armbian. There's no folder like ucm2/ as on Fedora.
>>>
>>> Out of curiosity, I checked the kernel build configure for both and may step on the cause:
>>>
>>> On Fedora with kernel 5.14.14:
>>>
>>> $ cat /boot/config-5.14.14-300.fc35.aarch64 | grep CONFIG_DRM_SUN4I
>>> CONFIG_DRM_SUN4I=m
>>> CONFIG_DRM_SUN4I_HDMI=m
>>> CONFIG_DRM_SUN4I_HDMI_CEC=y
>>> CONFIG_DRM_SUN4I_BACKEND=m
>>>
>>> While on Armbian with kernel 5.10.16:
>>>
>>> $ zcat /proc/config.gz | grep CONFIG_DRM_SUN4I
>>> CONFIG_DRM_SUN4I=y
>>> CONFIG_DRM_SUN4I_HDMI=y
>>> CONFIG_DRM_SUN4I_HDMI_AUDIO=y
>>> CONFIG_DRM_SUN4I_HDMI_CEC=y
>>> CONFIG_DRM_SUN4I_BACKEND=y
>>>
>>> Note it has an extra kernel build configure that is dedicated to HDMI audio.
>>> It would be good if I can recompile a fedora kernel with that build configuration enabled to test. However, I am not sure how to do that on Aarch64. I only knew how to do it via kernel SRPM on x86_64.
>>>
>>
>> Armbian runs a heavily patched kernel with many things that aren't in the upstream kernel yet, and I think the CONFIG_DRM_SUN4I_HDMI_AUDIO config option is one of them that is not in the upstream kernel yet. Looking through the kernel tree, they don't have the audio driver for the sun4i HDMI device merged (there was a v3 of the patch series proposing it over a year ago, but I haven't found anything since). Since it isn't in the upstream kernel, you won't have that config option available in a Fedora kernel sources.
>>
>> -Ian
>>
>>>
>>> Kind regards,
>>>
>>> Tommy
>>>
>>>
>>> On Thu, Nov 4, 2021 at 3:48 AM Peter Robinson <pbrobinson@gmail.com> wrote:
>>>>
>>>> Does Armbian ship a UCM2 profile for the device that's not upstream?
>>>>
>>>> On Wed, Nov 3, 2021 at 7:59 AM Tommy He <lovenemesis@gmail.com> wrote:
>>>> >
>>>> > Hello,
>>>> >
>>>> > My Pine64 has served my daughter well for her online courses during the pandemic, loaded with Armbian. As someone more into Fedora, I'm always looking for opportunity to switch on this cheap SBC.
>>>> > It hasn't been successful until Fedora 35 XFCE AArch64. With the help of arm-image-installer, the recent AArch64 booted and runs quite well, with one exception: no Sound from HDMI port.
>>>> > There's audio from 3.5mm jack thus I'm pretty sure the player, codec and sound server are all right.
>>>> >
>>>> > I tried to poke around the XFCE sound server widget but it seems HDMI wasn't recognized as a device under Fedora 35. Below are output from Fedora running updated kernel 5.14.14:
>>>> >
>>>> > $ aplay -l
>>>> > **** List of PLAYBACK Hardware Devices ****
>>>> > card 0: sun50ia64audio [sun50i-a64-audio], device 0: 1c22c00.dai-sun8i-codec-aif1 sun8i-codec-aif1-0 [1c22c00.dai-sun8i-codec-aif1 sun8i-codec-aif1-0]
>>>> > Subdevices: 1/1
>>>> > Subdevice #0: subdevice #0
>>>> >
>>>> > $ lsmod
>>>> > Module Size Used by
>>>> > snd_seq_dummy 16384 0
>>>> > snd_hrtimer 20480 1
>>>> > nft_fib_inet 16384 1
>>>> > nft_fib_ipv4 16384 1 nft_fib_inet
>>>> > nft_fib_ipv6 16384 1 nft_fib_inet
>>>> > nft_fib 16384 3 nft_fib_ipv6,nft_fib_ipv4,nft_fib_inet
>>>> > nft_reject_inet 16384 6
>>>> > nf_reject_ipv4 16384 1 nft_reject_inet
>>>> > nf_reject_ipv6 20480 1 nft_reject_inet
>>>> > nft_reject 16384 1 nft_reject_inet
>>>> > nft_ct 24576 11
>>>> > nft_chain_nat 16384 2
>>>> > nf_nat 49152 1 nft_chain_nat
>>>> > nf_conntrack 176128 2 nf_nat,nft_ct
>>>> > nf_defrag_ipv6 24576 1 nf_conntrack
>>>> > nf_defrag_ipv4 16384 1 nf_conntrack
>>>> > rfkill 40960 1
>>>> > ip_set 57344 0
>>>> > nf_tables 217088 204 nft_ct,nft_reject_inet,nft_fib_ipv6,nft_fib_ipv4,nft_chain_nat,nft_reject,nft_fib,nft_fib_inet
>>>> > nfnetlink 20480 3 nf_tables,ip_set
>>>> > qrtr 28672 4
>>>> > ns 32768 1 qrtr
>>>> > sunrpc 626688 1
>>>> > vfat 28672 1
>>>> > fat 94208 1 vfat
>>>> > snd_soc_hdmi_codec 24576 0
>>>> > dw_hdmi_cec 16384 0
>>>> > dw_hdmi_i2s_audio 16384 0
>>>> > sun50i_codec_analog 36864 1
>>>> > snd_soc_simple_card 24576 2
>>>> > sun4i_i2s 24576 2
>>>> > snd_soc_simple_card_utils 28672 1 snd_soc_simple_card
>>>> > axp20x_adc 20480 0
>>>> > sun8i_adda_pr_regmap 16384 1 sun50i_codec_analog
>>>> > axp20x_pek 16384 0
>>>> > sun8i_codec 49152 1
>>>> > snd_soc_core 311296 6 sun4i_i2s,snd_soc_hdmi_codec,sun50i_codec_analog,sun8i_codec,snd_soc_simple_card_utils,snd_soc_simple_card
>>>> > snd_compress 32768 1 snd_soc_core
>>>> > ac97_bus 16384 1 snd_soc_core
>>>> > snd_pcm_dmaengine 20480 1 snd_soc_core
>>>> > snd_seq 98304 7 snd_seq_dummy
>>>> > snd_seq_device 20480 1 snd_seq
>>>> > snd_pcm 143360 6 sun4i_i2s,snd_soc_hdmi_codec,snd_compress,sun8i_codec,snd_soc_core,snd_pcm_dmaengine
>>>> > joydev 32768 0
>>>> > sun8i_rotate 28672 0
>>>> > sun8i_di 28672 0
>>>> > sunxi_cedrus 53248 0
>>>> > sun8i_drm_hdmi 24576 0
>>>> > v4l2_mem2mem 45056 3 sunxi_cedrus,sun8i_rotate,sun8i_di
>>>> > dw_hdmi 53248 2 sun8i_drm_hdmi,dw_hdmi_i2s_audio
>>>> > videobuf2_dma_contig 24576 3 sunxi_cedrus,sun8i_rotate,sun8i_di
>>>> > videobuf2_memops 20480 1 videobuf2_dma_contig
>>>> > snd_timer 45056 3 snd_seq,snd_hrtimer,snd_pcm
>>>> > snd 114688 13 snd_seq,snd_seq_device,snd_soc_hdmi_codec,snd_timer,snd_compress,snd_soc_core,snd_pcm
>>>> > videobuf2_v4l2 32768 4 sunxi_cedrus,sun8i_rotate,sun8i_di,v4l2_mem2mem
>>>> > soundcore 20480 1 snd
>>>> > sun8i_thermal 16384 0
>>>> > videobuf2_common 69632 7 sunxi_cedrus,sun8i_rotate,videobuf2_dma_contig,videobuf2_v4l2,sun8i_di,v4l2_mem2mem,videobuf2_memops
>>>> > nvmem_sunxi_sid 16384 1
>>>> > videodev 278528 6 sunxi_cedrus,sun8i_rotate,videobuf2_v4l2,sun8i_di,videobuf2_common,v4l2_mem2mem
>>>> > mc 65536 5 sunxi_cedrus,videodev,videobuf2_v4l2,videobuf2_common,v4l2_mem2mem
>>>> > sun8i_mixer 45056 0
>>>> > cpufreq_dt 20480 0
>>>> > fuse 167936 1
>>>> > zram 32768 2
>>>> > ip_tables 32768 0
>>>> > mmc_block 53248 3
>>>> > axp20x_battery 16384 0
>>>> > axp20x_ac_power 16384 0
>>>> > industrialio 94208 3 axp20x_battery,axp20x_ac_power,axp20x_adc
>>>> > axp20x_regulator 49152 6
>>>> > pinctrl_axp209 16384 0
>>>> > axp20x_rsb 16384 0
>>>> > dwmac_sun8i 28672 0
>>>> > stmmac_platform 24576 1 dwmac_sun8i
>>>> > stmmac 249856 2 dwmac_sun8i,stmmac_platform
>>>> > pcs_xpcs 24576 1 stmmac
>>>> > phylink 53248 1 stmmac
>>>> > crct10dif_ce 20480 1
>>>> > lima 69632 2
>>>> > display_connector 20480 0
>>>> > sunxi 24576 0
>>>> > ghash_ce 24576 0
>>>> > phy_generic 20480 2 sunxi
>>>> > sunxi_rsb 24576 1 axp20x_rsb
>>>> > musb_hdrc 139264 1 sunxi
>>>> > des_generic 16384 0
>>>> > libdes 24576 1 des_generic
>>>> > gpu_sched 49152 1 lima
>>>> > ohci_platform 16384 0
>>>> > mdio_mux 16384 1 dwmac_sun8i
>>>> > sunxi_wdt 20480 0
>>>> > sun4i_drm 20480 6
>>>> > sun4i_frontend 20480 1 sun4i_drm
>>>> > i2c_mv64xxx 24576 0
>>>> > sun4i_tcon 40960 1 sun4i_drm
>>>> > sun8i_tcon_top 20480 3 sun8i_drm_hdmi,sun4i_tcon,sun4i_drm
>>>> > drm_kms_helper 294912 8 sun8i_mixer,sun8i_drm_hdmi,sun4i_frontend,sun4i_tcon,sun4i_drm,dw_hdmi
>>>> > ohci_hcd 61440 1 ohci_platform
>>>> > sunxi_mmc 32768 0
>>>> > phy_sun4i_usb 28672 6 sunxi
>>>> > udc_core 69632 1 musb_hdrc
>>>> > sun8i_ce 49152 0
>>>> > syscopyarea 16384 1 drm_kms_helper
>>>> > sysfillrect 16384 1 drm_kms_helper
>>>> > sysimgblt 16384 1 drm_kms_helper
>>>> > fb_sys_fops 20480 1 drm_kms_helper
>>>> > cec 73728 3 drm_kms_helper,dw_hdmi_cec,dw_hdmi
>>>> > sun6i_dma 36864 2
>>>> > ehci_platform 20480 0
>>>> > drm 634880 15 gpu_sched,sun8i_mixer,drm_kms_helper,display_connector,sun8i_drm_hdmi,lima,sun4i_frontend,sun4i_tcon,sun4i_drm,dw_hdmi
>>>> > aes_neon_bs 32768 0
>>>> >
>>>> >
>>>> > In comparison, the aplay and lsmod output from Armbian running mainline kernel 5.10.16:
>>>> >
>>>> > $ aplay -l
>>>> > **** List of PLAYBACK Hardware Devices ****
>>>> > card 0: sun50ia64audio [sun50i-a64-audio], device 0: 1c22c00.dai-sun8i-codec-aif1 sun8i-codec-aif1-0 [1c22c00.dai-sun8i-codec-aif1 sun8i-codec-aif1-0]
>>>> > Subdevices: 1/1
>>>> > Subdevice #0: subdevice #0
>>>> > card 1: sun50ia64hdmi [sun50i-a64-hdmi], device 0: 1c22800.i2s-i2s-hifi i2s-hifi-0 [1c22800.i2s-i2s-hifi i2s-hifi-0]
>>>> > Subdevices: 1/1
>>>> > Subdevice #0: subdevice #0
>>>> >
>>>> > $ lsmod
>>>> > Module Size Used by
>>>> > fuse 122880 3
>>>> > overlay 114688 2
>>>> > bnep 28672 2
>>>> > snd_soc_hdmi_codec 20480 1
>>>> > axp20x_ac_power 16384 0
>>>> > axp20x_battery 16384 0
>>>> > hci_uart 126976 0
>>>> > axp20x_adc 20480 0
>>>> > btqca 20480 1 hci_uart
>>>> > btrtl 24576 1 hci_uart
>>>> > btbcm 24576 1 hci_uart
>>>> > btintel 24576 1 hci_uart
>>>> > bluetooth 577536 13 btrtl,btqca,btintel,hci_uart,btbcm,bnep
>>>> > ecdh_generic 16384 1 bluetooth
>>>> > dw_hdmi_i2s_audio 16384 0
>>>> > dw_hdmi_cec 16384 0
>>>> > rfkill 28672 4 bluetooth
>>>> > hid_multitouch 28672 0
>>>> > ecc 28672 1 ecdh_generic
>>>> > lima 57344 11
>>>> > gpu_sched 32768 1 lima
>>>> > joydev 32768 0
>>>> > sun4i_gpadc_iio 24576 0
>>>> > industrialio 65536 4 axp20x_battery,sun4i_gpadc_iio,axp20x_ac_power,axp20x_adc
>>>> > sun4i_i2s 24576 4
>>>> > sunxi_cedrus 40960 0
>>>> > videobuf2_dma_contig 24576 1 sunxi_cedrus
>>>> > v4l2_mem2mem 36864 1 sunxi_cedrus
>>>> > videobuf2_memops 20480 1 videobuf2_dma_contig
>>>> > videobuf2_v4l2 24576 2 sunxi_cedrus,v4l2_mem2mem
>>>> > videobuf2_common 49152 3 sunxi_cedrus,videobuf2_v4l2,v4l2_mem2mem
>>>> > videodev 237568 4 sunxi_cedrus,videobuf2_v4l2,videobuf2_common,v4l2_mem2mem
>>>> > mc 49152 5 sunxi_cedrus,videodev,videobuf2_v4l2,videobuf2_common,v4l2_mem2mem
>>>> > display_connector 20480 0
>>>> > snd_soc_simple_card 24576 0
>>>> > snd_soc_simple_card_utils 24576 1 snd_soc_simple_card
>>>> > zram 32768 2
>>>> > cpufreq_dt 20480 0
>>>> > sch_fq_codel 24576 2
>>>> > pinctrl_axp209 16384 0
>>>> > realtek 24576 1
>>>> > i2c_mv64xxx 24576 0
>>>> > dwmac_sun8i 28672 0
>>>> > mdio_mux 16384 1 dwmac_sun8i
>>>> >
>>>> > Despite snd_soc_hdmi_codec being loaded in both systems, the Fedora 35 lacks the sound subdevice sun50ia64hdmi that presents under Armbian.
>>>> >
>>>> > I had tried searching Pine64 and Armbian forums for clues. But the threads showing up are either several years ago on BSP kernel, or trying to get sound from 3.5mm jack port.
>>>> >
>>>> > Much appreciated if someone here can point me in the right direction to further diagnose or solve this problem.
>>>> >
>>>> > Kind regards,
>>>> > Tommy
>>>> > --
>>>> > Take a Deep Breath out of Windows
>>>> > _______________________________________________
>>>> > arm mailing list -- arm@lists.fedoraproject.org
>>>> > To unsubscribe send an email to arm-leave@lists.fedoraproject.org
>>>> > Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
>>>> > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
>>>> > List Archives: https://lists.fedoraproject.org/archives/list/arm@lists.fedoraproject.org
>>>> > Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure
>>>
>>>
>>>
>>> --
>>> Take a Deep Breath out of Windows
>>> _______________________________________________
>>> arm mailing list -- arm@lists.fedoraproject.org
>>> To unsubscribe send an email to arm-leave@lists.fedoraproject.org
>>> Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
>>> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
>>> List Archives: https://lists.fedoraproject.org/archives/list/arm@lists.fedoraproject.org
>>> Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure
>
>
>
> --
> Take a Deep Breath out of Windows
_______________________________________________
arm mailing list -- arm@lists.fedoraproject.org
To unsubscribe send an email to arm-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/arm@lists.fedoraproject.org
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure

No comments:

Post a Comment