SukkaW / Lenovo-Y9000X-Hackintosh

Lenovo LEGION Y9000X 2020 (Lenovo LEGION S740-15IRH) Hackintosh
GNU General Public License v3.0
88 stars 18 forks source link

Mac能用同样方法解决外放吗? #5

Closed Sulisong closed 2 years ago

Sulisong commented 2 years ago

原文地址 https://club.lenovo.com.cn/thread-7817162-1-1.html

解决方法 在/lib/firmware/目录下新建一个文件legion-alc285-0.0.1.patch 在/etc/modprobe.d/目录下新建文件legion-alc285-0.0.1.conf

有人在Linux系统解决了

SukkaW commented 2 years ago

@Sulisong 很有可能。我仔细看一下用到的 alc verb,看看能不能做到 AppleALC 里。

我猜测是有人逆向了 Windows 下的瑞昱声卡驱动,把里面的 verb 指令取出来了(毕竟联想提供的声卡驱动并没有直接驱动的 TAS 放大器)。

Sulisong commented 2 years ago

期待大佬的成果

------------------ 原始邮件 ------------------ 发件人: "SukkaW/Lenovo-Y9000X-Hackintosh" @.>; 发送时间: 2021年10月27日(星期三) 晚上11:14 @.>; @.**@.>; 主题: Re: [SukkaW/Lenovo-Y9000X-Hackintosh] Mac能用同样方法解决外放吗? (Issue #5)

@Sulisong 很有可能。我仔细看一下用到的 alc verb,看看能不能做到 AppleALC 里。

我猜测是有人逆向了 Windows 下的瑞昱声卡驱动,把里面的 verb 指令取出来了(毕竟联想提供的声卡驱动并没有直接驱动的 TAS 放大器)。

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

Sulisong commented 2 years ago

或者可以尝试在AppleALC开源项目下面回复一下,嘿嘿,https://github.com/acidanthera/AppleALC

------------------ 原始邮件 ------------------ 发件人: "苏lisong" @.>; 发送时间: 2021年10月27日(星期三) 晚上11:20 @.>;

主题: 回复: [SukkaW/Lenovo-Y9000X-Hackintosh] Mac能用同样方法解决外放吗? (Issue #5)

期待大佬的成果

------------------ 原始邮件 ------------------ 发件人: "SukkaW/Lenovo-Y9000X-Hackintosh" @.>; 发送时间: 2021年10月27日(星期三) 晚上11:14 @.>; @.**@.>; 主题: Re: [SukkaW/Lenovo-Y9000X-Hackintosh] Mac能用同样方法解决外放吗? (Issue #5)

@Sulisong 很有可能。我仔细看一下用到的 alc verb,看看能不能做到 AppleALC 里。

我猜测是有人逆向了 Windows 下的瑞昱声卡驱动,把里面的 verb 指令取出来了(毕竟联想提供的声卡驱动并没有直接驱动的 TAS 放大器)。

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

Sulisong commented 2 years ago

已经有codec了,可以按照这个教程尝试一下https://blog.daliansky.net/Use-AppleALC-sound-card-to-drive-the-correct-posture-of-AppleHDA.html

SukkaW commented 2 years ago

已经有codec了,可以按照这个教程尝试一下https://blog.daliansky.net/Use-AppleALC-sound-card-to-drive-the-correct-posture-of-AppleHDA.html

看样子,Custom Verb 只能通过 userspace 的工具 hda-verb 添加(AppleALC 只提供了 VerbStub)。我已经在 acidanthera bugtracker 询问关于 Custom Verb 的具体实现了。如果 AppleALC 不提供 kernelspace 下的实现的话,大概只能用老派的 CodecCommander 试一试了。

whiskyzhao commented 2 years ago

如果能解决那真的nb了

SukkaW commented 2 years ago

@Sulisong

尝试用 https://github.com/black-dragon74/ALCPlugFix-Swift 发送 verb 命令,扬声器仍然无法使用。猜测是和 AppleALC 中的 Codec 有关,可能需要更换 layout-id、或重新定制 AppleALC。近期抽空去 Linux 下看看。

Sulisong commented 2 years ago

是不是和这个子设备ID有关,使用layout31 识别度设备ID和Linux修复补丁的不一样 image image

Sulisong commented 2 years ago

还有这个教程可以看看,https://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1677191

Sulisong commented 2 years ago

或者试试ID71 image

SukkaW commented 2 years ago

或者试试ID71 image

@Sulisong ID 71 是和 Y9000X 的 codec 最接近的,但是包含有额外设备。我请 @R-a-s-c-a-l 帮忙定制了新的 layout(参见 https://github.com/acidanthera/AppleALC/pull/720 )。

以及原始的 Custom Verb 太冗长了,@elmkzgirxp 精简后的 Custom Verb 是可用的(在 Hackintosh 和 Linux 下皆有效)

Sulisong commented 2 years ago

acidanthera/AppleALC#720

很nice,期待可用

Sulisong commented 2 years ago

或者试试ID71 image

@Sulisong ID 71 是和 Y9000X 的 codec 最接近的,但是包含有额外设备。我请 @R-a-s-c-a-l 帮忙定制了新的 layout(参见 acidanthera/AppleALC#720 )。

以及原始的 Custom Verb 太冗长了,@elmkzgirxp 精简后的 Custom Verb 是可用的(在 Hackintosh 和 Linux 下皆有效)

使用你提交的AppleALC分支,测试了并没有效果 image

SukkaW commented 2 years ago

使用你提交的AppleALC分支,测试了并没有效果

这个 Layout 只是添加了正确的扬声器路径;仍然需要额外配合 Custom Verb 才能为扬声器供电。

ALCPlugFix-Swift 尚不支持 Short Hand Syntax Verb Command,需要等 https://github.com/black-dragon74/ALCPlugFix-Swift/pull/13 合并。

Sulisong commented 2 years ago

使用你提交的AppleALC分支,测试了并没有效果

这个 Layout 只是添加了正确的扬声器路径;仍然需要额外配合 Custom Verb 才能为扬声器供电。

ALCPlugFix-Swift 尚不支持 Short Hand Syntax Verb Command,需要等 black-dragon74/ALCPlugFix-Swift#13 合并。

我使用你提交的ALCPlugFix-Swift#13 ,然后运行

<?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">
  <array>
    <dict>
      <key>Comment</key>
      <string>0x20 0x500 0x24</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x24</string>
      <key>Verb</key>
      <string>0x500</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x41</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x41</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x500 0x26</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x26</string>
      <key>Verb</key>
      <string>0x500</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x2</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x2</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x0</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x0</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x0</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x0</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x4b0 0x20</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x20</string>
      <key>Verb</key>
      <string>0x4b0</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x500 0x24</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x24</string>
      <key>Verb</key>
      <string>0x500</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x42</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x42</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x500 0x26</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x26</string>
      <key>Verb</key>
      <string>0x500</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x2</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x2</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x0</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x0</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x400 0x0</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x0</string>
      <key>Verb</key>
      <string>0x400</string>
    </dict>
    <dict>
      <key>Comment</key>
      <string>0x20 0x4b0 0x20</string>
      <key>Enabled</key>
      <true />
      <key>Node ID</key>
      <string>0x20</string>
      <key>On Boot</key>
      <true />
      <key>On Connect</key>
      <false />
      <key>On Disconnect</key>
      <true />
      <key>On Mute</key>
      <false />
      <key>On Sleep</key>
      <false />
      <key>On Unmute</key>
      <false />
      <key>On Wake</key>
      <true />
      <key>Param</key>
      <string>0x20</string>
      <key>Verb</key>
      <string>0x4b0</string>
    </dict>
  </array>
</plist>

还是没有声音,不知道还差哪一步?

Sulisong commented 2 years ago

这个是根据linux精简转的,一样无效,不知道哪里问题

<?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">
<array>
    <dict>
        <key>Comment</key>
        <string>0x20 0x500 0x26</string>
        <key>Enabled</key>
        <true/>
        <key>Node ID</key>
        <string>0x20</string>
        <key>On Boot</key>
        <false/>
        <key>On Connect</key>
        <true/>
        <key>On Disconnect</key>
        <false/>
        <key>On Mute</key>
        <false/>
        <key>On Sleep</key>
        <false/>
        <key>On Unmute</key>
        <false/>
        <key>On Wake</key>
        <false/>
        <key>Param</key>
        <string>0x26</string>
        <key>Verb</key>
        <string>SET_COEF_INDEX</string>
    </dict>
    <dict>
        <key>Comment</key>
        <string>0x20 0x400 0x2</string>
        <key>Enabled</key>
        <true/>
        <key>Node ID</key>
        <string>0x20</string>
        <key>On Boot</key>
        <false/>
        <key>On Connect</key>
        <true/>
        <key>On Disconnect</key>
        <false/>
        <key>On Mute</key>
        <false/>
        <key>On Sleep</key>
        <false/>
        <key>On Unmute</key>
        <false/>
        <key>On Wake</key>
        <false/>
        <key>Param</key>
        <string>0x0002</string>
        <key>Verb</key>
        <string>SET_PROC_COEF</string>
    </dict>
    <dict>
        <key>Comment</key>
        <string>0x20 0x400 0x0</string>
        <key>Enabled</key>
        <true/>
        <key>Node ID</key>
        <string>0x20</string>
        <key>On Boot</key>
        <false/>
        <key>On Connect</key>
        <true/>
        <key>On Disconnect</key>
        <false/>
        <key>On Mute</key>
        <false/>
        <key>On Sleep</key>
        <false/>
        <key>On Unmute</key>
        <false/>
        <key>On Wake</key>
        <false/>
        <key>Param</key>
        <string>0x0000</string>
        <key>Verb</key>
        <string>SET_PROC_COEF</string>
    </dict>
    <dict>
        <key>Comment</key>
        <string>0x20 0x400 0x0</string>
        <key>Enabled</key>
        <true/>
        <key>Node ID</key>
        <string>0x20</string>
        <key>On Boot</key>
        <false/>
        <key>On Connect</key>
        <true/>
        <key>On Disconnect</key>
        <false/>
        <key>On Mute</key>
        <false/>
        <key>On Sleep</key>
        <false/>
        <key>On Unmute</key>
        <false/>
        <key>On Wake</key>
        <false/>
        <key>Param</key>
        <string>0x0000</string>
        <key>Verb</key>
        <string>SET_PROC_COEF</string>
    </dict>
    <dict>
        <key>Comment</key>
        <string>0x20 0x4b0 0x20</string>
        <key>Enabled</key>
        <true/>
        <key>Node ID</key>
        <string>0x20</string>
        <key>On Boot</key>
        <false/>
        <key>On Connect</key>
        <true/>
        <key>On Disconnect</key>
        <false/>
        <key>On Mute</key>
        <false/>
        <key>On Sleep</key>
        <false/>
        <key>On Unmute</key>
        <false/>
        <key>On Wake</key>
        <false/>
        <key>Param</key>
        <string>0xb020</string>
        <key>Verb</key>
        <string>SET_PROC_COEF</string>
    </dict>
</array>
</plist>
Sulisong commented 2 years ago

alc-verb 发送了也无效,哎,搞不懂大佬是怎么搞定的

alc-verb  0x20 SET_COEF_INDEX 0x24
alc-verb  0x20 SET_PROC_COEF 0x0041
alc-verb  0x20 SET_COEF_INDEX 0x26
alc-verb  0x20 SET_PROC_COEF 0x0002
alc-verb  0x20 SET_PROC_COEF 0x0000
alc-verb  0x20 SET_PROC_COEF 0x0000
alc-verb  0x20 SET_PROC_COEF 0xb020
alc-verb  0x20 SET_COEF_INDEX 0x24
alc-verb  0x20 SET_PROC_COEF 0x0042
alc-verb  0x20 SET_COEF_INDEX 0x26
alc-verb  0x20 SET_PROC_COEF 0x0002
alc-verb  0x20 SET_PROC_COEF 0x0000
alc-verb  0x20 SET_PROC_COEF 0x0000
alc-verb  0x20 SET_PROC_COEF 0xb020

image

SukkaW commented 2 years ago

alc-verb 发送了也无效,哎,搞不懂大佬是怎么搞定的

alc-verb  0x20 SET_COEF_INDEX 0x24
alc-verb  0x20 SET_PROC_COEF 0x0041
alc-verb  0x20 SET_COEF_INDEX 0x26
alc-verb  0x20 SET_PROC_COEF 0x0002
alc-verb  0x20 SET_PROC_COEF 0x0000
alc-verb  0x20 SET_PROC_COEF 0x0000
alc-verb  0x20 SET_PROC_COEF 0xb020
alc-verb  0x20 SET_COEF_INDEX 0x24
alc-verb  0x20 SET_PROC_COEF 0x0042
alc-verb  0x20 SET_COEF_INDEX 0x26
alc-verb  0x20 SET_PROC_COEF 0x0002
alc-verb  0x20 SET_PROC_COEF 0x0000
alc-verb  0x20 SET_PROC_COEF 0x0000
alc-verb  0x20 SET_PROC_COEF 0xb020

image

#!/usr/bin/bash
# Left speaker
./alc-verb  0x20 0x500 0x24
./alc-verb  0x20 0x400 0x41
./alc-verb  0x20 0x500 0x26
./alc-verb  0x20 0x400 0x2
./alc-verb  0x20 0x400 0x0
./alc-verb  0x20 0x400 0x0
./alc-verb  0x20 0x4b0 0x20

# Right speaker
./alc-verb  0x20 0x500 0x24
./alc-verb  0x20 0x400 0x42
./alc-verb  0x20 0x500 0x26
./alc-verb  0x20 0x400 0x2
./alc-verb  0x20 0x400 0x0
./alc-verb  0x20 0x400 0x0
./alc-verb  0x20 0x4b0 0x20

alc-verb 似乎不支持发送、或是 Intel HDA 设备不识别 0x20 0x400 0xb020;但是 0x20 0x4b0 0x20 是可以的。

Sulisong commented 2 years ago

https://gitee.com/YasuStudio/fix-speaker-y9000x

大佬你看这个,写了一键脚步,可以使用

XQLsj99 commented 2 years ago

https://gitee.com/YasuStudio/fix-spe

https://gitee.com/YasuStudio/fix-speaker-y9000x

大佬你看这个,写了一键脚步,可以使用

12.01已经用上!非常感谢各位大佬!不过目前3.5mm有线耳机与扬声器无法切换,算是一个小瑕疵,但是不管怎样,哑巴终于出声了,牛b!

Sulisong commented 2 years ago

https://gitee.com/YasuStudio/fix-spe

https://gitee.com/YasuStudio/fix-speaker-y9000x 大佬你看这个,写了一键脚步,可以使用

12.01已经用上!非常感谢各位大佬!不过目前3.5mm有线耳机与扬声器无法切换,算是一个小瑕疵,但是不管怎样,哑巴终于出声了,牛b!

我这里耳机可以正常切换的,y9000x 2020版本

ghost commented 2 years ago

https://gitee.com/YasuStudio/fix-spe

https://gitee.com/YasuStudio/fix-speaker-y9000x 大佬你看这个,写了一键脚步,可以使用

12.01已经用上!非常感谢各位大佬!不过目前3.5mm有线耳机与扬声器无法切换,算是一个小瑕疵,但是不管怎样,哑巴终于出声了,牛b!

我这里耳机可以正常切换的,y9000x 2020版本

感谢大佬们的努力,3.5mm耳机插入时,无法切换内置扬声器,输出设备仅有一个3.5mm耳机。蓝牙耳机、USB耳机与3.5mm耳机同时插入,有多个输出设备可以切换,但依旧无内置扬声器选项。拔除3.5mm耳机后,出现内置扬声器选项。

Sulisong commented 2 years ago

https://gitee.com/YasuStudio/fix-spe

https://gitee.com/YasuStudio/fix-speaker-y9000x 大佬你看这个,写了一键脚步,可以使用

12.01已经用上!非常感谢各位大佬!不过目前3.5mm有线耳机与扬声器无法切换,算是一个小瑕疵,但是不管怎样,哑巴终于出声了,牛b!

我这里耳机可以正常切换的,y9000x 2020版本

感谢大佬们的努力,3.5mm耳机插入时,无法切换内置扬声器,输出设备仅有一个3.5mm耳机。蓝牙耳机、USB耳机与3.5mm耳机同时插入,有多个输出设备可以切换,但依旧无内置扬声器选项。拔除3.5mm耳机后,出现内置扬声器选项。

哦哦,我理解你的意思了。好像系统默认就是这样运行的,有线输出就隐藏扬声器,我相信白果也是这样。蓝牙或者type-c就可以切换。

ghost commented 2 years ago

https://gitee.com/YasuStudio/fix-spe

https://gitee.com/YasuStudio/fix-speaker-y9000x 大佬你看这个,写了一键脚步,可以使用

12.01已经用上!非常感谢各位大佬!不过目前3.5mm有线耳机与扬声器无法切换,算是一个小瑕疵,但是不管怎样,哑巴终于出声了,牛b!

我这里耳机可以正常切换的,y9000x 2020版本

感谢大佬们的努力,3.5mm耳机插入时,无法切换内置扬声器,输出设备仅有一个3.5mm耳机。蓝牙耳机、USB耳机与3.5mm耳机同时插入,有多个输出设备可以切换,但依旧无内置扬声器选项。拔除3.5mm耳机后,出现内置扬声器选项。

D014225A-B8F5-44D3-BDB2-B29E7674D5DA E561E7EC-42C9-4320-860D-B512D2ABDB9C

哦哦,我理解你的意思了。好像系统默认就是这样运行的,有线输出就隐藏扬声器,我相信白果也是这样。蓝牙或者type-c就可以切换。

看了看白果,是有选项,可以正常选择。不过只是小瑕疵,感谢各位大佬驱动了扬声器。

SukkaW commented 2 years ago

感谢大佬们的努力,3.5mm耳机插入时,无法切换内置扬声器,输出设备仅有一个3.5mm耳机。蓝牙耳机、USB耳机与3.5mm耳机同时插入,有多个输出设备可以切换,但依旧无内置扬声器选项。拔除3.5mm耳机后,出现内置扬声器选项。

这个是 ALC285 声卡的 Quirk,不支持多输出热切换;和在 Linux 下的表现是一致的。

ghost commented 2 years ago

这个是 ALC285 声卡的 Quirk,不支持多输出热切换;和在 Linux 下的表现是一致的。

好的,明白了,接入耳机时,麦克风也不会同样切换成耳机麦克风,应该也是同样的问题。

M69W commented 2 years ago

隔壁小新pro13 关注一波,小新pro13 的麦克风还有希望不

ghost commented 2 years ago

各位大佬,经过使用,好像电脑睡眠、重启或者中断播放一会儿,会出现无声现象,需要再次启用才有声音,也发现插拔3.5mm耳机也可再次激活扬声器,不知道怎么回事,不知道你们有没有这现象?

ImKujio commented 2 years ago

各位大佬,经过使用,好像电脑睡眠、重启或者中断播放一会儿,会出现无声现象,需要再次启用才有声音,也发现插拔3.5mm耳机也可再次激活扬声器,不知道怎么回事,不知道你们有没有这现象?

我的也是+1

M69W commented 2 years ago

小新pro13 在电池模式下,耳机偶尔会出现无声状态, 临时解决:在设置,声音。打开这个界面并不要关闭能解决类似的问题.

SukkaW commented 2 years ago

各位大佬,经过使用,好像电脑睡眠、重启或者中断播放一会儿,会出现无声现象,需要再次启用才有声音,也发现插拔3.5mm耳机也可再次激活扬声器,不知道怎么回事,不知道你们有没有这现象?

各位大佬,经过使用,好像电脑睡眠、重启或者中断播放一会儿,会出现无声现象,需要再次启用才有声音,也发现插拔3.5mm耳机也可再次激活扬声器,不知道怎么回事,不知道你们有没有这现象?

我的也是+1

可能睡眠唤醒时,ALCPlugFix 没能 Hook 到 Wake 事件。

ImKujio commented 2 years ago

各位大佬,经过使用,好像电脑睡眠、重启或者中断播放一会儿,会出现无声现象,需要再次启用才有声音,也发现插拔3.5mm耳机也可再次激活扬声器,不知道怎么回事,不知道你们有没有这现象?

各位大佬,经过使用,好像电脑睡眠、重启或者中断播放一会儿,会出现无声现象,需要再次启用才有声音,也发现插拔3.5mm耳机也可再次激活扬声器,不知道怎么回事,不知道你们有没有这现象?

我的也是+1

可能睡眠唤醒时,ALCPlugFix 没能 Hook 到 Wake 事件。

确实只在电池模式下会出现,但不止是睡眠,只要停止声音播放10s就会出现扬声器无声的情况

ghost commented 2 years ago

各位大佬,经过使用,好像电脑睡眠、重启或者中断播放一会儿,会出现无声现象,需要再次启用才有声音,也发现插拔3.5mm耳机也可再次激活扬声器,不知道怎么回事,不知道你们有没有这现象?

各位大佬,经过使用,好像电脑睡眠、重启或者中断播放一会儿,会出现无声现象,需要再次启用才有声音,也发现插拔3.5mm耳机也可再次激活扬声器,不知道怎么回事,不知道你们有没有这现象?

我的也是+1

可能睡眠唤醒时,ALCPlugFix 没能 Hook 到 Wake 事件。

确实只在电池模式下会出现,但不止是睡眠,只要停止声音播放10s就会出现扬声器无声的情况

Linux下好像也会出现这个问题,联想社区https://club.lenovo.com.cn/thread-7817162-1-1.html

M69W commented 2 years ago

小新pro13 在电池模式下,耳机偶尔会出现无声状态, 临时解决:在设置,声音。打开这个界面并不要关闭能解决类似的问题.

小新pro13 也类似, 电源模式下,耳机正常使用,并没出现无声现象。

SukkaW commented 2 years ago

@XIAO-FJ @M69W @ImKujio 经过确认,可能和 macOS 的 coreaudiod 的 Bug 有关。重启 coreaudiod 守护进程可以解决:

sudo pkill coreaudiod && sudo launchctl start com.apple.audio.coreaudiod
ImKujio commented 2 years ago
sudo pkill coreaudiod && sudo launchctl start com.apple.audio.coreaudiod

没有用啊,电池状态下马上就没声了,,,得插一下耳机再拔出来就又有声了

ImKujio commented 2 years ago

@SukkaW @XIAO-FJ 电池模式下一会就没声的问题我找到一个临时的解决方法,原理是关掉自动切换,改成每20秒发送一次。 原因是我发现没声时直接执行以下命令就又有声了: image 所以直接写了个启动脚本从[开机/唤醒]开始每20秒就执行一次, image 这样扬声器永远都没问题了, 测试了下插耳机没问题,拔掉耳机扬声器声音会在0~20秒后恢复正常。 如果有其他更优雅的解决办法麻烦告诉我!

SukkaW commented 2 years ago

https://github.com/acidanthera/AppleALC/pull/755

@M69W @XIAO-FJ @ImKujio @Sulisong

ryan7n commented 2 years ago

艾玛,看哭了。等了2年多,官方屁都没一个,还是社区给力,感恩各位大佬

Sulisong commented 2 years ago

acidanthera/AppleALC#755

@M69W @XIAO-FJ @ImKujio @Sulisong

nice,测试了可以静音了,现在就剩下电源休眠失效了。

Sulisong commented 2 years ago

@SukkaW image 大佬看一下这个,休眠唤醒ALCPlugFix运行日志,最后一行是不是导致没有声音的原因。日志翻译:已保存启用噪声消除设置与默认设置相同 (=1)

SukkaW commented 2 years ago

@SukkaW 大佬看一下这个,休眠唤醒ALCPlugFix运行日志,最后一行是不是导致没有声音的原因。日志翻译:已保存启用噪声消除设置与默认设置相同 (=1)

你的 Log 大概是 corrupt 了。我查了一下这条 message,在 ALCPlugFix 源码里没有,在 AppleALC 里也没有。关于这条报错唯一的资料是关于 OpenCV 的: https://stackoverflow.com/questions/53253563/opencv-c-xcode-on-mac-mojave-error-nscamerausagedescription

playersun commented 2 years ago

大佬们,请问下 我这边有时候重启有声音,有时候重启很多次都没有声音,请问是没加载到驱动吗?

ryan7n commented 2 years ago

linux内核已经修复了,mac应该也可以也可以移植一下

SukkaW commented 2 years ago

linux内核已经修复了,mac应该也可以也可以移植一下

去找 @black-dragon74 让他合并 https://github.com/black-dragon74/ALCPlugFix-Swift/pull/13 ,催我没有用。

我已经把能做的都做了。AppleALC 我也定制了,用到的 alc command 我也总结出来了。上游工具链不修我这边没法做任何事情。

再催我就把这条 issue 锁掉关了。再开 issue 问我 我就直接把仓库的 issue 也禁用掉。

ryan7n commented 2 years ago

linux内核已经修复了,mac应该也可以也可以移植一下

去找 @black-dragon74 让他合并 black-dragon74/ALCPlugFix-Swift#13 ,催我没有用。

我已经把能做的都做了。AppleALC 我也定制了,用到的 alc command 我也总结出来了。上游工具链不修我这边没法做任何事情。

再催我就把这条 issue 锁掉关了。再开 issue 问我 我就直接把仓库的 issue 也禁用掉。

对大佬的付出,有且只有感激,官方的无为更让人感觉到社区的温暖,没有催大佬的意思,我现在用ubuntu升级最新内核是正常的,所以就提了一嘴,希望能对大家有帮助

SukkaW commented 2 years ago

...

@ryan7n 既然来了,帮忙测试一下 https://github.com/acidanthera/AppleALC/pull/755 里的 AppleALC.kext(下载解压 AppleALC.kext.zip、替换掉最新版的 1.7.1 的 AppleALC)有没有解决掉无法静音的问题。如果没问题,我就重新给 AppleALC 开 PR 了。

SukkaW commented 2 years ago

https://github.com/black-dragon74/ALCPlugFix-Swift/pull/13 已经合并到 master。 我尽快出一个 Y9000X 专用的安装脚本。

Atomic1024 commented 2 years ago

bash -c "$(curl -fsSL https://gitee.com/YasuStudio/fix-speaker-y9000x/raw/master/FixSpeaker-Y9000X.sh)" 不知道这个安装脚本有用没有,可以试试

SukkaW commented 2 years ago

https://github.com/SukkaW/Lenovo-Y9000X-Hackintosh#how-to-fix-y9000xs-speaker--%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D-y9000x-%E7%9A%84%E6%89%AC%E5%A3%B0%E5%99%A8