iBook G4 1GHz 12"に Debian GNU/Linux 3.1

はじめに

世界では Apple iBook でDebian GNU/Linuxを使う事が 流行しているようです. 日本でもやってできないはずはないため,試験してみたい方は試してみてください. ただ,iBookが特にDebian GNU/Linuxに適しているわけではなく,制約がたくさんあります. 御了承ください.

これは上川がiBook G4 1GHz 12"モデルにDebian GNU/Linux 3.xをインストールする際のメモです. 2004年8月に購入しました.

初期インストール

3.0 (woody)のインストーラではATA100のコントローラが認識できないらしく, 内蔵のHDDが見えません.

3.1 (sarge)のインストーラでは改善されているはずです.

私はとりあえず見付けた Ethan Bensonのpowermac xfs ISOを使用しました. Debian 3.0 用のインストールディスクを最近のiBook/PowerBookで動作するように改造した物です.

ディスクの切り方についてはよくわかりませんでしたが,Brandenの指示通りに設定しました. MacOSXとDebian GNU/Linuxのdual-bootとして設定しています.

ディスクのパーティショニングにmac-fdiskを使う事になります. 使用例:

この結果作成されたのが以下です:

# mac-fdisk -l /dev/hda
/dev/hda
        #                    type name                 length   base     ( size )  system
/dev/hda1     Apple_partition_map Apple                    63 @ 1        ( 31.5k)  Partition map
/dev/hda2         Apple_Bootstrap bootstrap              1600 @ 64       (800.0k)  NewWorld bootblock
/dev/hda3         Apple_UNIX_SVR2 swap                1048576 @ 1664     (512.0M)  Linux swap
/dev/hda4         Apple_UNIX_SVR2 root               28927240 @ 1050240  ( 13.8G)  Linux native
/dev/hda5               Apple_HFS Apple_HFS_Untitled_3 28627624 @ 29977480 ( 13.7G)  HFS
/dev/hda6              Apple_Free                          16 @ 58605104 (  8.0k)  Free space

Block size=512, Number of Blocks=58605120
DeviceType=0x0, DeviceId=0x0

    

なお,システムを再起動する際にyabootがうまく設定されていず,Debianが起動しない場合があります. その場合は,APPLEキー-Option-O-F の4つのキーを起動時に押していると,OpenFirmwareの画面がでてきます.その画面にて,下記コマンドを入力し,リターンキーを押します. hd:2であるかどうかについては,Apple_Bootstrap領域のスライス番号を確認してください.

      boot hd:2,yaboot
    

はまりどころ

最初インストールする際に,カーネルにvideo=ofonlyと起動オプションを 指定しないとうまく画面が表示されない場合があります. インストール完了したあとで最新のカーネルに変更したあとであれば, video=radeonfbと指定しておけば大丈夫です. Xはカーネルのradeonfb経由で描画してくれるようです.

カーネルのオプションで内部のATA100を先に認識するか,というオプションがあります. Debian 3.0 boot-floppiesのカーネルはそんなオプションはオンにはなっていなかったのですが, 最近はデフォルトでオンにしているようです. そのため,ディスクが,hdc1として見えたり,hda1として見えたりします. yabootの設定の際に結構困ります.

yaboot 設定

yabootの設定はブートストラップ用のパーティションに書き込まれます. 変更するには,/etc/yaboot.confに設定を記述して,ybinを実行します.

# ybin -v
ybin: Finding OpenFirmware device path to `/dev/hda2'...
ybin: Finding OpenFirmware device path to `/dev/hda5'...
ybin: Installing first stage bootstrap /usr/lib/yaboot/ofboot onto /dev/hda2...
ybin: Installing primary bootstrap /usr/lib/yaboot/yaboot onto /dev/hda2...
ybin: Installing /etc/yaboot.conf onto /dev/hda2...
ybin: Setting attributes on ofboot...
ybin: Setting attributes on yaboot...
ybin: Setting attributes on yaboot.conf...
ybin: Blessing /dev/hda2 with Holy Penguin Pee...
ybin: Updating OpenFirmware boot-device variable in nvram...
    

/etc/yaboot.confはこんな設定です.

## yaboot.conf generated by yabootconfig 1.0.7
##
## run: "man yaboot.conf" for details. Do not make changes until you have!!
## see also: /usr/share/doc/yaboot/examples for example configurations.
##
## For a dual-boot menu, add one or more of: 
## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ

boot=/dev/hda2
device=/pci@f4000000/ata-6@d/disk@0:
partition=4
root=/dev/hda4
timeout=30
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot

image=/vmlinux
	label=Linux
	read-only

image=/boot/vmlinux-2.4.23-newpmac
	label=Linux-2.4.23
	root=/dev/hdc4
	read-only

image=/boot/vmlinux-2.4.26-powerpc
	label=Linux-2.4.26
	root=/dev/hda4
	append="video=ofonly"
	read-only

image=/boot/vmlinux-2.6.8-powerpc
	root=/dev/hda4
	initrd=/boot/initrd.img-2.6.8-powerpc
	label=Linux-2.6.8
	append="video=radeonfb"
	read-only

macosx=/dev/hda5
    

ieee1394経由でiPodをつなげる

[11:47:10]ibookg4:/mnt/ipod> df -T
Filesystem    Type   1K-ブロック    使用   使用可 使用% マウント位置
/dev/hdc4     ext3    14236656   2105144  11408332  16% /
tmpfs        tmpfs      128132         0    128132   0% /dev/shm
/dev/sda3  hfsplus    14614656    498836  14115820   4% /mnt/ipod
[11:47:43]ibookg4:/mnt/ipod> ls -ln
合計 1
drwxr--r--  1 1000 1000    2 2004-01-09 02:03 Calendars
drwxr--r--  1 1000 1000    5 2004-08-22 17:54 Contacts
-rw-r--r--  1   99   99 1024 2004-08-22 17:54 Desktop DB
-rw-r--r--  1   99   99    2 2004-08-22 17:53 Desktop DF
-rw-r--r--  1   99   99    0 2002-02-27 01:39 Icon?
drwxr--r--  1 1000 1000    4 2004-08-22 17:54 Notes
drwxrwxrwx  1   99   99    6 2004-08-17 09:11 iPod_Control
    

dmesg抜粋

ieee1394: Initialized config rom entry `ip1394'
ohci1394: $Rev: 1223 $ Ben Collins <bcollins@debian.org>
PCI: Enabling device 0002:02:0e.0 (0000 -> 0002)
ohci1394: fw-host0: Unexpected PCI resource length of 1000!
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[40]  MMIO=[f5000000-f50007ff]  Max Packet=[2048]
sbp2: $Rev: 1219 $ Ben Collins <bcollins@debian.org>
ieee1394: Node added: ID:BUS[0-00:1023]  GUID[000a27000274f5b0]
ieee1394: Host added: ID:BUS[0-01:1023]  GUID[000d93fffe283848]
scsi0 : SCSI emulation for IEEE-1394 SBP-2 Devices
Disabled Privacy Extensions on device c0236790(lo)
PHY ID: 4061e4, addr: 0
ieee1394: sbp2: Logged into SBP-2 device
ieee1394: Node 0-00:1023: Max speed [S400] - Max payload [2048]
  Vendor: Apple     Model: iPod              Rev: 1.51
  Type:   Direct-Access                      ANSI SCSI revision: 02
SCSI device sda: 29297520 512-byte hdwr sectors (15000 MB)
sda: test WP failed, assume Write Enabled
sda: asking for cache data failed
sda: assuming drive cache: write through
 sda: [mac] sda1 sda2 sda3
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
    

USB audioをつけてみる

音楽録音環境として使用するために,USB audio "ONKYO WAVIO SE-U33G"を接続してみます. まず,Debian GNU/Linuxで音楽環境を利用するための事前準備として,ユーザをaudioグループに追加します.

# adduser dancer audio
$ id dancer
uid=1000(dancer) gid=1000(dancer) 所属グループ=1000(dancer),29(audio)
    

USB関連,サウンド関連では,下記モジュールがはいっていればよいかと思われます. snd-powermacは内蔵のMACのサウンドカードです. その後でsnd-usb-audioを読み込んでいます. /etc/modulesに追記しました.

ehci-hcd
ohci-hcd
snd-powermac
snd-usb-audio
    

確認すると下記状況になります.再生については問題なく実施できているようです. 録音についても問題なく実施可能です. (使用アプリケーション: ecasound 2.3.5, sweep)

$ cat /proc/asound/cards
0 [Snapper        ]: PMac Snapper - PowerMac Snapper
                     PowerMac Snapper (Dev 38) Sub-frame 0
1 [Device         ]: USB-Audio - KC USB Audio Device
                     KC Technology, Inc. KC USB Audio Device at usb-0001:01:1b.0-1, full speed
    

cpufreqd

apt-get install cpufreqd

CPUの速度を電源ケーブル(AC電源)が接続されているか,などの要素から決定してくれます. デフォルトの設定でそれなりにつかえそうです. AC電源をぬきさしして速度が変化している様子:

[12:25:17]ibookg4:/etc> cat /proc/cpuinfo
processor       : 0
cpu             : 7447A, altivec supported
clock           : 533MHz
revision        : 1.1 (pvr 8003 0101)
bogomips        : 530.43
machine         : PowerBook6,5
motherboard     : PowerBook6,5 MacRISC3 Power Macintosh
detected as     : 287 (iBook G4)
pmac flags      : 0000000a
L2 cache        : 512K unified
memory          : 256MB
pmac-generation : NewWorld
[12:25:20]ibookg4:/etc> cat /proc/cpuinfo
processor       : 0
cpu             : 7447A, altivec supported
clock           : 1066MHz
revision        : 1.1 (pvr 8003 0101)
bogomips        : 1060.86
machine         : PowerBook6,5
motherboard     : PowerBook6,5 MacRISC3 Power Macintosh
detected as     : 287 (iBook G4)
pmac flags      : 0000000a
L2 cache        : 512K unified
memory          : 256MB
pmac-generation : NewWorld
    

Mozillaで Flash(swf)を見る

swf-playerをインストールしたらswfファイルが見れるようになりました. 完全ではないですが,それなりに動作します.

いろいろな性能とか

hdparm -tT /dev/hda

/dev/hda:
 Timing buffer-cache reads:   836 MB in  2.00 seconds = 417.44 MB/sec
 Timing buffered disk reads:   72 MB in  3.00 seconds =  23.98 MB/sec
    

カーネルのビルドに30分ちかくかかった.(533MHz稼働時) 1GHz稼働時には15分程度で終了.

real    15m33.498s
user    12m32.137s
sys     1m40.159s

real    27m13.857s
user    22m27.233s
sys     2m25.411s
    

fstab設定

現在のfstab設定は以下です. iPod のマウントポイントの設定などがあります. 一時ファイルごときでディスクにがりがりアクセスすることのないように/tmpはtmpfsにて 設定しています.

/dev/hda4	/		ext3	errors=remount-ro	0	1
/dev/hda3	none		swap	sw			0	0
proc		/proc		proc	defaults		0	0
/dev/fd0	/floppy		auto	user,noauto		0	0
/dev/cdrom	/cdrom		iso9660	ro,user,noauto		0	0
/dev/sda1	/mnt/scsi1	auto	rw,user,noauto
/dev/sda3	/mnt/ipod	hfsplus	rw,user,noauto
/tmp		/tmp		tmpfs	defaults		
    

当初はインストール時と利用時のディスクのデバイス名が変わったため swapが/dev/hdc3を指定していて,swapが利用できていませんでした.

Mac OS Xの領域はhfsplusファイルシステムとして,マウントすることが可能です. mount -t hfsplus -o ro /dev/hda5 /var/tmp/imacのように利用すればよいです.

Bluetooth

私はBluetoothを使っていませんが,Des JohnstonさんからBluetooth携帯電話で通信できた,という報告をメールでいただいたので,転載します.

dmesg
Bluetooth: Core ver 2.6
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP ver 2.3
Bluetooth: L2CAP socket layer initialized
Bluetooth: RFCOMM ver 1.3
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
	
rfcomm (bluetooth serial) connect command
rfcomm connect 0  MY_PHONES_HW_ADDRESS
ppp connect script for a UK GPRS service provider
#!/bin/sh
/sbin/modprobe ppp_async
/usr/sbin/pppd usepeerdns debug lcp-echo-interval 50000 lcp-echo-failure 50000 connect '/usr/sbin/chat -v -f /etc/ppp/MY_CHAT_SCRIPT' -detach defaultroute user MY_USER_NAME noipdefault /dev/rfcomm0 115200
exit 0
	
1
chat script
"" "\d"
"" "ATE1"
"" ATZ
OK ATDT*99***1#
ABORT "NO CARRIER"
ABORT BUSY
ABORT "NO DIALTONE"
ABORT WAITING
TIMEOUT 60
CONNECT '\d\c'
	

問題点や制約について

現在使ってみて,不満な点,問題点などについて列記してみます.

制約としては,2004年9月現在,内蔵の無線LANが使用できません.

まだプロジェクタを利用するうまい方法を見付けていません.(2005年5月現在) 現在の回避策としては,蓋を閉じた状態でプロジェクタに繋げて起動すると, オープンファームウェアが外部出力のみに画面を出力するようにして起動してくれるので, そのままの状態で操作することです. ただ,外部出力にしか画面が出ないため,問題です.(2005年11月現在)

内蔵のマウスがキーを激しくたたいていると誤認識して,クリックしたことになってしまいます. trackpad nopad (powerpc-utilsパッケージ) を指定すると,トラックパッドをさわってもクリックした事にならないので, 状況は改善します.

世界標準からすると小さくて軽いiBookも,日本標準からすると重くてでかいです. 私が最近使用しているHPのnc4000とあまりかわらないというか, 比べてみるとむしろ重くて,電源もかさばるし,実はあまり便利じゃないかもしれません. 小さくて軽いノートPCがほしければ,PanasonicのLet's Note等の購入を検討するのが 賢明かもしれません.

PCMCIAカードが使えないというのも結構いたいです. 最近(2004年9月現在)でてきた大きめのPowerBookでPCMCIAカードが 使えるようになったというのは朗報です.

使っているうちにiBookで,「Debian GNU/Linuxを使う意味ってあるの?」 と一日に数回のペースで思います. MacOS Xを使っていると使い慣れていないため,一日に二回くらいは, 「なんでLinuxじゃないの?」と思います.(2004年8月現在)

HW構成についてのメモ

lspci(2.6.9カーネル)抜粋

0000:00:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 AGP
0000:00:10.0 VGA compatible controller: ATI Technologies Inc RV250 5c63 [Radeon Mobility 9200 M9+] (rev 01)
0001:10:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 PCI
0001:10:17.0 ff00: Apple Computer Inc. KeyLargo/Intrepid Mac I/O
0001:10:18.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:10:19.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:10:1a.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:10:1b.0 USB Controller: NEC Corporation USB (rev 43)
0001:10:1b.1 USB Controller: NEC Corporation USB (rev 43)
0001:10:1b.2 USB Controller: NEC Corporation USB 2.0 (rev 04)
0002:20:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 Internal PCI
0002:20:0d.0 ff00: Apple Computer Inc. UniNorth/Intrepid ATA/100
0002:20:0e.0 FireWire (IEEE 1394): Apple Computer Inc. UniNorth 2 FireWire (rev 81)
0002:20:0f.0 Ethernet controller: Apple Computer Inc. UniNorth 2 GMAC (Sun GEM) (rev 80)
    

lspci (2.6.8カーネル)

ibookg4:~# lspci
0000:00:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 AGP
0000:00:10.0 VGA compatible controller: ATI Technologies Inc RV250 5c63 [Radeon Mobility 9200 M9+] (rev 01)
0001:01:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 PCI
0001:01:17.0 ff00: Apple Computer Inc. KeyLargo/Intrepid Mac I/O
0001:01:18.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:01:19.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:01:1a.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
0001:01:1b.0 USB Controller: NEC Corporation USB (rev 43)
0001:01:1b.1 USB Controller: NEC Corporation USB (rev 43)
0001:01:1b.2 USB Controller: NEC Corporation USB 2.0 (rev 04)
0002:02:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 Internal PCI
0002:02:0d.0 ff00: Apple Computer Inc. UniNorth/Intrepid ATA/100
0002:02:0e.0 FireWire (IEEE 1394): Apple Computer Inc. UniNorth 2 FireWire (rev 81)
0002:02:0f.0 Ethernet controller: Apple Computer Inc. UniNorth 2 GMAC (Sun GEM) (rev 80)

    

DVD/DivX等の再生

xineでフルスクリーンでムービーの再生が可能です. 2.6.9の場合なぜかALSAドライバを選択すると処理が遅いため,xineからは OSSデバイスを選択する必要があります. さらに他の部分でも問題があるみたいです.2.6.8では問題なく再生できていました.

Keyboardの設定

通常のキーボードでALTがある場所にはAPPLEキーがあります. それをXの設定でALTにするには下記を設定します..xsession ファイルなどに追記します.

      xmodmap -e "keycode 115 = Alt_L"
    

Underscore key was broken on my Japanese keyboard, I worked around with

      xmodmap -e "keycode 211 = underscore"
    

suspend

蓋を閉めるとサスペンドするみたいです. 開けると復活します.dmesgの出力. カーネル2.6.12の場合. USBデバイスの復旧には問題があるようです.

eth0: suspending, WakeOnLan disabled
radeonfb (0000:00:10.0): suspending to state: 3...
uninorth-agp: disabling AGP on device 0000:00:10.0
uninorth-agp: disabling AGP on bridge 0000:00:0b.0
radeonfb (0000:00:10.0): resuming from state: 3...
PCI: Enabling device 0000:00:10.0 (0000 -> 0003)
radeon: PAD_CTLR_STRENGTH doesn't stabilize !
agpgart: Putting AGP V2 device at 0000:00:0b.0 into 4x mode
agpgart: Putting AGP V2 device at 0000:00:10.0 into 4x mode
PCI: Enabling device 0001:10:1b.0 (0000 -> 0002)
PCI: Enabling device 0001:10:1b.1 (0000 -> 0002)
PCI: Enabling device 0001:10:1b.2 (0000 -> 0002)
ehci_hcd 0001:10:1b.2: park 0
ehci_hcd 0001:10:1b.2: USB 2.0 restarted, EHCI 1.00, driver 10 Dec 2004
eth0: resuming
PHY ID: 4061e4, addr: 0
hda: Enabling Ultra DMA 5
hdc: Enabling MultiWord DMA 2
adb: starting probe task...
adb devices: [2]: 2 c9 [3]: 3 1 [7]: 7 1f
ADB keyboard at 2, handler 1
ADB mouse at 3, handler set to 4 (trackpad)
adb: finished probe task...
agpgart: Putting AGP V2 device at 0000:00:0b.0 into 4x mode
agpgart: Putting AGP V2 device at 0000:00:10.0 into 4x mode
[drm] Loading R200 Microcode
    

oprofile

oprofileはtimer modeでは動作します. MPC7447Aの持つパフォーマンスカウンタで動作させるために, 2.6.14用のパッチを作成しました. 別にカーネルパッチを作成した方がいらっしゃるようなので,2.6.16あたりでマージされるのではないでしょうか?

リンク

英語だったり,フランス語だったり.

OpenFirmwareについて


Junichi Uekawa

$Id: ibookg4.html.ja,v 1.27 2006/01/14 13:10:06 dancer Exp $