買了三片ITE 8211F的IDE卡, 結果發現驅動程式光碟只有Redhat9之前的driver, 真是香蕉牛奶咧, 誰還在用RH9阿, 2.6.x的driver還要自己編譯, 可是如果編譯可以的話, 勉強原諒彼好了, 結果不出所料, 真的不能編譯! 又來一個香蕉牛奶! 搞了半天, 原來彼driver還需要scsi driver裡面的幾個header files, 真是忍不住想罵髒話...彼不講, 誰知道啊, 好吧, 那就把需要header files準備好後, 想說應該沒問題了...make...兩秒鐘後...還是香蕉牛奶...他媽的爛聯陽, 出的什麼爛卡, 寫這是什麼爛driver啊, 居然有巨集沒定義! 看了半天之後發現這兩個巨集應該沒有影響, 就把它拿掉在make看看...喔! 天啊真是謝天謝地終於產生ko檔了! 有時真搞不懂這些寫driver的人, 也不知道是想留一手還是怎樣, 幹麻不把東西做好一點, 檔案一次就給完整不就好了, 缺東缺西, 程式還有問題, 還要使用者幫彼君擦屁股, 彼公司不但花錢請你來寫driver, 我們這些可憐的消費者可也是付出我們的血汗錢買你們東西, 怎知發現是爛貨, 真的是很衰...
我的OS是CentOS 4, 核心為2.6.9-5.0.3.EL, 首先kernel source要橋好, 我使用的是dvd iso檔中的kernel-sourcecode-2.6.9-5.0.3.EL.rpm
- rpm -ivh kernel-sourcecode-2.6.9-5.0.3.EL.rpm
- cd /usr/src/linux-2.6.9-5.0.3.EL
- cp configs/kernel-2.6.9-i686.config ./.config
- make oldconfig
- make --> 這個make如果有錯也沒關係, 只要我們需要的header files有自動產生就可以了
然後是編譯kernel module, 以下是簡易步驟:
- cd ~
- mkdir ITERaid
- cd ITERaid
- unzip <PATH TO YOUR DOWNLOAD DIRECTORY>/LinuxDriver_it8211_093001-03.zip
- perl -p -i -e 's/2.6.1/2.6.9-5.0.3.EL/' Makefile
- perl -p -i -e 's/MOD_INC_USE_COUNT\;/\/\* MOD_INC_USE_COUNT\; \*\//' iteraid.c
- perl -p -i -e 's/MOD_DEC_USE_COUNT\;/\/\* MOD_DEC_USE_COUNT\; \*\//' iteraid.c
- cp -a /usr/src/linux-2.6.9-5.0.3.EL/drivers/scsi/{scsi, hosts, scsi_obsolete, scsi_typedefs}.h /usr/src/linux-2.6.9-5.0.3.EL/drivers/scsi/scsi_module.c .
- make
- install -m 644 iteraid.ko /lib/modules/2.6.9-5.0.3.EL/kernel/drivers/scsi/
- depmod -a
No comments:
Post a Comment