内核编译的过程以及出现问题的解决

系统:Ubuntu 16.04 内核版本:2.6.30

1、从网上下载下来的一份内核源码 linux-2.6.30.tar.bz2 ,解压缩 tar jxvf linux-2.6.30.tar.bz2。由于我的文件放在Download里面,将解压后的内核文件放入到/home目录下。

2、进入linux-2.6.30目录 。

3、生成配置文件:make menuconfig。可以不做任何修改,后面可以根据自己的需要进行添加删减。

4、生成镜像文件:make bzImage。注意在此过程中,最开始就直接切换为root用户,避免不必要的麻烦。

接下来会出现一些小问题,如下:


此处需要进入到kernel/timeconst.pl中,将‘if(!defined(@(array))’ 修改为‘if(@val)’即可。

接着会遇到以下问题:


这里需要下载一个补丁:

在这里下载:https://linux.linuxidc.com/ 如果需要用户名和密码都是:www.linuxidc.com。需要的补丁在/2012年资料/2月11日/Linux内核编译错误 ,将该目录下的文件下载放在linux-2.6.30目录下,然后执行 gunzip -dc __gnu_mcount_nc_patch.patch.gz |patch -p1。然后make bzImage 继续编译。

5、接着生成modules,make modules。

出现如下错误:


vim drivers/scsi/advansys.c中

将8352行的那一个函数,dma_cache_sync(board->dev,scp->sense_buffer,SCSI_SENSE_BUFFRSIZE,DMA_FROM_DEVICE);注释掉就行,接着make modules执行。


进入到drivers/scsi/osd/osd_initiator,将65、66行都注释掉,继续编译。

接着会出现以下问题

分别打开以上几个编译文件:

vim sound/pci/ali5451/Makefile 将obj-$(CONFIG_SND_ALI5451) +=snd-ali5451.o这一行注释掉

其他的同理来解决,最终编译成功。

6、make modules_install。

出现:depmod:WARNINGS:could not open /lib/modules/2.6.30/modules.bulltin:No such file or directory。这个警告可以暂时不用理会。至此,内核编译完成。若想要添加内核模块,则依据insmod rmmod 步骤来进行添加、删除等。





  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值