請教AMD 64位元PCI I/O Card驅動程式編譯問題

我們生活周遭存在太多太多的 embedded system ,過去 embedded system 有專屬的 OS,現在 linux 也可以應用在嵌入式環境,不過本版將廣泛討論所有嵌入式系統不只 linux 喔,歡迎有這方面經驗或有興趣的朋友一同進來討論。

版主: chester

請教AMD 64位元PCI I/O Card驅動程式編譯問題

文章goldchicken2005 » 週六 3月 03, 2007 2:46 pm

我為了練習驅動程式的撰寫,所以之前買了某廠商的PCI I/O控制卡,並且trace他的驅動程式,我是安裝FC6的版本(iX86 32位元),後來朋友手邊有一台AMD x86_64位元的PC,於是我把驅動程式拿到上面編譯測試都OK可是我BOSS說我那樣測試是錯的,因為我編譯出來的驅動程式還是ix86 32位元的,我剛接觸linux驅動程式不久所以我不太懂這是什麼意思,所以我想說應該是我安裝錯誤的FC6版本,後來我去找了FC6 X86_64位元的版本重新安裝,然後編譯測試(insmod *.ko並且執行sample code)還是正常,只是我有幾個問題想請教大家

1.請問我這樣編譯出來的驅動程式是AMD 64位元的版本嗎??還是我又只是編譯出ix86 32位元的版本呢??

2.是否我安裝FC6 X86_64位元 OS,然後任何程式編譯成功且可成功執行的就是適用於X86_64位元呢??
goldchicken2005
可愛的小學生
可愛的小學生
 
文章: 6
註冊時間: 週一 2月 05, 2007 1:29 pm

文章訪客 » 週六 3月 03, 2007 8:12 pm

這算是很基本的觀念…我想 google 會比較適合你。 :P
訪客
 

是否有可參考的書籍或文章呢??

文章goldchicken2005 » 週一 3月 05, 2007 11:50 am

我有嘗試在google搜尋並且參考一些kernel source的Makefile(arch/x86_64/Makefile)及文件(Documention/Kbuild/modules.txt和makefiles.txt),然後修改Makefile如下

代碼: 選擇全部
#ARCH指定為x86_64
$(MAKE) -C $(KDIR) ARCH=x86_64 SUBDIRS=$(PWD) modules


並且修改kbuild的一些flags變數如下

代碼: 選擇全部
EXTRA_LDFLAGS := -m elf_x86_64
EXTRA_CFLAGS += -I$(PWD)/../include -D__x86_64__ -m64


我重新編譯後,編譯成功,可是我有個疑問是如何得知這真的是x86_64的driver呢??有沒有辦法可以得知呢??
goldchicken2005
可愛的小學生
可愛的小學生
 
文章: 6
註冊時間: 週一 2月 05, 2007 1:29 pm

文章FourDollars » 週一 3月 05, 2007 6:33 pm

file it
FourDollars
懵懂的國中生
懵懂的國中生
 
文章: 188
註冊時間: 週五 8月 01, 2003 12:47 am

文章goldchicken2005 » 週二 3月 06, 2007 3:21 pm

恩恩感謝你的回答....^_^
goldchicken2005
可愛的小學生
可愛的小學生
 
文章: 6
註冊時間: 週一 2月 05, 2007 1:29 pm


回到 embedded system

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron