上川
_________________________________________________________________________________________________________________________________________________
Apple が 2006 年春に発売開始した Intel ベースの MacBook に MacOS X と Debian を dual-boot でインストールの流れ を紹介します。
MacOS X を削除して Debian のみをインストールする方法については、 おそらく lilo を MBR から起動するように設定す れば最新ファームウェアは起動してくれますが、 検証していません。
購入直後の状態では、 Mac OS X が全部の領域を占めています。 その MacOS X パーティションを縮小し、 Debian がインス トールできるようにします。 Mac OS X は 20GB 程度の領域を必要とするようですので、 20GB まで縮小してしまいま しょう。
diskutil resizevolume コマンドでボリュームサイズを動的に変更することができます。 *1
Mac OS X $ df -h
Filesystem Size Used Avail Capacity Mounted on /dev/disk0s2 74G 17G 57G 23% / devfs 95K 95K 0B 100% /dev fdesc 1.0K 1.0K 0B 100% /dev <volfs> 512K 512K 0B 100% /.vol automount -nsl [171] 0B 0B 0B 100% /Network automount -fstab [179] 0B 0B 0B 100% /automount/Servers automount -static [179] 0B 0B 0B 100% /automount/static /dev/disk0s1 197M 512B 197M 0% /efi Mac OS X $ sudo diskutil resizevolume disk0s2 20G Started resizing on disk disk0s2 Macintosh HD Verifying Resizing Volume Adjusting Partitions Finished resizing on disk disk0s2 Macintosh HD WARNING: You must now reboot! # diskutil list /dev/disk0 #: type name size identifier 0: GUID_partition_scheme *74.5 GB disk0 1: EFI 200.0 MB disk0s1 2: Apple_HFS Macintosh HD 20.0 GB disk0s2 |
rEFIt は EFI 専用ブートローダです。 rEFIt*2 イメージを MacOS X にインストールします。 インストールする場所はどこでもよいのですが、 ドキュメントに従ってみましょう。 /efi あたりにファイルを展開し、 rEFIt に含まれている、 ./enable.sh を実行します。 スクリプト内部で bless コマン ド*3 を実 行してくれます。 これで、 起動時に自動で rEFIt が実行されるようになります。
Debian の rEFIt パッケージを利用してインストールする場合にはバージョン 0.7-3 時点では enable.sh を提供していませ ん、 直接 bless コマンドを入力してください。
sudo bless --folder [refit.efi のあるディレクトリへのフルパス] --file [refit.efi へのフル パス]
2006 年 7 月版以降の etch*4 の イ ン ス ト ー ラ を 利 用 し て イ ン ス ト ー ル し ま す 。
CDROM から起動するためには、 CDROM を挿入してから、 C を押しながら起動すればよいです。 もしくは、 option キー
を押しながら起動するとファームウェアの選択画面が起動します。 rEFIt のメニューからも CDROM からの起動を選択できま
す。 パーティションを切る部分*6 を
過ぎ、 パッケージがインストールされたら、 LILO をインストールする直前の部分まで実施します。
この時点では LILO が現在動作できない状態になっています。
*7ここで、 MBR を
GPT に同期させる作業を実施します。 ここで、 Alt-F2 で仮想コンソールを切替え、 コマンドラインにうつります。 gptsync コマンドを実
行してください*8 。
現状のインストール方法としては、 chroot /target bin/shとしてインストール先の chroot に入り、 そこから apt-get
install refit でパッケージをインストール、 そして gptsync コマンドで GPT から MBR に同期させ
ます。
この状態で、 インストーラの画面に Alt-F1 で戻り、 LILO を MBR ではなく、 Linux 用のパーティションにインストールし
ます。 再起動すると rEFIt から Linux を指定して起動できるようになっています。
X は i810 ドライバで設定します。 915resolution パッケージをインストールします。 解像度は 1280x800
です。
/etc/default/915resolutionの例です: xorg.conf の例です*9 :
続く
キーバインドは .xsession *10 の
中で次のような設定をしています。 右の apple キーを押すと全角・半角キーに割り当てられています。
option と apple キーはよく押し間違えるので、 両方を Alt_L として設定しています。 また、 イ
ジェクトキーとキーボードの下の部分にある ENTER キーをマウス用のキーとして定義しています。
*11。 ま
た、 外部マウスを USB で接続した場合も問題なく動作します。
いつもの癖で boot(/dev/sda3, ext2) と root(/dev/sda4 ext3) をわけてしまっているのでちょっとややこしい例ですが、 現在
利用している lilo.conf の例です:
デフォルトでインストールされているカーネルが 2.6.17 以前のものであれば、 よく起動時にパニックをおこすので、 Intel
Mac 対応の 2.6.17 以降のものに変更しましょう。
サウンドカードは snd_hda_intel ドライバで対応できる ALSA のオーディオデバイスです。
cpufreq は speedstep_centrino で動作します。 apt-get install cpufreqd でインストールして、 cpufreqd を動作させて
あげると、 動作します。
USB は UHCI, EHCI です。 通常は特に設定必要ないはずです。
バッテリーはまともにサポートしているようです。 ただ、 電源の全容量が出ていないので、 gnome から変なメッセージは出ま
した。
有線ネットワークは SKY2 のドライバを利用します。
無線ネットワークは madwifi で対応できます。 インストール方法は下記です。
放っておくと hotplug により、 起動時に自動ロードされて有効になります。 /etc/hotplug/blacklist.d/にファイルを作
成し、 下記のような内容を追加しておくと手動でロードしないと有効にならないようにできます。 飛行機にのる場合などのため
には必要かもしれません。
以下、 インストール字のログの例です。
赤外線のリモコンは使えるようです。 カーネル用のデバイスドライバが存在します。 2.6.18 以降に
と り こ ま れ る の で は な い で し ょう か ?ユ ー ザ 空 間 で 利 用 で き る ド ラ イ バ は 作 成 し て お き ま し た 。
*12
iSight は linux-uvc デバイスです。 ファームウェアのロードが必要です。 次の手順でインストールができます。
アプリケーションは ekiga などを利用しましょう。 v4l2 デバイスなので、 v4l2 対応のソフトウェアが必要
です。
実際にロードするには、 Mac OS X のデバイスドライバに入っているファームウェアをロードしてからモジュールをロード
します。 ドライバのある場所のディレクトリ階層が深いので注意。
Debian を自動起動させる方法がわかりません、 rEFIt はデフォルトでは、 MacOSX もしくは eLILO を起動しようとしてしま
います。 eLILO を起動すると起動できない。 優先度の変更はどうやったらよいのか、 というのがいまいち不明
です。
サスペンドの方法。
スリープの方法。
CD-R の動作はまだ確認していません。 PATA パッチが必要という噂です。
バックライトの制御ができるドライバは作成されているので、 2.6.18 か 19 くらいには入るのではないでしょ
う か 。
bluetooth については未調査。
本資料は下記の場所での発表資料として作成されたものです。 内容については随時更新しながら、 いくつかの場所で発表してい
ます。
ファームウェアの bootcamp まわりの開発の影響で、 ほとんどの web 上の手順を書いてある文献は現在の時点で手順が古く
なっているので、 参考にならない場合が多いですが、 今後更新されるかもしれません。
東京エリア Debian 勉強会 2006_________________________________________________________________
3.4 各種デバイスの設定
3.4.1 X の設定
# 915resolution default
#
# find free modes by /usr/sbin/915resolution -l
# and set it to MODE
# e.g. use MODE=54
MODE=32
#
# and set resolutions for the mode.
# e.g. use XRESO=1024 and YRESO=768
XRESO=1280
YRESO=800
#
# We can also set the pixel mode.
# e.g. use BIT=32
# Please note that this is optional,
# you can also leave this value blank.
BIT=
FontPath "/usr/share/fonts/X11/misc"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/share/fonts/X11/cyrillic"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
# path to defoma fonts
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection
Section "Module"
Load "i2c"
Load "bitmap"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "type1"
Load "vbe"
EndSection
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
Option "XkbOptions" "ctrl:nocaps"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ExplorerPS/2"
Option "Emulate3Buttons" "true"
EndSection
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizScrollDelta" "0"
EndSection
Section "Device"
Identifier "Generic Video Card"
Driver "i810"
Screen 0
Option "MonitorLayout" "CRT,LFP"
BusID "PCI:0:2:0"
EndSection
Section "Device"
Identifier "Device1"
Driver "i810"
Screen 1
Option "MonitorLayout" "CRT,LFP"
BusID "PCI:0:2:0"
EndSection
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-64
VertRefresh 43-60
EndSection
Section "Monitor"
Identifier "External Monitor"
Option "DPMS"
HorizSync 28-64
VertRefresh 43-60
EndSection
Section "Screen"
Identifier "Default Screen"
Device "Generic Video Card"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1280x800" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "1280x800" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1280x800" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "1280x800" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1280x800" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x800" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Section "Screen"
Identifier "Secondary Screen"
Device "Device1"
Monitor "External Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1024x768" "800x600"
EndSubSection
SubSection "Display"
Depth 4
Modes "1024x768" "800x600"
EndSubSection
SubSection "Display"
Depth 8
Modes "1024x768" "800x600"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768" "800x600"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768" "800x600"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Dual-monitor Layout"
Screen 0 "Default Screen"
Screen 1 "Secondary Screen" LeftOf "Default Screen"
# Option "Clone" "On"
#Option "Xinerama" "On"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"
EndSection
Section "DRI"
Mode 0666
EndSection
xmodmap -e "keycode 116 = Zenkaku_Hankaku" # right-apple
xmodmap -e "keycode 108 = Pointer_Button3" # KP-ENTER
xmodmap -e "keycode 204 = Pointer_Button2" # eject
xkbset m
3.4.2 lilo の設定
root=/dev/sda4
map=/boot/map
delay=20
default=Linux-20060705
image=/boot/vmlinuz-2.6.17dancer-20060701
label=Linux-20060701
read-only
image=/boot/vmlinuz-2.6.17dancer
label=Linux-20060705
read-only
image=/vmlinuz
label=Linux
read-only
image=/vmlinuz.old
label=LinuxOLD
read-only
optional
initrd=/initrd.img.old
3.4.3 サウンドカード設定
0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0x90440000 irq 50
3.4.4 CPU の動的周波数設定
3.4.5 USB の設定
3.4.6 電源設定
3.4.7 ネットワークの設定
$ sudo m-a prepare
Getting source for kernel version: 2.6.17dancer
/lib/modules/2.6.17dancer/source のカーネルヘッダを利用できます
symlink を作成中...
apt-get install build-essential
パッケージリストを読み込んでいます... 完了
依 存 関 係 ツ リ ー を 作 成 し て い ま す
... 完了
以 下 の パ ッケ ー ジ が 新 た に イ ン ス ト ー ル さ れます
:
build-essential
アップグレード: 0 個、 新規インストール: 1 個、 削除: 0 個、 保留: 94 個。
6916B のアーカイブを取得する必要があります。
展 開 後 に 追 加 で
20.5kB のディスク容量が消費されます。
取 得
:1 http://ftp.jp.debian.org sid/main build-essential 11.2 [6916B]
6916B を 0s で取得しました (81.0kB/s)
パッケージフィールドを読み込んでいます... 完了
パ ッケ ー ジ 状 態 を 読 み 込 ん で い ま す
... 完了
バ グ レ ポ ー ト を 取 得 し て い ま す
... 完了
(データベースを読み込んでいます ... 現在 101852 個のファイルとディレクトリがインストールされています。 )
(.../build-essential_11.2_i386.deb から) build-essential を展開しています...
build-essential (11.2) を設定しています ...
完了!
$ sudo m-a a-i madwifi
パッケージリストを読み込んでいます... 完了
依 存 関 係 ツ リ ー を 作 成 し て い ま す
... 完了
madwifi-source はすでに最新バージョンです。
ア ップ グ レ ー ド
: 0 個、 新規インストール: 0 個、 削除: 0 個、 保留: 94 個。
1 パッケージについての情報を更新しました
Extracting the package tarball, /usr/src/madwifi.tar.bz2, please wait...
未 選 択 パ ッケ ー ジ
madwifi-modules-2.6.17dancer を選択しています。
(データベースを読み込んでいます ... 現在 101861 個のファイルとディレクトリがインストールされています。 )
(.../madwifi-modules-2.6.17dancer_0.svnr1644.0.9.0-2+20060705_i386.deb から) madwifi-modules-2.6.17dancer
を展開しています...
madwifi-modules-2.6.17dancer (0.svnr1644.0.9.0-2+20060705) を設定しています ...
$ sudo modprobe ath_pci
$ lsmod | grep ath_pci
ath_pci 82212 0
ath_rate_sample 11776 1 ath_pci
wlan 167132 4 wlan_scan_sta,ath_pci,ath_rate_sample
ath_hal 192208 3 ath_pci,ath_rate_sample
$ dmesg | tail -20
eth1: no IPv6 routers present
ath_hal: module license ’Proprietary’ taints kernel.
ath_hal: 0.9.17.2 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
wlan: 0.8.4.2 (svn r)
ath_rate_sample: 1.2 (svn r)
ath_pci: 0.9.4.5 (svn r)
Device ‘[PXS2]is not power manageable<6>ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 17 (level, low) -> IRQ 169
PCI: Setting latency timer of device 0000:02:00.0 to 64
wifi0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi0: H/W encryption support: WEP AES AES_CCM TKIP
wifi0: mac 10.3 phy 6.1 radio 10.2
wifi0: Use hw queue 1 for WME_AC_BE traffic
wifi0: Use hw queue 0 for WME_AC_BK traffic
wifi0: Use hw queue 2 for WME_AC_VI traffic
wifi0: Use hw queue 3 for WME_AC_VO traffic
wifi0: Use hw queue 8 for CAB traffic
wifi0: Use hw queue 9 for beacons
wifi0: Atheros 5424: mem=0x90100000, irq=169
$ /sbin/ifconfig ath0
ath0 リンク方法:イーサーネット ハードウェアアドレス 00:16:CB:BA:76:E7
inet アドレス:192.168.22.42 ブロードキャスト:192.168.22.255 マスク:255.255.255.0
inet6 アドレス: fe80::216:cbff:feba:76e7/64 範囲:リンク
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1176 errors:0 dropped:0 overruns:0 frame:0
TX packets:1607 errors:0 dropped:0 overruns:0 carrier:0
衝突 (Collisions):0 TX キュー長:0
RX bytes:230678 (225.2 KiB) TX bytes:1306390 (1.2 MiB)
3.4.8 リモコン
3.4.9 iSight
3.4.10 未確認のデバイス、 手法
# cdrecord -scanbus
scsibus0:
0,0,0 0) *
0,1,0 1) ’ATA ’ ’ST98823AS ’ ’7.01’ Disk
0,2,0 2) *
0,3,0 3) *
0,4,0 4) *
0,5,0 5) *
0,6,0 6) *
0,7,0 7) *
3.5 発表履歴
3.6 参考文献