vmware 上安装 gentoo
最近要测试一个内核模块,学习下netlink,需要安装个linux
vmware版本9.0.2,gentoo版本:install-x86-minimal-20130528,3.8.13的内核
主要步骤参考这个:http://www.gentoo.org/doc/en/gentoo-x86-quickinstall.xml
但没必要完全按步骤来,因为是测试用,时区什么的都省了,没分boot分区,/分区使用ext3
这样在配置内核的时候,需要把ext3编进内核,而不能使用模块(查了下使用initrd也可以不编进内核)
内核配置参考:http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=7
lspci会给出你的硬件配置,但是对我这种对硬件参数不太懂的根本没法用来配置内核,可以使用lspci -k 这个命令可以显示其对应的内核模块是什么,然后在配置内核时搜索,就会给出你该配置什么
make defconfig // 使用默认配置 make menuconfig // 按'/'搜索
需要注意一点,这个版本vmware的默认磁盘为SCSI,为LSI logic设备。有篇帖子说4.0以前使用的是BusLogic设备,参考:http://blog.csdn.net/kl222/article/details/4681606
需要勾选如下设置,否则的话,内核加载时会报:VFS: Cannot open root device "sda2" or unknown-block(0,0),这个问题纠结了两天才搞出来
Device Drivers ---> [*] Fusion MPT device support ---> <*> Fusion MPT ScsiHost drivers for SPI <*> Fusion MPT ScsiHost drivers for FC <*> Fusion MPT ScsiHost drivers for SAS
接下来编译内核:make && make modules_install && make install
新版本的gentoo都使用的grub2,便是跟grub有很大不同,现在不需要手配grub.cfg了,使用grub-mkconfig 输出到该文件即可
上面链接给出的是安装grub的教程,安装grub2,可以用emerge,我是下载下来源码自己编译的
使用 grub-install /dev/sda来安装
接下来reboot即可
启动后配置网络,vmware用的nat桥连接,编辑->虚拟网络编辑器 看DHCP和NAT设置,记下IP段和网关
ifconfig enp2s1 up#不知道怎么搞的,默认不启动 ifconfig enp2s1 192.168.128.128 netmask 255.255.255.0#设置IP,掩码 route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.128.2#设置网关,我这里是.2
启动后发现网络不能自动启动,查了查发现时以下命令为执行(上面安装链接里有),自动启动后会自动设置IP,不用像上面那样手动设置,应该是DHCP的
# 我这里的名字是enp2s1,貌似是udev搞的,用下面命令创建一个空文件就可以是ethX命名的了 # touch /etc/udev/rules.d/80-net-name-slot.rules ln -s net.lo net.eth0 rc-update add net.eth0 default
==============================================================================================================
后续:虽然安装好了,但是分辨率很低,fgx模式好像不管用,先这样吧,现在字符模式够用了
grub2里不能用more less,分页查看可以用以下命令
set pager=1