Kernel Space

January 16, 2007

折腾真土(Gentoo)– 休眠功能

Filed under: 折腾电脑 — agassi @ 1:17 am

本以为装好了一个version的内核就万事大吉了。殊不知麻烦接踵而至。
想给本本装个suspend2,这样不用的时候就可以休眠了。但是suspend2需要patch内核,所以follow instructions编译好了内核。启动的时候结果出现了 “cardmgr [xxxxx]: no sockets found”的错误。随后eth0启动失败(”netmount” was not started)。这下蒙了。网上搜了很多,也又编译了几次内核,未果。

仔细一想,第一次build内核的时候用的是genkernel这个工具,所有的配置都是从LiveCD配置好的文件复制过来的,自己没怎么注意。但是Handbook有一个manual configuration的说明,当时图省事略过没看。现在需要重新看看了。先用”make menuconfig”打开内核配置程序,把PCMCIA的相应选项都勾上,尤其是PC-card bridges 的那些选项。重新编译内核,cardmgr的错误没了,但是eth0还是不能启动。网上的帖子显示应该是驱动的问题,但是原来的内核都有这个驱动,我新编译的这个怎么会没了?看来还是内核选项的问题。继续menuconfig,发现了Intel PRO/100+ 网卡的驱动,心中大喜,立刻勾上。再次编译内核,通过!!!!

这样看来当时省事,让genkernel代劳确实给自己添了不少麻烦。以后应该多manually操作!!!

折腾真土(Gentoo) — 安装

Filed under: 折腾电脑 — agassi @ 1:15 am

半年前写的了,一直放在硬盘上,现在放上来算是做个备份。

Gentoo 不同于RH,Debian,Ubuntu等基于binary得distribution。 Gentoo提供的是代码级别的distribution。也就是说,每台安装的机器都需要重新编译内核,从而获得最大的optimization。当然对于linux的学习也有很大帮助,因为整个安装过程都是manually的。

网上的Gentoo的文档做得很全。安装的部分主要参考Gentoo的官方Handbook. http://www.gentoo.org/doc/en/handbook/handbook-x86.xml

总的来说,Gentoo首先利用一个LiveCD用光盘、内存和临时磁盘空间构建一个Gentoo的运行环境。这个环境甚至还提供了X系统和installation wizard(我没有使用这个wizard,而是按照handbook一步一步走)。接下来的主要工作就是在这个环境中,利用shell命令一步一步构建真正的系统(Gentoo Base System)。

1.战前准备
  a) 先到mirror上抓个up-to-date的iso (我用的是livecd-i686-installer-2006.0.iso)。然后烧到cd-r上。
  b) 放到我的小笔记本的光驱里面,启动!  随后就进入了Gentoo的GNOME桌面,用户都是默认的。当然可以改改用户,或者提高磁盘性能等,我都略过。但是发现不能上网,笔记本的LAN和WLAN都没有连接上。dmesg一把,发现都fail了。于是试了一下Handbook建议的 “modprobe 8139too” 然后 ifconfig,果然搞定了那个网卡,wireless还没搞定(只好暂时先插上网线将就一下)。

2.文件系统
  a) 分区当然是首当其冲的事情。笔记本上还有windows NTFS分区,操作的时候就得小心一点。用fdisk的基本命令p,d,n,t等设置好/boot, /, swap分区。由于我还希望能够suspend系统,所以swap给了接近1G的空间。
  b) 创建文件系统。/和/boot都是ext3, 用mke2fs -j 就好。 mkswap和swapon用来初始化和激活swap分区。
  c) 最后把/和/boot分别mount到/mnt/gentoo下面,因为下一步就要chroot到/mnt/gentoo 进行基本系统的安装了。

3.继续准备
  a) 下载stage3 tarball: gentoo提供的links类似于以前用过的lynx,可以surf到网上抓个stage3的tarball下来。stage3 tarball是root目录的打包,解压后就是root目录的内容了。
  b) 安装Portage snapshot: Portage是从FreeBSD那里学来的东东。类似于Debian的APT。下载和安装module就全靠它了。在LiveCD的snapshot目录下有个tarball,直接cp过来解压。这个不是portage本身,而是一些可以安装的软件列表(为了通知portage)。
  c) 最后check一下/mnt/gentoo/etc/make.conf里面的编译选项,然后就准备正式安装系统了。(恩,比较累,干了这么久其实才刚开始安装系统)

4.安装开始!
  a) Chrooting: chroot之前首先用mirrorselect找一些近的mirrors。 我把所有USA的site都勾上了。随后就是保存dns信息(拷贝resolv.conf)。mount proc和dev到/mnt/gentoo下面。 随后 “chroot /mnt/gentoo /bin/bash” 一执行,我们就来到了新系统的root下了。
  b) 更新Portage Tree: 用 “emerge –sync” 获取最新的软件列表。我似乎选了太多的mirror,结果这里等了N久。
  c) 内核安装:用”USE=”-doc symlink” emerge gentoo-sources” 抓下来一个最新的内核。用 “zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6″直接把之前的内核配置复制过来,避免繁琐的手动配置。 随后emerge一个genkernel下来,用 “genkernel all” 命令编译内核,而不用make menuconfig + make && make modules_install 了。

5.系统配置
  a) 经过漫长的等待,内核已经编译完毕了。接下来就该为最后系统启动做准备了。首先当然是配置文件系统。handbook里面的命令是用nano编辑/etc/fstab。这个nano是gentoo自带的一个编辑器。用vi的我自然不会选择它。既然能够上网了,就emerge一个vim(好像搞到的还是6.4版本的,估计mirror上还没有7.0的)。按照example,为/boot,swap,/ 写好entry。
  b) 网络也要配置一下。那些啥domainname什么的就没管他们了。主要就是编辑一下/etc/conf.d/net,既然是用的dhcp自然就简单多了。然后用rc-update让系统启动的时候就启动eth0。
  c) 后面的步骤基本略过,除了那个CLOCK选项,因为我的本本上还有一个windows xp。
  d) 几个tools还是很重要的: udev 设备管理器;system logger; cron 我装了个dcron ; dhcp client 要是没这个,reboot后就连不上网了,那就郁闷了;
  e) bootloader的安装:装了那么多次linux还是第一次自己安装grub。 emerge了一个grub然后编译了半天。随后就跟以前一样了:编辑一下/boot/grub/grub.conf。设定好kernel和initramfs的路径。当然更重要的是给我的xp添加一个条目。

6.尾声
  a) 好了,基本上都搞定了。仔细检查一下几个配置文件,然后就exit到原来的root下,umount所有挂载的分区。然后reboot!!!!!!!!!!
  b) 取出光盘,满怀期待的等待 “localhost login:”的出现。结果,Oops,出了个错,说什么/dev/hda6 fsck.ext3的问题。郁闷,仔细看了看/etc/fstab愣是没看出问题来。到网上找了找,有类似的故障,但是solution都不work!!!更加郁闷。找来LiveCD重新启动(只有用LiveCD启动进入才能修改fstab),mount上我的/分区,打开/etc/fstab一看!我考,居然hda3,hda5,hda6都写成了dev3,dev5,dev6。马上改过来,然后umount,reboot!!!  搞定!!!  看来现在眼神不行了啊。。。。
  b’) 现在这个系统跟以前装的系统都不一样了,主要的区别就是这个linux“啥也没有”。vim是刚装的,连grub都是自己装的。以后可以根据自己的需要添加一些自己经常用的东东(比如gcc,gdb,xmms等)。在安装的过程也能够对文件系统,内核编译,网络基本配置等有一些上手的操作,对喜欢折腾的同学来说比较适合。现在这个系统,启动十分迅速,再加上强大的vim+ctags,是阅读和学习内核的利器。下一次,我会继续share一下安装X系统的体会。

January 10, 2007

DVD 刻录机刻盘问题的解决

Filed under: 折腾电脑 — agassi @ 6:33 am

手上有一个NEC ND-3500A DVD Writer。前不久去Staple逛的时候顺便买了一些Staples 16x DVD-R。回来刻盘发现死活不能刻,出现 illegal disc 错误。 

经过一番research,发现是firmware版本太落后了,不能识别这种“高级”的盘。所以去 http://liggydee.cdfreaks.com 下载新的firmware,然后刷上去。 Done!!!

Create a free website or blog at WordPress.com.