我希望 SmartCross 输出设备在开机时保持较小的音量,避免播放音频时突然声音很大。但我发现无论怎么在驱动里面调整初始音量,开机后音量总是在 -20dB。
我在调整音量的代码(master_vol_put)中插入了以下诊断语句:
printk("Current PID is %d %s\n", current->pid, current->comm); printk("Current parent PID is %d %s\n", current->real_parent->pid, current->real_parent->comm);
抓取发现是 alsactl (PID=219) 调整了音量,其父进程是 systemd (PID=1)。于是用 journalctl 查看 219 进程所属的服务:journalctl _PID=219
,发现其属于 alsa-restore.service
。只需要在 buildroot 菜单中去掉 alsactl 工具,这个服务就没有了。