打印

内核编译过程总结

[复制链接]
117|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
求关注啊|  楼主 | 2018-9-27 15:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、首先是要修改顶层的Makfile

ARCH       ?= arm

CROSS_COMPILE   ?= arm-linux-

这一步是在安装了交叉编译连的前提下进行的



2、去内核里面找到对应的开发板的名字,由于linux-2.6.34这个内核已经更新到能直接支持mini2440,所以省掉了我们修改系统时钟的一些步骤,之前的内核版本不支持mini2440通过以下方式修改

修改arch/arm/mach-s3c2440/mach-smdk2440.c        ln163    static void __init smdk2440_map_io(void){s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));s3c24xx_init_clocks(12000000);      //default is 16934400, changed by yangdks3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));}新版本的内核当中的mach-mini2440.c对比与mach-smdk2440.c的以上部分已经得到了修改。

3. 修改对nand的分区信息。要让内核知道nand flash的分区信息,设置成跟bootloader一致,这里我们的分区用的是韦东山的典型的分区,方便以后做实验用。当然如果我们这里不修改内核里面指定的nand flash分区那么我们就势必要修改u-boot里的nand flash 的分区了。在arch/arm/plat-s3c24xx/common-smdk.c中修改smdk_default_nand_part[]也可以在这个地方修改我们的LED的初始化,已经被我修改了.[0] = {       .name   = "bootloader",//to startfrom nand flash       .size   = SZ_128K*2,//256k       .offset = 0,   },    [1]= {       .name   = "params",       .offset = SZ_128K *2,       .size   = SZ_128K,   },    [2]= {       .name   = "kernel",       .offset = SZ_128K*3,       .size   = SZ_2M,   }    [3]= {       .name   = "root",       .offset = SZ_128K*3+SZ_2M,       .size   =SZ_32M*8-SZ_128K*3-SZ_2M,   }4、添加DM9000网卡驱动,发现我们的板子需要make menuconfig 添加网卡就行了,



/home/yl/linux_kernel_yangliu/linux-2.6.34.1/arch/arm/configs这个目录下能找到一些配置恩见注意的是1. make mini2440_defconfig,这一步是生成.config(生成了针对mini2440的配置)是在内核的根目录的隐藏文件,我们可以用vi .config来产看用/MINI2440来搜索看是真的生成了这个配置      其中的第一步是默认的配置,但是这个要用make menuconfig的话就能图形化配置2.make uImage,编译内核的镜像文件编译结束得到arch/arm/boot/uImage文件,(需要编译uboot将编译命令mkimage移动到虚拟机的交叉编译文件夹的/bin目录下)

每次重新编译之前都要make clean 然后再次执行上面的步骤

5、如何裁剪内核使他只支持单个的mini2440单板,我们去./config查看搜索/MINI2440,有很多并列的单板,这个时候我们可以通过make menuconfig删除它们。还可以选择文件系统的支持sudo apt-get updatesudo apt-get install build-essentialsudo apt-get install libncurses5

sudo apt-get install libncurses5-dev这些步骤就能使用make menuconfig了





6实现文件的挂载,那个版本的内核就用那个版本的内核下载到开发板,这样才能保证insmod .ko的时候不会出错

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

380

主题

380

帖子

0

粉丝