メッセージ欄

2012年1月の日記

一覧で表示する

物理ディスクをゲストOSに見せる
2012/01/22(日) 19:49 NetBSD はてブ情報 はてブに登録 はてブ数

ゲストOSにホストOSのHDDをそのまま見せるための設定はvirsh editで手書きです。

シンプルな方法

次の例は/dev/sdbをゲストに見せる設定です。
<disk type='block' device='disk'>
  <driver name='qemu' type='raw'/>
  <source dev='/dev/sdb'/>
  <target dev='hdb' bus='ide'/>
</disk>

virtioを利用した方法

NetBSD-currentの新しい版だとvirtioが使えるようになっています。2011-11-30にvirtioが入ったんですね。

以下のようにxmlファイルを書きます。source devが違うのは、違うところからコピペしただけです。ポイントはbus='virio'って書くだけですね。
<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none'/>
  <source dev='/dev/mapper/VG--vmpool-vol1'/>
  <target dev='vda' bus='virtio'/>
</disk>
NetBSDからはldというディスクデバイスで見えます。bus='ide'よりもかなり速くなります。

NetBSDのインストール
2012/01/22(日) 19:36 NetBSD はてブ情報 はてブに登録 はてブ数

ターミナルからインストールするためにboot-com.isoを使うのが便利です。
sudo virt-install -n netbsd51 --hvm -c ./boot-com.iso -r 512 -f /kvm/images/netbsd51.img -s 40 --nographics --noacpi
  • netbsd51という名前
  • CD-ROMにboot-com.iso
  • メモリは512MB
  • 仮想ディスク名はnetbsd51.img
  • 仮想ディスクのサイズは40GB
  • グラフィックは無し
  • ACPIもなし
あとは普通のインストールです。お好きにどうぞ、ですがFFSv2にしたほうがnewfsが高速なので。

ネットワークとしてre0が見えます。これにDHCPなどでアドレスをふってFTPインストールなり何なり。

あれ、umount /targetrootで止まっちゃったりするなー。Ctrl-Cとかで止めて、手動で/bin/sh起動してumountしたら大丈夫だった。でも、時間がかかっているだけだったりするので、気長に待つ方がよいかも。

/etc/ttysのttyE1からttyE3はコメントアウトしといた方が起動時にきれいかも。wsconsもいらないかな。

ちなみにi386です。

インストール後は
export PKG_PATH=ftp://ftp.allbsd.org/pub/pkgsrc/packages/NetBSD/i386/5.1/All/
あたりのおまじないをかけて、pkg_add zshてなかんじ。

ちなみにamd64でふつうにやるとattimer0とかで止まることがあるかもしれない。

そのときにはACPIなしのシングルプロセッサを指定してあげると良いみたい。

ブートプロンプトのところで自動起動させず、4を選択。boot -1であげると起動した。

LVMを使ったディスクの切り出し
2012/01/22(日) 17:15 NetBSD はてブ情報 はてブに登録 はてブ数

KVMつかってqcow形式使ってたらどうも調子悪いので、達人おすすめのLVMからパーティションを切り出して使う方式に切り替えようと思い立った。

3TBのUSB HDDをつないでそいつを切り出して使おうって寸法。Windowsでの利用を前提として売られている市販品です。

手順は次のようになります。
  • fdisk or gparted
  • PV (pvcreate)
  • LG (vgcreate)
  • LV (lvcreate)
  • mkfs (NetBSDでマウントして)
LinuxのLVMの操作の基本的操作を書いただけですが、LinuxをまるでしらないNetBSDユーザにとっての記録ということで。

fdisk or parted

まずはfdiskですね。USBディスクは/dev/sddで見えています。
 root@t105:~# fdisk /dev/sdd
 
 WARNING: GPT (GUID Partition Table) detected on '/dev/sdd'! The util fdisk doesn't support GPT. Use GNU Parted.
 
 
 WARNING: The size of this disk is 3.0 TB (3000592982016 bytes).
 DOS partition table format can not be used on drives for volumes
 larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID partition table format (GPT).
 
 
 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
          switch off the mode (command 'c') and change display units to
          sectors (command 'u').
 
 Command (m for help): p
 
 Disk /dev/sdd: 3000.6 GB, 3000592982016 bytes
 256 heads, 63 sectors/track, 363376 cylinders
 Units = cylinders of 16128 * 512 = 8257536 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Disk identifier: 0x00000000
 
    Device Boot      Start         End      Blocks   Id  System
 /dev/sdd1               1      266306  2147483647+  ee  GPT
 
 Command (m for help):
あらま。3TBだとfdiskでは扱えないようです。partedを使えとのことなので、そのとおり使ってみます。
 root@t105:~# parted /dev/sdd
 GNU Parted 2.3
 Using /dev/sdd
 Welcome to GNU Parted! Type 'help' to view a list of commands.
 (parted)
まずはヘルプを見てみます。
 (parted) help 
   align-check TYPE N                        check partition N for TYPE(min|opt) alignment
   check NUMBER                             do a simple check on the file system
   cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition
   help [COMMAND]                           print general help, or help on COMMAND
   mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
   mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on partition NUMBER
   mkpart PART-TYPE [FS-TYPE] START END     make a partition
   mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system
   move NUMBER START END                    move partition NUMBER
   name NUMBER NAME                         name partition NUMBER as NAME
   print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a particular partition
   quit                                     exit program
   rescue START END                         rescue a lost partition near START and END
   resize NUMBER START END                  resize partition NUMBER and its file system
   rm NUMBER                                delete partition NUMBER
   select DEVICE                            choose the device to edit
   set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
   toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
   unit UNIT                                set the default unit to UNIT
   version                                  display the version number and copyright information of GNU Parted
 (parted)
状態を表示させるprintを実行してみます。
 (parted) print
 Model: I-O DATA HDCA-U (scsi)
 Disk /dev/sdd: 3001GB
 Sector size (logical/physical): 512B/512B
 Partition Table: gpt
 
 Number  Start   End     Size    File system  Name                          Flags
  1      17.4kB  134MB   134MB                Microsoft reserved partition  msftres
  2      135MB   3001GB  3000GB  ntfs         Basic data partition
 
 (parted)
Windows向けにあらかじめ準備されていたパーティション1と2があります。まったく使わないので削除してしまいましょう。

ただし、この操作は実行したとたんに反映されます。戻せませんのでご注意。
 (parted) rm 2 
 (parted) rm 1 
 (parted)  
なんという寡黙なコマンド。ちゃんと消えているか確認してみます。
 (parted) p                                                              
 Model: I-O DATA HDCA-U (scsi)
 Disk /dev/sdd: 3001GB
 Sector size (logical/physical): 512B/512B
 Partition Table: gpt
 
 Number  Start  End  Size  File system  Name  Flags
 
 (parted)
はい。見事に消えています。

では、LVM用のパーティションを作りましょう。

単位をMiBにします。参考にしたWebページがそうしていたからですけど。
 (parted) unit MiB
パーティションのサイズを確認します。 Disk /dev/sdd: 2861588MiBと書かれている部分をみると全体が2861588MiBだとわかります。この数字を覚えておきます。
 (parted) p
 Model: I-O DATA HDCA-U (scsi)
 Disk /dev/sdd: 2861588MiB
 Sector size (logical/physical): 512B/512B
 Partition Table: gpt
 
 Number  Start  End  Size  File system  Name  Flags
 
 (parted)
いよいよmkpartでパーティションを作ります。パーティションタイプはprimaryで、パーティションのSTARTとENDをそれぞれ1と(先ほど覚えておいた)2861588にします。

ちなみに、スタートを1にしているのは0にすると Warning: The resulting partition is not properly aligned for best performance. という警告が出たからです。
 (parted) mkpart primary 1 2861588
 (parted)
確認してみます。
 (parted) p
 Model: I-O DATA HDCA-U (scsi)
 Disk /dev/sdd: 2861588MiB
 Sector size (logical/physical): 512B/512B
 Partition Table: gpt
 
 Number  Start    End         Size        File system  Name     Flags
  1      1.00MiB  2861588MiB  2861587MiB               primary
 
 (parted)
作成したパーティション1をLVMにセットします。ちょっと呪文っぽいset 1 lvm onというコマンドです。mkpartのhelpにもうすこし書いて欲しいものです。
 (parted) set 1 lvm on
 (parted)
確認してみましょう。Flagsにlvmと記載されています。
 (parted) p
 Model: I-O DATA HDCA-U (scsi)
 Disk /dev/sdd: 2861588MiB
 Sector size (logical/physical): 512B/512B
 Partition Table: gpt
 
 Number  Start    End         Size        File system  Name     Flags
  1      1.00MiB  2861588MiB  2861587MiB               primary  lvm
 
 (parted) 
そういえば、そもそもGPTとして見えていたので、mklabelはしませんでした。した方がよかったかな。

PVを作る

PVを作るコマンドはpvcreateです。先ほど作ったパーティションをPVにします。
 root@t105:~# pvcreate /dev/sdd1
   Physical volume "/dev/sdd1" successfully created
確認のコマンドはpvscanです。一行目のものはシステムディスクのPVで二行目のものが先ほど作ったPVです。
 root@t105:~# pvscan
   PV /dev/sda3   VG t105            lvm2 [1.82 TiB / 132.00 MiB free]
   PV /dev/sdd1                      lvm2 [2.73 TiB]
   Total: 2 [4.55 TiB] / in use: 1 [1.82 TiB] / in no VG: 1 [2.73 TiB]

VGを作る


vgcreateでVGをつくります。KVMのVMを置く場所なのでVG-vmpoolという名前にします。

引数の-s 64mはエクステントの指定です。VGに作成可能なエクステント数の最大は65536という制限があるので、ディスクのサイズを最大エクステント数つまり65536で割ればエクステントサイズが求まるわけです。で、参考にしたWebページに早見表があって2TBだと32MBで4TBだと64MBだそうな。こいつは3TBだから64MBにしとけば(ムダは出るかもしれんが)安心でしょう。
 root@t105:~# vgcreate -s 64m VG-vmpool /dev/sdd1
   Volume group "VG-vmpool" successfully created
作成したVGを表示します。vgdisplayというコマンドです。vgscanじゃないところがなんとも。
 root@t105:~# vgdisplay -C
   VG        #PV #LV #SN Attr   VSize VFree  
   VG-vmpool   1   0   0 wz--n- 2.73t   2.73t
   t105        1   2   0 wz--n- 1.82t 132.00m
vgdisplayにVG名を与えると詳しい情報が出ます。
 root@t105:~# vgdisplay VG-vmpool
   --- Volume group ---
   VG Name               VG-vmpool
   System ID             
   Format                lvm2
   Metadata Areas        1
   Metadata Sequence No  1
   VG Access             read/write
   VG Status             resizable
   MAX LV                0
   Cur LV                0
   Open LV               0
   Max PV                0
   Cur PV                1
   Act PV                1
   VG Size               2.73 TiB
   PE Size               64.00 MiB
   Total PE              44712
   Alloc PE / Size       0 / 0   
   Free  PE / Size       44712 / 2.73 TiB
   VG UUID               sfxf8p-nCr7-suHe-JxpA-Sk9C-AsBa-s2TNE5

LVを作る

VG-vmpoolからLVを切り出します。1TiBのサイズで名前をvol1とします。
 root@t105:~# lvcreate -L 1TiB -n vol1 VG-vmpool
   Logical volume "vol1" created
もうひとつvol2という名前で切り出してみます。
 root@t105:~# lvcreate -L 1TiB -n vol2 VG-vmpool
   Logical volume "vol2" created
確認してみます。vgdisplayをもう一度使います。lvdisplayがあればわかりやすいのに。
 root@t105:~# vgdisplay -v VG-vmpool
     Using volume group(s) on command line
     Finding volume group "VG-vmpool"
   --- Volume group ---
   VG Name               VG-vmpool
   System ID             
   Format                lvm2
   Metadata Areas        1
   Metadata Sequence No  3
   VG Access             read/write
   VG Status             resizable
   MAX LV                0
   Cur LV                2
   Open LV               0
   Max PV                0
   Cur PV                1
   Act PV                1
   VG Size               2.73 TiB
   PE Size               64.00 MiB
   Total PE              44712
   Alloc PE / Size       32768 / 2.00 TiB
   Free  PE / Size       11944 / 746.50 GiB
   VG UUID               sfxf8p-nCr7-suHe-JxpA-Sk9C-AsBa-s2TNE5
    
   --- Logical volume ---
   LV Name                /dev/VG-vmpool/vol1
   VG Name                VG-vmpool
   LV UUID                lmE2r2-GvBd-bBUO-19VF-9JRs-XGSz-XsG0hM
   LV Write Access        read/write
   LV Status              available
   # open                 0
   LV Size                1.00 TiB
   Current LE             16384
   Segments               1
   Allocation             inherit
   Read ahead sectors     auto
   - currently set to     256
   Block device           251:2
 
   --- Logical volume ---
   LV Name                /dev/VG-vmpool/vol2
   VG Name                VG-vmpool
   LV UUID                FvDTk8-TvaJ-cDcZ-7Rq1-D7ef-2M3v-PmdDzx
   LV Write Access        read/write
   LV Status              available
   # open                 0
   LV Size                1.00 TiB
   Current LE             16384
   Segments               1
   Allocation             inherit
   Read ahead sectors     auto
   - currently set to     256
   Block device           251:3
    
   --- Physical volumes ---
   PV Name               /dev/sdd1     
   PV UUID               228TBz-9i9u-e0ie-xoWe-1TD5-CX31-P4IfuP
   PV Status             allocatable
   Total PE / Free PE    44712 / 11944
    
 root@t105:~# 
これで、/dev/mapperの下にvol1, vol2に相当するパーティションができています。
root@t105:~# ls -l /dev/mapper
total 0
crw------- 1 root root 10, 236 2012-01-18 19:27 control
lrwxrwxrwx 1 root root       7 2012-01-18 19:26 t105-root -> ../dm-0
lrwxrwxrwx 1 root root       7 2012-01-18 19:27 t105-swap_1 -> ../dm-1
lrwxrwxrwx 1 root root       7 2012-01-18 19:27 VG--vmpool-vol1 -> ../dm-2
lrwxrwxrwx 1 root root       7 2012-01-18 19:27 VG--vmpool-vol2 -> ../dm-3
/dev/mapper/VG--vmpool-vol1は普通のディスクとして扱うことができるので、mke2fsして使うなり、KVMのゲストOS向けのディスクとして見せるなり、お好きにお使いください。

VIAのデュアルコア Nano X2 U4025搭載 ZBOX nano VD01 (5)
2012/01/21(土) 19:17 NetBSD はてブ情報 はてブに登録 はてブ数

さて、ZBOX nano VD01の起動しない問題、続々々々編です。

pci_modeを1にすることで無事に起動することが確認できたわけですが、修正自体はチェックロジックを潰すという非常に行儀の悪いものでした。

sys/arch/x86/pci/pci_machdep.cのpci_mode_detect関数をよく見ると、前半になにやらquirkという文字が。

どうやらここで特定のチップセットに対してpci_modeを設定しているようです。pci_conf_read関数を実行して得られたidとpcim1_quirk_tblテーブルに格納されたidを比較し、合致すれば後の処理を行わずにpci_modeを返しています。
518 pci_mode_detect(void)
中略
533 	pci_mode = 1; /* assume this for now */
534 	/*
535 	 * catch some known buggy implementations of mode 1
536 	 */
537 	for (i = 0; i < __arraycount(pcim1_quirk_tbl); i++) {
538 		pcitag_t t;
539 
540 		if (!pcim1_quirk_tbl[i].tag)
541 			break;
542 		t.mode1 = pcim1_quirk_tbl[i].tag;
543 		idreg = pci_conf_read(0, t, PCI_ID_REG); /* needs "pci_mode" */
544 		if (idreg == pcim1_quirk_tbl[i].id) {
545 #ifdef DEBUG
546 			printf("known mode 1 PCI chipset (%08x)\n",
547 			       idreg);
548 #endif
549 			return (pci_mode);
550 		}
551 	}
中略
593 }
つまり、pcim1_quirk_tblという配列にZBOX nano VD01向けの情報を入れれば良いはずです。

pcim1_quirk_tblは、sys/arch/x86/pci/pci_machdep.cで次のように定義されています。
179 #define _qe(bus, dev, fcn, vend, prod) \
180 	{_m1tag(bus, dev, fcn), PCI_ID_CODE(vend, prod)}
181 struct {
182 	uint32_t tag;
183 	pcireg_t id;
184 } pcim1_quirk_tbl[] = {
185 	_qe(0, 0, 0, PCI_VENDOR_COMPAQ, PCI_PRODUCT_COMPAQ_TRIFLEX1),
186 	/* XXX Triflex2 not tested */
187 	_qe(0, 0, 0, PCI_VENDOR_COMPAQ, PCI_PRODUCT_COMPAQ_TRIFLEX2),
188 	_qe(0, 0, 0, PCI_VENDOR_COMPAQ, PCI_PRODUCT_COMPAQ_TRIFLEX4),
189 	/* Triton needed for Connectix Virtual PC */
190 	_qe(0, 0, 0, PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82437FX),
191 	/* Connectix Virtual PC 5 has a 440BX */
192 	_qe(0, 0, 0, PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82443BX_NOAGP),
193 	/* Parallels Desktop for Mac */
194 	_qe(0, 2, 0, PCI_VENDOR_PARALLELS, PCI_PRODUCT_PARALLELS_VIDEO),
195 	_qe(0, 3, 0, PCI_VENDOR_PARALLELS, PCI_PRODUCT_PARALLELS_TOOLS),
196 	/* SIS 740 */
197 	_qe(0, 0, 0, PCI_VENDOR_SIS, PCI_PRODUCT_SIS_740),
198 	/* SIS 741 */
199 	_qe(0, 0, 0, PCI_VENDOR_SIS, PCI_PRODUCT_SIS_741),
200 	{0, 0xffffffff} /* patchable */
201 };
どうやら、PCIデバイスのベンダIDと製品IDが必要のようです。

ZBOX nano VD01はVIA製品ですからベンダID=0x1106まではすぐにわかるのですが、製品IDがわかりません。

とりあえず、このロジックの部分にidregを表示させるprintfを挿入して確認したところ製品IDは0x0410でした。

sys/dev/pci/pcidevsを見ても0x0410は存在しないため、新たに追加が必要だということになります。

追加は簡単なのですが、製品名として何を指定すればよいのでしょう。ZBOX nano VD01の使用を見るとチップセットがVX900Hだそうです。とはいえ、これで正しいのかよくわからないので、VIAのWebページからVX900 Series Programming Manualをダウンロードして確認してみたところ、P18にDevice IDの記載があります。ここに0410hと記載されているので、製品名としてはVX900でよさそうです。

ということで、sys/dev/pci/pcidevsの4591行目の後ろにVX900の記述を加えました。
4583 /* VIA Technologies products, from http://www.via.com.tw/ */
中略
4591 product VIATECH	VT8371_HB	0x0391	VT8371 (Apollo KX133) Host Bridge
     product VIATECH	VX900	0x0410	VX900
4592 product VIATECH VT8501_MVP4	0x0501	VT8501 (Apollo MVP4) Host Bridge
さらに、sys/arch/x86/pci/pci_machdep.cのpcim1_quirk_tblにVX900の定義を追加しました。
198 	/* SIS 741 */
199 	_qe(0, 0, 0, PCI_VENDOR_SIS, PCI_PRODUCT_SIS_741),
    	/* VIA technology VX900 */
    	_qe(0, 0, 0, PCI_VENDOR_VIATECH, PCI_PRODUCT_VIATECH_VX900),
200 	{0, 0xffffffff} /* patchable */
201 };
これでうまく動いてくれているようで、ブート時に次のメッセージが表示されるようになりました。
known mode 1 PCI chipset (04101106)
これが正しい修正なのかはわかりませんが、だいぶマシになったかなと思います。

開始当初は、traceすらできない状況でしたが、まさに紆余曲折ありましたが、なんとか動かすことができてよかったです。

わかる人が見れば、最初のpci_make_tagのところで、pci_modeが1じゃないぞ、フツーpci_modeが1だからquirkつかって強制的にpci_modeを1にすれば動きそうだな。ぐらいの最短距離で動かせたかもしれませんね。

VIAのデュアルコア Nano X2 U4025搭載 ZBOX nano VD01 (4)
2012/01/21(土) 16:59 NetBSD はてブ情報 はてブに登録 はてブ数

さて、ZBOX nano VD01の起動しない問題、続々々編です。

前回の時点で、panic処理に至るまでの挙動がぼんやりとつかめましたが、いかんせん先が見えない状況になってしまいました。

手がかりをつかむため、kernelのconfigにDEBUGを追加して様子を見ることにしました。今思うと、最初に追加すべきoptionsだったような。
options         DEBUG           # expensive debugging checks/support
すると、panicする前に次のようなメッセージが追加されました。
pci_mode_detect: mode 1 enable failed (0)
pci_mode_detectはsys/arch/x86/pci/pci_machdep.cにある関数で、pci_modeを判断する役割を担っているようです。

先のメッセージを出している部分は564行目です。pci_modeを判定するためにレジスタへの書き込みと読み込みを行い、読み込み結果が正しければpci_modeが1になり、そうでなければ567行目のgoto文のnot1というラベル名からもわかるとおりpci_modeは1じゃない処理に進みます。
518 pci_mode_detect(void)
519 {
中略
553 	/*
554 	 * Strong check for standard compliant mode 1:
555 	 * 1. bit 31 ("enable") can be set
556 	 * 2. byte/word access does not affect register
557 	 */
558 	outl(PCI_MODE1_ADDRESS_REG, PCI_MODE1_ENABLE);
559 	outb(PCI_MODE1_ADDRESS_REG + 3, 0);
560 	outw(PCI_MODE1_ADDRESS_REG + 2, 0);
561 	val = inl(PCI_MODE1_ADDRESS_REG);
562 	if ((val & 0x80fffffc) != PCI_MODE1_ENABLE) {
563 #ifdef DEBUG
564 		printf("pci_mode_detect: mode 1 enable failed (%x)\n",
565 		       val);
566 #endif
567 		goto not1;
568 	}
中略
593 }
そういえば、pci_make_tagでもswich文でpci_modeを判別していました。たしかにpci_modeが2で動作して(そしてpanicして)いるみたいですね。

pci_modeが1だろうと2だろうと、正しく動けばどっちでもいいなと思いながらも、なんとなく引っかかります。

また、mode 1とmode 2のコメントを見比べてみると、mode 1はがっちりチェック、mode 2はテキトーチェック、という風に読めます。
    553 	/*
    554 	 * Strong check for standard compliant mode 1:
    555 	 * 1. bit 31 ("enable") can be set
    556 	 * 2. byte/word access does not affect register
    557 	 */

    577 	/*
    578 	 * This mode 2 check is quite weak (and known to give false
    579 	 * positives on some Compaq machines).
    580 	 * However, this doesn't matter, because this is the
    581 	 * last test, and simply no PCI devices will be found if
    582 	 * this happens.
    583 	 */
コメントから読み取れるのチェックの力の入れっぷりと、最初にmode 1を試して、ダメならしぶしぶmode 2を試すというfallbackっぽいロジックになっていることから、pci_modeはフツーmode 1であるべきで、まれなケースでmode 2ということなんじゃないかと。

そもそも、2011年後半に発売されたマシンでmode 2っていうのがそもそもおかしくって、mode 1で動くべきなんじゃないのと。というより、ハードウェアとしてはmode 1で動いているつもりなんじゃないのかなと。

そう考えると、pci_make_tagでdeviceが16未満チェックに引っかかってpanicしているのも辻褄が合います。pci_make_tagのmode 1のチェックはdeviceに対して16未満チェックよりも広い32未満でチェックしています。

じゃぁ、強制的にmode 1で動作させてみたらどうだろう、ということで567行目のgoto not1;をコメントアウトしてみました。

どうやら、ビンゴのようです。一気にマルチユーザで起動しました。記念のdmesgを貼付けておきます。options DEBUGをつけているので冗長ですね。
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 5.99.59 (ZBOX) #14: Sat Jan 21 04:44:23 UTC 2012
	root@ideapad:/usr/home/tokuda/tmp/201112290510Z/source/usr/src/sys/arch/i386/compile/obj/ZBOX
total memory = 3327 MB
avail memory = 3259 MB
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
To Be Filled By O.E.M. To Be Filled By O.E.M. (To Be Filled By O.E.M.)
mainbus0 (root)
pci_mode_detect: mode 1 enable failed (0)
pci_mode_detect: mode1 force enable
Parsing all Control Methods:
Table [DSDT](id 0001) - 739 Objects with 71 Devices 179 Methods 48 Regions
Parsing all Control Methods:
Table [SSDT](id 0002) - 37 Objects with 0 Devices 23 Methods 0 Regions
 tbxface-0560 [02] TbLoadNamespace       : ACPI Tables successfully acquired
evxfevnt-0102 [02] Enable                : Transition to ACPI mode successful
cpu0 at mainbus0 apid 0: VIA Nano X2 U4025 @ 1.2 GHz, id 0x6fc
cpu1 at mainbus0 apid 2: VIA Nano X2 U4025 @ 1.2 GHz, id 0x6fc
ioapic0 at mainbus0 apid 3: pa 0xfec00000, version 3, 24 pins
ioapic1 at mainbus0 apid 4: pa 0xfecc0000, version 3, 24 pins
acpi0 at mainbus0: Intel ACPICA 20110623
acpi0: X/RSDT: OemId <083011,XSDT0920,20110830>, AslId <MSFT,00000097>
evxfevnt-0088 [02] Enable                : System is already in ACPI mode
evgpeblk-0449 [-2] EvCreateGpeBlock      : GPE 00 to 0F [_GPE] 2 regs on int 0x9
evgpeblk-0449 [-2] EvCreateGpeBlock      : GPE 10 to 1F [_GPE] 2 regs on int 0x9
  nseval-0454 [-3] NsExecModuleCode      : Executed module-level code at 0xce0225ec
Completing Region/Field/Buffer/Package initialization:..............................................................................................................................................
Initialized 38/48 Regions 44/44 Fields 32/32 Buffers 28/38 Packages (787 nodes)
Initializing Device/Processor/Thermal objects by executing _INI methods:.
Executed 1 _INI methods requiring 0 _STA executions (examined 77 objects)
acpi0: SCI interrupting at int 9
timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000
hpet0 at acpi0: high precision event timer (mem 0xfed00000-0xfed00400)
timecounter: Timecounter "hpet0" frequency 14318180 Hz quality 2000
NBPE (PNP0C01) at acpi0 not configured
acpivga0 at acpi0 (VUMA): ACPI Display Adapter
acpiout0 at acpivga0 (CRT, 0x0100): ACPI Display Output Device
acpiout1 at acpivga0 (LCD, 0x0110): ACPI Display Output Device
acpiout1: brightness levels: 20 30 40 50 60 80 90 100
acpiout2 at acpivga0 (TV, 0x0200): ACPI Display Output Device
acpiout3 at acpivga0 (DVI, 0x0120): ACPI Display Output Device
acpivga0: connected output devices:
acpivga0:   0x0100 (acpiout0): Ext. Monitor, head 0, bios detect
acpivga0:   0x0110 (acpiout1): LCD Panel, head 0, bios detect
acpivga0:   0x0120 (acpiout3): Unknown Output Device, head 0, bios detect
acpivga0:   0x0200 (acpiout2): TV, head 0, bios detect
acpiacad0 at acpi0 (ACDP, ACPI0003): ACPI AC Adapter
attimer1 at acpi0 (TMR, PNP0100): io 0x40-0x43
pcppi1 at acpi0 (SPKR, PNP0800): io 0x61
midi0 at pcppi1: PC speaker
sysbeep0 at pcppi1
npx1 at acpi0 (COPR, PNP0C04): io 0xf0-0xff irq 13
npx1: reported by CPUID; using exception 16
CIR (ITE8704) at acpi0 not configured
SIOR (PNP0C02) at acpi0 not configured
RMSC (PNP0C02) at acpi0 not configured
OMSC (PNP0C02) at acpi0 not configured
PCIE (PNP0C02) at acpi0 not configured
acpibut0 at acpi0 (SLPB, PNP0C0E): ACPI Sleep Button
RMEM (PNP0C01) at acpi0 not configured
acpibut1 at acpi0 (PWRB, PNP0C0C-170): ACPI Power Button
apm0 at acpi0: Power Management spec V1.2
evgpeblk-0541 [-3] EvInitializeGpeBlock  : Enabled 3 GPEs in this block
attimer1: attached to pcppi1
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0: vendor 0x1106 product 0x0410 (rev. 0x80)
pchb1 at pci0 dev 0 function 1: vendor 0x1106 product 0x1410 (rev. 0x00)
pchb2 at pci0 dev 0 function 2: vendor 0x1106 product 0x2410 (rev. 0x00)
pchb3 at pci0 dev 0 function 3: vendor 0x1106 product 0x3410 (rev. 0x00)
pchb4 at pci0 dev 0 function 4: vendor 0x1106 product 0x4410 (rev. 0x00)
pchb5 at pci0 dev 0 function 5: vendor 0x1106 product 0x5410 (rev. 0x00)
pchb6 at pci0 dev 0 function 6: vendor 0x1106 product 0x6410 (rev. 0x00)
pchb7 at pci0 dev 0 function 7: vendor 0x1106 product 0x7410 (rev. 0x00)
vga1 at pci0 dev 1 function 0: vendor 0x1106 product 0x7122 (rev. 0x00)
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
drm at vga1 not configured
hdaudio0 at pci0 dev 1 function 1: HD Audio Controller
hdaudio0: interrupting at ioapic1 pin 17
hdafg0 at hdaudio0: VIA product 9f80
hdafg0: HDMI00 2ch: Digital Out [Jack]
hdafg0: 2ch/0ch 32000Hz 44100Hz 48000Hz PCM16 PCM24 AC3
ppb0 at pci0 dev 3 function 0: vendor 0x1106 product 0xa410 (rev. 0x00)
ppb0: PCI Express 2.0 <Root Port of PCI-E Root Complex>
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled, rd/line, wr/inv ok
ppb1 at pci0 dev 3 function 1: vendor 0x1106 product 0xb410 (rev. 0x00)
ppb1: PCI Express 2.0 <Root Port of PCI-E Root Complex>
pci2 at ppb1 bus 2
pci2: i/o space, memory space enabled, rd/line, wr/inv ok
ath0 at pci2 dev 0 function 0: Atheros 9285
ath0: interrupting at ioapic1 pin 4
ath0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ath0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
ath0: mac 192.2 phy 14.0 radio 12.0
ppb2 at pci0 dev 3 function 2: vendor 0x1106 product 0xc410 (rev. 0x00)
ppb2: PCI Express 2.0 <Root Port of PCI-E Root Complex>
pci3 at ppb2 bus 3
pci3: i/o space, memory space enabled, rd/line, wr/inv ok
vge0 at pci3 dev 0 function 0: VIA VT612X Gigabit Ethernet (rev. 0x82)
vge0: interrupting at ioapic1 pin 8
vge0: Ethernet address: ZZ:ZZ:ZZ:ZZ:ZZ:ZZ
ukphy0 at vge0 phy 22: OUI 0x0009c3, model 0x0019, rev. 0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
ppb3 at pci0 dev 3 function 3: vendor 0x1106 product 0xd410 (rev. 0x00)
ppb3: PCI Express 2.0 <Root Port of PCI-E Root Complex>
pci4 at ppb3 bus 4
pci4: i/o space, memory space enabled, rd/line, wr/inv ok
vendor 0x1106 product 0x3432 (USB serial bus, interface 0x30, revision 0x02) at pci4 dev 0 function 0 not configured
pchb8 at pci0 dev 3 function 4: vendor 0x1106 product 0xe410 (rev. 0x00)
pciide0 at pci0 dev 15 function 0: vendor 0x1106 product 0x9001 (rev. 0x00)
pciide0: bus-master DMA support present, but unused (no driver support)
pciide0: primary channel configured to native-PCI mode
pciide0: using ioapic0 pin 21 for native-PCI interrupt
atabus0 at pciide0 channel 0
pciide0: secondary channel configured to native-PCI mode
atabus1 at pciide0 channel 1
uhci0 at pci0 dev 16 function 0: vendor 0x1106 product 0x3038 (rev. 0xa0)
uhci0: interrupting at ioapic0 pin 20
usb0 at uhci0: USB revision 1.0
uhci1 at pci0 dev 16 function 1: vendor 0x1106 product 0x3038 (rev. 0xa0)
uhci1: interrupting at ioapic0 pin 22
usb1 at uhci1: USB revision 1.0
uhci2 at pci0 dev 16 function 2: vendor 0x1106 product 0x3038 (rev. 0xa0)
uhci2: interrupting at ioapic0 pin 21
usb2 at uhci2: USB revision 1.0
uhci3 at pci0 dev 16 function 3: vendor 0x1106 product 0x3038 (rev. 0xa0)
uhci3: interrupting at ioapic0 pin 23
usb3 at uhci3: USB revision 1.0
ehci0 at pci0 dev 16 function 4: vendor 0x1106 product 0x3104 (rev. 0x90)
ehci0: interrupting at ioapic0 pin 23
ehci0: dropped intr workaround enabled
ehci0: EHCI version 1.0
ehci0: companion controllers, 2 ports each: uhci0 uhci1 uhci2 uhci3
usb4 at ehci0: USB revision 2.0
pcib0 at pci0 dev 17 function 0: vendor 0x1106 product 0x8410 (rev. 0x00)
pchb9 at pci0 dev 17 function 7: vendor 0x1106 product 0xa353 (rev. 0x00)
ppb4 at pci0 dev 19 function 0: vendor 0x1106 product 0xb353 (rev. 0x00)
pci5 at ppb4 bus 5
pci5: i/o space, memory space enabled
hdaudio1 at pci0 dev 20 function 0: HD Audio Controller
hdaudio1: interrupting at ioapic0 pin 17
hdafg1 at hdaudio1: VIA VT1708S
hdafg1: DAC00 2ch: Speaker [Jack], HP Out [Jack]
hdafg1: ADC01 2ch: Mic In [Jack]
hdafg1: 2ch/2ch 48000Hz PCM16*
audio0 at hdafg1: full duplex, playback, capture, independent
isa0 at pcib0
pckbc0 at isa0 port 0x60-0x64
acpicpu0 at cpu0: ACPI CPU
acpicpu0: C1: FFH, lat   1 us, pow  1000 mW
acpicpu0: P0: FFH, lat  20 us, pow     0 mW, 1200 MHz
acpicpu0: P1: FFH, lat  20 us, pow     0 mW, 1067 MHz
viac7temp0 at cpu0: VIA C7 temperature sensor
acpicpu1 at cpu1: ACPI CPU
viac7temp1 at cpu1: VIA C7 temperature sensor
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
acpiacad0: AC adapter online.
wd0 at atabus0 drive 0
wd0: <WDC WD1600BEVT-24A23T0>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 149 GB, 310101 cyl, 16 head, 63 sec, 512 bytes/sect x 312581808 sectors
uhub0 at usb0: vendor 0x1106 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhub1 at usb1: vendor 0x1106 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhub2 at usb2: vendor 0x1106 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
uhub3 at usb3: vendor 0x1106 UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 2 ports with 2 removable, self powered
uhub4 at usb4: vendor 0x1106 EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub4: 8 ports with 8 removable, self powered
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
umass0 at uhub4 port 3 configuration 1 interface 0
umass0: Generic USB2.0-CRW, rev 2.00/38.82, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
sd0 at scsibus0 target 0 lun 0: <Generic-, Multi-Card, 1.00> disk removable
ehci0: handing over full speed device on port 4 to uhci1
sd0: fabricating a geometry
sd0: 15326 MB, 15326 cyl, 64 head, 32 sec, 512 bytes/sect x 31388672 sectors
sd0: fabricating a geometry
ehci0: handing over full speed device on port 7 to uhci3
Kernelized RAIDframe activated
boot device: sd0
root on sd0a dumps on sd0b
root file system type: ffs
warning: no /dev/console
uhub5 at uhub1 port 2: Chicony Generic USB Hub, class 9/0, rev 1.10/1.00, addr 2
uhub5: 3 ports with 2 removable, bus powered
aubtfwl0 at uhub3 port 1
aubtfwl0: ath3k-1.fw open fail 2
uhidev0 at uhub5 port 1 configuration 1 interface 0
uhidev0: Chicony PFU-65 USB Keyboard, rev 1.10/1.00, addr 3, iclass 3/1
ukbd0 at uhidev0: 8 modifier keys, 6 key codes
wskbd0 at ukbd0: console keyboard, using wsdisplay0
uname -aの結果もついでに。#14ってことで14回もkernelコンパイルしたんですね。
sdhc16g# uname -a
NetBSD sdhc16g 5.99.59 NetBSD 5.99.59 (ZBOX) #14: Sat Jan 21 04:44:23 UTC 2012  root@ideapad:/usr/home/tokuda/tmp/201112290510Z/source/usr/src/sys/arch/i386/compile/obj/ZBOX i386