~nabeken/diary/

Gentoo Linux(6年くらい)とFreeBSD(1年くらい)とOpenBSD(新参者)を使う日々。


IHANet BGP peering overview

Gentoo Linux on MacBook (Late 2008) & Gentoo Linux/alt (prefix gentoo)

Posted on Mon Mar 30 18:12:12 +0900 2009 by nabeken

この記事は obsolete 扱いになりました。MacBook で Linux を動かしたい人は簡潔にまとめ直した MacBook/Gentoo-Linux-on-MacBook-late-2008 をどうぞ。

(note: This article was marked as obsolete. New article is here; MacBook/Gentoo-Linux-on-MacBook-late-2008)

MacBook に Gentoo Linux をインストールしました。MacBook には以前からコストパフォーマンスの高い製品として注目していましたが、その外見を見るかぎり、購入にまでは至りませんでした。

しかし、店頭で新 MacBook を見た瞬間、その外見に惚れてしまい、かつ、そのコストパフォーマンスの高さで人生初の Apple 製品となりました。

10/17 に Apple Store で注文

スペックは以下の通り。

  • 2.0GHz Intel Core 2 Duo
  • 2GB 1066MHz DDR3 SDRAM - 2x1GB
  • 160GB Serial ATA @ 5400 rpm
  • SD 8x (DVD+R DL/DVD+RW/CD-RW)
  • US Keyboard/Users Guide-JPA
  • Country Kit-JPN

キーボードは US にしました。viを使う場合、USのほうがよいです。3年保証はひとまず見送りました。

10/23 にヤマト急便経由で到着

約1週間というところでしょうか。店頭では US キーボードがないので、たぶんこのあたりが早いほうでしょう。

いろいろ

使用して数日ですが、いくつか。

  • 見た目はものすごく格好いい
  • 手首周辺がちょうどエッヂの部分になるので、手になにか巻かないと痛い
    • ここはもうすこしなめらかに加工してほしかったな
  • MacBook + EMONSTER + Bluetooth DUN は最高の組み合わせ
    • 電車でささっと広げて、接続して、ささっと閉じればいい
  • 2kgはやはり少し重い
    • しかし、薄いので鞄にもすっぽりと収まるので携帯性は格段に向上している
  • ディスプレイの硝子加工はなんとも言えず。電車で使う時は反射が辛いので、別途シートを貼るべき

使用形態

普段は Gentoo Linux + X11 + awesome で生活しているので、の環境を構築しました。どちらかと言えば、ハードウェアに惚れたので、その中身、Mac OS X は私にとってはおまけです。

Mac OS X と Gentoo Linux のデュアルブートを構築しました。1ヶ月ほど経った今では、OS Xの使用頻度がほぼ0となったので、バックアップ後、再度ディスクのパーティションを構成しなおしました。

ディスクは Mac OS X に 20GB, grub 用に 100MB, のこりすべてを LVM 領域に割り当てました。

diskutil

購入直後の場合は diskutil が便利です。

OS X に付属の diskutil コマンドを使うことで、既存のボリュームをリサイズすることができます。こんな感じ。

 $ sudo diskutil resizeVolume disk0s2 60G "MS-DOS FAT32" "GentooLinux" 50G "MS-DOS FAT32" Virtualbox 35G

Linux 領域と Virtualbox 領域が FAT32 なのは、Leopard の制限によるものです。あとで、再度フォーマットし直します。

Mac OS X のインストーラで初期化する

ディスクをすべて初期化した上で、パーティションを切り直したい場合は、OS Xのインストーラーを使うのが便利です。

まず Mac OS X のDVDから起動します。インストール先の選択になったら、一番上のバーのディスクユーティリティを起動させて、ここでパーティションを切り直します。何分割でも構いませんが、2分割にして、OS X用のみ用意します。(どうせあとで、OS X以外のために gparted で切り直します)

適当な Live CD で起動後、最初のパーティション(OS Xが入っている)以外を削除して、必要なパーティションを作ります。その後、rEFItで gptsync を実行すれば作業は完了です。(grubはhd0にインストール。)

rEFlt http://refit.sourceforge.net/

Intel Mac ではブートプロセスが2通りあります。これまでの BIOS とそれに代わる EFI です。BootCampサポートが入る時に同時に BIOS エミュレーション機能も追加されました。ディスクのパーティション情報のスキームは前者は MBR, 後者は GPT となります。上の diskutil では、この MBR と GPT の同期を自動で行なってくれるわけですが、任意のタイミングではできません。(resizeする時だけ)

そこで、EFI のブートローダとして rEFlt を導入します。rEFlt で起動すると gptsync というツールが使えるようになります。これはその名の通り、 GPT スキームを MBR へ同期するツールです。したがって、GNU Parted で GPT でパーティションを操作し、最後に gptsync することで、BIOSからも、EFIからも矛盾なく操作できるようになります。

これだけでも rEFlt 導入の価値があります。

Live CD (Gentoo Linux 2008.0-r1 amd64)

`c' を押しながら、MacBook を起動させると、CDからブートします。有線接続であれば、この状態で DHCP でアドレスが取得できました。

ひとまず、distccを入れてから、通常のインストール手順を踏みます。

ビルド中はさすがにファンが回っていますが、ラップトップはほんのり熱い程度でまったく問題ありません。以前使っていた Latitude X1 に比べれば雲泥の差です……。

Linux on MacBook (Late 2008) のハードウェア動作状況

2009/01/17現在、まとめると

  • ネットワーク系完動 (wlan, lan, bluetooth)
  • グラフィックス系完動 (nvidia-drivers)
  • サスペンド完動 (復旧までの時間もOS X並、もしくはそれ以上に)
  • CPUの周波数制御は apci-cpufreq で
  • トラックパッド完動 (bcm5974)

まずは定番の dmesg から。

 # uname -a
Linux shiho.tokyo.tknetworks.org 2.6.29-rc3-macbook #1 SMP PREEMPT Thu Jan 29 12:02:26 JST 2009 x86_64 Intel(R) Core(TM)2 Duo CPU P7350 @ 2.00GHz GenuineIntel GNU/Linux
 # dmesg
00000040000000 (usable)
 BIOS-e820: 0000000040000000 - 0000000050000000 (reserved)
 BIOS-e820: 0000000050000000 - 000000007e878000 (usable)
 BIOS-e820: 000000007e878000 - 000000007e87c000 (ACPI NVS)
 BIOS-e820: 000000007e87c000 - 000000007e899000 (ACPI data)
 BIOS-e820: 000000007e899000 - 000000007ea9a000 (ACPI NVS)
 BIOS-e820: 000000007ea9a000 - 000000007fec6000 (ACPI data)
 BIOS-e820: 000000007fec6000 - 000000007fec8000 (ACPI NVS)
 BIOS-e820: 000000007fec8000 - 000000007fec9000 (ACPI data)
 BIOS-e820: 000000007fec9000 - 000000007fecb000 (ACPI NVS)
 BIOS-e820: 000000007fecb000 - 000000007fecd000 (ACPI data)
 BIOS-e820: 000000007fecd000 - 000000007fedf000 (ACPI NVS)
 BIOS-e820: 000000007fedf000 - 000000007fef9000 (ACPI data)
 BIOS-e820: 000000007fef9000 - 000000007feff000 (reserved)
 BIOS-e820: 000000007feff000 - 000000007ff00000 (ACPI data)
 BIOS-e820: 0000000093300000 - 0000000093301000 (reserved)
 BIOS-e820: 00000000f0000000 - 00000000f4000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ffc00000 - 0000000100000000 (reserved)
DMI 2.4 present.
last_pfn = 0x7e878 max_arch_pfn = 0x100000000
init_memory_mapping: 0000000000000000-000000007e878000
 0000000000 - 007e800000 page 2M
 007e800000 - 007e878000 page 4k
kernel direct mapping tables up to 7e878000 @ 8000-c000
last_map_addr: 7e878000 end: 7e878000
RAMDISK: 37ceb000 - 37fef0a7
ACPI: RSDP 000FE020, 0024 (r2 APPLE )
ACPI: XSDT 7FEEE1C0, 0074 (r1 APPLE   Apple00       73       1000013)
ACPI: FACP 7FEEC000, 00F4 (r3 APPLE   Apple00       73 Loki       5F)
FADT: X_PM1a_EVT_BLK.bit_width (16) does not match PM1_EVT_LEN (4)
ACPI: DSDT 7FEE0000, 5908 (r1 APPLE   MacBook    50001 INTL 20061109)
ACPI: FACS 7FECD000, 0040
ACPI: HPET 7FEEB000, 0038 (r1 APPLE   Apple00        1 Loki       5F)
ACPI: APIC 7FEEA000, 0068 (r1 APPLE   Apple00        1 Loki       5F)
ACPI: MCFG 7FEE9000, 003C (r1 APPLE   Apple00        1 Loki       5F)
ACPI: ASF! 7FEE8000, 00A5 (r32 APPLE   Apple00        1 Loki       5F)
ACPI: SBST 7FEE7000, 0030 (r1 APPLE   Apple00        1 Loki       5F)
ACPI: ECDT 7FEE6000, 0053 (r1 APPLE   Apple00        1 Loki       5F)
ACPI: SSDT 7FEC8000, 04DC (r1  APPLE    CpuPm     3000 INTL 20061109)
ACPI: SSDT 7FEDF000, 00A5 (r1 SataRe  SataPri     1000 INTL 20061109)
ACPI: SSDT 7FECC000, 009F (r1 SataRe  SataSec     1000 INTL 20061109)
ACPI: Local APIC address 0xfee00000
(6 early reservations) ==> bootmem [0000000000 - 007e878000]
  #0 [0000000000 - 0000001000]   BIOS data page ==> [0000000000 - 0000001000]
  #1 [0000006000 - 0000008000]       TRAMPOLINE ==> [0000006000 - 0000008000]
  #2 [0000200000 - 00008a7d4c]    TEXT DATA BSS ==> [0000200000 - 00008a7d4c]
  #3 [0037ceb000 - 0037fef0a7]          RAMDISK ==> [0037ceb000 - 0037fef0a7]
  #4 [000009fc00 - 0000100000]    BIOS reserved ==> [000009fc00 - 0000100000]
  #5 [0000008000 - 000000a000]          PGTABLE ==> [0000008000 - 000000a000]
 [ffffe20000000000-ffffe20001bfffff] PMD -> [ffff880001200000-ffff880002dfffff] on node 0
Zone PFN ranges:
  DMA      0x00000000 -> 0x00001000
  DMA32    0x00001000 -> 0x00100000
  Normal   0x00100000 -> 0x00100000
Movable zone start PFN for each node
early_node_map[3] active PFN ranges
    0: 0x00000000 -> 0x0000009f
    0: 0x00000100 -> 0x00040000
    0: 0x00050000 -> 0x0007e878
On node 0 totalpages: 452631
  DMA zone: 56 pages used for memmap
  DMA zone: 1804 pages reserved
  DMA zone: 2139 pages, LIFO batch:0
  DMA32 zone: 7030 pages used for memmap
  DMA32 zone: 441602 pages, LIFO batch:31
ACPI: PM-Timer IO Port: 0x408
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 1, version 0, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Using ACPI (MADT) for SMP configuration information
ACPI: HPET id: 0x10de8201 base: 0xfed00000
SMP: Allowing 2 CPUs, 0 hotplug CPUs
Allocating PCI resources starting at 98000000 (gap: 93301000:5ccff000)
NR_CPUS:32 nr_cpumask_bits:32 nr_cpu_ids:2 nr_node_ids:1
PERCPU: Allocating 53248 bytes of per cpu data
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 443741
Kernel command line: root=/dev/ram0 real_root=/dev/main/root dolvm
Initializing CPU#0
Preemptible RCU implementation.
PID hash table entries: 4096 (order: 12, 32768 bytes)
Extended CMOS year: 2000
Fast TSC calibration using PIT
Detected 1990.134 MHz processor.
spurious 8259A interrupt: IRQ7.
Console: colour VGA+ 80x25
console [tty0] enabled
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Checking aperture...
No AGP bridge found
Calgary: detecting Calgary via BIOS EBDA area
Calgary: Unable to locate Rio Grande table in EBDA - bailing!
Memory: 1767988k/2073056k available (4154k kernel code, 262532k absent, 41912k reserved, 1210k data, 372k init)
hpet clockevent registered
HPET: 4 timers in total, 0 timers will be used for per-cpu timer
Calibrating delay loop (skipped), value calculated using timer frequency.. 3980.26 BogoMIPS (lpj=1990134)
Mount-cache hash table entries: 256
Initializing cgroup subsys ns
Initializing cgroup subsys cpuacct
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 3072K
[ds] using core 2 configuration
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
CPU0: Thermal monitoring enabled (TM2)
using mwait in idle threads.
ACPI: Core revision 20081204
Setting APIC routing to flat
..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
CPU0: Intel(R) Core(TM)2 Duo CPU     P7350  @ 2.00GHz stepping 06
Booting processor 1 APIC 0x1 ip 0x6000
Initializing CPU#1
Calibrating delay using timer specific routine.. 3979.72 BogoMIPS (lpj=1989861)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 3072K
[ds] using core 2 configuration
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
CPU1: Thermal monitoring enabled (TM2)
CPU1: Intel(R) Core(TM)2 Duo CPU     P7350  @ 2.00GHz stepping 06
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
Brought up 2 CPUs
Total of 2 processors activated (7959.99 BogoMIPS).
CPU0 attaching sched-domain:
 domain 0: span 0-1 level MC
  groups: 0 1
CPU1 attaching sched-domain:
 domain 0: span 0-1 level MC
  groups: 1 0
net_namespace: 1872 bytes
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: MCFG configuration 0: base f0000000 segment 0 buses 0 - 255
PCI: MCFG area at f0000000 reserved in E820
PCI: updated MCFG configuration 0: base f0000000 segment 0 buses 0 - 63
PCI: Using MMCONFIG at f0000000 - f3ffffff
PCI: Using configuration type 1 for base access
bio: create slab  at 0
ACPI: EC: EC description table is found, configuring boot EC
ACPI: EC: non-query interrupt received, switching to interrupt mode
ACPI: BIOS _OSI(Linux) query ignored
ACPI: Interpreter enabled
ACPI: (supports S0 S3 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: EC: GPE = 0x3f, I/O: command/status = 0x66, data = 0x62
ACPI: EC: driver started in interrupt mode
ACPI: No dock devices found.
ACPI: PCI Root Bridge [PCI0] (0000:00)
pci 0000:00:03.0: reg 10 io port: [0x2000-0x20ff]
pci 0000:00:03.2: reg 10 io port: [0x2180-0x21bf]
pci 0000:00:03.2: reg 20 io port: [0x2140-0x217f]
pci 0000:00:03.2: reg 24 io port: [0x2100-0x213f]
pci 0000:00:03.2: PME# supported from D3hot D3cold
pci 0000:00:03.2: PME# disabled
pci 0000:00:03.5: reg 10 32bit mmio: [0x93300000-0x9337ffff]
pci 0000:00:04.0: reg 10 32bit mmio: [0x93388000-0x93388fff]
pci 0000:00:04.0: supports D1 D2
pci 0000:00:04.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:00:04.0: PME# disabled
pci 0000:00:04.1: reg 10 32bit mmio: [0x93389200-0x933892ff]
pci 0000:00:04.1: supports D1 D2
pci 0000:00:04.1: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:00:04.1: PME# disabled
pci 0000:00:06.0: reg 10 32bit mmio: [0x93387000-0x93387fff]
pci 0000:00:06.0: supports D1 D2
pci 0000:00:06.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:00:06.0: PME# disabled
pci 0000:00:06.1: reg 10 32bit mmio: [0x93389100-0x933891ff]
pci 0000:00:06.1: supports D1 D2
pci 0000:00:06.1: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:00:06.1: PME# disabled
pci 0000:00:08.0: reg 10 32bit mmio: [0x93380000-0x93383fff]
pci 0000:00:08.0: PME# supported from D3hot D3cold
pci 0000:00:08.0: PME# disabled
pci 0000:00:0a.0: reg 10 32bit mmio: [0x93386000-0x93386fff]
pci 0000:00:0a.0: reg 14 io port: [0x21e0-0x21e7]
pci 0000:00:0a.0: reg 18 32bit mmio: [0x93389000-0x933890ff]
pci 0000:00:0a.0: reg 1c 32bit mmio: [0x93389300-0x9338930f]
pci 0000:00:0a.0: supports D1 D2
pci 0000:00:0a.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:00:0a.0: PME# disabled
pci 0000:00:0b.0: reg 10 io port: [0x21d8-0x21df]
pci 0000:00:0b.0: reg 14 io port: [0x21ec-0x21ef]
pci 0000:00:0b.0: reg 18 io port: [0x21d0-0x21d7]
pci 0000:00:0b.0: reg 1c io port: [0x21e8-0x21eb]
pci 0000:00:0b.0: reg 20 io port: [0x21c0-0x21cf]
pci 0000:00:0b.0: reg 24 32bit mmio: [0x93384000-0x93385fff]
pci 0000:00:10.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:00:10.0: PME# disabled
pci 0000:00:15.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:00:15.0: PME# disabled
pci 0000:00:09.0: transparent bridge
pci 0000:00:09.0: bridge 32bit mmio: [0x93200000-0x932fffff]
pci 0000:02:00.0: reg 10 32bit mmio: [0x92000000-0x92ffffff]
pci 0000:02:00.0: reg 14 64bit mmio: [0x80000000-0x8fffffff]
pci 0000:02:00.0: reg 1c 64bit mmio: [0x90000000-0x91ffffff]
pci 0000:02:00.0: reg 24 io port: [0x1000-0x107f]
pci 0000:02:00.0: reg 30 32bit mmio: [0x93000000-0x9301ffff]
pci 0000:00:10.0: bridge io port: [0x1000-0x1fff]
pci 0000:00:10.0: bridge 32bit mmio: [0x92000000-0x930fffff]
pci 0000:00:10.0: bridge 64bit mmio pref: [0x80000000-0x91ffffff]
pci 0000:03:00.0: reg 10 64bit mmio: [0x93100000-0x93103fff]
pci 0000:03:00.0: supports D1 D2
pci 0000:03:00.0: PME# supported from D0 D3hot D3cold
pci 0000:03:00.0: PME# disabled
pci 0000:00:15.0: bridge 32bit mmio: [0x93100000-0x931fffff]
pci_bus 0000:00: on NUMA node 0
ACPI: PCI Interrupt Routing Table [_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [_SB_.PCI0.IXVE._PRT]
ACPI: PCI Interrupt Link [LNK1] (IRQs 5 7 10 11 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNK2] (IRQs 5 7 10 11 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNK3] (IRQs 5 7 10 11 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNK4] (IRQs 5 7 10 11 14 15) *0, disabled.
ACPI: PCI Interrupt Link [Z003] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z004] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z005] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z006] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z007] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z008] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z009] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00A] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00B] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00C] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00D] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00E] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00F] (IRQs 16 17 18 19 20 21 22 23) *10
ACPI: PCI Interrupt Link [Z00G] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00H] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00I] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00J] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00K] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00L] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00M] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00N] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00O] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00P] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00Q] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00R] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00S] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00T] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z00U] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [LSMB] (IRQs 16 17 18 19 20 21 22 23) *15
ACPI: PCI Interrupt Link [LUS0] (IRQs 16 17 18 19 20 21 22 23) *11
ACPI: PCI Interrupt Link [LUS2] (IRQs 16 17 18 19 20 21 22 23) *10
ACPI: PCI Interrupt Link [LMAC] (IRQs 16 17 18 19 20 21 22 23) *14
ACPI: PCI Interrupt Link [LAZA] (IRQs 16 17 18 19 20 21 22 23) *15
ACPI: PCI Interrupt Link [LGPU] (IRQs 16 17 18 19 20 21 22 23) *11
ACPI: PCI Interrupt Link [LPID] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [LSI0] (IRQs 16 17 18 19 20 21 22 23) *11
ACPI: PCI Interrupt Link [LSI1] (IRQs 16 17 18 19 20 21 22 23) *0, disabled.
ACPI: PCI Interrupt Link [Z000] (IRQs 16 17 18 19 20 21 22 23) *7
ACPI: PCI Interrupt Link [Z001] (IRQs 16 17 18 19 20 21 22 23) *5
ACPI: PCI Interrupt Link [LPMU] (IRQs 16 17 18 19 20 21 22 23) *14
SCSI subsystem initialized
libata version 3.00 loaded.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Using ACPI for IRQ routing
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 8 devices
ACPI: ACPI bus type pnp unregistered
system 00:01: iomem range 0xf0000000-0xf3ffffff has been reserved
system 00:04: iomem range 0xfed00000-0xfed003ff has been reserved
system 00:06: ioport range 0x400-0x47f has been reserved
system 00:06: ioport range 0x480-0x4ff has been reserved
system 00:06: ioport range 0x500-0x57f has been reserved
system 00:06: ioport range 0x580-0x5ff has been reserved
system 00:06: ioport range 0x800-0x87f has been reserved
system 00:06: ioport range 0x880-0x8ff has been reserved
system 00:06: ioport range 0x2140-0x217f has been reserved
system 00:06: ioport range 0x2100-0x213f has been reserved
system 00:06: ioport range 0x4d0-0x4d1 has been reserved
system 00:06: ioport range 0x295-0x296 has been reserved
pci 0000:00:09.0: PCI bridge, secondary bus 0000:01
pci 0000:00:09.0:   IO window: disabled
pci 0000:00:09.0:   MEM window: 0x93200000-0x932fffff
pci 0000:00:09.0:   PREFETCH window: disabled
pci 0000:00:10.0: PCI bridge, secondary bus 0000:02
pci 0000:00:10.0:   IO window: 0x1000-0x1fff
pci 0000:00:10.0:   MEM window: 0x92000000-0x930fffff
pci 0000:00:10.0:   PREFETCH window: 0x00000080000000-0x00000091ffffff
pci 0000:00:15.0: PCI bridge, secondary bus 0000:03
pci 0000:00:15.0:   IO window: disabled
pci 0000:00:15.0:   MEM window: 0x93100000-0x931fffff
pci 0000:00:15.0:   PREFETCH window: disabled
pci 0000:00:09.0: enabling device (0000 -> 0002)
pci 0000:00:09.0: setting latency timer to 64
pci 0000:00:10.0: setting latency timer to 64
ACPI: PCI Interrupt Link [Z00F] enabled at IRQ 23
pci 0000:00:15.0: PCI INT A -> Link[Z00F] -> GSI 23 (level, low) -> IRQ 23
pci 0000:00:15.0: setting latency timer to 64
pci_bus 0000:00: resource 0 io:  [0x00-0xffff]
pci_bus 0000:00: resource 1 mem: [0x000000-0xffffffffffffffff]
pci_bus 0000:01: resource 0 mem: [0x0-0x0]
pci_bus 0000:01: resource 1 mem: [0x93200000-0x932fffff]
pci_bus 0000:01: resource 2 mem: [0x0-0x0]
pci_bus 0000:01: resource 3 io:  [0x00-0xffff]
pci_bus 0000:01: resource 4 mem: [0x000000-0xffffffffffffffff]
pci_bus 0000:02: resource 0 io:  [0x1000-0x1fff]
pci_bus 0000:02: resource 1 mem: [0x92000000-0x930fffff]
pci_bus 0000:02: resource 2 mem: [0x80000000-0x91ffffff]
pci_bus 0000:02: resource 3 mem: [0x0-0x0]
pci_bus 0000:03: resource 0 mem: [0x0-0x0]
pci_bus 0000:03: resource 1 mem: [0x93100000-0x931fffff]
pci_bus 0000:03: resource 2 mem: [0x0-0x0]
pci_bus 0000:03: resource 3 mem: [0x0-0x0]
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 7, 524288 bytes)
TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
NET: Registered protocol family 1
checking if image is initramfs...<7>Switched to high resolution mode on CPU 1
Switched to high resolution mode on CPU 0
 it is
Freeing initrd memory: 3088k freed
audit: initializing netlink socket (disabled)
type=2000 audit(1233201970.678:1): initialized
VFS: Disk quotas dquot_6.5.2
Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
SGI XFS with ACLs, security attributes, realtime, large block/inode numbers, no debug enabled
SGI XFS Quota Management subsystem
OCFS2 1.5.0
ocfs2: Registered cluster interface o2cb
OCFS2 Node Manager 1.5.0
OCFS2 DLM 1.5.0
OCFS2 DLMFS 1.5.0
OCFS2 User DLM kernel interface loaded
GFS2 (built Jan 29 2009 11:59:09) installed
msgmni has been set to 3460
alg: No test for stdrng (krng)
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered (default)
io scheduler cfq registered
pci 0000:02:00.0: Boot video device
pcieport-driver 0000:00:15.0: setting latency timer to 64
pcieport-driver 0000:00:15.0: irq 24 for MSI/MSI-X
Linux agpgart interface v0.103
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
brd: module loaded
loop: module loaded
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
PNP: No PS/2 controller found. Probing ports directly.
i8042.c: No controller found.
mice: PS/2 mouse device common for all mice
cpuidle: using governor ladder
cpuidle: using governor menu
TCP cubic registered
NET: Registered protocol family 10
lo: Disabled Privacy Extensions
NET: Registered protocol family 17
registered taskstats version 1
Freeing unused kernel memory: 372k freed
Write protecting the kernel read-only data: 4996k
ahci 0000:00:0b.0: version 3.0
ACPI: PCI Interrupt Link [LSI0] enabled at IRQ 22
ahci 0000:00:0b.0: PCI INT A -> Link[LSI0] -> GSI 22 (level, low) -> IRQ 22
ahci 0000:00:0b.0: irq 25 for MSI/MSI-X
ahci 0000:00:0b.0: AHCI 0001.0200 32 slots 6 ports 3 Gbps 0x3 impl IDE mode
ahci 0000:00:0b.0: flags: 64bit ncq sntf pm led pmp pio slum part 
ahci 0000:00:0b.0: setting latency timer to 64
scsi0 : ahci
scsi1 : ahci
scsi2 : ahci
scsi3 : ahci
scsi4 : ahci
scsi5 : ahci
ata1: SATA max UDMA/133 abar m8192@0x93384000 port 0x93384100 irq 25
ata2: SATA max UDMA/133 abar m8192@0x93384000 port 0x93384180 irq 25
ata3: DUMMY
ata4: DUMMY
ata5: DUMMY
ata6: DUMMY
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ATA-8: TOSHIBA MK1653GSX, LW005B, max UDMA/100
ata1.00: 312581808 sectors, multi 16: LBA48 NCQ (depth 31/32)
ata1.00: configured for UDMA/100
scsi 0:0:0:0: Direct-Access     ATA      TOSHIBA MK1653GS LW00 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 312581808 512-byte hardware sectors: (160 GB/149 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 312581808 512-byte hardware sectors: (160 GB/149 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2 sda3 sda4
sd 0:0:0:0: [sda] Attached SCSI disk
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata2.00: ATAPI: HL-DT-ST DVDRW  GS21N, SA15, max UDMA/133, ATAPI AN
ata2.00: configured for UDMA/133
scsi 1:0:0:0: CD-ROM            HL-DT-ST DVDRW  GS21N     SA15 PQ: 0 ANSI: 5
sr0: scsi3-mmc drive: 24x/24x writer cd/rw xa/form2 cdda caddy
Uniform CD-ROM driver Revision: 3.20
sr 1:0:0:0: Attached scsi CD-ROM sr0
sd 0:0:0:0: Attached scsi generic sg0 type 0
sr 1:0:0:0: Attached scsi generic sg1 type 5
scsi:  Detection failed (no card)
GDT-HA: Storage RAID Controller Driver. Version: 3.05
3ware Storage Controller device driver for Linux v1.26.02.002.
3ware 9000 Storage Controller device driver for Linux v2.26.02.011.
Compaq SMART2 Driver (v 2.6.0)
HP CISS Driver (v 3.6.20)
Adaptec aacraid driver 1.1-5[2456]-ms
megaraid cmm: 2.20.2.7 (Release Date: Sun Jul 16 00:01:03 EST 2006)
megaraid: 2.20.5.1 (Release Date: Thu Nov 16 15:32:35 EST 2006)
megasas: 00.00.04.01 Thu July 24 11:41:51 PST 2008
QLogic Fibre Channel HBA Driver: 8.03.00-k2
Emulex LightPulse Fibre Channel SCSI driver 8.3.0
Copyright(c) 2004-2008 Emulex.  All rights reserved.
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ACPI: PCI Interrupt Link [LUS2] enabled at IRQ 21
ehci_hcd 0000:00:04.1: PCI INT B -> Link[LUS2] -> GSI 21 (level, low) -> IRQ 21
ehci_hcd 0000:00:04.1: setting latency timer to 64
ehci_hcd 0000:00:04.1: EHCI Host Controller
ehci_hcd 0000:00:04.1: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:04.1: debug port 1
ehci_hcd 0000:00:04.1: cache line size of 32 is not supported
ehci_hcd 0000:00:04.1: irq 21, io mem 0x93389200
ehci_hcd 0000:00:04.1: USB 2.0 started, EHCI 1.00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 7 ports detected
ACPI: PCI Interrupt Link [Z001] enabled at IRQ 20
ehci_hcd 0000:00:06.1: PCI INT B -> Link[Z001] -> GSI 20 (level, low) -> IRQ 20
ehci_hcd 0000:00:06.1: setting latency timer to 64
ehci_hcd 0000:00:06.1: EHCI Host Controller
ehci_hcd 0000:00:06.1: new USB bus registered, assigned bus number 2
ehci_hcd 0000:00:06.1: debug port 1
ehci_hcd 0000:00:06.1: cache line size of 32 is not supported
ehci_hcd 0000:00:06.1: irq 20, io mem 0x93389100
ehci_hcd 0000:00:06.1: USB 2.0 started, EHCI 1.00
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 5 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
uhci_hcd: USB Universal Host Controller Interface driver
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ACPI: PCI Interrupt Link [LUS0] enabled at IRQ 19
ohci_hcd 0000:00:04.0: PCI INT A -> Link[LUS0] -> GSI 19 (level, low) -> IRQ 19
ohci_hcd 0000:00:04.0: setting latency timer to 64
ohci_hcd 0000:00:04.0: OHCI Host Controller
ohci_hcd 0000:00:04.0: new USB bus registered, assigned bus number 3
ohci_hcd 0000:00:04.0: irq 19, io mem 0x93388000
usb usb3: configuration #1 chosen from 1 choice
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 7 ports detected
ACPI: PCI Interrupt Link [Z000] enabled at IRQ 18
ohci_hcd 0000:00:06.0: PCI INT A -> Link[Z000] -> GSI 18 (level, low) -> IRQ 18
ohci_hcd 0000:00:06.0: setting latency timer to 64
ohci_hcd 0000:00:06.0: OHCI Host Controller
ohci_hcd 0000:00:06.0: new USB bus registered, assigned bus number 4
ohci_hcd 0000:00:06.0: irq 18, io mem 0x93387000
usb 1-4: new high speed USB device using ehci_hcd and address 2
usb usb4: configuration #1 chosen from 1 choice
hub 4-0:1.0: USB hub found
hub 4-0:1.0: 5 ports detected
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
sl811: driver sl811-hcd, 19 May 2005
usb 1-4: configuration #1 chosen from 1 choice
device-mapper: uevent: version 1.0.3
device-mapper: ioctl: 4.14.0-ioctl (2008-04-23) initialised: dm-devel@redhat.com
md: raid0 personality registered for level 0
md: raid1 personality registered for level 1
async_tx: api initialized (async)
xor: automatically using best checksumming function: generic_sse
   generic_sse:  5864.000 MB/sec
xor: using function: generic_sse (5864.000 MB/sec)
raid6: int64x1   1472 MB/s
raid6: int64x2   1761 MB/s
raid6: int64x4   1691 MB/s
raid6: int64x8   1132 MB/s
raid6: sse2x1    2777 MB/s
raid6: sse2x2    3039 MB/s
raid6: sse2x4    4652 MB/s
raid6: using algorithm sse2x4 (4652 MB/s)
md: raid6 personality registered for level 6
md: raid5 personality registered for level 5
md: raid4 personality registered for level 4
md: raid10 personality registered for level 10
usb 3-5: new low speed USB device using ohci_hcd and address 2
JFS: nTxBlock = 8192, nTxLock = 65536
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
usb 3-5: configuration #1 chosen from 1 choice
fuse init (API version 7.11)
Intel(R) PRO/1000 Network Driver - version 7.3.20-k3-NAPI
Copyright (c) 1999-2006 Intel Corporation.
usb 3-6: new full speed USB device using ohci_hcd and address 3
usb 3-6: configuration #1 chosen from 1 choice
usb 4-1: new full speed USB device using ohci_hcd and address 2
usb 4-1: configuration #1 chosen from 1 choice
hub 4-1:1.0: USB hub found
hub 4-1:1.0: 3 ports detected
usb 4-1.1: new full speed USB device using ohci_hcd and address 3
usb 4-1.1: configuration #1 chosen from 1 choice
usb 4-1.2: new full speed USB device using ohci_hcd and address 4
usb 4-1.2: configuration #1 chosen from 1 choice
input: HID 05ac:820a as /class/input/input0
generic-usb 0003:05AC:820A.0004: input,hidraw0: USB HID v1.11 Keyboard [HID 05ac:820a] on usb-0000:00:06.0-1.2/input0
usb 4-1.3: new full speed USB device using ohci_hcd and address 5
usb 4-1.3: configuration #1 chosen from 1 choice
input: HID 05ac:820b as /class/input/input1
generic-usb 0003:05AC:820B.0005: input,hidraw1: USB HID v1.11 Mouse [HID 05ac:820b] on usb-0000:00:06.0-1.3/input0
ReiserFS: dm-2: found reiserfs format "3.6" with standard journal
ReiserFS: dm-2: using ordered data mode
ReiserFS: dm-2: journal params: device dm-2, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: dm-2: checking transaction log (dm-2)
ReiserFS: dm-2: Using r5 hash to sort names
applesmc: Apple MacBook 5 detected:
applesmc:  - Model with accelerometer
applesmc:  - Model with light sensors and backlight
applesmc:  - Model with 14 temperature sensors
applesmc: device successfully initialized (0xe0, 0x00).
applesmc: device successfully initialized.
applesmc: 1 fans found.
input: applesmc as /class/input/input2
ACPI: AC Adapter [ADP1] (off-line)
Registered led device: smc::kbd_backlight
applesmc: driver successfully loaded.
input: Power Button (FF) as /class/input/input3
input: PC Speaker as /class/input/input4
ACPI: Power Button (FF) [PWRF]
ACPI: SSDT 7FECAC98, 01F6 (r1  APPLE  Cpu0Ist     3000 INTL 20061109)
ACPI: SSDT 7FEC9C18, 02AD (r1  APPLE  Cpu0Cst     3001 INTL 20061109)
Monitor-Mwait will be used to enter C-1 state
Monitor-Mwait will be used to enter C-2 state
Monitor-Mwait will be used to enter C-3 state
ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3])
processor ACPI_CPU:00: registered as cooling_device0
ACPI: Processor [CPU0] (supports 8 throttling states)
ACPI: SSDT 7FECAF18, 00C8 (r1  APPLE  Cpu1Ist     3000 INTL 20061109)
ACPI: SSDT 7FEC9F18, 0085 (r1  APPLE  Cpu1Cst     3000 INTL 20061109)
Marking TSC unstable due to TSC halts in idle
ACPI: CPU1 (power states: C1[C1] C2[C2] C3[C3])
processor ACPI_CPU:01: registered as cooling_device1
ACPI: Processor [CPU1] (supports 8 throttling states)
input: bcm5974 as /class/input/input5
usbcore: registered new interface driver bcm5974
Bluetooth: Core ver 2.14
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
apple 0003:05AC:8242.0001: hiddev96,hidraw2: USB HID v1.11 Device [Apple Computer, Inc. IR Receiver] on usb-0000:00:04.0-5/input0
input: Apple, Inc. Apple Internal Keyboard / Trackpad as /class/input/input6
apple 0003:05AC:0236.0002: input,hidraw3: USB HID v1.11 Keyboard [Apple, Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:04.0-6/input0
apple 0003:05AC:0236.0003: hidraw4: USB HID v1.11 Device [Apple, Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:04.0-6/input1
rtc_cmos 00:07: rtc core: registered rtc_cmos as rtc0
rtc0: alarms up to one year, y3k, 242 bytes nvram, hpet irqs
Linux video capture interface: v2.00
ACPI: Battery Slot [BAT0] (battery present)
input: Lid Switch as /class/input/input7
Bluetooth: Generic Bluetooth USB driver ver 0.4
usbcore: registered new interface driver btusb
ACPI: Lid Switch [LID0]
input: Power Button (CM) as /class/input/input8
ACPI: Power Button (CM) [PWRB]
input: Sleep Button (CM) as /class/input/input9
ACPI: Sleep Button (CM) [SLPB]
forcedeth: Reverse Engineered nForce ethernet driver. Version 0.62.
ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 17
forcedeth 0000:00:0a.0: PCI INT A -> Link[LMAC] -> GSI 17 (level, low) -> IRQ 17
forcedeth 0000:00:0a.0: setting latency timer to 64
usbcore: registered new interface driver usbmouse
usbmouse: v1.6:USB HID Boot Protocol mouse driver
forcedeth 0000:00:0a.0: ifname eth0, PHY OUI 0x732 @ 1, addr 00:23:32:b8:06:8e
forcedeth 0000:00:0a.0: highdma csum pwrctl gbit lnktim msi desc-v3
Clocksource tsc unstable (delta = -101759935 ns)
uvcvideo: Found UVC 1.00 device Built-in iSight (05ac:8507)
uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
input: Built-in iSight as /class/input/input10
usbcore: registered new interface driver uvcvideo
USB Video Class driver (v0.1.0)
ACPI: PCI Interrupt Link [LAZA] enabled at IRQ 16
HDA Intel 0000:00:08.0: PCI INT A -> Link[LAZA] -> GSI 16 (level, low) -> IRQ 16
HDA Intel 0000:00:08.0: setting latency timer to 64
nvidia: module license 'NVIDIA' taints kernel.
ACPI: PCI Interrupt Link [LGPU] enabled at IRQ 23
nvidia 0000:02:00.0: PCI INT A -> Link[LGPU] -> GSI 23 (level, low) -> IRQ 23
nvidia 0000:02:00.0: setting latency timer to 64
NVRM: loading NVIDIA UNIX x86_64 Kernel Module  180.22  Tue Jan  6 09:15:58 PST 2009
ReiserFS: dm-0: found reiserfs format "3.6" with standard journal
ReiserFS: dm-0: using ordered data mode
ReiserFS: dm-0: journal params: device dm-0, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: dm-0: checking transaction log (dm-0)
ReiserFS: dm-0: Using r5 hash to sort names
ReiserFS: dm-1: found reiserfs format "3.6" with standard journal
ReiserFS: dm-1: using ordered data mode
ReiserFS: dm-1: journal params: device dm-1, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: dm-1: checking transaction log (dm-1)
ReiserFS: dm-1: Using r5 hash to sort names

NIC

NIC は forcedeth で動きます(Gigabit Ethernetですが、menuconfigでは、Fast Ethernet扱いなので注意)。実測ですが、40MB/s (320Mbps) は余裕で出ています。

wireless

wireless は Broadcom の official driver (nvidiaと同じ方式で、バイナリの中間ドライバ、そして、カーネルとの接着部分しかオープンになっていないタイプ) で動くことを確認しました。ただし、wirelessの方は 2.6.25 まで、それ以上の場合は修正が必要となります。

Ubuntu のパッケージでは、2.6.28 でもビルド、動作することを確認しました。(参考: https://launchpad.net/ubuntu/+source/linux-restricted-modules )ただし、やや不安定です。(参考: Broadcom 製 STA ドライバで、IPv6 multi prefix 環境においてIF起動時に正しくアドレスが設定されない問題 )

Bluetooth (UPDATE: 2009/01/29)

bluetooth は 2.6.25-gentoo-r8 で動作しました。ただし、デバイスをリセットする必要があります。リセットすると以下のように見えます。

Bluetooth のドライバ(btusb)が更新され、最新ドライバでは かならずリセットさせるようになりました

ただし、この更新は 2.6.28 には含まれていないため、自分でマージする必要があります。後述するサスペンドの問題を解決するため、bluetooth-next-2.6.git からマージする方法を後述します。

2.6.29 にマージされました。2.6.29-rc3でトラブルなく動作することを確認しました。

ドライバをマージすると、

 # hciconfig
hci0:	Type: USB
	BD Address: 00:23:12:5D:27:8C ACL MTU: 1021:5 SCO MTU: 64:1
	UP RUNNING PSCAN ISCAN 
	RX bytes:1125 acl:0 sco:0 events:45 errors:0
	TX bytes:913 acl:0 sco:0 commands:45 errors:0
 # hciconfig -a
hci0:	Type: USB
	BD Address: 00:23:12:5D:27:8C ACL MTU: 1021:5 SCO MTU: 64:1
	UP RUNNING PSCAN ISCAN 
	RX bytes:1125 acl:0 sco:0 events:45 errors:0
	TX bytes:913 acl:0 sco:0 commands:45 errors:0
	Features: 0xff 0xff 0x8f 0xfe 0x9b 0xff 0x79 0x83
	Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
	Link policy: RSWITCH HOLD SNIFF PARK 
	Link mode: SLAVE ACCEPT 
	Name: 'shiho.tokyo.tknetworks.org'
	Class: 0x080100
	Service Classes: Capturing
	Device Class: Computer, Uncategorized
	HCI Ver: 2.1 (0x4) HCI Rev: 0xfb LMP Ver: 2.1 (0x4) LMP Subver: 0x21a2
	Manufacturer: Broadcom Corporation (15)

となり、rfcomm 経由で ppp できることを確認しました。

内蔵の iSight

dmesg の通り、きちんと認識されています。

uvcvideo: Found UVC 1.00 device Built-in iSight (05ac:8507)
input: Built-in iSight as /class/input/input7

設定のキモは UVC (USB Video Class) と、iSight の firmware の組み込みです。

 # grep -i isight .config
CONFIG_USB_ISIGHTFW=m
 # grep -i usb_video_class .config
CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y

動作確認は mplayer で行えます。v4lを有効にした mplayer で

 # mplayer tv://0

とすれば、あなたの顔が映るはずです :-)また、 ustream でのストリーミングも行えました。

Synaptics

trackpad の設定は Ubuntu ユーザ以外では現時点では少し面倒な作業が必要となります。いずれ、linus tree へパッチがマージされるはずですが、それまでの暫定的な方法を。

2.6.28 ユーザへ

最新カーネルではさまざまな問題が解決されましたが、以前としてマージされていない部分があります。最後に2.6.28での作業を追記しました。以下の記述は参考程度に留めておいてください。

2.6.29 ユーザへ

bcm5974のモジュールを入れるだけでOKになりました。

hid quirks (2.6.28-rc6 below)

経緯はやや複雑なので、詳細は割愛しますが、Appleのキーボード、マウスは usbhid の読み込み時に quirk 処理が必要となります。これには、カーネルモジュールの改変が必要となります。

2.6.27 に対するパッチは Ubuntu のパッケージとして配布されています。2.6.28では quirk 回りがいろいろと改良されたため、さらなる改変を加える必要があります。(このあたりは http://web.comhem.se/rydberg/Bits/ を参照。以下のパッチもUbuntuのパッチを参考にしました。)

2.6.28-rc2 に対するパッチを置いておきます。http://projects.tsuntsun.net/~nabeken/dist/0001-HID-Add-quirk-entry-for-MacBook-5-unibody.patch

hid quirks (2.6.28-rc6 above)

2.6.26-rc6でようやくマージされました。内容は上のパッチとほぼ同じです。

hid quirks again.. (2.6.28-rc7)

上のパッチの一部が revert されました。なんでも、時期尚早ということのようです。ignore されないと bcm5974 が動かないので、当然 trackpad も動かなくなります。

しかたないので、この revert を revert することで、しばらくは回避します。(説明にもあるように、 2.6.29 でふたたび入る予定のようです)

そもそもカーネルの rc を使うような人は linus tree の git repository を clone しているはずなので、以下の手順で対応しましょう。(していない人はしましょう。追うのが楽になります)

 $ git co -b macbook origin/master
 $ git revert 06d214
 $ git show > /tmp/unibody.patch
 $ cd /usr/src/linux
 # patch -p1 < /tmp/unibody.patch

bcm5974

このドライバは 2.6.28-rc6でも取り込まれていません。

次は、trackpadのドライバです。これを読み込まないと synaptics の trackpad として認識されません。2.6.27 以降では、カーネルに入っていますが、これは旧モデルの MacBook にしか対応していないので、同じく上の Ubuntu のパッケージから貰ってきます。bzr 経由でソースコードを入手し、

 # cd bcm5974-dkms/usr/src/dkms_source_tree
 # make -C /lib/modules/`uname -r`/build M=`pwd`
 # cp bcm5974.ko /lib/modules/`uname -r`/kernel/drivers/input/mouse
 # depmod -a

applesmc

最後に、applesmc を最新版に置き換えます。カーネルのものは使わないようにしてもいいでしょう。bzr 経由で同じく上のサイトから applesmc-dkms を持ってきます。ビルド方法は上と同じです。

Macbook 5 に対応した applesmc が 2.6.28-rc5 でマージされました。

genkernel を使っている人は genkernel でインストール後にモジュールの追加を行ってください。(genkernelはインストール前に一度消してしまうため)

synapics の設定

サンプルが上のサイトにあります。これはそのまま使えます。うまく認識されると以下のような Xorg.0.log になります。

 # grep -i synaptics /vag/log/Xorg.0.log
(**) |-->Input Device "Synaptics Touchpad"
(II) LoadModule: "synaptics"
(II) Loading /usr/lib64/xorg/modules/input//synaptics_drv.so
(II) Module synaptics: vendor="X.Org Foundation"
(II) LoadModule: "synaptics"
(II) Reloading /usr/lib64/xorg/modules/input//synaptics_drv.so
(II) Synaptics touchpad driver version 0.15.2
(--) Synaptics Touchpad auto-dev sets device to /dev/input/event3
(II) Synaptics Touchpad: x-axis range 0 - 1280
(II) Synaptics Touchpad: y-axis range 0 - 800
(--) Synaptics Touchpad touchpad found
(**) Synaptics Touchpad: always reports core events
(II) evaluating device (Synaptics Touchpad)
(II) XINPUT: Adding extended input device "Synaptics Touchpad" (type: TOUCHPAD)
(II) Synaptics Touchpad: x-axis range 0 - 1280
(II) Synaptics Touchpad: y-axis range 0 - 800
(--) Synaptics Touchpad touchpad found

該当部分の dmesg は以下の通り。

 # dmesg | grep bcm5974 
input: bcm5974 as /class/input/input3
usbcore: registered new interface driver bcm5974

LCD Backlight

ようやく、ディスプレイの明るさを調節できるようになりました。nvclock 0.8 beta4 を使うと、X 上でも明るさを調節できるようになりました。(参考: https://help.ubuntu.com/community/MacBook%20Aluminum?#Screen%20brightness%20adjustment )

調節は以下のように行います。

 $ nvclock -S 15
Changing Smartdimmer level from 15% to 15%
New Smartdimmer level: 15%
 $ nvclock -S 100
Changing Smartdimmer level from 15% to 100%
New Smartdimmer level: 100%

Gentoo の人は既存の ebuild を beta4 にするか、私の overlay から取得してください。e981053d55257dafe433bf39b3dac15451ace9af

サスペンド (Suspend to RAM)

~サスペンドからの復旧は Mac OS X に比べるとものすごく遅いです。(約20秒ほど)~

どうやら、原因は nvidia-drivers にあったようです。最新の nvidia-drivers (180.22) を用いることで、Max OS X と同等か、それよりも早くレジュームするようになりました。これは素晴しいです!ちなみに、このドライバは 2.6.29-rc2 対応なのを確認しています。

あらかじめ、 acpid をインストールして、起動しておきます。ディスプレイの開閉、電源ボタンの操作なので ACPI のイベントが発生します。そのイベントに応じたスクリプトにサスペンド処理を追加します。

まず、 /etc/acpi/events/lm_lid を作ります。

 # cat /etc/acpi/events/lm_lid
event=button[ /]lid
action=/etc/acpi/actions/lm_lid.sh %e

続いて、そのアクションを実行するスクリプトを作ります。(以下のスクリプトは 2.6.28 を対象としています。)それ以外の場合、煩雑な処理が必要となります。

また、まだ過渡期のためか、一部ドライバを読み込んでいる場合、サスペンドに失敗します。(zd1211rwなど)

 # cat /etc/acpi/actions/lm_lid.sh
#!/bin/bash

STATE=$(cat /proc/acpi/button/lid/LID0/state | cut -d' ' -f7)

case "$STATE" in
    closed)
	echo mem > /sys/power/state
	;;
    open)
	logger -p debug -t acpi "resumed from C3"
	;;
esac

VGA

VGA は nvidia が Linux 向けに提供しているドライバで動作します。ただし、カーネルのバージョンに依存しています。180.22であれば、2.6.29-rc2まで対応しています。

2.6.28 ユーザへ

これまでの作業を 2.6.28 に対して適用する方法を解説します。Gitに慣れていない人は戸惑うかもしれませんが、rcを追うならGitには慣れましょう。

まず、 linus tree を clone します。すべての作業は linus tree に対して行われているので、カーネルを追う入り口は linus tree になります。

 $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

では、Macbook 用のためにブランチを作りましょう。(基本的にはmasterはそのまま置いておきます)

 $ git checkout -b macbook

次に、bcm5974 のために修正を revert します。

 $ git revert 06d214

次に、bluetooth-next-2.6.git からまだマージされていない最新のbluetooth subsystemを自分のリポジトリへマージします。これにより、ドライバロード時にきちんとリセットされ、またサスペンド対応になります。ただし、本当にマージしてしまうと必要のない修正まで取り込んでしまうので、一度パッチとして吸い出して、適用します。

 $ git remote add bluetooth git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-next-2.6.git
 $ git fetch bluetooth master:bluetooth

これで bluetooth-next-2.6.git の内容がローカルの bluetooth ブランチへ取り込まれました。logを見ながら、

 $ git format-patch 25f13048b..bluetooth

とします。おそらく、14個のパッチが生成されたと思います。では、適用します。

 $ git am 00*

途中で適用に失敗します(おそらく13個目)。ひとまず、面倒なので skip します。

 $ git am --skip

これで無事にマージが完了しました。git log できちんとマージされているか確認しましょう。

では、これを tar にして、あとはいつも通りにビルドします。

 $ git archive --prefix=linux-2.6.28-macbook/ HEAD > /tmp/linux-2.6.28-macbook.tar

ビルド、起動後 bcm5974 をインストールすれば作業は完了です。なお、bluetooth-next-2.6.git とあるように、次期マージウインドウ(機能の取り込み期間)で取り込まれます。2.6.29ではrevertも含め、不要となる見込みです。ついでにバックライト調整のためのモジュールもおそらく入ると思われます。(追記: revert は不要になりました。)

2.6.29-rc[12]

先日リリースされましたが、

  • broadcom のドライバ未対応
  • バックライト調節モジュール未対応
  • サスペンド不調

なため、引き続き調査中です(必要であれば本家へ報告予定)。参考情報として、v2.6.28では大丈夫なので、そこから bisect すると原因は絞れると思います。情報があれば @nabeken via twitter などで御知らせください。

2.6.29-rc3

先日、リリースされました。サスペンドの問題は解決しました。broadcom-sta ドライバのパッチもでてきました

バックライト調節モジュールはなくとも nvclock を使うことで調整ができるようになりました。

prefix Gentoo

Mac OS X 上で各種 UNIX 向けツールを使うには、flink, MacPorts などがあります。これに加えて、Gentoo Linux のパッケージ管理ツール Portage と、その成果物である ebuild を利用した prefix Gentoo があります。

これは、 Portage に対して、/ の代わりに $EPREFIX という変数で指定されたディレクトリ(prefix)を使うように改良を加えたものです。

公式ドキュメントをなぞるだけで導入できます。MacPortsに飽きてきた人は試してみては。(参考: http://www.gentoo.org/proj/en/gentoo-alt/prefix/bootstrap-macos.xml )

参考文献

http://delicious.com/nabekenta/MB

更新履歴

  • MAINT cosmetic (Mon, 30 Mar 2009 18:12:12 +0900)
  • 英文での案内を追加 (Mon, 30 Mar 2009 12:35:21 +0900)
  • obsolete扱いに (Thu, 5 Feb 2009 18:53:02 +0900)
  • cosmetic (Thu, 29 Jan 2009 21:27:50 +0900)
  • nvclock で X 上でも明るさ調整が可能に (Thu, 29 Jan 2009 21:24:51 +0900)
  • 2.6.29-rc3 について追記 (Thu, 29 Jan 2009 17:37:05 +0900)
  • cosmetic (Sat, 17 Jan 2009 21:17:15 +0900)
  • サスペンドからの復帰が遅い現象の解消、2.6.29-rc[12]について追記 (Sat, 17 Jan 2009 17:27:02 +0900)
  • cosmetic (Fri, 26 Dec 2008 19:54:29 +0900)
  • 2.6.28対応 (Fri, 26 Dec 2008 19:52:44 +0900)
  • 2.6.28-rc7 での状況を追加 (Wed, 10 Dec 2008 16:15:36 +0900)
  • TOC追加 (Wed, 26 Nov 2008 00:22:14 +0900)
  • MAINT 不要な記述を削除 (Tue, 25 Nov 2008 18:17:35 +0900)
  • MAINT 参考文献を追加 (Tue, 25 Nov 2008 13:01:20 +0900)
  • 明るさの調整ができるようになった (Tue, 25 Nov 2008 10:54:39 +0900)
  • MacBook-late-2008-my-1st-impression: 2.6.28-rc6 対応 (Mon, 24 Nov 2008 13:56:02 +0900)
  • MacBook-late-2008-my-1st-impression: 見出し修正と初期化方法を追加 (Tue, 18 Nov 2008 13:55:54 +0900)
  • MacBook-late-2008-my-1st-impression: 2.6.28-rc5 対応 (Sun, 16 Nov 2008 15:14:27 +0900)
  • MacBook-late-2008-my-1st-impression: bluetooth について追記 (Wed, 12 Nov 2008 22:11:50 +0900)
  • MacBook-late-2008-my-1st-impression: 参考文献を追加 (Wed, 12 Nov 2008 22:08:58 +0900)
  • MAINT MacBook-late-2008-my-1st-impression: 見出しを修正 (Thu, 6 Nov 2008 16:53:16 +0900)
  • MAINT MacBook-late-2008-my-1st-impression: 誤字脱字、動作のまとめを追加 (Tue, 4 Nov 2008 23:58:06 +0900)
  • MAINT: MacBook-late-2008-my-1st-impression: サスペンドができな部分を削除 (Mon, 3 Nov 2008 13:33:36 +0900)
  • MacBook-late-2008-my-1st-impression: ディスプレイの開閉に合わせたサスペンド (Mon, 3 Nov 2008 11:30:37 +0900)
  • MacBook-late-2008-my-1st-impression: サスペンドに成功した (Sun, 2 Nov 2008 23:24:10 +0900)
  • MacBook-late-2008-my-1st-impression: rEFlt について追記 (Sun, 2 Nov 2008 22:02:39 +0900)
  • MacBook-late-2008-my-1st-impression: synaptics 関連追加 (Sun, 2 Nov 2008 18:42:50 +0900)
  • MacBook-late-2008-my-1st-impression: dmesg と uvc を追加 (Sat, 1 Nov 2008 15:47:03 +0900)
  • MacBook-late-2008-my-1st-impression: Bluetooth の動作報告を追加 (Fri, 31 Oct 2008 02:59:16 +0900)
  • MAINT MacBook-late-2008-my-1st-impression: ログ出力を有効に (Wed, 29 Oct 2008 21:11:08 +0900)
  • MAINT MacBook-late-2008-my-1st-impression: 画像の位置を修正 (Wed, 29 Oct 2008 21:09:47 +0900)
  • MacBook-late-2008-my-1st-impression: 初稿 (Wed, 29 Oct 2008 20:46:26 +0900)
  • WIP: パーティションについて (Sat, 25 Oct 2008 02:07:47 +0900)
  • WIP: インストールまで (Fri, 24 Oct 2008 04:29:05 +0900)
  • WIP: MacBook-late-2008-my-1st-impression (Thu, 23 Oct 2008 10:29:49 +0900)