Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

M401A运行Shairport Sync音频服务死机 #976

Closed
iamhyde opened this issue Jan 26, 2023 · 8 comments
Closed

M401A运行Shairport Sync音频服务死机 #976

iamhyde opened this issue Jan 26, 2023 · 8 comments

Comments

@iamhyde
Copy link

iamhyde commented Jan 26, 2023

Standard chat template, no routine, no chat.
标准聊天模板,无套路不聊天。

Device Information | 设备信息
-SOC: [S905L3A]
-Model [M401A]

Armbian Version | 系统版本

  • Kernel Version: [Armbian_22.11.0_Aml_s905l3a_bullseye_5.15.70_server_2022.09.26.img]
  • Release: [bullseye]

Describe the bug | 问题描述
Describe the problem in detail and attach screenshots if necessary.

DTB使用的最新Armbian_23.02.0_amlogic_s905l3a_bullseye_5.15.88_server_2023.01.18.img里拷贝出来的meson-g12a-s905l3a-m401a.dtb
M401A安装ArmBian到EMMC正常,跑其他服务Docker之类几天都不会死机.
不过最近安装Shairport Sync后也就是AirPlay服务,因为无法驱动自身的3.5mm音频口所以使用HDMI转3.5mm,不管是直接编译跑服务还是Docker版,正常启动后播放音乐几秒钟后就死机报错,log如下:


Jan 23 12:34:51 armbian kernel: BUG: scheduling while atomic: shairport-sync/6844/0x00010001
Jan 23 12:34:51 armbian kernel: Modules linked in: bnep veth xt_nat xt_tcpudp xt_conntrack nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack_n                                                                                                                                etlink nft_counter xt_addrtype nft_compat nf_tables nfnetlink br_netfilter bridge cpufreq_powersave cpufreq_conservative cpufreq_userspace                                                                                                                                 zram hci_uart btqca btrtl btintel btbcm snd_soc_meson_axg_sound_card bluetooth snd_soc_meson_card_utils meson_ir meson_gxbb_wdt snd_soc_mes                                                                                                                                on_g12a_tohdmitx rfkill snd_soc_meson_axg_frddr snd_soc_meson_codec_glue snd_soc_meson_axg_tdmout snd_soc_meson_axg_spdifout snd_soc_meson_                                                                                                                                axg_fifo meson_vdec(C) videobuf2_dma_contig v4l2_mem2mem snd_soc_meson_axg_tdm_interface snd_soc_meson_axg_tdm_formatter snd_soc_spdif_tx t                                                                                                                                cp_bbr sch_fq sunrpc ip_tables x_tables panfrost gpu_sched
Jan 23 12:34:51 armbian kernel: Preemption disabled at:
Jan 23 12:34:51 armbian kernel: [<ffffffc00911dd1c>] irq_enter+0x18/0x6c
Jan 23 12:34:51 armbian kernel: CPU: 0 PID: 6844 Comm: shairport-sync Tainted: G         C        5.15.79-ophub #1
Jan 23 12:34:51 armbian kernel: Hardware name: M401A (DT)
Jan 23 12:34:51 armbian kernel: Call trace:
Jan 23 12:34:51 armbian kernel:  dump_backtrace+0x0/0x1ec
Jan 23 12:34:51 armbian kernel:  dump_stack_lvl+0x74/0xb0
Jan 23 12:34:51 armbian kernel:  __schedule_bug+0xa8/0xd4
Jan 23 12:34:51 armbian kernel:  __schedule+0x570/0x6a0
Jan 23 12:34:51 armbian kernel:  schedule+0x94/0xd4
Jan 23 12:34:51 armbian kernel:  schedule_preempt_disabled+0x18/0x2c
Jan 23 12:34:51 armbian kernel:  __mutex_lock+0x194/0x4ec
Jan 23 12:34:51 armbian kernel:  __mutex_lock_slowpath+0x14/0x20
Jan 23 12:34:51 armbian kernel:  mutex_lock+0x34/0x40
Jan 23 12:34:51 armbian kernel:  _snd_pcm_stream_lock_irqsave+0x20/0x3c
Jan 23 12:34:51 armbian kernel:  snd_pcm_period_elapsed+0x24/0xa4
Jan 23 12:34:51 armbian kernel:  axg_fifo_pcm_irq_block+0x98/0x110 [snd_soc_meson_axg_fifo]
Jan 23 12:34:51 armbian kernel:  __handle_irq_event_percpu+0x74/0x198
Jan 23 12:34:51 armbian kernel:  handle_irq_event+0x60/0xcc
Jan 23 12:34:51 armbian kernel:  handle_fasteoi_irq+0x104/0x1e4
Jan 23 12:34:51 armbian kernel:  handle_domain_irq+0x80/0xe4
Jan 23 12:34:51 armbian kernel:  gic_handle_irq+0x68/0xfc
Jan 23 12:34:51 armbian kernel:  call_on_irq_stack+0x2c/0x38
Jan 23 12:34:51 armbian kernel:  do_interrupt_handler+0x3c/0x50
Jan 23 12:34:51 armbian kernel:  el1_interrupt+0x30/0x5c
Jan 23 12:34:51 armbian kernel:  el1h_64_irq_handler+0x18/0x24
Jan 23 12:34:51 armbian kernel:  el1h_64_irq+0x78/0x7c
Jan 23 12:34:51 armbian kernel:  snd_pcm_update_hw_ptr0.llvm.2993991737620930840+0x2a0/0x3b0
Jan 23 12:34:51 armbian kernel:  snd_pcm_delay+0xec/0x19c
Jan 23 12:34:51 armbian kernel:  snd_pcm_common_ioctl+0x470/0x684
Jan 23 12:34:51 armbian kernel:  snd_pcm_ioctl.llvm.15761505052160242895+0x34/0x4c
Jan 23 12:34:51 armbian kernel:  __arm64_sys_ioctl+0x90/0xcc
Jan 23 12:34:51 armbian kernel:  invoke_syscall+0x40/0x100
Jan 23 12:34:51 armbian kernel:  el0_svc_common.llvm.1948310897148432672+0x90/0x188
Jan 23 12:34:51 armbian kernel:  do_el0_svc+0x24/0x78
Jan 23 12:34:51 armbian kernel:  el0_svc+0x20/0x78
Jan 23 12:34:51 armbian kernel:  el0t_64_sync_handler+0x84/0xe4
Jan 23 12:34:51 armbian kernel:  el0t_64_sync+0x1a0/0x1a4
Jan 23 12:34:51 armbian kernel: Unable to handle kernel paging request at virtual address 0000004048d14c37

这几天刷了各种内核测试情况如下:

  1. 5.10系列安装此音频服务不会死机,正常随便播放.
  2. 测试了很多5.15的各种版本内核都会出现这个死机情况,5.10完全没问题,关键我有一个M401A估计因为体质的原因只能刷5.15系列内核,各种DTB都试过不能启动,5.15系列就随便启动刷入EMMC.

主要也看不懂这个错误的产生原因所以请教下

@ophub
Copy link
Owner

ophub commented Jan 26, 2023

你可以刷5.10的固件,把5.15的这个dtb覆盖到5.10里用

@iamhyde
Copy link
Author

iamhyde commented Jan 26, 2023

你可以刷5.10的固件,把5.15的这个dtb覆盖到5.10里用

感谢大佬回复,目前就是有一台M401A无法刷5.10系列,估计体质原因,内存或者EMMC,我试过各种DTB都无法启动,5.15随便启动
想问下这个log能看出是啥原因导致的死机吗?看看能否在5.15下解决就好了

@ophub
Copy link
Owner

ophub commented Jan 26, 2023

你测试的是5.15.79内核,现在最新的内核是5.15.90了,这个内核恐慌的问题大约在5.15.85左右的某个版本移除过一个补丁,在gtk pro用户测试反馈中他的设备不恐慌了,你试试更新到最新的内核。

@ophub
Copy link
Owner

ophub commented Jan 27, 2023

这个服务是不是要启用内核的某个选项才能支持airplay服务?也许是5.15内核少选择了什么?

另外你可以试一试5.4内核,这个和5.15启动机制相同。

@iamhyde
Copy link
Author

iamhyde commented Jan 27, 2023

你测试的是5.15.79内核,现在最新的内核是5.15.90了,这个内核恐慌的问题大约在5.15.85左右的某个版本移除过一个补丁,在gtk pro用户测试反馈中他的设备不恐慌了,你试试更新到最新的内核。

升级到5.15.90了还是死机Log如图,也不是不支持,服务能启动可播放就是几十秒后死机,5.10系列完全没问题
然后我也测试了5.15.80前的版本hdmi转3.5mm有声音,80后的版本就没声音了,DTB不变,不知道是不是声卡驱动有变化?
a961cc19f54fb67470b70695864ab01

@ophub
Copy link
Owner

ophub commented Jan 27, 2023

https://github.com/unifreq/linux-5.15.y

这是内核源码,可以查看每个版本的变化。
你如果之前的某个版本可以使用,你在f大的网盘里能下载到历史内核。如果你要自定义编译,可以clone后回退到你指定的版本。

@iamhyde
Copy link
Author

iamhyde commented Jan 27, 2023

这个服务是不是要启用内核的某个选项才能支持airplay服务?也许是5.15内核少选择了什么?

另外你可以试一试5.4内核,这个和5.15启动机制相同。

切换到5.4内核没问题了,播放了几十分钟都不死机,可是5.4下盒子的蓝牙又没法驱动给HomeAssistant,能修复下5.15就好了,感谢

@ophub ophub closed this as completed Jan 27, 2023
@atgcccn
Copy link

atgcccn commented Jun 25, 2023

请问大家安装的是docker run -d --restart unless-stopped --net host --device /dev/snd
mikebrady/shairport-sync 嘛

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants