编译s3c2410的linux2.4.18内核

本文详细介绍了在Linux环境下编译内核的过程,包括清理源代码、配置内核、编译核心及模块等步骤,并提供了多种配置方法的选择建议。
进入内核源码所在的路径/usr/src/linux-2.4中
   A)make mrproper      //清理内核源代码树,如果是第一次配置内核则可以
不运行

                         //ls .config  //验证内核配置文件不存在
   B)make menuconfig    //配置内核以及内核模块,其实这里的还可以使用
                         //(1)make config(交互式问答)
                         //(2)cp /etc/config-2.4.20-8 .config(通过复
制现有的配置文件而获取)

                         //(3)make oldconfig(通过旧内核生成)
                         //(4)make xconfig(图形界面下编译)
                         //如果要从图形界面定制内核,需要安装第三张光盘
中的tk包。

                         //这里强烈推荐使用make menuconfig。
                         //在进入内核配置菜单之后:
                         //(1)[*]表示编译进入内核——随系统启动而启动
                         //(2)[  ]表示配置项不编译进内核
                         //(3)<M>表示不编译进内核,作为内核模块进行编
                         //(4)< >不编译进内核也不作为内核模块进行编译                    
   C)make dep           //依赖性关系
   D)make bzImage       //编译内核核心
   E)make modules       //编译内核模块
   F)make install       //安装编译好的新内核核心,嵌入式这步省略
   G)make modules_install

//安装内核模块(即便事实上什么也没有建构)。 这会把内核模块安装入 /lib/modules/ <KERNELVERSION> /kernel/drivers 目录( KERNELVERSION 是 Makefile 中指定的版本)。在这个例子里是 /lib/modules/2.4.20-2.47.1custom/kernel/drivers/;

嵌入式的话放在宿主机的tmp/lib/modules/<<KERNELVERSION>/kernel/drivers下,确切位置最好看命令行的输出,开头有cp的行。

make mrproper后会彻底改变原来的配置,所以阳初提供的2410linux_src.tar.gz源码包

解压后直接make menuconfig,保存配置成一个配置文件,以后再编译内核时就可以make mrproper,make menuconfig调出第一次的配置,在此配置上修改。


在开发板上输入

#insmod ctrlboard.o
ctrlboard.o: unresolved symbol devfs_register
ctrlboard.o: unresolved symbol __wake_up
ctrlboard.o: unresolved symbol unregister_chrdev
ctrlboard.o: unresolved symbol register_chrdev
ctrlboard.o: unresolved symbol __arch_copy_to_user
ctrlboard.o: unresolved symbol free_irq
ctrlboard.o: unresolved symbol devfs_unregister
ctrlboard.o: unresolved symbol interruptible_sleep_on
ctrlboard.o: unresolved symbol set_external_irq
ctrlboard.o: unresolved symbol request_irq
ctrlboard.o: unresolved symbol __arch_copy_from_user
ctrlboard.o: unresolved symbol printk
ctrlboard.o: unresolved symbol udelay
出现上面错误的原因是编译内核的时候选择下面这一项,这项表示驱动程序版本跟内核版本不严格一样的话,insmod将找不到内核函数
Loadable module support -------->
[ ]set version information on all module symboles

启用设备文件系统devfs,在配置内核时选择

File systems--------------->

[]/dev file system support

#看内核导出符号
cat  /proc/ksyms

如果编译linux2.6.14.1内核,则是
make menuconfig
make zImage



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值