修改Madwifi的Module (insmod傳入參數的問題) - Linux

Table of Contents

這個問題不知道po在這裡合不合適? 如果不合適請寄站內信告知...

---

我沒有寫過Linux Kernel Programming (Kernel新人),
不過因為實驗所需,
我試著修改Madwifi的SampleRate演算法的模組,也就是ath_rate_sample。
我修改了madwifi/ath_rate/sample/sample.c這個檔案,
希望可以runtime從終端機傳入參數來改變模組的功能。

例如定一個叫做myint的變數,希望可以做到:
if (myint==1) {...}
else if (myint==2) {...}
else {...}
//myint是希望可以從Terminal改變它的值

查了很久發現module_param + insmod可以做到這件事情。
http://blog.roodo.com/seanlin226/archives/3885605.html

所以我在sample.c裡面的#include串之後寫了
static int myint=9;
module_param(myint,int,0);

重新make和make install之後,在sample的資料夾下,
因為我不確定要如何操作到剛剛寫完的sample.c,所以我試著輸入

1. insmod ath_rate_sample.ko myint=5
-> insmod: error inserting 'ath_rate_sample.ko': -1 File exists

2. insmod ./ath_rate_sample.ko myint=5
-> insmod: error inserting 'ath_rate_sample.ko': -1 File exists

3. insmod ath_rate_sample myint=5
-> insmod: can't read 'ath_rate_sample': No such file or directory

4. insmod sample.o myint=5
-> insmod: error inserting 'sample.o': -1 Invalid module format

我個人認為是1.或2.最合理啦(ath_rate_sample.ko),不過它卻會顯示-1 File exists,
Google了很久也找不出是為什麼,
請問有沒有人知道我是哪裡做的不對呢?

問題有點長,希望有人可以幫幫初學者小弟解惑。
感謝再感謝!!!

--

All Comments

Vanessa avatarVanessa2010-05-11
好像比較常見透過sysfs做模組參數,要不要試試看?
Brianna avatarBrianna2010-05-12
好的謝謝你 我研究看看:)
Kelly avatarKelly2010-05-13
先rmmod?
Zanna avatarZanna2010-05-18
先rmmod是可以 不過只能在載入模組時改變
Damian avatarDamian2010-05-22
/sys/module/module_name/parameter/variable_name可改