其實,裝 FC3 也是可以,只是 SN25P 沒有 on-board 的顯示卡,購買時又沒有參考 support hardware list,就聽售貨員建議買下 GeForce 6200,一款 FC3 不支援的顯示卡,所以只好先裝 Windows XP 充數,苦哈哈的等 6 月份的 FC4 囉。
好不容易,Fedora Core 4 終於現身,下載了 x86_64 版本,興沖沖地開始安裝,萬萬沒想到,這才是夢靨的開始,一直到撰寫這篇文章,仍未結束。
首次安裝 FC4 x86_64,就遇到鳥問題,Linux 居然抓不到網路卡。查閱浩鑫技術手冊後,猜想是 FC4 不支援這張沒聽過的 Marvell 網路卡。沒網路,Linux 還能搞屁?所以又裝回 Windows XP,居然也抓不到網路卡。難道是硬體故障?折騰了兩個晚上,才解決這個問題。原來是 Load BIOS default setting 時,把 NIC 給 disable 掉了,真是烏龍的 BIOS default setting。
搞定網路卡後,輪到音效卡來作怪。偵測音效卡可以抓到 VIA Envy24PT 晶片,但就是沒半點聲音從不太優的喇叭放出來。依然還是懷疑驅動程式問題,抓了最新的 Alsa Driver 1.0.9rc4,成功編譯 ice1724,但還是吐不出半個音來。
這問題真的搞很久,一整個晚上都在 Google 上找文件,找人家的經驗,找相同經驗的苦主。偉大神奇的 Google,最後終於帶我找到一位偉大神奇的玩家。他發現浩鑫不曉得為了什麼原因,修改了 VIA 晶片上的 PCI Product/Vendor ID,造成 Alsa 程式驅動失敗。我的天呀,浩鑫是在耍什麼寶呀!!!
Shuttle SN25P Sound
I just bought a new machine a few days ago and lo and behold, the sound isn’t supported yet. It’s the onboard sound chip from a shuttle FN25 board in the SN25P chassis (nforce4, socket 939). Or, at least not out of the box in ubuntu hoary. The driver that this thing uses is the ‘ice1724′ module.
Here’s how I got it to work…
1st off, when I would modprobe the default kernel module, I’d receive these messages in the kernel ring buffer (dmesg):
ice1724: Invalid EEPROM (size = 255)
ICE1724: probe of 0000:05:06.0 failed with error -5
Hmm… not good… It has to be something retarded like a PCI Product/Vendor ID. I did a quick google search and found this thread on groups. It explains just what I thought. The Subvendor PCI-ID is different from what was expected. I guess it’s a new chip, that or shuttle changed it.
Anyways, I was able to get the sub-vendor ID from lspci…
forgue@roanoke:~ $ sudo lspci -d 1412:1724 -nvx
0000:05:06.0 0401: 1412:1724 (rev 01)
Subsystem: 1297:5036
Flags: bus master, medium devsel, latency 32, IRQ 18
I/O ports at a000 [size=32]
I/O ports at a400 [size=128]
Capabilities: [80] Power Management version 1
00: 12 14 24 17 05 00 10 02 01 00 01 04 00 20 00 00
10: 01 a0 00 00 01 a4 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 97 12 36 50
30: 00 00 00 00 80 00 00 00 00 00 00 00 0c 01 00 00
Pay attention to the 5 bytes starting at offset 2b. These 5 bytes are the subvendor ID for this card.
Get a copy of the kernel source, preferably from your distribution and edit:
sound/pci/ice1712/vt1720_mobo.h
Change line 32 from:
#define VT1720_SUBDEVICE_ZNF3_150 0x0f2745f6
to:
#define VT1720_SUBDEVICE_ZNF3_150 0x97123650
Make sure that the hex string matches the bytes you looked at earlier. Recompile the module and load it into the running kernel. Viola (I hate you peter), you should have sound.
照圖施工,果然成功,聽到不太優的喇叭播放出很優的音效,真的是很感動。看看手錶,已經是凌晨 2 點多,再罵一次,可惡的浩鑫。
沒有留言:
張貼留言