ubuntu 9.10 重新编译内核
2010-03-16 10:48
288 查看
第一步
安装必要的工具
首先要安装必要的包。
包有:
libncurses5-dev
(
menuconfig
需要的)和
essential
sudo apt-get install build-essential kernel-package(内核打包deb的可以不用装手动安装)
sudo apt-get install make
sudo apt-get install gcc
另外,查看系统是否有这样的两个命令
mkinitramfs mkisofs
这两个工具在编译内核时用来生成
*.img
文件的。如果没有就需安装。
第二步
下载内核
到
www.kernel.org
下载新内核到
/usr/src
我下载的是
linux-2.6.30.tar.gz
解压
linux-2.6.30.tar.gz
到
linux-2.6.30
cd /usr/src
sudo tar zxvf linux-2.6.30.tar
cd linux-2.6.30/
第四步
开始编译
以下所有的工作都在
/usr/src/linux-2.6.30
下完成
sudo make menuconfig //
用
menuconfig
的话还需要
Ncurses
,或者用
sudo make xconfig
sudo make menuconfig //
一般是用
menuconfig
配置完以后保存(系统中保存的一份内核配置文件是在
/usr/src/linux-2.6.30
下名为
.config,
你也可以自己在别的地方另存一份)
不会配置,就选用默认配置可能也能用(就是make menuconfig 后直接退出)
sudo make dep //
也许系统会提示现在不必要进行
make dep
,那就下一步
2.6.30
的我编译就没有使用过。
sudo make clean //
清除旧数据
,新解压的内核源码就不需要这一步了
sudo make –j4
// -jn 参数指要衍生的作业数,一般每个处理器2个作业,所以,双核可以选择-j4
sudo make bzImage //
编译内核,将保存到
/usr/src/linux-2.6.30/arch/i386/boot/
下
sudo make modules //
编译模块
sudo make modules_install //
安装模块
#
把编译好的模块安装到系统的/lib/modules下
sudo mkinitramfs -o /boot/initrd-2.6.30.img 2.6.30
#根据安装好的模块做镜像后面的参数号是指你的版本号,也就是modules下你安装的文件夹名
此时可能提示找不到这样的一个文件夹“
/lib/firmware/2.6.30
”,你需要手工创建一个这样的文件夹。
sudo mkdir /lib/firmware/2.6.30
sudo make install //
安装内核
#以上的几个步骤不能乱来要搞清楚各个步骤的实质内容 编译(包括内核和模块)->安装模块->做模块镜像->安装内核顺序不能乱
经过以上几步,内核就编译安装好了。然后就是修改grub,能够引导我们自己的新内核。如果对grub如何修改不是很了解,请看另一篇我转载的文章 《ubuntu9.10之grub.cfg详解》我就是添加了
menuentry “Ubuntu, Linux 2.6.30″ {
insmod ext2
set root=(hd0,8)
search –no-floppy –fs-uuid –set f255285a-5ad4-4eb8-93f5-4f767190d3b3
linux /boot/vmlinuz-2.6.30 root=UUID=f255285a-5ad4-4eb8-93f5-4f767190d3b3 ro quite splash
initrd /boot/initrd.img-2.6.30
}
修改完grub重启后出现了出现
warning:can't open directory /lib/modules/2.6.30-rc8-bfs311t5250,no such directory,估计没有配置好内核。
后来根据如下命令启发,修改后成功新内核。
######################################
cd /boot
cp initrd.img-2.6.29.4 initrd-2.6.29.4.old (Just making a backup)
depmod -a
update-initramfs -k 2.6.29.4 -c
cd /tmp
gzip -dc /boot/initrd.img-2.6.29.4| cpio -id
touch lib/modules/2.6.29.4/modules.dep
find ./ | cpio -H newc -o > /boot/initrd.img-2.6.29.4.new
gzip /boot/initrd.img-2.6.29.4.new
cd /boot
mv initrd.img-2.6.29.4.new.gz initrd.img-2.6.29.4
######################################
补充:
make 包括 内核部件和模块部件一起编译
make bzImage 只编译内核#可以在menuconfig后就使用 只编译内核 但是接着要编译 模块不能省
make modules 只编译模块
make modules_install 把编译好的内核安装到/lib/modules/X.x.x下面 XX是你自己定义的版本号
sudo mkinitramfs -o /boot/initrd-2.6.24.img 2.6.24就对
/lib/modules/XX。X下面的模块库进行的一个镜像快照当内核需要没有被编入内核的模块是会去initrd.img找如果启动过程中需要的部
分都在内核中。就不会访问该文件!
内核安装过程中,实际做了三件事:
1.安装modules到/lib/modules下面。
2.复制内核vmlinuz和模块镜像initrd.img到/boot/下
3.在/下面创建vmlinux和initrd两个链接。是方便没法指明路径的引导程序直接到/目录下找到/boot/的启动文件!(grub可以设定路径,不用做链接也可以)
4.在grub里面加入新内核的引导路径!
完!
出现这个错误了
Re: FATAL: modprobe: Could not load /lib/modules/.../module.deb
删掉了之前生成的/boot/initrd.img-2.6.28,执行
#cd /usr/src/linux
#update-initramfs –c –k 2.6.28
这样,重新在/boot下创建initrd.img-2.6.28,
sudo update-grub
重启后,进入了新内核,内核编译升级成功。
在Ubuntuserver9.10下测试成功
安装必要的工具
首先要安装必要的包。
包有:
libncurses5-dev
(
menuconfig
需要的)和
essential
sudo apt-get install build-essential kernel-package(内核打包deb的可以不用装手动安装)
sudo apt-get install make
sudo apt-get install gcc
另外,查看系统是否有这样的两个命令
mkinitramfs mkisofs
这两个工具在编译内核时用来生成
*.img
文件的。如果没有就需安装。
第二步
下载内核
到
www.kernel.org
下载新内核到
/usr/src
我下载的是
linux-2.6.30.tar.gz
解压
linux-2.6.30.tar.gz
到
linux-2.6.30
cd /usr/src
sudo tar zxvf linux-2.6.30.tar
cd linux-2.6.30/
第四步
开始编译
以下所有的工作都在
/usr/src/linux-2.6.30
下完成
sudo make menuconfig //
用
menuconfig
的话还需要
Ncurses
,或者用
sudo make xconfig
sudo make menuconfig //
一般是用
menuconfig
配置完以后保存(系统中保存的一份内核配置文件是在
/usr/src/linux-2.6.30
下名为
.config,
你也可以自己在别的地方另存一份)
不会配置,就选用默认配置可能也能用(就是make menuconfig 后直接退出)
sudo make dep //
也许系统会提示现在不必要进行
make dep
,那就下一步
2.6.30
的我编译就没有使用过。
sudo make clean //
清除旧数据
,新解压的内核源码就不需要这一步了
sudo make –j4
// -jn 参数指要衍生的作业数,一般每个处理器2个作业,所以,双核可以选择-j4
sudo make bzImage //
编译内核,将保存到
/usr/src/linux-2.6.30/arch/i386/boot/
下
sudo make modules //
编译模块
sudo make modules_install //
安装模块
#
把编译好的模块安装到系统的/lib/modules下
sudo mkinitramfs -o /boot/initrd-2.6.30.img 2.6.30
#根据安装好的模块做镜像后面的参数号是指你的版本号,也就是modules下你安装的文件夹名
此时可能提示找不到这样的一个文件夹“
/lib/firmware/2.6.30
”,你需要手工创建一个这样的文件夹。
sudo mkdir /lib/firmware/2.6.30
sudo make install //
安装内核
#以上的几个步骤不能乱来要搞清楚各个步骤的实质内容 编译(包括内核和模块)->安装模块->做模块镜像->安装内核顺序不能乱
经过以上几步,内核就编译安装好了。然后就是修改grub,能够引导我们自己的新内核。如果对grub如何修改不是很了解,请看另一篇我转载的文章 《ubuntu9.10之grub.cfg详解》我就是添加了
menuentry “Ubuntu, Linux 2.6.30″ {
insmod ext2
set root=(hd0,8)
search –no-floppy –fs-uuid –set f255285a-5ad4-4eb8-93f5-4f767190d3b3
linux /boot/vmlinuz-2.6.30 root=UUID=f255285a-5ad4-4eb8-93f5-4f767190d3b3 ro quite splash
initrd /boot/initrd.img-2.6.30
}
修改完grub重启后出现了出现
warning:can't open directory /lib/modules/2.6.30-rc8-bfs311t5250,no such directory,估计没有配置好内核。
后来根据如下命令启发,修改后成功新内核。
######################################
cd /boot
cp initrd.img-2.6.29.4 initrd-2.6.29.4.old (Just making a backup)
depmod -a
update-initramfs -k 2.6.29.4 -c
cd /tmp
gzip -dc /boot/initrd.img-2.6.29.4| cpio -id
touch lib/modules/2.6.29.4/modules.dep
find ./ | cpio -H newc -o > /boot/initrd.img-2.6.29.4.new
gzip /boot/initrd.img-2.6.29.4.new
cd /boot
mv initrd.img-2.6.29.4.new.gz initrd.img-2.6.29.4
######################################
补充:
make 包括 内核部件和模块部件一起编译
make bzImage 只编译内核#可以在menuconfig后就使用 只编译内核 但是接着要编译 模块不能省
make modules 只编译模块
make modules_install 把编译好的内核安装到/lib/modules/X.x.x下面 XX是你自己定义的版本号
sudo mkinitramfs -o /boot/initrd-2.6.24.img 2.6.24就对
/lib/modules/XX。X下面的模块库进行的一个镜像快照当内核需要没有被编入内核的模块是会去initrd.img找如果启动过程中需要的部
分都在内核中。就不会访问该文件!
内核安装过程中,实际做了三件事:
1.安装modules到/lib/modules下面。
2.复制内核vmlinuz和模块镜像initrd.img到/boot/下
3.在/下面创建vmlinux和initrd两个链接。是方便没法指明路径的引导程序直接到/目录下找到/boot/的启动文件!(grub可以设定路径,不用做链接也可以)
4.在grub里面加入新内核的引导路径!
完!
出现这个错误了
Re: FATAL: modprobe: Could not load /lib/modules/.../module.deb
删掉了之前生成的/boot/initrd.img-2.6.28,执行
#cd /usr/src/linux
#update-initramfs –c –k 2.6.28
这样,重新在/boot下创建initrd.img-2.6.28,
sudo update-grub
重启后,进入了新内核,内核编译升级成功。
在Ubuntuserver9.10下测试成功
相关文章推荐
- ubuntu环境下重新编译内核
- Ubuntu9.10 中内核编译过程(二)
- Ubuntu9.10内核编译安装
- ubuntu环境下重新编译内核
- ubuntu重新编译内核
- ubuntu环境下重新编译内核
- ubuntu环境下重新编译内核
- wubi 安装Ubuntu (windows下安装),重新编译内核后无法进入系统解决方案(只能进入grub)
- 重新编译Ubuntu 11-12.04 内核
- 如何在ubuntu下重新编译内核
- 重新编译Linux内核必要性及其准备工作 分类: arm-linux-Ubuntu 2013-07-22 16:28 288人阅读 评论(0) 收藏
- ubuntu环境下重新编译内核
- ubuntu环境下重新编译内核
- Ubuntu9.10 中内核编译过程
- ubuntu下重新编译内核
- Ubuntu--(1)编译安装linux内核4.7.5
- 关于重新编译内核后VirtualBox不能使用的问题
- 重新编译Linux内核必要性及其准备工作
- linux重新编译内核
- ubuntu server 14.04 编译安装xen4.4.2配置vtpm(二)——Dom0内核编译