[分享] 罕見 HDMI 只能輸出單聲道解決方式

看板Linux作者 (海海海)時間3年前 (2021/11/24 13:14), 編輯推噓1(108)
留言9則, 5人參與, 最新討論串1/1
不久前我其中一篇發文內有提到 HDMI 只能輸出左聲道的問題, 因為 TV EDID 無法正常傳送給電腦,所以必須套用其他 EDID, 這狀況困擾了我好幾年,MPV 播放影片只能夠強迫輸出單聲道, 否則影片對白音量會過小,特效音量過大,不管哪個桌面皆是, 也嘗試過在 PulseAudio 與 PipeWire 與 ALSA 之間切換使用, 最終心力交瘁失敗收場,但前幾天被我運氣好找到解決的方式。 1. 複製另一臺螢幕的 EDID 檔至家目錄並命名 edid.bin $sudo find /sys/devices/pci*/*/*/*/*/*HDMI* -name "*edid*" $sudo cp <屬於您輸出裝置的 edid> ~/edid.bin 2. 在 /lib/firmware/ 下自創 edid 資料夾 $sudo mkdir /lib/firmware/edid 3. 複製 EDID 至 /lib/firmware/edid/ $sudo cp ~/edid.bin /lib/firmware/edid/ 4. 編輯 /etc/default/grub,在 kernel command line 加入選項 $sudo vim /etc/default/grub 找到 GRUB_CMDLINE_LINUX_DEFAULT="" 在 "" 內加入 drm.edid_firmware=edid/edid.bin 5. sudo grub-mkconfig -o /boot/grub/grub.cfg 6. 重開機 以上步驟結束後可能會有用,但下次電腦、電視重開後就會失效。 以下就是我暫時解決的方法,只能說這到底是什麼智障 bug! 1. 同樣編輯 /etc/default/grub,將先前設定的 edid.bin 改成內建 EDID 找到 GRUB_CMDLINE_LINUX_DEFAULT="" 將 drm.edid_firmware=edid/edid.bin 更改爲 drm.edid_firmware=edid/1920x1080.bin 2. 如先前一樣,更新 grub.cfg 後重開機 這時會發現只有畫面能正常輸出,HDMI 音效輸出完全失效。 3. 編輯 /etc/default/grub 將剛剛設定的 1920x1080.bin 改回 edid.bin 4. 更新 grub.cfg 重開機 5. DONE 四處求救找不到方法,結果卻因為這種蠢方式意外發現解法…… -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.200.176 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1637730898.A.4AA.html

11/26 12:58, , 1F
不考慮加入linux開發者群?
11/26 12:58, 1F

11/26 21:02, , 2F
你有把 edid.bin 塞進 initramfs 嗎
11/26 21:02, 2F

11/26 22:48, , 3F
怎麼塞,求解
11/26 22:48, 3F

11/26 22:49, , 4F
照 Archwiki 文件是說改 grub 內參數就好了呀
11/26 22:49, 4F

11/27 17:35, , 5F
我是不知道指定 edid 會什麼時候 load 起來
11/27 17:35, 5F

11/27 17:35, , 6F
但是如果 drm/kms 有在 initramfs 的話應該是要跟著進去
11/27 17:35, 6F

12/08 11:37, , 7F
可以先用 edid-decode 檢查一下 EDID 的內容
12/08 11:37, 7F

12/08 11:39, , 8F
參考 EDID 規範 https://bit.ly/3lK3Td9 看問題在哪
12/08 11:39, 8F

12/25 15:14, , 9F
有點意思
12/25 15:14, 9F
文章代碼(AID): #1XdSfIIg (Linux)
文章代碼(AID): #1XdSfIIg (Linux)