您的位置:首页 > 运维架构 > Linux

linux内核编译时出现的错误

2014-04-13 12:34 232 查看
这几天一直在编译linux内核,编译的内核是2.6.30.4的版本

我是的环境red hat linux9.0 内核版本是2.4.20-8 虚拟机是VM9.0的。

在编译的过程中出现了几个问题,在晚上经历千辛万苦找好几天才找到的解决的方法。

我遇到的问题如下:

问题1.

drivers/scsi/advansys.c:71:2: warning: #warning this driver is still not properly converted to the DMA API

drivers/scsi/advansys.c: In function `advansys_get_sense_buffer_dma':

drivers/scsi/advansys.c:9885: error: implicit declaration of function `dma_cache_sync'

make[2]: *** [drivers/scsi/advansys.o] Error 1

make[1]: *** [drivers/scsi] Error 2

make: *** [drivers] Error 2

解决方法:

在/usr/src/linux-2.6.30.4/include/linux/dma-mapping.h的最后endif之前添加

static inline void

dma_cache_sync(struct device *dev,void *vaddr,size_t size,

enum dma_data_direction direction);

{

BUG();

}

这个问题解决了,我想大家都会遇见下面这个问题,我在这个问题花费了很久的时间,基本上没有解决的办法。

在坚持又坚持之下终于找到了方法。

问题2:

make[1]: *** No rule to make target `|', needed by `firmware/keyspan/usa19qi.fw.

gen.S'. Stop.

make: *** [firmware] Error 2 我觉得这个错误最悲催。

解决方法:在内核的目录下make menuconfig

Device Drivers

---->Generic Driver Options

---->Include in-kernel firmware blobs in kernel binary

External firmware blobs to build into the kernel binary(取消这两个选项)

保存退出后,再执行

make clean

make zImage

编译通过!这个方法是我在一边博客上看到的。

博客地址是:http://blog.163.com/xueweilin123@126/blog/static/164918622201303010351771/

make zImage经过很长的时间之后会出现下面的,说明你的zImage就存在了。

Kernel:
arch/arm/boot/zImage is ready

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐