cygwin下编译linux2.6 kernel失败,求解决方法!

我的系统是Vista,在cygwin-1.5.15-1运行make程序来编译linux2.6 kernel,所碰到的情况如下,请问如何解决,谢谢。

$ make
HOSTCC scripts/basic/fixdep
fixdep:
: No such file or directory
make[2]: *** [scripts/basic/fixdep] Error 2
make[1]: *** [scripts_basic] Error 2
make: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/kernel.release'. Stop.

GNU Make版本:GNU Make 3.81 ..Copyright (C) 2006 Free Software Foundation, Inc...This program built for i686-pc-cygwin

启动gcc -v 显示以下:
Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs
---
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)

linux2.6内核成功编译
1) 需要的工具:
(1) 模块工具:modutils-2.4.21-23.src.rpm

//负责加载模块,在2.4之前是不必独立编译
//模块存放位置:/lib/modules/内核版本目录/kernel/drivers
//lsmod: 查看已加载的模块
(2) 原始码:linux-2.6.9.tar.gz
//选择需要编译的部分: 最新内核2.6.9 支持NTFS分区(只读)
//查看现有系统支持的文件系统: cat /proc/filesystems
//显示内核版本: uname -r
反引号: 当作命令执行 cd /lib/modules/`uname -r`
(3) 能加上补丁:patch-2.6.9.gz
(2) 编译内核的基本步骤
(1) 主要用的编译命令: make make modules_install make install
(2) 基本安装: 安装模块、安装内核
------------------------------------------------------------------------------------------------------------------------------------------------
安装2.6内核的步骤
1 安装模块:(1)执行rpm命令将modutils-2.4.21-23.src.rpm
安装到/usr/src/redhat/SOURCES
//rpm -ivh modutils-2.4.21-23.src.rpm
//模块工具是RPM包安装后默认安装在/usr/src/redhat/SOURCES
(2)在SOURCIES中含有2个文件module-init-tools.tar.gz
modutils-2.4.21.tar.gz
将module-init-tools.tar.gz接压
//tar -xzvf module-init-tools.tar.gz
// modutils-2.4.21.tar.gz文件不是主要要用的,不用接压
(3)module-init-tools.tar.gz文件接压后会有一个
module-init-tools-3.0-pre1

(4)进入到module-init-tools-3.0-pre1 目录中
//cd module-init-tools-3.0-pre1
(5)在module-init-tools-3.0-pre1 下编译
//./configure --prefix=/modules然后执行make接着
make install到这模块编译完成
//注释:/modules是自己建立的目录,为了以后管理方便
当编译模块完成后在/modules文件下会有bin man sbin这3个目录
(6)开机自动加载模块编辑/etc/profile
//vi /etc/profile

(7)在/etc/profile文件中在添加 export上面一行 PATH=/modules/bin:/modules/sbin:$PATH
(8)进入到模块的目录/modules
进入到其中的sbin中执行一下命令
./generate_modprobe.conf /etc/modprobe.conf
//注释:generate_modprobe.conf在文件sbin中有这个执行命令
/etc/modprobe.conf是自己输入的,是规定的
//以上操作是为了规定init

(9)重新启动计算机,或着source /etc/profile让其本次操作有效

(10)目前开始编译内核将linux-2.6.9.tar.gz接压到/usr/src
//tar -xzvf linux-2.6.9.tar.gz -C /usr/src

(11)接压后在/usr/src会有 linux-2.6.9目录
(12)将 linux-2.6.9做一个连接文件
//创建链接文件: ln -s linux-2.6.9/ linux
//创建链接文件是为了方便管理

(13)进入到创建链接文件linux中开始编译内核
首先运行make menuconfig选择要编译的内容,默认也能
//注释M: 以模块形式加载
*: 直接编译进内核
空: 不做操作,不编译
然后执行make
再后执行modules_install
最后执行make install
到此内核编译完成
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-02
cygwin,你是不是要搞嵌入式开发啊
$表示在目标板命令行
#表示在主机上面的命令行
2.6的内核各个版本变化很大,现在都是2.6.27.4了,你的哪个版本
fixdep ,No such file or directory
没有遇到过你的这种情况
换个gcc或者看看你的文件夹到底有无‘Makefile‘
第2个回答  2008-10-28
include/config/kernel.release文件缺失,不能make include/config/auto.conf
第3个回答  2008-11-13
用交叉编译的环境才能过吧?
相似回答