奮鬥了好幾天,總算把 /etc/fstab 裡的 noauto 拿掉了。
先買了一片 PDC20269 (Promise Ultra133 TX2),但這張核心已有驅動程式的擴充卡竟然和 SE7210TP1 不合:
- 插卡不接硬碟:驅動良好;
- 插卡接硬碟:核心載入記憶體之後就不動了;
- 接卡接硬碟,透過 7210 的 BIOS 把 PCI 上的 ROM 關掉:可以驅動,不過無法掛載。
試過了許多種方法:關閉 HT、使用 non-SMP 核心、加上 ide0=blahblah 、 noapic 、 nolapic 、 acpi=off 等參數,以及各種排列組合,全都無效。在這一段的測試過程中,感謝 jesse (網址應該沒錯吧 ;) 的諸多寶貴意見。
千金難買早知道,同事年初的時候買了一張 IT8212 (UPMOST AR133),因為沒在用就無還期地借給我了。 ITE 這家公司很不錯地把 IT8212 的驅動程式原始碼用 GPL 釋放出來 , 這裡 可以下載 (目前版本 1.45)。
一開始不太會編 2.6 的 iteraid.c 驅動程式,後來找到「 ITE 8212 Raid 卡安裝 」這篇文章,才知道要把一些標頭檔抓到 iteraid.c 所在的目錄裡才能順利編譯。我在用 2.6.8 和 2.6.11 核心編譯的時候,有看到一些 deprecated warning,改掉一些引入檔可以修正其中一兩個,不過就算不管它,我用了兩天,倒沒什麼狀況出現。
不過, iteraid.c 這支驅動程式在磁碟存取的時候總是會跑出來像
atkbd.c: Unknown key pressed (translated set 2, code 0x0
on isa0060/serio0).
atkbd.c: Use 'setkeycodes 00 ' to make it known.
這樣的錯誤訊息 (請參考 RE: IT8212)。看起來也沒什麼辦法解決 (這幾天查到的「解決方法」,就是換用 ac-patched kernel);用起來也沒什麼問題 (只是 dmesg 很快就會被這個錯誤訊息給沖光)。
atkbd.c 錯誤看久了也不是辦法,所以還是下定決心 更新成 2.6.11ac7 核心 ,目前看來一切安好, dmesg 也乾乾淨淨的了 :) 這一段十分感謝 richliu (希望沒有認錯人) 的專業建議。
明天要去名人把 PDC20269 換成 HPT302 (原本,我就是想買 HPT302,無奈當時該卡沒貨),等 HPT302 入手以後,又可以再進行一次大冒險... :)
Posted by yungyuc
at
21:47,
0 comment,
0 trackback.
似乎是因為 Linux 2.6.11 核心的二進位碼作了一些改變,所以一換到 2.6.11 核心 vmware-config.pl 就出
*** Warning: “skb_copy_datagram”
[/tmp/vmware-config3/vmnet-only/vmnet.ko] undefined!
這個錯誤訊息。
相關資訊參考:
為了解決 VMware 的問題,請到 這裡 抓取 vmware-any-any-update90.tar.gz 或更新的版本。解開包裝之後,執行其中的 runme.pl ,然後再 vmware-config.pl 。
Posted by yungyuc
at
21:04,
0 comment,
0 trackback.
進行以下步驟:
取得原始碼:
$ apt-get install kernel-source-2.6.11
$ cd /usr/src
$ bunzip2 kernel-source-2.6.11.tar.bz2
$ tar xf kernel-source-2.6.11.tar
$ mv kernel-source-2.6.11 kernel-source-2.6.11ac7
去除 debian 作的 kernel patch:
$ apt-get install kernel-patch-debian-2.6.11
$ cd /usr/src/kernel-source-2.6.11ac7
$ ../kernel-patches/all/2.6.11/unpatch/debian
套用 Alan Cox 的 kernel patch (ac-patch):
$ cd /usr/src
$ wget ftp://ftp.kernel.org/pub/linux/kernel/\
people/alan/linux-2.6/2.6.11/patch-2.6.11-ac7.gz
$ gunzip patch-2.6.11-ac7.gz
$ cd kernel-source-2.6.11ac7
$ patch -p1 < ../patch-2.6.11-ac7
產生核心套件;在編 2.6.11 版核心的時候,要把「Code maturity level options」->「Select only drivers expected to compile cleanly」打開;否則我會停在 drivers/char/drm/gamma_drv.o 的地方過不去 (參考 這裡):
$ cd /usr/src/kernel-source-2.6.11ac7
$ make-kpkg --initrd --revision=1 kernel_image
安裝核心:
$ dpkg -i /usr/src/kernel-image-2.6.11ac7_1_i386.deb
如果開機碟不在 IT8212 上,要在載入核心的時候給 ide0, ide1 加上參數:
ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15
lilo.conf 加上:
append="ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15"
免得 IT8212 被當成 ide0, ide1 。
P.S. 關於 ac-patch:
Posted by yungyuc
at
20:41,
0 comment,
0 trackback.
「 宏碁:NB終將取代桌上型 」。
前幾天主機加硬碟,搞得我頭昏腦脹的,到現在還沒有把所有技術問題解決掉。bloglines 裡積了幾百個 entry,這個 entry 讓我想紀錄下來。
如果筆記型電腦會取會桌上型電腦的話,LCD 螢幕的普及與廉價化應該是一個很重要的因素吧。在四五年前大家都用 CRT 螢幕的時候,擁有一台 TFT LCD 螢幕的桌上型電腦幾乎是件不太會發生的事情;用到 TFT LCD 唯一的機會,多半就是購入筆記型電腦的時候。
今天還有誰在為小孩買新電腦的時候會考慮 CRT?又重、又佔空間、又沒便宜多少錢。
昨天去拿送回 IBM 修理的電池。筆記型電腦還有一個好處:強制自己使用電池工作的話,不會坐在電腦前面太久。
Posted by yungyuc
at
14:37,
0 comment,
0 trackback.
Posted by yungyuc
at
18:57,
0 comment,
0 trackback.
國家步道網站 ,有許多關於台灣健行、登山步道的資訊。
不過,Firefox 有點看不動。
Posted by yungyuc
at
21:13,
0 comment,
0 trackback.
裝好了 Intel Compiler 之後,可以在 .bashrc 裡加上以下的 alias:
alias useicc='. /usr/local/opt/intel_cc_80/bin/iccvars.sh'
alias useifort='. /usr/local/opt/intel_fc_80/bin/ifortvars.sh'
這樣要用 icc 和 ifort 的時候比較方便。
我會在 mpich 的原始碼目錄裡加一個 myconf 指令稿:
./configure \
-cc=icc \
-c++=icc \
-fc=ifort \
-f90=ifort \
--prefix=/usr/local/opt/mpich_intel \
| tee configure.log &
用這個指令稿來編譯 (編譯之前不要忘記 useicc 及 useifort)。編好了之後 make install ,mpich 應該就可以用了。
同樣在 .bashrc 裡加上:
alias usempich_intel='export PATH=$PATH:/usr/local/opt/mpich_intel/bin'
這個 alias,使用的時候可以方便點。
裝了好幾次 Intel Compiler,每次都要重寫一回 <INSTALLDIR>/bin 目錄裡的指令稿取代 shell script。
今天受不了了,花點時間寫個 python 小程式,以後只要改改字串資訊,就可以自動幫忙改好指令稿裡的路徑資料。
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
用來取代 Intel Compiler 在 Debian 上手動安裝時,
<INSTALLDIR>/bin 目錄內各指令稿內的安裝目錄位置。
$Id$
"""
####################################
# 給 Intel C Compiler 用的取代資訊
ORIGTAG = "<INSTALLDIR>"
ROOT = "/usr/table/share/intel_cc_80"
SCRIPTS = [
'icc',
'icc.cfg',
'iccvars.csh',
'iccvars.sh',
'icpc',
'icpc.cfg',
'uninstall.sh'
]
#
####################################
def subs(old, new, fn):
"""
執行取代工作的函式
old: 被取代字串
new: 新取代字串
fn: 工作的目標檔名
"""
####################################
#
import re
# 讀取來源資料
f = open( fn, 'r' );
orig = f.read();
f.close()
# 執行取代
replaced = re.sub( old, new, orig )
# 把取代後的整筆資料寫回檔案
f = open( fn, 'w' )
f.write( replaced )
f.close()
#
####################################
def parameters():
"""
處理指令行引數;目前沒有任何要處理的引數。
"""
####################################
#
from optparse import OptionParser, OptionGroup
op = OptionParser(
usage = "usage: %prog",
version = "%prog, $Revision$"
)
(options, args) = op.parse_args()
return options, args, op
#
####################################
def main():
"""
主函式。
"""
####################################
#
for script in SCRIPTS:
subs(ORIGTAG, ROOT, script)
#
####################################
if __name__ == '__main__':
####################################
#
main()
#
####################################
改好這些路徑資料之後,不要忘了修正一下 iccvars.sh (和 iccvars.csh) 裡對 MANPATH 的錯誤處理。
Posted by yungyuc
at
17:21,
0 comment,
0 trackback.
這是在新竹風城買的,買了好久都沒有裝起來, 因為流理台被我弄得太髒了 。中午吃完飯以後有一點時間,終於狠下心把瓦斯爐下面亂七八糟的油污給弄乾淨。
其實發狠的話還蠻好清的,我真是太懶了。
忙了一整個下午,到現在終於解決掉 VMware 裡 Linux 2.6 guestOS 系統時間 (clock) 會延遲 (too slow) 的問題了。
Linux 2.6 核心裡把系統計時器的頻率 加高到 1000 Hz ,VMware 沒辦法真的每隔 1ms 就報一次訊號給 guestOS,所以 guestOS 裡的 Linux 2.6 無法確實接到計時器的訊號。
本來這也不應該造成問題,不過 2.6 核心處理這個 "tick loss" 的程式有問題 (一樣看 這裡 ),以致於 guestOS 裡的 Linux 2.6 系統時間走一秒會慢一秒;外面過了兩秒裡面只過了一秒。
VMware KB 裡有幾個與此有關的項目 (如 Virtual Machine Seems Slow when Running a Particular Program (Clock Issue) 與 Clock in a Linux Guest Runs More Slowly or Quickly Than Real Time),不過真正有完整資訊的是 這個討論串 。
要在 Debian 下解決這個問題,須進行兩個動作。
» continue reading
Posted by yungyuc
at
23:42,
0 comment,
0 trackback.