Chinaunix首页 | 论坛 | 博客
  • 博客访问: 62902
  • 博文数量: 17
  • 博客积分: 1430
  • 博客等级: 上尉
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-13 12:56
文章分类
文章存档

2011年(1)

2008年(16)

我的朋友

分类: LINUX

2008-05-04 00:49:27

板子闲置很长时间了,一直想弄可是没时间。这回五一放假可以好好玩玩。
 
1.建立环境
  VMware 6.0
  FC8
  linux-2.6.8.1
 
  cross-3.3.2:将cross-3.3.2.tar.bz2解压到/usr/local/arm下,设置环境变量
  #export PATH=/usr/local/arm/3.3.2/bin:$PATH
  将此命令加到 /etc/bashrc 中(此脚本只在登陆时运行一次)
 
2.编译内核
  此内核包是改好了的
  #make mrpropre
  #make menuconfig
  #make
 
  make menuconfig 的时候有一个错误,把报错的哪一行注释掉就可以了
 
3.弄个hello world模块
  hello.c
 

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");

static int hello_init(void)
{
        printk(KERN_ALERT "Hello, world\n");
        return 0;
}
static void hello_exit(void)
{

        printk(KERN_ALERT "Goodbye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);

Makefile

obj-m := hello.o

#make -C /usr/src/linux-2.6.8.1 M=$PWD modules

生成hello.ko了,呵呵 查看模块信息可以用modinfo hello.ko

4.制作Cramfs文件系统

 

mount时不要把xxxxx.cramfs放在xp的共享文件夹中,不然会报错

  loop ioctl: LOOP_SET_FD: 无效的参数


 

#mount -t cramfs xxxxx.cramfs tmp -o loop

#tar cvf tmp.tar tmp

#umount tmp

#tar xvf tmp.tar

把刚才生成的hello.ko复制过来
#mkfs.cramfs tmp yyyyyy.cramfs

 

 

把编译好的内核和根文件系统烧到板子上,

#insmod

Hello,world 出来了,呵呵,开心。。。

阅读(1059) | 评论(2) | 转发(0) |
0

上一篇:sed 用法介绍

下一篇:2.6内核模块的Makefile

给主人留下些什么吧!~~

journ2008-06-05 21:05:35

你试试看 make -n -C /usr/src/linux-2.6.8.1 M=$PWD module 的显示

kingreat2008-05-26 13:20:26

您好,初学linux驱动编程。有一个地方我不太明白,为什么编译模块的时候要用 make -C /usr/src/linux-2.6.8.1 M=$PWD module, 他是如何调用gcc的? 如果不写Makefile,在2.6内核下如何用gcc编译生成模块。(假设我已经准备好了内核源码树)。请您发到我邮箱好么?kingreat.net@gmail.com