linux内核编译时出现的错误

来源:互联网 发布:贾利尔.奥卡福数据 编辑:程序博客网 时间:2024/05/21 09:57

这几天一直在编译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





0 0