linux编译内核详解(转并修改)
2009-06-17 16:14
351 查看
从源码编译内核 (简体中文)
获取源码
例:$ wget -c ftp://ftp.us.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2
将源码拷贝到你的家目录:
$ 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不知道已经修改配置节
建议,你就模仿已经存在就可以!
获取源码
例:$ wget -c ftp://ftp.us.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2
将源码拷贝到你的家目录:
$ 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 2.4内核编译详解
- Linux 编译内核详解(ZZ)
- linux 2.6内核 编译模块Makefile 详解
- Linux操作系统的内核编译内幕详解
- Linux 内核编译步骤及配置详解
- Linux 2.6 menuconfig内核编译配置选项详解
- Linux操作系统的内核编译内幕详解
- Linux操作系统内核编译详解
- opensuse linux下内核编译方法详解
- Linux 内核编译选项详解
- linux 2.6内核 编译模块Makefile 详解!
- Linux2.6.19.x内核编译配置选项详解
- Linux操作系统的内核编译内幕详解
- Linux编译内核详解 转
- linux内核编译时,修改内核版本信息
- linux内核编译详解
- linux内核编译详解
- Linux 内核编译详解
- Linux操作系统内核编译详解[zt]
- [置顶] linux 内核编译——修改内核版本号