Chinaunix首页 | 论坛 | 博客
  • 博客访问: 393789
  • 博文数量: 69
  • 博客积分: 1992
  • 博客等级: 上尉
  • 技术积分: 1162
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-03 19:50
文章分类
文章存档

2015年(1)

2011年(55)

2010年(13)

分类: LINUX

2010-06-03 16:52:19

上一篇建立的内核树,发现只能在PC机上加载模块,而要想整到板子上却又不行了。今天整一个可以在板子上加载的hello world模块。
我的板子:mini2440 nandflash 128M
pc机:RedHat 5
首先从官网上下一个你想在板子上运行的内核版本。因为我刚入门,自己没法将一个完全干净版的内核移植到板子上,还好手头上有一个友善之臂出的mini2440之linux内核移植的PDF,它上面用的是;linux2.6.32.2版本,于是我就从官网上下了一个2.6.32.2版本的内核,按照pdf上的步骤移植到网口部分不再移植,之所以要移植到网口部分,是方面后面利用FTP将。ko和测试程序下载到板子上。
好了,。下面,只要简单的修改下Makefile的路径就可以了           

KERNELDIR = /home/linux/linux-2.6.32.2
PWD := $(shell pwd)
CROSS_COMPILE = /usr/local/arm/4.3.2/bin/arm-linux-
CC = $(CROSS_COMPILE)gcc
obj-m := hello.o

default:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
        rm -rf *.ko *.o *.mod.o *.mod.c *.symvers *.order
.PHONY: modules modules_install clean
~
~

hello。c的内容如下:

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_EMERG "Hello, li wei meng\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_EMERG"Goodbye, li wei meng\n");
}
module_init(hello_init);
module_exit(hello_exit);
~

下面就是make
然后利用ftp下到板子上去运行
这时候要主要,要在板子上的/lib/modules/目录下建一个2.6.32.32的目录,然后将hello.ko放到这个目录下加载。
附件是友善之臂linux的移植手册。
下一篇讲学习LED驱动。


阅读(1339) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~