OpenIndiana 添加驅動心得 [論壇 - Ubuntu 哈啦]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



OpenIndiana 添加驅動心得
會員二級
註冊日期:
2017/3/23 10:15
所屬群組:
已註冊使用者
等級: 5
HP : 0 / 122
MP : 16 / 617
EXP: 90
離線
實際試了Openindana 實機安裝後發現,有些新硬體驅動不支援,例如 Realtek ALC 283

後來看了他的 Open Source 之後發現,根本就還停留在 OpenSolaris 的階段 驅動幾乎沒什麼更新。

不過很慶幸的是他有開放原始碼,可以自己修改編譯驅動,原先以為很難參考 BSD 跟 Linux的原始碼想試圖修改看看,後來發現他的原始碼寫的真不錯,只要添加 PCI ID 進去就行了,音效卡驅動不用在個別定義什麼 Code 、節點之類 ....

OpenIndiana 重新編譯驅動與安裝的方法
範例 : Realtek ALC 283 驅動 audiohd DEV_ID 0x10ec0283 控制晶片是8 Series HD Audio Controller pci8086,9c20

* 查看 Audio 裝置 ID
cat /dev/sndstat
SunOS Audio Framework

Audio Devices:
0: audiohd#0 onboard1, a (DUPLEX)
1: audiohd#1 onboard1, a (DUPLEX)

Mixers:
0: audiohd#0 onboard1, a HDMI
        Unknown HD codec: 0x80862807
1: audiohd#1 onboard1, a
        Unknown HD codec: 0x10ec0283


0x80862807 是 Intel HDMI 沒在用
0x10ec0283 是 Realtek ALC 283 喇叭是接在這個裝置上

* 安裝編譯工具
sudo pkg install build-essential

* 下載 OpenIndiana 原始碼
git clone https://github.com/illumos/illumos-gate.git

修改 Audio 驅動原始碼
到 $HOME/illumos-gate/usr/src/uts/common/io/audio/drv/audiohd 目錄內
打開 audiohd.c 在 audiohd_codec_info_t audiohd_codecs 裡面 添加 {0x10ec0283, "Realtek ALC283", (NO_SPDIF)},

* 編譯
cd $HOME/illumos-gate/usr/src/uts/common/io/audio/drv/audiohd
export PATH=$PATH:/opt/gcc/4.4.4/bin
CFLAGS="-I$HOME/illumos-gate/usr/src/uts/common"
cc -D_KERNEL -m64 -xarch=sse2a -xmodel=kernel $CFLAGS -c audiohd.c
ld -dy -r -o audiohd audiohd.o -N drv/audio

* 安裝驅動
# Unload Module
MODNAME=audiohd
sudo rem_drv $MODNAME
MOD_PID=$(modinfo | grep $MODNAME | awk '{print $1}')
sudo modunload -i $MOD_PID

# Install Module
sudo rm -rf /kernel/drv/amd64/audiohd
sudo ginstall -D -m755 audiohd /kernel/drv/amd64/audiohd
sudo chown root:sys /kernel/drv/amd64/audiohd


# load Module
sudo add_drv -i 'pci8086,9c20' -m'* 0666 root sys' $MODNAME
sudo modload -p drv/$MODNAME
sudo devfsadm -i $MODNAME
sudo bootadm update-archive -fv


爛歸爛 Solaris 系列還是有一定魅力

10/9 15:28:36
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.