文档详情

linux移植四简单驱动开发linux移植四简单驱动开发.pdf

发布:2017-12-16约1.72万字共12页下载文档
文本预览下载声明
继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
显示全部
相似文档