linux移植四简单驱动开发linux移植四简单驱动开发.pdf
文本预览下载声明
继pcDuinolinux移植一、二、三,成功搭建linux最小系统,抽点时间开始linux 内核驱动开发之旅。由于时间关系,
基本上都是边玩边写,一些还没写完甚至有问题,就被转载了,以致大家看到的五花八门,希望转载的人也及时更新。
遗留的很多问题随着时间都慢慢解决了,都是亲身体验能跑起来的,才敢写在这。我自己收获了很多,希望读到的人也
能有收获,希望能一直坚持下去。
开发环境
系统:ubuntu10.04.4
单板:pcDuino(全志A10)
编译器:arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
搭建开发环境详见ubuntu10.04.4开发环境配置。
目标
1.配置 编译linux-3.0.62内核,串口正常输出
2.配置内核,支持nfs挂载,启动文件系统
3.最简单内核驱动开发
这个是在pcDuinolinux移植一、二、三的基础上写的,重点介绍内核驱动开发,其它具体移植过程不再详述。最基础
的裸板开发、u-boot移植以及linux移植,参考前面的文章,这里不再重复。
一、搭建驱动开发平台
这里用官方提供的源码kernelforpcduino,我试了哈,这里面有些常用的驱动,比如网卡驱动之类,在官方提供的kernel
平台再添加自己的驱动。
1.准备工作
获取交叉编译器/p/smp-on-qemu/downloads/list选择
arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2并下载。然后在ubuntu下直接解压即可,配置过程
还不清楚的看Ubuntu10.04.4开发环境配。
获取linux源码/pcduino/kernel点击linux-sunxi,跳转到/linux-sunxi/linux-sunxi下
载linux-sunxi源码
2.配置、编译内核
打开linux-sunxi-sunxi-3.0 目录下的Makefile,修改195:
ARCH?=ARM
CROSS_COMPILE?= your-path/arm-2009q3/bin/arm-none-linux-gnueabi-
其中your-path是gcc-linaro-arm-linux-gnueabihf-4.8-2013.04linux.tar.bz2 的解压路径
change@change:~$cd/home/change/Si/A10/pcduino/linux-sunxi-sunxi-3.0/
change@change:~/Si/A10/pcduino/linux-sunxi-sunxi-3.0$makemenuconfig
记住选中wemacsupport(A1x),其它不变。开始也不知道选这个,后来分析官方提供的kernel才知道的。
编译过程超长,如果编译过程中遇到些问题,见pcduinolinux 移植一、二、三
change@change:~/Si/A10/pcduino/linux-sunxi-sunxi-3.0$lsarch/arm/boot
bootp compressed Image install.sh Makefile uImage zImage
3.测试
经过pcDuinolinux移植一、二、三,我们已制作一张可启动的tf卡,现在用我们新的内核uImage,替换掉以前的进行
测试。将上次制作的启动卡插到PC机,弹出窗口,直接拷贝上面编译生成的uimage到sdb1,替换掉以前的,取下tf
卡插到pcduino启动如下:
U-BootSPL2012.10(Apr192013- 18:46:44)
DRAM:1024MB
SUNXISD/MMC:0
U-Boot2012.10(Apr192013- 18:46:44)AllwinnerTechnology
CPU: SUNXIFamily
Board:pcDuino
I2C: ready
DRAM: 1GiB
MMC: SUNXISD/MMC:0
***Warning-badCRC,usingdefaultenvironment
In: serial
Out: serial
Err: serial
Hitanykeytostopautoboot: 0
readinguEnv.txt
144bytesread
LoadedenvironmentfromuEnv.txt
readingboot.scr
270bytesread
Jumpingtoboot.scr
##Execu
显示全部