免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1918 | 回复: 0
打印 上一主题 下一主题

在Debian上编译Linux内核 Kernel 2.6.32 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-22 17:52 |只看该作者 |倒序浏览
首先用 apg-get 自动下载并安装一些必要的软件包,包括编译内核需要的kernel-package和ncurses-dev等。如果在内核编译、制作过程中,遇到错误提示说某个软件包不存在的话,同样使用 apt-get install 命令进行下载安装。
  apt-get install kernel-package ncurses-dev fakeroot wget bzip2 make patch
  cd /usr/src
  wget
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.4.tar.bz2
  tar xjf linux-2.6.28.4.tar.bz2
  到
http://www.kernel.org
查看最新的内核版本。
  切换到新内核的目录
  cd linux-2.6.28.4
  为了节省时间,执行以下命令从现有内核中获得配置
  make oldconfig
  执行完此条命令后,会根据新老内核的差异情况,询问你一些问题,如果不确定的话都是用默认(直接按回车)。
  以上步骤完成后,执行内核配置程序
  make menuconfig
  至此,内核的配置就算完成了。按 ESC 多次后退出内核配置页面(在系统询问是否要保存新内核的配置时,当然要选择yes)。
  执行以下命令进行新内核的生成!
  make-kpkg clean
  fakeroot make-kpkg --initrd --append-to-version=ofog --revision=1.0 kernel_image
  fakeroot 的作用是在内核的生成过程中暂时性获取root权限(和sudo不同的是fakeroot只是让程序获得root的行为特征而不是真正具备root权限)。如果你直接是用root帐号操作的话,可以省略fakeroot。--append-to-version定义的是内核的软件包名字,类似 kernel-image-2.6.28.4-ofog 这样。而 -revision定义的是软件包的版本。
  现在系统会开始进行新内核的生成,屏幕上会有许多文字闪过。注意,如果生成过程中出现错误,执行 make clean 后,用 make menuconfig 重新配置内核。一般都是仔细看错误信息,找到出错的模块,然后将其去除。
  内核顺利生成完毕后,会在/usr/src目录下产生一个 deb 包。例如 kernel-image-2.6.28.4-ofog_1.0_i386.deb
  执行以下命令安装新内核!
  dpkg -i kernel-image-2.6.28.4-ofog_1.0_i386.deb
  接着Debian会安装新内核并更新Grub的配置文件。
  重新启动(shutdown -r now 或者 reboot)后将会引导到新内核。



编译中会出现以下问题,解决如下:
2.6.31 for Debian 5/Lenny
Filed under:
Highpoint
— Nagilum @ 15:23:58
I just upgraded my Debian5 workstation to 2.6.31. While doing so I stumbled over this:
cc -m32 -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include -I../../arch/x86/include -U_FORTIFY_SOURCE lguest.c -o lguest
lguest.c:21:25: error: sys/eventfd.h: No such file or directory
lguest.c: In function ‘create_thread’:
lguest.c:1021: warning: implicit declaration of function ‘eventfd’
make: *** [lguest] Error 1
This is apparenty due to the old libc-dev package that Lenny comes with. Since libc isn’t exactly a good candidate for a selective upgrade I helped myself with simply editing Documentation/lguest/Makefile and changing:
all: lguest
to
all:
So lguest wont be build anymore. After that make-kpkg binary-arch worked as usual.
I’m also happy to report that my
rr232x-linux patch
still works on 2.6.31.


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/109695/showart_2157975.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP