(编译内核)Vmware编译内核
来源:互联网 发布:淘宝怎样联系天猫客服 编辑:程序博客网 时间:2024/06/06 09:22
环境信息:
VMware下安装的CentOS 6.2
VMware Workstation 9.0.0
Linux version 2.6.32-220.el6.i686
环境准备:
下载linux内核源码:http://www.kernel.org
下载的源码版本:linux-2.6.34.14
编译操作:
1)解压源码,习惯性地解压到了/usr/src下面,实际上任意位置都无妨。
tar -xvf linux-2.6.34.14.tar.xz
2)cd进入解压后的源码目录内,执行环境清空操作。
make mrproper
3)准备配置文件,在/boot目录下面有个安装系统时生成的config-*文件,可以基于该文件上面进行配置编译。
cp /boot/config-* ./.config
4)配置内核信息。
make menuconfig
配置:
Executable file formats / Emulations
只选择了kernel support for ELF binaries
Networking support
可以不管
Device Drivers
Connector- unified userspace <-> kernelspace linker
Block devices-->
Normal floppy disk support
loopback device support
network block device support
RAM block device support
SCSI device support//如果是ide硬盘,这个可以全都不选,选择ata相关的
* SCSI device support
legacy /proc/scsi/ support
scsi disk support
scsi cdrom support
scsi generic support
Probe all LUNs on each SCSI device
SCSI low-level drivers
* BusLogic SCSI support
PS: IDE硬盘,则选择(下面以我选择的为例,可能不是最精简的)
<*> ATA/ATAPI/MFM/RLL support (DEPRECATED)
<*> generic ATA/ATAPI disk support
[*] ATA disk support
<*> generic/default IDE chipset support
<*> Generic PCI IDE Chipset Support
<*> Serial ATA and Parallel ATA drivers
<*> AHCI SATA support
Fusion MPT device support
Fusion MPT ScsiHost drivers for SPI
I2C support
I2C hardware bus support
Intel PIIX4 and compatible
USB support
* USB Mass Storage support
Networking support
Ethernet (10 or 100Mbit)
* AMD PCnet32 PCI support
Virtualization
可以不管
此外需要将系统上安装好的文件系统类型全部选上(我这里将其选为built-in类型,而非模块)。
比如我的:
<*> The Extended 4 (ext4) filesystem
[*] Ext4 extended attributes
[*] Ext4 POSIX Access Control Lists
[*] Ext4 Security Labels
[*] EXT4 debugging support
[*] JBD (ext3) debugging support
[*] JBD2 (ext4) debugging support
5)编译内核,为了加快编译速度,可以添加选项-jn,其中n替换为线程数值,一般是CPU核数的两倍。
make -j8 all
6)安装内核模块。
make modules_install
PS:其实在make all和make modules_install中间还有两条命令可以操作,就是make bzImage(压缩内核)和make modules(编译模块),但是这两条命令无关紧要,可以不管。
7)将编译生成的内核文件拷贝到对应位置去,其实可以很简单就用make install命令即可,只是会自动添加一些其他东西上去,故未采用。
cp -v System.map /boot/System.map-2.6.34.14
cp -v arch/i386/boot/bzImage /boot/vmlinuz-2.6.34.14
cp -v .config /boot/config-2.6.34.14
rm -f System.map vmlinuz
ln -s vmlinuz-2.4.18 vmlinuz
ln -s System.map-2.4.18 System.map
注:
其实除了cp -v arch/i386/boot/bzImage /boot/vmlinuz-2.6.34.14是必须的之外,其余的操作可以不管。
8)为新内核创建一个ramdisk,否则系统不能引导。
mkinitrd /boot/initramfs-2.6.34.14.img 2.6.34.14
PS:后面的2.6.34.14是根据版本来填的,具体可以依据/lib/modules目录里面的目录名来填。
如果不创建ramdisk,很容易遇到一个这样的报错:
VFS:Cannot open root device "sda" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
很让人头疼的,就这玩意折腾了我N个小时了。
9)配置grub信息。
vim /etc/grub.conf
新增内容:
title CentOS (2.6.34.14)
root (hd0,0)
kernel /boot/vmlinuz-2.6.34.14 ro root=UUID=5ee1b1da-0889-47c0-ae3f-13b64bafeb28
initrd /boot/initramfs-2.6.34.14.img
PS;root=UUID=5ee1b1da-0889-47c0-ae3f-13b64bafeb28,这个是对系统上已有的grub配置“抄袭”过来的,别照搬~
10)至此为止,已经搞定了。
reboot
复位系统开始引导新内核。
0 0
- (编译内核)Vmware编译内核
- vmWare/ubuntu 编译内核
- Ubuntu8.10的内核编译2.6.31.4(vmware)
- vmware下重新编译内核必选选项(备忘)
- vmware,ubuntu环境中linux内核编译 (很好)
- linux 3.13内核运行(编译)vmware-play失败
- Vmware下成功编译linux内核2.6
- 007.Vmware-Linux 内核编译一
- 008.Vmware-Linux 内核编译二
- 009.Vmware-Linux 内核编译三
- 010.Vmware-Linux 内核编译四
- VMware下CentOS 6编译内核
- 手动编译VMware Tools 内核模块
- VMware中Ubuntu编译和升级内核
- 内核编译(make)
- 内核编译(一)
- 内核编译(make)
- 编译内核
- 学习CVS( 2.0.2.4)系列----(二)同步、提交、添加、删除项目
- qt 如何让窗口置顶
- 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法
- 发布与订阅---来自维基百科
- linux上构建freeradius,网上搜索的
- (编译内核)Vmware编译内核
- 用ISO文件安装Xen虚拟机
- 排序算法和分析史上最全
- DevExpress的LookUpEdit控件的使用
- Linus:利用二级指针删除单向链表
- SDN阅读材料
- 算法学习笔记_方程求根
- Apache Ant+Junit对Java(Spring MVC(基于注解))工程进行测试(二)
- ibatis mybatis sql语句配置 符号不兼容 大于号 小于号