angelkyo
发表于 2017-2-22 15:44
本帖最后由 angelkyo 于 2017-2-22 15:59 编辑
改进版脚本,欢迎测试。。。
angelkyo
发表于 2017-2-22 15:46
本帖最后由 angelkyo 于 2017-2-22 17:54 编辑
#!/bin/sh
# 安装声卡守护进程脚本
SCRIPT_PATH="$(dirname "$0")"
cat << EOF
-- 安装声卡守护进程脚本 --
此安装程序脚本演示了shell编程技术,运行开机任务等。
要完全卸载,请手动删除以下文件:
rm -rf '/Library/LaunchAgents/com.audio.reset.plist'
rm -rf '/Library/Application Support/AudioReset/AudioReset.sh'
rm -rf '/Library/Application Support/AudioReset/hda-verb'
EOF
cat << EOF
ALC233 10ec_0233 "0x19 SET_PIN_WIDGET_CONTROL 0x25"
ALC235 10ec_0235 "0x19 SET_PIN_WIDGET_CONTROL 0x25"
ALC255 10ec_0255 "0x19 SET_PIN_WIDGET_CONTROL 0x25"
ALC269 10ec_0269 "0x15 SET_UNSOLICITED_ENABLE 0x83"
ALC269VB 10ec_0269_HDA_1028_04d9 "0x21 SET_UNSOLICITED_ENABLE 0x83"
ALC269BRIX10ec_0269_HDA_1458_fa50 "0x15 SET_UNSOLICITED_ENABLE 0x83"
ALC282 10ec_0282 "0x19 SET_PIN_WIDGET_CONTROL 0x25"
ALC283 10ec_0283 "0x19 SET_PIN_WIDGET_CONTROL 0x25"
ALC292 10ec_0292 "0x15 SET_UNSOLICITED_ENABLE 0x83"
ALC668 10ec_0668 "0x15 SET_UNSOLICITED_ENABLE 0x83"
ALC1150 10ec_0900 "0x20 SET_COEF_INDEX 0x07"
EOF
while true; do
echo "请输入你的声卡代码(如为ALC269VB,只需输入269VB)"
echo "如不在列表,或要自定义参数,请输入N"
read -p "请输入代码:" arg0
case "$arg0" in
"233" ) arg1="0x19 SET_PIN_WIDGET_CONTROL 0x25" break;;
"235" ) arg1="0x19 SET_PIN_WIDGET_CONTROL 0x25" break;;
"255" ) arg1="0x19 SET_PIN_WIDGET_CONTROL 0x25" break;;
"269" ) arg1="0x15 SET_UNSOLICITED_ENABLE 0x83" break;;
"269VB" ) arg1="0x21 SET_UNSOLICITED_ENABLE 0x83" break;;
"269BRIX" ) arg1="0x15 SET_UNSOLICITED_ENABLE 0x83" break;;
"282" ) arg1="0x19 SET_PIN_WIDGET_CONTROL 0x25" break;;
"283" ) arg1="0x19 SET_PIN_WIDGET_CONTROL 0x25" break;;
"292" ) arg1="0x15 SET_UNSOLICITED_ENABLE 0x83" break;;
"668" ) arg1="0x15 SET_UNSOLICITED_ENABLE 0x83" break;;
"1150" ) arg1="0x20 SET_COEF_INDEX 0x07" break;;
) echo "请自定义参数(不含引号)"
break;;
esac
done
if [ "$arg1" == "" ]
then
echo "如:0x19 SET_PIN_WIDGET_CONTROL 0x25"
read -p "自定义参数为:" arg1
fi
while true; do
echo "每次开机将会执行如下命令:"
echo "hda-verb" $arg1
read -p "确认无误继续吗? " yn
case $yn in
* ) break;;
* ) exit;;
* ) echo "请回答Y或N.";;
esac
done
# 建立临时文件夹并复制hda-verb
mkdir /tmp/audio_reset_$
sudo -p "请输入您的管理员密码:" mkdir -pv '/Library/Application Support/AudioReset'
cd "$SCRIPT_PATH"
# 检查hda-verb是否存在
if [ ! -f 'hda-verb' ]
then
echo "错误: 找不到 hda-verb 文件." 1>&2
exit 1
fi
cp -rf hda-verb /tmp/audio_reset_$
cd /tmp/audio_reset_$
# 创建shell脚本
cat << EOF > audioreset.sh
#!/bin/sh
# 要完全卸载,请手动删除以下文件:
# rm -rf '/Library/LaunchAgents/com.audio.reset.plist'
# rm -rf '/Library/Application Support/AudioReset/AudioReset.sh'
# rm -rf '/Library/Application Support/AudioReset/hda-verb'
'/Library/Application Support/AudioReset/hda-verb' $arg1
exit 0
EOF
chmod -f 755 AudioReset.sh
# 创建 launchd plist 以每次开机运行一次脚本
cat << EOF > com.audio.reset.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.audio.reset</string>
<key>ProgramArguments</key>
<array>
<string>/Library/Application Support/AudioReset/AudioReset.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
# 移动文件,并检查错误
if ! sudo -p "请输入您的管理员密码:" chown root com.audio.reset.plist
then
echo "错误: 无法设置 plist 文件的所有权,脚本未安装." 1>&2
rm -rf /tmp/audio_reset_$
exit 1
fi
if ! sudo mv -f com.audio.reset.plist /Library/LaunchAgents/
then
echo "错误: 无法安装 plist 文件,脚本未安装." 1>&2
rm -rf /tmp/audio_reset_$
exit 1
fi
if ! sudo mv -f hda-verb '/Library/Application Support/AudioReset/'
then
echo "错误: 无法安装 hda-verb 文件,脚本未安装." 1>&2
sudo rm -rf /tmp/audio_reset_$
sudo rm -rf /Library/LaunchAgents/com.audio.reset.plist
exit 1
fi
if ! sudo mv -f AudioReset.sh '/Library/Application Support/AudioReset/'
then
echo "错误: 无法安装 shell 脚本文件,脚本未安装." 1>&2
rm -rf /tmp/audio_reset_$
sudo rm -rf /Library/LaunchAgents/com.audio.reset.plist
sudo rm -rf '/Library/Application Support/AudioReset/hda-verb'
exit 1
fi
# 安装成功,删除临时文件夹
rm -rf /tmp/audio_reset_$
echo "成功安装了脚本,请重新启动计算机."
echo "玩的开心!"
exit 0
改进了一下下,欢迎测试。。。
口袋妖怪heart
发表于 2017-2-22 15:59
vastlee 发表于 2017-2-22 15:14 https://www.pcbeta.com/static/image/common/back.gif
口袋妖怪heart,建议把这个帖子放倒顶置贴里。对与ALC233和所有由此问题的其它型号类型的声卡用户来说真的 ...
额 不好意思我不是版主...
neroxps
发表于 2017-2-22 17:49
口袋妖怪heart 发表于 2017-2-22 15:59 https://www.pcbeta.com/static/image/common/back.gif
额 不好意思我不是版主...
还是不要置顶好,帖子本来语句就不完整。我编辑了好几次,都被吃掉几段字。
我写完帖子备份了,但是上传上来又吃掉。
口袋妖怪heart
发表于 2017-2-23 22:34
angelkyo 发表于 2017-2-22 12:41 https://www.pcbeta.com/static/image/common/back.gif
没用,不知何故。
好像你用的是中文引号喔.
口袋妖怪heart
发表于 2017-2-23 22:35
angelkyo 发表于 2017-2-22 15:46 https://www.pcbeta.com/static/image/common/back.gif
改进了一下下,欢迎测试。。。
# 创建shell脚本
cat << EOF > audioreset.sh
#!/bin/sh
# 要完全卸载,请手动删除以下文件:
# rm -rf '/Library/LaunchAgents/com.audio.reset.plist'
# rm -rf '/Library/Application Support/AudioReset/AudioReset.sh'
# rm -rf '/Library/Application Support/AudioReset/hda-verb'
'/Library/Application Support/AudioReset/hda-verb' $arg1
exit 0
EOF这段的 arg1 没有变量定义喔?因为你是在创建东西
peterneo
发表于 2017-3-12 14:55
我怎么在terminal不能运行hda-verb?说不是BASH的命令
qq787152848
发表于 2017-3-12 22:04
有时间看看怎么样。
neroxps
发表于 2017-3-12 22:21
peterneo 发表于 2017-3-12 14:55 https://www.pcbeta.com/static/image/common/back.gif
我怎么在terminal不能运行hda-verb?说不是BASH的命令
下载 https://bitbucket.org/RehabMan/os-x-eapd-codec-commander/downloads/
把里面的 hda-verb 放到 /usr/bin
fsl37
发表于 2017-3-20 19:22
Perform Reset 设为 YES ,这个方法失灵了,今天发现唤醒没声了,是不是改ssdt稳定,麻烦大神邦我搞下,谢谢1
fsl37
发表于 2017-3-20 19:57
angelkyo 发表于 2017-2-22 01:45 https://www.pcbeta.com/static/image/common/back.gif
拿去玩耍,InstallAudioReset.sh拖到终端回车即可。
如果不能运行,给它执行权限:
第48行的值, ...
我试试这个脚本
fsl37
发表于 2017-3-20 20:16
angelkyo 发表于 2017-2-22 01:45 https://www.pcbeta.com/static/image/common/back.gif
拿去玩耍,InstallAudioReset.sh拖到终端回车即可。
如果不能运行,给它执行权限:
第48行的值, ...
我安装这个脚本时,错误: 无法安装 hda-verb 文件,脚本未安装。是 怎么回事?
neroxps
发表于 2017-3-20 20:43
fsl37 发表于 2017-3-20 19:22 https://www.pcbeta.com/static/image/common/back.gif
Perform Reset 设为 YES ,这个方法失灵了,今天发现唤醒没声了,是不是改ssdt稳定,麻烦大神邦我搞下,谢谢 ...
尝试修复一下权限,再重启 试试。我的一直可以。
改 CC 和 SSDT 是一样的,只是为了更新 CC 的时候方便点无需修改 CC 而已。
另外修改 CC 的 SSDT 我已经放到本帖里面了啊
fsl37
发表于 2017-3-21 17:42
neroxps 发表于 2017-3-20 20:43 https://www.pcbeta.com/static/image/common/back.gif
尝试修复一下权限,再重启 试试。我的一直可以。
改 CC 和 SSDT 是一样的,只是为了更新 CC 的时候方便 ...
我明白了,谢谢 !
lc700x
发表于 2017-4-21 17:40
我的也是alc283试试看
lc700x
发表于 2017-4-21 17:43
咋下载不了??
weiisusu
发表于 2017-4-21 18:00
weiisusu
发表于 2017-4-21 18:00
zhlb30
发表于 2017-4-23 11:27
neroxps 发表于 2017-3-20 20:43 https://www.pcbeta.com/static/image/common/back.gif
尝试修复一下权限,再重启 试试。我的一直可以。
改 CC 和 SSDT 是一样的,只是为了更新 CC 的时候方便 ...
楼主,我按你的改为yes,,休眠醒来,插着耳机就只有耳机有声,不插就是内置有声,醒来不会自动切换了,是需要修改哪里?
wp8student
发表于 2017-5-28 22:07
本来想从ALCPlugFix换成你这个的,但是发现个情况,插上耳机拔了之后值又变回去了,杂音+麦克风不识别。只能再运行一次,自动添加命令只能运行一次,貌似ALCPlugFix才能开机运行一次,插上耳机和拔下耳机都运行一次。。。