当前位置: 技术问答>linux和unix
怎么向arm开发板上移植linux设备驱动上的helloworld驱动模块
来源: 互联网 发布时间:2016-04-28
本文导语: 各位大侠,我买了一块开发板是mini2440内核是2.6.13,我在电脑上的linux是redhat 企业版 内核版本,是2.6.9,然后安装了交叉编译工具arm-linux-gcc 3.4.1版本 放在我的usr/local/arm/下 看了linux设备驱动上的说要编译内核树,...
各位大侠,我买了一块开发板是mini2440内核是2.6.13,我在电脑上的linux是redhat 企业版 内核版本,是2.6.9,然后安装了交叉编译工具arm-linux-gcc 3.4.1版本 放在我的usr/local/arm/下
看了linux设备驱动上的说要编译内核树,我下了个和我开发板上的2.6.13一样的内核版本,然后我该怎么做。我该怎么把那个helloworld移植到我的开发板上去,教教我啊 被这个问题困了好长时间了。我的makefile该怎么写。那个我电脑上的那个内核应该怎么设置
看了linux设备驱动上的说要编译内核树,我下了个和我开发板上的2.6.13一样的内核版本,然后我该怎么做。我该怎么把那个helloworld移植到我的开发板上去,教教我啊 被这个问题困了好长时间了。我的makefile该怎么写。那个我电脑上的那个内核应该怎么设置
|
交叉编译
---
1)得到内核源代码 即 common的kernel源代码(从kernel.org下载) + 针对你板子的特定patch
2)交叉编译得到内核映像
下载到板子上
---
1)内核映像通过bootloader加载并运行。
1.1)内核映像的位置可以位于某个PC的tftp设置目录
或者在Flash的某个分区
1.1.1)如何通过tftp?请查看板子提供商给的资料,或者google搜索。
1.1.2)如何把内核映像烧到flash的某个分区?
1.1.2.1)通过bootloader;(在rootfs起来后,也可以用命令如flash_eraseall, nandwrite--此处假设nandflash)
2)对于应用程序
1.1)如果板子通过NFS起来的,这个最简单,拷贝helloword到NFS export的目录里
1.2)如果不是的话,可以通过网络(如ftp,scp等)传到板子上
1.3)可以通过串口(通过XMODEM等协议)传,仅限于小文件,不然让你等得花了都谢了都等不到结束
1.4)重新生成新的rootfs映像,生成之前把新的helloword弄进去。
1.5)重新找到个Flash上新的分区,mount上来,再把helloword通过类似烧写内核映像的方法烧到该分区。
显然,上面的顺序是从简单到复杂的。
我觉得这么多方法可以一开始看的时候有些乱,所以如果你拿到板子的时候同时有user guide的话,建议你先按照他们说的先做一遍。
再来看我写的这些。
---
1)得到内核源代码 即 common的kernel源代码(从kernel.org下载) + 针对你板子的特定patch
2)交叉编译得到内核映像
下载到板子上
---
1)内核映像通过bootloader加载并运行。
1.1)内核映像的位置可以位于某个PC的tftp设置目录
或者在Flash的某个分区
1.1.1)如何通过tftp?请查看板子提供商给的资料,或者google搜索。
1.1.2)如何把内核映像烧到flash的某个分区?
1.1.2.1)通过bootloader;(在rootfs起来后,也可以用命令如flash_eraseall, nandwrite--此处假设nandflash)
2)对于应用程序
1.1)如果板子通过NFS起来的,这个最简单,拷贝helloword到NFS export的目录里
1.2)如果不是的话,可以通过网络(如ftp,scp等)传到板子上
1.3)可以通过串口(通过XMODEM等协议)传,仅限于小文件,不然让你等得花了都谢了都等不到结束
1.4)重新生成新的rootfs映像,生成之前把新的helloword弄进去。
1.5)重新找到个Flash上新的分区,mount上来,再把helloword通过类似烧写内核映像的方法烧到该分区。
显然,上面的顺序是从简单到复杂的。
我觉得这么多方法可以一开始看的时候有些乱,所以如果你拿到板子的时候同时有user guide的话,建议你先按照他们说的先做一遍。
再来看我写的这些。