Ubuntu U盘安装与编译内核
因为寒假的时候不小心误用fsck -f 强行扫描修复了已挂载的ext4分区,导致我的1000HE上原来的Ubuntu 10.04不可用,所以花了点精力重装Ubuntu 10.10 netbook版本,不得不说Ubuntu 10.10实在是各种反人类:尤其是官方的ISO光盘镜像不能够像以前版本那样直接用UltraISO烧录到U盘中用于光盘启动,直接烧录镜像的U盘会在启动时黑屏,原因是启动脚本发生了改变,不支持原来的启动方式。这让没有光驱的EPC系列机器情何以堪……
解决方法是修改做成后的启动盘中/syslinux的syslinux.cfg文件,注释掉一个调用:
在syslinux/syslinux.cfg
将
default vesamenu.c32
改为
# default vesamenu.c32
用修改后的启动盘启动不能直接进入引导菜单,但这个时候已经可以用GRUB Command Line了,在命令行输入以载入镜像
boot: /casper/vmlinuz file=/cdrom/pressed/ubuntu.seed boot=casper only-ubiquity initrd=/casper/initrd.lz quiet
install
就可以进入正常的Ubuntu10.10安装界面了,安装界面中的最后一步填写用户名的地方,用户名首字母不能为大写,否则安装无法继续并且无任何出错提示(这个相当狗血)
安装好Ubuntu 10.10再进行基本调教之后,来说说编译内核:Ubuntu继承自Debian,可以用Debian编译内核的方法,当然也有自己一套的内核编译流程,这里就用Ubuntu推荐的方法编译自己需要的内核。
首先是下载需要的源码包,新建一个干净的目录并转到/kernel
sudo apt-get update
sudo apt-get source linux-source-2.6.35
安装编译需要的工具软件
sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot
如果使用make xconfig修改配置就需要安装如下组件
sudo apt-get install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt
拷贝一个当前使用内核的配置文件到源码目录下
cp /boot/config-`uname -r` ./.config
自动精简内核,这是2.6以来的新内核可以用到的一个新功能,可以自动精简很大一部分跟驱动有关的项目。(建议在运行这项的时候将可能用到的设备都插到计算机上让系统识别)
make localmodconfig
自动精简内核完成之后就该自己上场对内核进行相应精简的,因为每个人对内核的要求都不太相同,所以这里也每必要给出所谓的最佳配置文件。不过鉴于有些选项实在晦涩难懂且很难搜索到相应的解释,这里推荐各位TX一本不错的内核编译选项手册,绝大部分的配置选项都能够在上面找到。
对于EPC 1000HE系列(以及笔记本)来说,内核中的ASUS支持和EPC支持的三个选项应该选上以原生支持快捷热键,值得一提的是现在绝大多数的机器用的是SATA硬盘,所以在内核选项中一定要选上SCSI device support 和SCSI disk support两项,而且不能以M(模块)编译进内核,否则会无法进入系统。“ Timer frequency ”最好选择1000Hz以提高GUI响应……
配置文件编辑完毕之后最好在上层目录保存一份以防被自己不小心误删,接下来就是编译的过程了。编译之前需要注意控制目录的权限必须为755,所以控制目录不能在vfat和ntfs分区下,否则会在编译打包的最后一部报错。编译使用的是make-kpkg工具:
sudo make-kpkg --initrd --append-to-version=1000he kernel_image
附加版本信息内核可以改成自己想要的--append-to-version=1000he,主版本号在配置文件中修改.接下来是漫长的等待过程,根据机器的性能和环境以及配置文件不同编译时间从一个多小时到几个小时不等。在EPC下编译内核简直是一件很**的事情……期间如果出现什么问题可以根据相应的错误提示去寻找原因,这里就假设编译顺利已经编译通过得到了一个类似linux-image-2.6.35.101000he_2.6.35.101000he-10.00.Custom_i386.deb的包,接下来通过安装包:
sudo dpkg -i linux-image-2.6.35.101000he_2.6.35.101000he-10.00.Custom_i386.deb
最后就是重新启动用新内核启动系统验证功能是否齐全了,怎么样简单吧?
如果发现已经安装的新内核包出现问题不合适,可以在启动Grub中选择原来的内核进入系统,然后删除新内核推到来过
sudo dpkg -P linux-image-2.6.35.101000he_2.6.35.101000he