我有一台联想 Yoga 7i,当前内核中其声卡存在已知问题,无法通过扬声器输出声音。
然而,有一个黑客解决方案被描述这里设置完成后,运行此脚本,音频就可以正常工作
#!/bin/bash
sudo rtcwake -m mem -s 1
while true
do
echo -n -e '\x00' | padsp tee /dev/audio
sleep 5
done
此脚本的问题在于,要运行rtcwake
,您似乎需要将其作为 运行sudo
,这意味着您需要输入密码,这使得它作为启动脚本毫无用处。但root
从头开始运行脚本意味着 while 循环会tee: /dev/audio: Connection refused
一遍又一遍地输出错误。
我怎样才能在任何用户启动时运行这个只使用其部分内容作为 sudo 的脚本?
答案1
可行的方法是拆分脚本:rtcwake -m mem -s 1
在启动时以 root 身份运行。如今,crontab 可能是执行此操作最方便的方法(除非您喜欢编写 systemd 服务):
sudo crontab -e
打开并编辑根 crontab 文件,并添加:
@reboot rtcwake -m mem -s 1
然后,您可以运行在用户登录时自动启动的另一个脚本的下一部分。