Top / EBUG勉強会 / 20140507_実用で使う河豚板

実用で使う河豚板

川俣 吉広
EBUG勉強会 @ 十日町, 2014/5/17

業務連絡

おさらい編

LiveCD/LiveUSBから Live何か
  • インストール媒体は700MB以上の(OpenBSDで認識できる)記憶デバイスであればOK。
    • ブート可能なデバイスでなくてもOK ... ブートローダとシステムが格納されているデバイスをを個別に指定できるため。
  • 例:
    • LiveCD (配布物)
    • usbfadmユティリティにより作成
      • LiveUSB
      • LiveSD
      • LiveCF
      • LiveHDD
      • etc...
    • あるいは、OpenBSDで認識できるファイルシステム内のルート直下に「ISO」というディレクトリを作成し、その中に河豚板のISOイメージを置いておく
      ... この方法はNTFSやFATでもOK → C:\ISO\FuguIta-5.5-201405031.iso
  • 実演
    • usbfadmユティリティを使用してLiveUSBを作成してみる

      ... usbfadmを起動後、newdriveサブコマンドにより対話的に操作する;

  • メディア作成のイメージ ;
     LiveCD                                    Live何か
    +--/dev/cd?a---------+                    +--/dev/???a---------+
    | boot, cdbr, cdboot |                    | boot, cdbr, cdboot | ブートローダ
    | bsd-fi, bsd-fi.mp  |==[usbfadm]==COPY==>| bsd-fi, bsd-fi.mp  | カーネル
    | fuguita.ffsimg     |     ||             | fuguita.ffsimg     | ファイルシステムイメージ
    +--------------------+     ||             +--/dev/???d---------+
                               |======NEWFS==>| noasks             | 自動起動パラメータ
                               ||             | livecd-config/*    | ユーザデータ保存領域
                               ||             +--/dev/???i---------+
                               |======NEWFS==>|                    | FAT領域
                                              +--------------------+
  • USBメモリを起動してみる
    ... 起動手順をもう一度確認しながら
    • Boot Prompt
      CD-ROM: 82
      Loading /CDBOOT
      probing: pc0 pci mem[635K 511M 510M 2210M 758M a20=on]
      disk: fd0 hd0+* cd0
      >> OpenBSD/i386 CDBOOT 3.23
      |
      >> Uniprocessor kernel is
      >> 'bsd-fi'.
      >> Enter this if you wish.
      
      boot>
      • 起動するカーネルの選択(デフォルトはbsd-fi.mp)
      • カーネルにフラグを渡す

        -c ... UKCの起動

        -a ... ルートFSの手動設定

        -s ... シングルユーザモードでの起動

    • UKC (User Kernel Config)
      • カーネルパラメータの変更
        ... デバイスドライバの有効・無効化、カーネルタイムゾーンの変更など
    • 河豚板固有の設定
      • 河豚板のファイルツリーが格納されているデバイス
        ... 河豚板の入っているデバイスが複数装着されている場合、任意に選択可
  • mfsサイズ
    40位MB〜1023MBで入力(デフォルトは、実装メモリサイズの半分)
  • ブートモード ... 初期ブートはモード0,1,2から選択
    モード0 ... Liveメディアとして通常使用するデフォルトのモード
    モード1 ... モード0より省メモリで短時間でブート完了する。但し/usr以下がread onlyとなるため、pkg_addなどでソフトを追加することは不可能。
    モード2 ... ファイルツリーを全てmfs上にコピーして動作する。mfsサイズは740位MB以上を指定。ブート完了後は起動に使用したメディアを取り外し可能。
  • /etc以下の設定
    • キーボードタイプ
    • ルートパスワード ... 簡単過ぎるパスワードは、撥ねられますので注意。
    • ネットワーク関連 ... ホスト名、設定デバイス名、IPv4 and/or IPv6の指定、名前解決の設定、アドレスの設定 など
  • 各種設定/ユーザデータの保存と復帰
    • usbfadmによる保存
         ↓
        リブート
         ↓
      ブートモード3による復帰

実践編 ... 動くモノを作ってみよう

簡単な専用アプリケーション端末を作ってみる

  • 動作仕様
    • OS起動後、認証なしでログインし、アプリケーションを立ち上げ
    • 電源ぶち切りOK、あるいは電源チョン押しで自動shutdown。

... 簡単なサンプルとして、「時計表示端末」を作成してみる

  • 機能概要
    • xclockで表示
    • OpenNTPDで時計合わせ
    • 正時に時報音送出
  • 実装手順
    • 自動起動 ... データ保存デバイスのdパーティション内にあるnoasksファイルをアンコメントし、編集する。
      #
      # noasks - parameter settings for non-interactive boot
      #
      # Make statements uncommented
      # to activate settings
      #
      #
      # FuguIta system device
      noask_rdev='sd2a'
      #
      # mfs size in MB
      noask_umem='1023'
      #
      # boot mode
      noask_setup_rw_mode='3'
      #
      # data set name in USB flash drive
      noask_confdir='5.5-ebug49'
      ...このように値を設定しておくと、起動時にはプロンプトに設定値が充当されるようになる。

    • daemon ... /etc/rc.conf.localを編集 (注: /etc/rc.confはシステムのデフォルト値なので、このファイルは編集しない)
      shlib_dirs='/usr/fuguita/lib'
      pkg_scripts='dbus_daemon'
      ntpd_flags=''                 ←この行を追加し、OpenNTPDが起動されるようにする。
      次いで、daemonに関係した設定ファイル等を編集(OpenNTPDの場合は /etc/ntpd.conf)。
      # $OpenBSD: ntpd.conf,v 1.11 2009/05/18 16:13:48 stevesk Exp $
      # sample ntpd configuration file, see ntpd.conf(5)
      
      # Addresses to listen on (ntpd does not listen by default)
      #listen on *
      
      # sync to a single server
      #server ntp.example.org
      
      # use a random selection of NTP Pool Time Servers
      # see http://support.ntp.org/bin/view/Servers/NTPPoolServers
      servers ntp.nict.jp
      
      # use a specific local timedelta sensor (radio clock, etc)
      #sensor nmea0
      
      # use all detected timedelta sensors
      #sensor *
    • cron
      ... 時報音を送出するための自作スクリプトfileTimeSignal.plをcrontabに登録し、毎時59分に起動するようにする。
      #       $OpenBSD: crontab,v 1.19 2013/10/19 15:26:06 halex Exp $
      #
      # /var/cron/tabs/root - root's crontab
      #
      SHELL=/bin/sh
      PATH=/bin:/sbin:/usr/bin:/usr/sbin
      HOME=/var/log
      #
      #minute hour    mday    month   wday    command
      #
      〜略〜
      #
      # time signal tone
      59      *       *       *       *       /root/bin/TimeSignal.pl -mjta
    • 認証なしでアプリケーションを起動するには ... Xの場合は、/etc/ttysファイルに直接記述する方法が使用可能
      #
      #       $OpenBSD: ttys,v 1.18 2008/01/09 17:39:42 miod Exp $
      #
      # name  getty                           type    status          comments
      #
      console "/usr/libexec/getty std.9600"   vt220   off secure
      ttyC0   "/usr/libexec/getty std.9600"   vt220   on  secure
      ttyC1   "/usr/libexec/getty std.9600"   vt220   on  secure
      ttyC2   "/usr/libexec/getty std.9600"   vt220   on  secure
      ttyC3   "/usr/libexec/getty std.9600"   vt220   on  secure
      ttyC4   "/usr/bin/su - ebuguser -c startx" vt220 on secure
      ttyC5   "/usr/libexec/getty std.9600"   vt220   on  secure
      ttyC6   "/usr/libexec/getty std.9600"   vt220   off secure
      〜略〜
    • その他必要に応じたカスタマイズ
      • locale
        ... /usr/local/share/locale/ja.tar.bz2 などを解凍
        ... ~/.xinitrcの以下の部分をアンコメントする
        # #=======================================
        # # If you wish to activate locale settings
        # #  1) Uncomment and reconfigure following commands
        # #  2) Ungzip files under /usr/local/share/locale/YOUR-LOCALE
        # #
        # LANG=ja_JP.UTF-8
        # LC_ALL=$LANG
        # XMODIFIERS='@im=uim'
        # GTK_IM_MODULE='uim'
        # QT_IM_MODULE='uim'
        # export LANG LC_ALL XMODIFIERS GTK_IMMODULE QT_IMMODULE
        # #
        # uim-xim &
        # #
        # #=======================================
      • swap, /optのマウントなど
        ... /etc/rc.localに記述する (注: /etc/fstabは河豚板の起動スクリプトによって毎起動時に生成されるため、ここに書いても上書きされる)

OpenBSDの最近の主なトピックス

  • ネットワーク系daemonの切替え
    OpenBSD 5.5では新旧併存。次期リリースの5.6で古い方はなくなる予定
    • sendmail → OpenSMTPD
    • Apache → Nginx
    • BIND → NSD, unbound
  • OpenSSLのハック(LibreSSL)
  • time_tの64bit化
  • Packagesが署名付に / signify(1)ユティリティの開発
  • インストーラに自動インストールモードを追加
  • vxlan(4) (virtual extensible local area tunnel interface)の追加
  • pfの優先制御/帯域制御を実装しなおし(ALTQは廃止)
  • mfs → tmpfs
  • kerberosVの廃止 (-current)

Attach file: fileTimeSignal.pl 483 download [Information]
Reload  New Edit Freeze Diff Attach Copy Rename  Top Index Search Recent Backups  Help  RSS
Last-modified: 2014-05-23 (Fri) 12:15:37 (1641d)