2005年9月14日

最近弄了台T43 2688CT1,天生就讨厌MS,打算装个linux,原先一直用slackware,装好10.1才发现kernel是2.4的好多设备都不能正常运行,找找资料,发现升级kernel最方便还是debian,于是就打算装一个干净的系统,原来的slackware和其他的发行版,都会给自己装一些一辈子都用不到几次的东西。参照一些说明如下

Installation

The notebook came pre-installed with Windows XP Professional. After finishing the Windows installation, I decided to create the recovery media first, because IBM doesn't put them in the box anymore. Better safe than sorry. Using the software in the "Access IBM" folder and two blank DVD-RWs that was quickly done.

Then I booted grml, my favorite Linux Live-CD, and used ntfsresize and cfdisk to resize the NTFS partition (/dev/sda1) to 15GB, but left alone the recovery partition (partition type in cfdisk is "Compaq diagnostics").

After that I booted the Debian Sarge DVD and tried the installation using version 2.6 of the linux kernel by typing "linux26" at the boot prompt. Unfortunately that didn't work, because the harddisk is connected to a SATA controller and the installation kernel didn't recognize it. So I restarted the installation, using the standard kernel instead. This time around the harddisk was recognized, although via the old IDE-sata interface of the kernel, so the disk was called /dev/hda. But at least I could start the installation.

I used the Debian installer to partition the harddisk, creating a swap partition (/dev/hda5) and the root partition (/dev/hda6), 1GB each. For the rest (~36GB) I used LVM and created logical volumes for /home (10GB), /tmp (1GB), /usr (2GB) and /var (1GB).

Then I did a minimal installation, and rebooted into the fresh system using the installed kernel (version 2.4). Everything was working so far, but I decided to compile a new kernel from the 2.6 series to use the harddisk via the new SATA interface.
 

Kernel Configuration

First I installed the necessary packages to build the kernel from source with
apt-get install gcc make ncurses-dev

Then I downloaded the source code of kernel 2.6.12.3 from the Linux Kernel Archives. (at first I was using 2.6.12.2, but at the time of writing I already did the small maintainance upgrade to 2.6.12.3)

After extracting the compressed tar archive and studying the ThinkWiki a bit, I also applied the trackpoint patch, a patch relevant to get powermanagement for the SATA harddisk so it plays nice with suspend-to-ram and another to make sure the infrared device is detected (both available at http://shamrock.dyndns.org/~ln/linux/). (note: the last 2 patches are attached to this page for completeness sake only, in case the current download URL vanishes)

I also decided to use Software Suspend 2 (version 2.1.9.5 for kernel 2.6.12) because I used it on various other notebooks in the past with good results.

I used the menu configuration of the kernel via
make menuconfig
in the kernel source tree. Important settings to change are:
  • in "Processor type and features" select "Pentium M" for the processor familiy to optimize for the Pentium-M
  • in "Power management options (ACPI, APM)" enable ACPI (I don't use APM) and Software Suspend 2. Note: to use a newer version of the "IBM ThinkPad Laptop Extras" you have to compile it as module so it can be easily replaced later on.
  • enable CPU frequency scaling, select scaling governors ("ondemand" and "conservative" are the ones I use, but be sure to also select "userspace" if you want some external program like cpufreqd to do the frequency scaling) and enabe the processor driver for Centrino ("Intel Enhanced SpeedStep")
  • for the harddisk SCSI has to be enabled and in the low-level SCSI drivers section Serial ATA and "Intel PIIX/ICH SATA support" need to be selected
  • to get the kernel to recognize the CD-RW/DVD-RW I also needed to enable ACPI Plug'n'Play support (and of course the ATAPI/IDE CD-ROM driver)
My currently used kernel configuration is attached at the bottom of this page. Afterwards I compilied the kernel by issuing
make
and after switching to the root account I installed the kernel modules, the System.map file and the kernel image with
make modules_install
cp System.map /boot/System.map-2.6.12.3
cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.12.3
Then I added a new entry in the GRUB menu file in /boot/grub/menu.lst:
title           Debian GNU/Linux, kernel 2.6.12.3
root            (hd0,5)
kernel          /boot/vmlinuz-2.6.12.3 root=/dev/sda6 ro video=vesafb,nomtrr,ywrap vga=836 acpi_sleep=s3_bios resume2=swap:/dev/sda5 processor.max_cstate=2 elevator=cfq

Note: not all of the kernel parameters are necessary, video and vga give a higher resolution in the text consoles (if the vesa framebuffer driver is compiled into the kernel), resume2 is for Software Resume 2, elevator=cfq selects a different scheduling mechanism more suitable for desktop use, acpi_sleep is needed to circumvent a problem with suspend-to-ram.

Since switching to SCSI-SATA also meant that the harddisk would be called /dev/sda after the reboot, I also changed all occurences of "/dev/hda" to "/dev/sda" in /etc/fstab.

One
init 6

later and I was running the shiny new kernel.

失败了3次了,编译和patch都没有问题,难道是分区格式?我用的ext2可能太老了,总之就是一种折磨阿
看来还要多学习。

posted @ 2005-09-14 10:25 有个空间 阅读(247) | 评论 (0)编辑 收藏