BIOS更新の可能性を考え、Windowsを残しておく。PartitonMagicなどで変更(8GBにしておいた)。 インストールはSarge Debian-Installer rc2以降で普通にできる(BIOSからF12メニューでネットワークインストール可能)。linux26で2.6シリーズ環境。
Disk /dev/hda: 80.0 GB, 80026361856 bytes 255 heads, 63 sectors/track, 9729 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 1 1020 8193118+ 7 HPFS/NTFS /dev/hda2 1021 1202 1461915 82 Linux swap / Solaris /dev/hda3 * 1203 4849 29294527+ 83 Linux /dev/hda4 4850 9729 39198600 f W95 Ext'd (LBA) /dev/hda5 4850 9729 39198568+ 83 Linux
パーティション設定は自動ではなく、手動で行った。スワップを多めに取り、先頭側に置いているのは後述のソフトウェアサスペンドのため。大きすぎ/小さすぎのときにはNTFS側と調整できる。
注意点: BIOSでCD起動を切ると、Linuxでhdcが認識されなくなる。これを再認識する方法はない?
とりあえずkernel-image-2.6.10-1-686、kernel-headers-2.6.10-1-686、kernel-tree-2.6.10を入れておく。adduser kmuto src。
discover+hotplugにより、Ethernet(8139too)、サウンド(i810_audio)、USB(ehci_hcd、uhci_hcd)、PCカードコントローラ(yenta_socket)は入る。
deb http://kmuto.jp/debian/mtu unstable main contrib non-free deb-src http://kmuto.jp/debian/mtu unstable main contrib non-free
デフォルトでは1024x768までしか出ない。855resolutionを導入する必要あり。 mtuリポジトリに同パッケージを収録。インストール後、次のような設定で1400x1050可能。
Section "Device" Identifier "Generic Video Card" Driver "i810" Option "UseFBDev" "false" VideoRam 32768 EndSection Section "Monitor" Identifier "Generic Monitor" HorizSync 30-70 VertRefresh 50-90 Option "DPMS" EndSection Section "Screen" Identifier "Default Screen" Device "Generic Video Card" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1400x1050" "1024x768" "800x600" "640x480" EndSubSection EndSection
外部ディスプレイにつなぐときにはi810switchを使う。
i810switch crt on
解像度はCtrl+Alt+Fn++や-。でもなんかユラユラしてるなぁ…。lcd offは効かないようだ。
i810_audioよりALSAのほうがいいかな。alsa-base、alsa-utilsを入れればOSSはブラックリストに入るので次回からALSA(snd-intel8x0)が使われるようになる。
ビープはpcspkrモジュールを外せば鳴らなくなる。
pcc-acpi ACPIドライバが必要。http://www.da-cha.org/letsnote/ のpcc-acpiアーカイブを取得し、展開。makeで現在のカーネルに合わせてモジュールを作成。make installでインストール。video、pcc_acpiをmodprobeでインストール。/proc/acpi/pccで参照できる。
/etc/default/acpidに次のように書いて次回に備える。
MODULES="pcc_acpi battery ac processor button fan thermal video"
操作するにはhotkeysパッケージ。ただDebianのは古いので、http://www.da-cha.org/letsnote/ にあるのを使うとよい。mtuリポジトリにもある。
/etc/hotkeys.confのDesktopをkdeに変更。
hotkey-handlerアーカイブを http://www.da-cha.org/letsnote/ から取得して、中身をそのまま/etc/acpi/にコピーする。 /.xsessionでhotkeysを起動するようにする。
#!/bin/sh xset b off hotkeys -t pcc -d none ssh-add ~/.ssh/id_dsa < /dev/null exec startkde
輝度や音量を調整できる。ミュートの動作が逆な気も。
0000:02:04.0 Network controller: Intel Corp.: Unknown device 4223 (rev 05)
ipw2200-sourceで動作する。パッケージをインストールし、module-assistantを実行。 手順に従ってipw2200を選び、ビルドまでを行う(インストールはまだしない)。 http://ipw2200.sourceforge.net/firmware.php からファームウェアをダウンロードして、ipw-2.2-*.fwファイルを /usr/lib/hotplug/firmware/ にコピーする。
/usr/src/modassにあるモジュールdebファイルをdpkg -iでインストール。
/etc/init.d/hotplug startを実行するとipw2200が見え、eth1として登録される。 /etc/network/interfacesに適宜設定。
noauto eth1 iface eth1 inet dhcp wireless_essid moperi wireless_key s:usoyo
ifup eth1で起こし。
ipw2200ドライバはupしていなくても激しく割込みをかけるようだ。動いてしまっているということ?使わないときにはrmmod ipw2200しておいたほうがよいかもしれない。
明示的に停止しないと、無線デバイスが動き続け、バッテリが3時間くらいしか持たない。/sys/以下のrf_killに「1」を送ると、無線をソフトウェア的に切ることができる。これとCPUfreqで5.5時間くらいはいけそう。
speedstep_centrino を/etc/modulesに追加。
/sys/devices/system/cpu/cpu0/cpufreq/で見える。
cpufreqdパッケージをインストール。電源ON中も動的変更をしたいときには、/etc/cpufreqd.confのname=AC_on関連のRuleをコメント化。
xfree86-driver-synapticsをインストール。KDEのためにksynapticsもインストール。コントロールセンターで調整可能。
Section "InputDevice" Identifier "Configured Mouse" Option "CorePointer" Driver "synaptics" Option "Device" "/dev/psaux" Option "Protocol" "auto-dev" Option "LeftEdge" "1700" Option "RightEdge" "5300" Option "TopEdge" "1700" Option "BottomEdge" "4200" Option "FingerLow" "25" Option "FingerHigh" "30" Option "MaxTapTime" "180" Option "MaxTapMove" "220" Option "VertScrollDelta" "100" Option "MinSpeed" "0.06" Option "MaxSpeed" "0.12" Option "AccelFactor" "0.0010" Option "SHMConfig" "on" Option "RBCornerButton" "2" EndSection
synclient -m 1000 のようにすると動作をウォッチできる。
ハイバネーション。スワップパーティションにメモリ状態を記憶し、次回の起動時に復帰する。
http://softwaresuspend.berlios.de/ から2.6.10用のパッチを取得。
/usr/srcに移動してkernel-source-2.6.10.tar.bz2を展開して中に入る。software-suspend-2.1.7-for-2.6.10/apply を実行。
/boot/config-2.6.10-1-686を.configとしてコピーして、make menuconfigでSWSUSP2関連を有効にする(SWSUSP1は使わない)。initrdでもがんばればできるが、面倒なのでIDEドライバ、ディスク、ext3ファイルシステムのサポートは有効に。いらないものは削ったほうがコンパイルが早く済むがけっこうめんどう。
CONFIG_MPENTIUMM=y CONFIG_PM=y CONFIG_SOFTWARE_SUSPEND2=y CONFIG_SOFTWARE_SUSPEND2_BUILTIN=y CONFIG_SOFTWARE_SUSPEND_SWAPWRITER=y CONFIG_SOFTWARE_SUSPEND_LZF_COMPRESSION=y CONFIG_SOFTWARE_SUSPEND_TEXT_MODE=y CONFIG_SOFTWARE_SUSPEND_DEFAULT_RESUME2="" CONFIG_SOFTWARE_SUSPEND_CHECK_RESUME_SAFE=y CONFIG_IDE=y CONFIG_BLK_DEV_IDE=y CONFIG_BLK_DEV_IDEDISK=y CONFIG_BLK_DEV_IDEPNP=y CONFIG_BLK_DEV_IDEPCI=y CONFIG_IDEPCI_SHARE_IRQ=y CONFIG_IDEDMA_PCI_AUTO=y CONFIG_BLK_DEV_PIIX=y CONFIG_EXT3_FS=y
make-kpkgでビルド。module-assistant /usr/src/kernel-source-2.6.10 を実行してipw2200もビルドしておくといい。dpkg -iでインストール。
GRUBを設定。
# kopt=root=/dev/hda3 ro resume2=swap:/dev/hda2
にしてupdate-grub。
hibernateパッケージをインストール。/etc/hibernate/blacklisted-modulesを編集。
@ipw2200 0.0 1.0.99
にしておく。
/etc/hibernate.confも編集。
SuspendDevice swap:/dev/hda2 OnResume 99 /etc/init.d/855resolution start UnloadBlacklistedModules yes DownInterfaces eth1 SwitchToTextMode yes
再起動。SoftwareSuspend2関連が入ったことを確認(/proc/software_suspend/)。
root権限でhibernateを実行すると成功すればPANICにならずにしばらくガリガリしたあと電源が落ちる。再び電源を入れて「同じカーネル」で起動するとハイバネしたものが復帰する。違うカーネルで起動するとマジ死亡なので厳重注意。差し替えられないように/boot/grub/menu.listの自動編集されるところの前にカーネル設定を書いておいたほうがいい。
0000:02:05.1 System peripheral: Ricoh Co Ltd: Unknown device 0575 0000:02:05.1 0880: 1180:0575
専用ドライバが必要。現状では利用不可能。情報求む。
0000:00:1f.6 Modem: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03) 0000:00:1f.6 0703: 8086:24c6 (rev 03)
sl-modem-sourceでカーネルモジュールを作成し、sl-modem-daemonで利用できる。/dev/ttySL0。
2.6.8ではIRQ 10として見えていたのが、IRQ 3になっており、どうやってもATコマンドが入らない状態になっていた。
/etc/pcmcia/config.optsを
exclude irq 3
にするとIRQ 5で正常動作。