linux编译内核详解(转并修改)
来源:互联网 发布:idea tostring json 编辑:程序博客网 时间:2024/05/16 08:51
从源码编译内核 (简体中文)
- 将源码拷贝到你的家目录:
$ cp linux-2.6.27.tar.bz2 ~/kernelbuild/
- 解压源码:
$ cd ~/kernelbuild
$ tar -xvjf linux-2.6.27.tar.bz2
$ cd ~/kernelbuild/linux-2.6.27
编译前设置
- (推荐) 如果你想使用linux的默认配置,可以拷贝你现在正在运行的内核的 .config 设置文件。
$ zcat /proc/config.gz > .config
- 设置内核。
$ make oldconfig (仅当你已经拷贝了内核配置文件)
$ make menuconfig
你也可以使用make xconfig(依赖Qt)或者make gconfig(依赖 GTK),来代替终端模式的make menuconfig。
- 适当更改内核设置并保存。如果你希望通过多次配置探索达到最优配置的话,每次将你的内核配置文件备份将是明智之举。
- 如果你希望用你现在的配置文件编译内核,不要忘了更改你的内核版本号,否则你可能会覆盖掉你现在正使用的内核。
$ make menuconfig
一般设置 ---> (-ARCH) Local version - append to kernel release
What about /usr/src/ ?
用/usr/src/目录编译,连同建立连接这种方法已经不用了,很多 hackers 并不赞同这种方法。最洁净的方法是简单地利用自己的家目录,作为一个普通用户设置并编译自己的内核,以root身份安装,或者用 makepkg 和pacman (上面提过)
编译和安装
选择以下一种方法:
1.手动的传统的方法
警告: 不要运行 make all 如果你用的是 GRUB ,并且依然装有 LILO; 它最后会设置 LILO,这样你可能再也不能启动你的机器了。如果你使用的是 GRUB 运行前make all先卸载 LILO(pacman -R lilo)。
- 开始编译。
$ make clean
$ make dep
$ make modules
$ make bzImage
# make modules_install
(如果你是以普通用户身份编译的话,先运行make clean && make,然后以root身份运行make modules_install。
- 拷贝内核。
# cp -v arch/i386/boot/bzImage /boot/vmlinuz-2.6.27-revision1
(你也可以拷贝配置文件和System.map到/boot,但是一般来说他们再也不需要了。
- (推荐) 如果需要可以做一个启动盘(多数用户需要这个)
mkinitcpio -k 2.6.27-revision1 -g /boot/kernel26-revision1.img
- 设置 /boot/grub/menu.lst 然后你的内核安装完成.
- 另外,如果你用的是 LILO,则安装脚本直接会自动拷贝相应文件并且设置LILO:
$ cd ~/kernelbuild/linux-2.6.27/arch/i386/boot/ # sh ./install.sh
当然,你可以将vmlinuz, Kconfig, and System.map 文件更名; 然而, 版本号系统对控制和跟踪系统中的内核(如你编译了多少个内核)。你也可以试试在名称中加入日期和时间,当然你可以坚持你想要的简单的名字。
最后要说就是如果你是使用lilo的话,一旦sh ./install是无效的话
那么就修改/etc/lilo.conf中的配置节
修改完之后一定要记得/sbin/lilo 来完成关联,否则Lilo不知道已经修改配置节
建议,你就模仿已经存在就可以!
- linux编译内核详解(转并修改)
- Linux内核编译详解(zz+修改)
- Linux编译内核详解(转)
- [转]Linux编译内核详解
- Linux编译内核详解(转)
- Linux编译内核详解 转
- 【转】Linux内核编译详解
- Linux编译内核详解(转)
- 修改编译linux内核
- Linux编译内核详解
- Linux编译内核详解
- linux内核编译详解
- Linux 内核编译详解
- Linux内核编译详解
- Linux 内核编译详解
- linux内核编译详解
- LINUX内核编译详解
- Linux 内核编译详解
- 第二十二条军规
- 虚拟机如何连网
- 我要好好学习PHP了
- 30 个北京情调自习室(转校内)
- 学习Struts2
- linux编译内核详解(转并修改)
- 用JDom与反射机制打造自己的小型Spring容器
- 介绍 JSON
- 初次见面
- 8个dos命令
- 上传图片之全过程
- Qt 出现“Qt 出现“undefined reference to `vtable for”原因总结
- 生活感想
- 关于 磨刀不误砍柴工