$30 off During Our Annual Pro Sale. View Details »

OSC2014do NetBSD Teokure liveimage

OSC2014do NetBSD Teokure liveimage

OSC2014北海道のNetBSDセミナーで発表した
「NetBSDておくれLive Imageの紹介と解説」
のスライドです。

Izumi Tsutsui

June 15, 2014
Tweet

More Decks by Izumi Tsutsui

Other Decks in Programming

Transcript

  1. Live Image とは  Live CD の USBメモリ/エミュレータ版 USBメモリなどに書き込んでブート または

    エミュレータ用ディスクとしてブート すれば 「それなりの環境」 でNetBSDが起動するディスクイメージ
  2. makefsでのイメージ作成  展開して実行するだけ ・base.tgz 他のバイナリセットを展開 % tar zxf base.tgz ...

    ・パラメータ指定して makefs(8) 実行 % makefs -M 4g -B le image.root targetroot とか
  3. イメージ作成時の問題点(2)  /dev 以下のデバイスノードは? ・mkisofs では実際のノード作成が必要 ⇒これも rootで実行しないといけない ・makefs(8) ではデバイスノードも

    specファイルをで指定可 ・NetBSDの MAKEDEV(8)は makefs(8)用の specファイル出力オプションあり % sh MAKEDEV -s >> spec とかするだけ
  4. ハードディスクの構成 MBR 空き NetBSD root パーティション (FFS) swap パーティション disklabel

    ブートローダ fdiskパーティションテーブル (歴史的シリンダ境界) NetBSDパーティション  いわゆる ID 169 (0xf9)
  5. fdiskパーティションテーブル MBR 空き ・fdisk(8) コマンド ⇒build toolにあり % fdisk -f

    -u \ -b 487/255/63 -0 -a \ -s 169/2048/7821312 \ -i -c usr/mdec/mbr \ -F image.mbr 後ろのいらない部分はdd(8)で削除
  6. イメージ合成 ・何も考えずに cat(8) で合体 % cat \ image.mbr \ image.root

    \ image.swap \ >> liveimage.fs MBR 空き NetBSD root パーティション (FFS) swap パーティション disklabel ブートローダ
  7. 設定する内容 ①バイナリパッケージインストール pkg_add で必要なパッケージを列挙 ②/etc 以下の各種設定ファイルの修正 /etc/rc.conf , /etc/ttys 等々

    ③各種アプリのデフォルト設定 Firefoxの日本語設定 等 ④ユーザーアカウント作成 useradd(8) コマンドを使用 ~/.xsession 等の設定ファイルはテンプレを用意
  8. 日本語環境設定  Wnnの時代から20年以上が経ちましたが ・最初の Live Image は scim + anthy

    ・2012年3月から ibus + anthy scimがあまりに調子悪いので(´・ω・`) ・2013年から pkgsrc に入った mozc に ⇒pkgsrc-2013Q4から ibus が 1.5 に
  9. ibus 1.5 再チャレンジ  4月: NetBSD 6.1.4 + pkgsrc-2014Q1 ibus

    の新しいバージョンも出ていたので OSunC2014香川の発表 が終わった後に再び調査
  10. さらに ibus デバッグ (gdb) bt #0 0xbaf3b9b3 in g_logv ()

    from /usr/pkg/lib/libglib-2.0.so.0 #1 0xbaf3ba6e in g_log () from /usr/pkg/lib/libglib-2.0.so.0 #2 0xbb69c95f in _gdk_x11_display_error_event () from /usr/pkg/lib/libgdk-3.so.0 #3 0xbb6a5553 in gdk_x_error () from /usr/pkg/lib/libgdk-3.so.0#4 0xbb27ebca in _XError () from /usr/X11R7/lib/libX11.so.7 #5 0xbb255150 in ?? () from /usr/X11R7/lib/libX11.so.7 #6 0xbb255192 in ?? () from /usr/X11R7/lib/libX11.so.7 #7 0xbb255bd4 in _XReply () from /usr/X11R7/lib/libX11.so.7 #8 0xbb20973b in ?? () from /usr/X11R7/lib/libXi.so.7 #9 0xbb20998b in XIGrabKeycode () from /usr/X11R7/lib/libXi.so.7 #10 0x0805489a in keybinding_manager_grab_keycode (modifiers=64, keyval=32, display=<optimized out>, self=0xbacfa6c8) at keybindingmanager.c:922 #11 keybinding_manager_bind (self=0xbacfa6c8, keysym=32, modifiers=GDK_MOD4_MASK, handler=0x80570f3 <___lambda30__keybinding_manager_keybinding_handler_func>, handler_target=0xbaca80b8) at keybindingmanager.c:217 #12 0x08056d69 in panel_keybinding_manager_bind ( accelerator=0xba4c0470 "<Super>space", keybinding_manager=0xbacfa6c8, self=0xbaca80b8) at panel.c:943 #13 panel_bind_switch_shortcut (self=0xbaca80b8) at panel.c:1007 #14 0x08059527 in panel_load_settings (self=0xbaca80b8) at panel.c:1781