⑴ 如何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源代码,如果商家没给光盘,别忘了要哦!