嵌入式linux环境搭建
花了两天时间,终于搭建好了板子上的linux驱动开发环境,不容易呀,做个笔记。
首先搭建
对照第一个来就对了,得到编译器的包后拷贝到
(1)用文本编辑器打开/etc/profile
在最后面加上
ARM_PATH=/usr/local/arm-2009q1/bin/#(这个是你编译器的路径)
PATH=$ARM_PATH/bin:$PATH
exportARM_PATH
需要注销重新登录
(2)修改.bashrc文件
这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了。
加的东西和上面一样
也需要注销重新登录,生效。
(3)本人用的是第三种方法
打开
试验一下,在终端中输入
编译器装好了,下一步就应该是目标机的库环境,因为最终驱动是运行在板子上,所以需要有板子的
makeoldconfig;
makeprepare
这个时候可能会提示出错,虚拟主机,找不到
CROSS_COMPILE=arm-linux-改成
CROSS_COMPILE=arm-none-linux-gnueabi即可。
最后makescripts/
这样编译环境就搭建好了,接下来就是测试一下,服务器空间,把《
ifneq($(KERNELRELEASE),)
#callfromkernelbuildsystem
obj-m:=hello.o
else
KERNELDIR?=/usr/src/linux-2.6.30.4/
#KERNELDIR?=/lib/modules/$(shelluname-r)/build
PWD:=$(shellpwd)
default:
$(MAKE)-C$(KERNELDIR)M=$(PWD)modules
endif
clean:
rm-rf*.o*~core.depend.*.cmd*.ko*.mod.c.tmp_versions
红色标起来的地方就是以前编写本机驱动需要调库的路径,现在改成板上内核源码路径。
#make
得到hello.ko
接下来就是要把
但是奇怪的是,板子访问我的
看了下版本号是一致的呀,找呀找,网站空间,实在没办法,想到看一下日志.在板子上
敲mod_unloadARMv4’shouldbe’2.6.30.4-EmbedSkymod_unloadARMv4′
insmod:cannotinsert’./hello.ko’:invalidmoduleformat
应该是版本号名字不同,想想应该可以在内核源码配置中修改,于是又到
重新编译
hello:modulelicense’Dual/GPL’taintskernel.
Disablinglockdebuggingduetokerneltaint
hello,world
Hello,linux
成功了。
也许不是自己该去发挥的地方,还是让自己到最适合自己战斗的方面去吧!勇敢的接受自己的失败,