⑴ 如何openwrt添加驅動依賴ko文件
我只能提供思路。1)在open的源碼里寫Makefile,與open一起編譯2)下載源碼,用open的toolchain直接交叉編譯
⑵ 編譯時內核怎麼生成的ko文件
不玩這個,這里提供一個思路
gcc命令其實是分成幾步執行的,預處理,編譯回,鏈接。".o"才到編譯這一步,答如果按照生成ko文件的方式鏈接一下說不定能成。
另生成你所說的.o文件的源代碼一定是要按".ko"的規范寫的,也就是什麼模塊注冊,模塊卸載等函數是必需要有的.
想想編譯ko里的makefile,裡面好像是引入了一個moles目錄吧!
呵呵,3樓的方法是普通的鏈接過程。「.ko」的鏈接應該不會這么簡單!
望樓主細心探索
⑶ 如何將多個文件編譯成一個ko文件
從網上找一個桐租哪編型孝譯模塊的Makefile,放到你的模塊的文件夾裡面,然後修改裡面的路徑指定編譯的內核,局碼以及目標名稱。make就可以了。
⑷ OpenCV交叉編譯時用到的幾個依賴庫
OpenCV交叉編譯時激大慶明握用到的幾個依賴庫。在仿轎BB Black 入門基礎之OpenCV的交叉編譯 一文中用到。大家有需要的可以拿去用。
↑收起
文件列表
.deps
----|ControlResource.Po
----|DCU99Editor.Po
----|DuplexEditor.Po
.eclipseme.tmp
----|emulation
----|----|PhoneBook.jad
----|----|PhoneBook.jar
verified
----|classes
----|----|com
----|----|----|north
----|----|----|----|phonebook
----|----|----|----|----|model
----|----|----|----|----|----|Account.class
----|----|----|----|----|----|ApplicationException.class
----|----|----|----|----|----|Index.class
----|----|----|----|----|----|Model$AccountFilter.class
----|----|----|----|----|----|Model$IndexFilter.class
----|----|----|----|----|----|Model.class
----|----|----|----|----|----|Preference.class
----|----|----|----|----|----|UserModel.class
ui
----|ConfirmationDialog.class
----|DetailInfoUI.class
----|Dialog.class
----|DialogListener.class
----|IndexFunctionUI$ListIndex.class
----|IndexFunctionUI.class
----|ListMerchantGroupUI.class
----|ListPhoneUI.class
----|LoginUI.class
----|MerchantGroupDetailInfoUI.class
----|NewPhoneUI.class
----|SearchPhoneUI.class
----|Title.class
----|UIController$1.class
----|UIController$EventID.class
----|UIController.class
----|WaitCanvas$1.class
----|WaitCanvas.class
----|WelcomeUI.class
PhoneBookMIDlet.class
.myeclipse
----|CVS
----|----|Repository
----|----|Root
.settings
----|CVS
----|----|Entries
----|----|Repository
----|----|Root
org.eclipse.core.resources.prefs
.svn
----|prop-base
props
text-base
----|readme.txt.svn-base
tmp
----|prop-base
props
text-base
all-wcprops
dir-prop-base
entries
format
.tmp_versions
----|dw4002.mod
dependence
----|ffmpeg-0.10.3.tar.bz2
----|jpegsrc.v8d.tar.gz
----|libpng-1.5.14.tar.gz
----|libv4l-0.6.1.gz
----|tiff-4.0.3.tar.gz
----|x264-snapshot-20120528-2245-stable.tar.bz2
----|xvidcore-1.3.2.tar.gz
----|zlib127.zip
..dir.dat
._CotEditor_346
._PortVaR
.classpath
.cproject
.cxl
.depend
.dw4002.ko.cmd
.dw4002.mod.o.cmd
.dw4002.o.cmd
.exe
.gitignore
.htaccess
.message
.pdf
.project
.qmake.internal.cache
.screenrc
.synopsys_dc.setup
.synopsys_pt.setup
.untf
.vimrc
.xhdl3.xref
⑸ 請人幫忙用linux生成個arm平台的.ko文件
Makefile
obj-m = joydev.o
make -C /lib/moles/kernel_3.0.50/build SUBDIRS= $(pwd) moles
⑹ 弄好的內核模塊怎麼弄進開發板裡面去啊(我已經用交叉編譯器德到了.ko文件)
這些是初學者經常遇到的問題。我以前也遇到過,所以還是我來回答埋早你吧。首先rz命令擾運是BusyBox裡面是不帶的,如果你要用就要另外下載一個rz,然後用arm編譯之後再放到開發板/bin目錄下面。但是我不推薦用rz,速度很慢的。最方便的還是掛載網路文件系統了,如緩液梁果使用uboot命令如下:
#setenv bootargs "root=/dev/nfs nfsroot=192.168.0.宿主機文件系統路徑:/forlinx/root
ip=192.168.0.開發板:192.168.0.宿主機:255.255.255.0 console=ttySAC0,115200"
#saveenv
使用網路文件系統要確保網卡可用!可以在UBOOT下先PING下主機IP;
我的QQ285226942,還要問題的話咱們可以繼續探討
⑺ 如何編譯出armv6的.ko文件
檢查環境變數看看是否使用了其他的交叉編譯工具鏈。 最好能夠修改一下腳本,比如使用make -n或者bash -x將實際進行編譯的命令列印出來,檢查一下看是否用錯了編譯器。
⑻ ubuntu codeblocks環境上怎麼設置,編譯出.ko文件
------解決方案--------------------
在codeblock裡面寫代碼,然後弄個Makefile模板編譯
貌似codeblocks沒法集《Linux就該這樣回學》成編譯.ko文件的。答
習慣在vim下寫代碼更好,這是個過程
------解決方案--------------------
是的,用一個帶顏色的文本編輯器足矣,這樣一段時間後,你會發現自己的根基無比厚實。
⑼ linux 驅動交叉編譯問題。
不需要改源碼Makefile,只要在你的驅動目錄下配置好Makefile裡面的源碼樹路徑就行了。
obj-m := led_ko.o
KDIR := /home/zs5577517/ti-ezsdk_dm816x-evm_5_03_01_15/board-support/linux-2.6.37-psp04.00.01.13.patch2
all:
make -C $(KDIR) M=$(PWD) moles ARCH=arm CROSS_COMPILE=/home/zs5577517/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-
clean:
rm -f *.ko *.o
⑽ android驅動開發好了,怎麼調試
本文用《Android深度探索(卷1):HAL與驅動開發》的隨書源代碼為例詳細說明如何配置Android驅動開發和測試環境,並且如何使用源代碼中的build.sh腳本文件在各種平台(Ubuntu Linux、Android模擬器和S3C6410開發板)上編譯、安裝和測試Linux驅動。建議讀者使用Ubuntu Linux12.04或更高版本實驗本文的方法。最好用root賬號登亮圓嘩錄Linux。
一、安裝交叉編譯器
如果只是在Ubuntu Linux上測試Linux驅動就不需要安裝交叉編譯器了,但要在Android模擬器或S3C6410開發板上進行測試,就必須安裝交叉編譯器。
首先下載交叉編譯器(分卷壓縮)
下載後解壓,會發現有兩個tgz文件,可以將這兩個文件放到/root/compilers目錄中,在Linux終端進入該目錄,執行如下命令安裝交叉編譯器。
[plain] view plain
# tar zxvf arm-linux-gcc-4.3.2.tgz -C /
# tar jxvf arm-none-linux-gnueabi-arm-2008q3-72-for-linux.tar.bz2 -C /
二、編譯和測試Linux內核
這里的Linux內核有兩個,一個是goldfish,也就是Android模擬器使用的Linux內核、另外一個是S3C6410開發板使用的Linux內核(Linux2.6.36)。讀者首先要下載這兩個Linux內核。
Android模擬器用的Linux內核源代碼(分卷壓縮)
用於S3C6410開發板的Linux內核源代碼(分卷壓縮)
分卷1
分卷2
由於隨書代碼中的word_count驅動已經在goldfish和linux2.6.36中分別建立了符號鏈接,以便在編譯linux內核時同時也會編譯word_count驅動,所以linux內核與源代碼目錄應與作者機器上的目錄相同。也就是兩個linux內核目錄與源代碼目錄如下:
linux內核目錄
/root/kernel/goldfish
/root/kernel/linux_kernel_2.6.36
源代碼目錄
/root/drivers
注意腔沖/root/drivers目錄下就直接是每一章的源代碼了,例如/root/drivers/ch06、/root/drivers/ch07
現在需要將/usr/local/arm/arm-none-linux-gnueabi/bin路徑加到Linux的PATH環境變數中(不會加的上網查,這是Linux的基本功)
最後進入/root/compilers/goldfish目錄,執行make命令編譯linux內核,如果完全編譯,大概20分鍾左右。編譯完成後,會在/root/kernel/goldfish/arch/arm/boot目錄中生成一個zImage文件,代碼1.7MB,這就是用於Android模擬器的Linux內核文件。
三、編譯Linux驅動
現在來編譯隨書光碟的驅動程序,這里以word_count驅動為例。在Linux終端進入/root/drivers/ch06/word_count目錄。先別忙著編譯。首先要設置打開/root/drivers/common.sh文件,修改第一行UBUNTU_KERNEL_PATH變數值為自己機器上安裝的Ubuntu Linux內核路徑,只要執行「ls /usr/src」命令即可查看當前機器可用的linux內核。如可以設置下面的路徑。
UBUNTU_KERNEL_PATH=/usr/src/linux-headers-3.2.0-23-generic
剩下的兩個(S3C6410_KERNEL_PATH和/root/kernel/goldfish)只要按著前面的路徑解壓Linux內核源代碼,就不用設置了。
在word_count目錄中執行「source build.sh」命令,會允許選擇在哪個平台上編譯驅動,直接按回車會在Ubuntu Linux上編譯。如果編譯成功,會發現當前目錄多一個word_count.ko文件(驅動文件)。
現在來敬行編譯S3C6410上運行的word_count驅動。先別忙,在編譯之前,需要Android中的adb命令。因為build.sh足夠只能,在編譯完後,如果有多個Android設備連接到PC,會允許用戶選擇上傳到哪個設備裝載,這里需要選擇S3C6410開發板,然後會直接上傳到開發板上,如圖1所示。
可以直接使用adb shell命令進入開發板,也可以使用/root/drivers/shell.sh腳本完成同樣的工作,只是後者如果有多個android設備,會允許用選擇,而不是輸入相應的設備ID。使操作更方便。在/root/drivers目錄中提供了很多這樣的腳本(shell.sh、push.sh、pull.sh等),這些腳本都會允許用戶選擇操作的Android設備。
我們通常使用Android SDK中的adb命令,到官方網站下載裝載linux版本的Android SDK,然後將<AndroidSDK根目錄> /platform-tools加到PATH環境變數中。
現在再次執行「source build.sh」命令,選擇第2項(S3C6410開發板),如果系統沒找到開發板,需要將USB線拔下重插一下。然後就可以進入開發板的終端,輸入lsmod命令查看驅動的安裝情況了。
如果在模擬器上測試,選第3項。具體測試的方法請參見書中相應的章節。
四、測試Linux驅動
測試word_count驅動的方法很多,通過命令行測試的方法請參見書中相應的章節,在word_count目錄中有一個test_word_count程序,通過執行如下的命令可以測試word_count驅動,編譯test_word_count.c程序的方法書中已詳細描述。
test_word_count 「abc bb cc」
上面的命令會輸出單詞數為3。
如果要編譯Android HAL,需要Android源代碼。購買S3C6410開發板時商家通常會帶一些光碟,裡面有用於開發板的Android源代碼,如果商家沒給光碟,別忘了要哦!