にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ

2014年05月17日

世界の全ての機器を制覇するOS NetBSDを使ってみた インストール&セットアップ その1

次のディストリの旅はNetBSDです。
NetBSDは世界中のありとあらゆる機器にUNIXを移植する
恐るべき世界制覇の野望をもったOSです。
X68kやMacだけでなく、
ZaurusとかWindowsCE、Wzero3とかPDAもサポートしてます。
ただ*BSDという情報の少なさか、どこかで聞いた事があるけど
謎のOSという印象でしょうか。
また使った事が無いけど設定が細かくて
難しそうというイメージが先行しているのではないでしょうか。

ARMやMipsなどでは代表的となるOSですが、
実際使ってみて一度は苦しみましょう。
勉強用の教材としても最適です。

●NetBSDとは
NetBSDとは*BSD直系のUNIXの子孫の一つで、
洗礼された設計で高い移植性を持つ優れたOSです。
世界中の様々な機種への移植、ドライバ作成されています。
機種独立と言われるアーキテクチャ非依存な設計の為、
組み込み機器やモバイル機器には圧倒的に強く、
サーバ用途に対しても広く使われております。

当然ながら*BSDの大手として全世界中に広がるコミュニティとなっています。
ストイックさを代表する*BSD関係は、
ユーザーの多くは*BSDスペシャリストが多く、
中々Linux関係の様に初心者を受けれいるのは課題かと思います。
まあ、ArchLinuxあるし作業は同じだし無理はないけど。

またこれだけ全世界的なOSの割に日本人の活動が強く、
mikutterを代表としてかなりのアプリがポーティングされています。
OSCを中心として精力的に活動しているので日本全国に
TwitterやFacebookを通じて開発情報が誰でも聞ける所は強みでしょうか。
irc中心のコミュニティが多い中で珍しい活動と言えます。
これだけ精力的なコミュニティーは日本でも唯一の力を持っています。
ircそのものは公開されていますが、ircに参加することは難しいですからね。

コンパイルとドライバ作りの作業負担がどうしても大きいのが課題で
待ち時間が長く実作業時間が非常に短くなる事から、
OSとしての開発は遅れがちになるのが残念です。
Ubuntuの様に1機種限定のリソース集中主義と比べると
広範囲な開発体制が課題となり開発速度が非常に遅くなる傾向にあります。

・ユーザーを沢山勧誘して潜在的リソースを増加させる。
・設定を簡単にしてユーザーが入りやすい間口をつくり上げる。

この2点が飛躍するために必要な課題でしょうか?
工夫が要りそうですよね。

●NetBSDを使うにあたってあると便利なスキル
初期設定が面倒なので、先に慣れておいた方が良いスキルを列記します。
習うより慣れろを実践すると途中で挫折して屍をさらす事にもなりかねません。

・CUIのインストーラー、専門用語が何となく感じ取れるスキル
・英単語から内容を雰囲気で何となく感じ取れるスキル
 ⇒五感で感じ取れば読めなくても多分大丈夫ですw
・CUIのネットワークの設定が読みながらで何となく出来るスキル
 ⇒ネットの参考サイトからコピーするだけでも十分です。
・初期設定でviをエディタとして使えるスキル。
 ⇒「ESC」と「:」と「wq」さえ分かれば問題ないですw
   pkgsrcでnanoかleafpadなどエディタを入れるまで数回つかう程度かと。
・pkgsrcでパッケージをインストール出来るスキル
 ⇒Linuxか何かで一度は試しに使ってみましょう
  pkgsrcでパッケージを入れられないと何をして良いか分からなくなります。
  pkgsrcでパッケージを入れる所までがNetBSDです。
・エラーメッセージが出てもグクって泣かない程度のスキル
・エラーメッセージをネットのどこかに貼って公開してくれる程度のスキル
 ⇒出ない事を祈りましょう。
  エラー情報はネット社会のどこかに公開して頂ければ
  世界中の皆様が平和になりますのでご協力願います。
・X.orgの設定を何となく参考サイトを読みながら出来るスキル
・Arch Linux Wikiをしっかり読んで勉強するスキル
・スクリーンショットを保存してネットに公開できるスキル
・mikutterでておくれ
・ZaurusとNetwalker最強

この中でpkgsrcとviはLinuxか何かで予習しておくと楽です。
Arch Linuxとは基本的なインストール方法が似ているので応用可能です。
CUIでの設定も万国共通なので参考サイトの検索と確認は必須です。


●NetBSDのインストール
イメージファイルはUSB用のIMGとCD用のISOと分かれています。
ISOはCDにしか焼けませんので注意。
最初は必ずCDから起動してインストールしましょう。
ネットワークインストールとかはftpサーバに繋がらなくて
挫折する可能性が高いからです。
CUIでのインストールは選ぶだけですが
中身が分かりにくいのが難点です。
こちらのサイトが一番分かりやすいのでご参考に。感謝。
 
 NetBSDのインストール

1、言語選択。日本語無いので英語しか選択肢無いですが
2、キーボードは日本語。レイアウトがおかしいので別途変更。
3、HDDにフルインストール。pkgsrc入れるまでは色々あった方が良い。
4、HDDのブートをNetBSDのブートローダーをMBRに書き込むか否か。
  デュアルブート時は注意
5、HDDのパーティション選択。分からない人は無理せずお任せに。
6、コンソールデバイスを選択。通常はBIOS選択。
7、インストールメディア選択は通常CDから。
8、ネットの設定は有線LANの人はIP入力して設定。
9、rootのパスワードは各自設定。入れておきましょう。
10、Rebootを選択して再起動。


注意点は、

・必要なHDDパーティションを消さない様に注意。
 まあ最初は全部消してインストールしても良いかも。
・MBRの書き込みは他のOSが立ち上がらなくなる事もあり。
・LANの設定出来るが大抵つながらない事が多いので
 DVD/CDからインストールする方が確実。
 後でLANの設定した方が良い。
・無線LANの設定は現段階では多分難しい、出来ないので注意。

●初期設定
rootで使うのも問題なのでまず新規ユーザーを作成する。
もちろんパスワードも設定します。
ユーザーグループを使う人も登録しておきましょう。

 useradd -m {ユーザー名}
 passwd {ユーザー名}

rootでログインしている場合はいったんログアウトして
再度作成した新規ユーザーでログインし直します。


●Viエディタ概要
最初はどうしてもviエディタを使う事になります。
こちらなどどこかの解説HPをご参考願います。

 vi エディタの使い方

起動する際は

 vi /etc/rc.conf

みたいな感じでファイルを指定します。
viには3つのモードがあり、切り替えて使う形です。
詳細な使い方は専門のサイトや書籍に任せるとしてざっくりと。


・コマンドモード
 立ち上がった際にコマンドモードになっています。
 この段階では入力したり保存したりと言った作業は出来ません。
 削除する時は、削除したい文字の上で「d」、「→」キーで消します。
 挿入モードでは削除出来ないので初心者には面倒な所ですかも。

・挿入モード
 通常のテキストエディタと同様に入力するモードです。
 コマンドモードで「i」キーで切り替えます。
 終了する際には「ESC」キーを押します。

・exモード
 保存したり終了したりするモードです。
 コマンドモードで「:」キーで切り替えます。
 保存して終了する際は「wq」と入力、
 保存しないで終了する際は「q!」と入力して終了します。


●ネット設定とDHCPクライアント
今回は無線LANの設定しました。
内臓タイプのLANカードは大抵自動認識しているはずですが
USBなど外付けの場合は確認しないと分かりません。
まず見てみます。

 ifconfig -a

認識していればずらずらと出てくるはずです。
これうちのCF-T8の環境です。
wm0が有線LANでiwn0が無線LANです。
設定してリンクした後のデータですが。

# ifconfig -a
wm0: flags=8843 mtu 1500
capabilities=7ff80
enabled=0
address: **:**:**:**:**:**
media: Ethernet autoselect (none)
status: no carrier
inet ***.***.***.*** netmask 0xff000000 broadcast 255.255.255.255
inet6 ****::***:****:****:****%wm0 prefixlen 64 scopeid 0x1
iwn0: flags=8843 mtu 1500
ssid ********** nwkey 65536:"",***********************,"",""
powersave off
bssid **:**:**:**:**:** chan 11
address: **:**:**:**:**:**
media: IEEE802.11 autoselect (OFDM54 mode 11g)
status: active
inet ***.***.***.*** netmask 0xffffff00 broadcast ***.***.***.***
inet6 ****::***:****:****:****%iwn0 prefixlen 64 scopeid 0x2
lo0: flags=8049 mtu 33192
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3

これが認識しているデバイスです。
そのうち、

 status:active

となっているデバイスがインターネットに認識出来ている物です。
インストール時に有線LANの設定をしている人は
activeになっているかもしれませんが
無線LANの人はまだのはずです。
とりあえずこちらを参考にしました。感謝です。
細かい設定はwpa_supplicantの詳しいサイトを参考下さい。

 NetBSDでwpaを使う

/etc/wpa_supplicant.confに無線LANの設定を書き込みます。
無線LANの設定には各自のルータを確認ください。

vi /etc/wpa_supplicant.conf

我が家のWPA-PSKの例ですが下記の内容を入力して保存します。
SSIDはルータに記載してあるもので
pskはパスワードの事です。

 network={
  ssid="************"
  scan_ssid=1
  key_mgmt=WPA-PSK
  psk="********"
 }

保存しましたらテストします。
下記のコマンドを実行してみます。
iwn0はCF-T8のWifiなので各自のLAN設定を入れて下さい。


 wpa_supplicant_flags="-B -i iwn0 -c /etc/wpa_supplicant.conf"

でその後確認でifconfig -a
無事status=activeになりましたらOKです。
ルータからDHCPでIPアドレスを習得する場合は
下記のコマンドを入れてみます。
問題が無ければIPアドレスを自動習得できるはずです。

 /etc/rc.d/dhcpcd onestart

無事動作確認できましたら、
起動時の設定でrc.confに書き込みます。

vi /etc/rc.conf

下記を参考例に追記しておきます。

 wpa_supplicant=YES
 wpa_supplicant_flags="-B -i iwn0 -c /etc/wpa_supplicant.conf"

 dhcpcd=YES

IPアドレスを直接入力する際は一例として
下記の形で/etc/rc.confに追記するそうです。
まだ試していませんが。

 hostname=myhost.exsample.org
 ifconfig_iwn0="inet 192.168.100.10 netmask 255.255.255.0"
 defaultroute=192.168.100.1


保存したら再起動してifconfig -aで動いているか確かめてみましょう。
無事status=activeになりましたらOKです。


●Pkgsrcでアプリインストール
NetBSDのパッケージツールがpkgsrcです。
NetBSDのkernelと本体部分、パッケージ関連ツールは
完全に独立していまして、ユーザー単位での設定までも可能です。

OSがUbuntuですが簡単な使い方はこちらも参考願います。

 Ubuntu改造日記 最新版 NetBSDパッケージ pkgsrcテスト編 その22

まずftpコマンドでpkgsrcファイルをダウンロードします。
つまりネット接続ができる状態でないといけません。
ただしpkgsrcを入れる前ではブラウザも使えませんし殆ど機能してませんので必須です。
pkgsrcの導入についてはこちらをご参考下さい。
 
 Chapter 2. どこからpkgsrcを得て、どうやって最新に保つか

安定版のpkgsrcはこちらです。
xxとyにはその時の年次を入れましょう。
ただし注意なのはいつも最新のpkgsrcがサーバにあるとは限らない事です。
何故かエラーで繋がらない場合はftpサーバにファイルがまだアップロードされていない場合が
殆どです。こうなると待ってても解決しません。
エラーが出る場合は、他のPCでアドレスをブラウザで開いてみて
該当ファイルがあるかどうか確認しましょう。

 $ ftp ftp://ftp2.jp.NetBSD.org/pub/pkgsrc/pkgsrc-20xxQy/pkgsrc-20xxQy.tar.gz

回線が結構重いのでミラーサイトを使いましょう。

https://www.netbsd.org/mirrors/

で、面倒なので大抵の人は開発版のcurrentを入れる人が多数です。
currentはこちらです。

 $ ftp ftp://ftp2.jp.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.gz

どちらでも良いのでダウンロードできましたらインストールしてみましょう。
まずは圧縮ファイルの展開です。

 tar zxvf pkgsrc.tar.gz

展開出来たらpkgsrcの実行です。

 cd pkgsrc

wwwとか色々なカテゴリのディレクトリが見えるはずです。
後はmakeすれば自動的にコンパイルしてくれるはず。

 cd pkgtool/direct
 make
 make install

バイナリパッケージから入れる場合は、pkg_addを使います。別途追記しました。
後は自動的にダウンロードして展開してくれます。
自分のユーザーだけで使いたければbootstrapを使うのも手です。
これはユーザーを気にせず各自の環境単位でインストールしてくれます。
主にLinuxなどNetBSD以外の環境で使います。

最初に入れたほうが楽なパッケージは

 devel/ncurses
 editor/nano
 editor/leafpad
 fonts/efont-unicode

後は自分の好きなパッケージを入れてみましょう。
それ以外は他のUnix環境と同じです。

pkgsrcのソースディレクトリ一式を更新する場合は
cvsのアップデートを使用します。

 $ cd /usr/pkgsrc && cvs update -dP

その後、個別のパッケージのインストールは

 pkg_delete (パッケージ名)
 make clean && make && make install

を行って入れ直してみましょう。

●バイナリパッケージ導入 pkg_addを使う。
ソースコードを一個づつコンパイルしてインストールするのも確実ですが
時間がかかりますのでバイナリパッケージを直接インストールします。
最初に使う際にはFTPサーバの設定が必要です。
まずはこちらを参考にしてみてください。

 4.1. バイナリーパッケージを使う

FTPサーバを設定します。
pkgsrcの設定とは別に必要なので注意します。

 # PATH="/usr/pkg/sbin:$PATH"
 # PKG_PATH="ftp://ftp.NetBSD.org/pub/pkgsrc/packages/OPSYS/ARCH/VERSIONS/All"
 # export PATH PKG_PATH

後はpkg_addコマンドでパッケージを指定するだけです。
もしバイナリパッケージがサーバに無ければソースからコンパイルしましょう。
一例はこちらです。
注意点はバージョン指定からnb2など最後まで一連の名前を指定しないと動作しません。
複数のバージョンを並列して管理している設計の為です。
パッケージ名は都度チェックする必要があります。
本家HPの例ではワイルドカード文字も使っています。

 # pkg_add openoffice2
 # pkg_add kde-3.5.7
 # pkg_add ap2-php5-*

●インストール済みパッケージ更新 pkg_chk、pkg_rolling-replace
インストール済みパッケージの更新にはpkg_chkかpkg_rolling-replaceを使います。
pkg_chkは一度消して再度入れ直す方式で
pkg_rolling-replaceは依存関係に基づいて再度インストールする方法です。
どちらを使っても動くはずです。

・pkg_chk
まずpkg_chkのパッケージを入れます。
次にcvsでpkgsrcを更新してからアップデートをかけます。

 cd /usr/pkgsrc/pkgtools/pkg_chk
 make package-install
 cvs update -PAd
 pkg_chk -u

・pkg_rolling-replace
こちらも同様です。

 cd /usr/pkgsrc/pkgtools/pkg_rolling-replace
 make package-install
 cvs update -PAd
 pkg_rolling-replace -u

後は全自動です。

●X.orgの設定とGUIで遊ぼう
こちらに書きましたので是非ご一読を。
バイナリパッケージのpkginを使ってアプリ簡単に入れれる方法も
記載してあります。

 世界の全ての機器を制覇するOS NetBSD Xorg設定-xfce4インストール その2
 世界の全ての機器を制覇するOS NetBSD XFCE4の日本語化、ibus-anthy日本語入力設定 その4

●Mikutterが動くLiveImageを使ってみる
まとめてMikutterまで動作するライブイメージが公開されております。
ありがとうございます。
感謝して是非使ってみましょう。
詳細は本家HPが詳しいのでそちらをご確認願います。

 NetBSD/i386 6.1.4 ておくれLive Image

●x86以外でも実践してみよう
各機種毎まではちょっとページが足りませんので別途。
NetwalkerにNetBSDを動作させた例を参考までこちらに。

 モバイルUbuntu、NetWalker登場 NetBSD 2014-06-14RaspberryPiイメージ MicroSD+USBブート テスト1編 その226


●NetBSDが活況する為に求められる事

個人的に勝手な意見ですが、難しいといった先入観を
少しでも和らげればなあと思います。
もっと面倒なArch Linuxもありますし。
Izumi Tsutsui氏よりご講演がありました内容でLiveImageを作成する過程で
普通の人が思う様な疑問点が下記プレゼンで解説なされています。
まず是非一読願います。




・NetBSDの優れている点

マルチアーキテクチャで環境に依存しない設計が素晴らしい。
パッケージがOSから独立しているので、ほとんどのOSでpkgsrcが対応している。
 ⇒pkgsrcの良さが伝わっていないのが残念。
 各OS、Linuxディストリ向けにpkgsrc導入解説記事を書く必要がある。
 Linux向けのバルグビルドがないのでエラーがでます。
 個別コンパイル必要なんですけど、NetBSDパルクビルドが
 Linux向けでも必要なのかなぁ、と。

全ての環境で一様な設定で動作するので慣れれば機種毎で悩まなくてすみます。
LinuxだとDebianとかFedoraでもディストリやバージョン、機種毎にぐちゃぐちゃなので 
このバージョンだとこれ、この機種だとこれ、Kernelのバージョンがこれ、
と言った感じで環境毎に変わってくるので大変悩みます。

パッケージがKernelやOSから独立しているのでパッケージのバグとの依存関係でOSが死ぬことが無い。
サーバ運用では確実に安全な設計です。
Ubuntuとかだとクリティカルなバグがあるとパッケージの依存関係から
数珠繋がりで止まってOSが起動しなくなることが全然珍しくありません。
リリース直後は特に危険ですよね。
Linuxで安定している環境の場合、下手にアップグレード出来ないジレンマがたまにあります。
NetBSDで無縁なのはOSと分離しているからで設計思想が明らかに優れている為です。
ひょっとしたらサーバをBSDで運用しているユーザーが多いのはその為かもしれません。


・NetBSDの難しい点

ストイックすぎるインストーラーと初期設定。
インストールした後に何をしたら良いのか分からない人多数。
 ⇒多分pkgsrcまで辿り着いていない方々かと思います。
 pkgsrcでパッケージをインストールして実行までいけば基本的に問題ありません。
 是非pkgsrcを使ってみましょう。
 ドキュメントの作成は時間のあるときブログのネタにしてみますが、
 初心者なので細かい記載は難しいですけど。

LiveImageでDebianに対するKnoppix、Gentooに対するSabayonがいるのかも。 
LiveImageはておくれがあるんですけど、jwmやicewmだと宣伝効果が低い。
初心者向けにLXDEとGnomeのバージョンがあると意外と使ってくれる。

コンパイルに時間がかかりすぎるのでpkg_addかpkginを使いましょう。
やり方はGentooやaptと似たようなものです。ほぼ全自動で動作します。
CUIコマンドをコピーして実行すれば一応問題ないかと。
それぞれのドキュメントは良好なのですが分散しているので、
SEO的な意味合いを含めArchLinuxのwikiみたいに
更新頻度が高く検索エンジンにヒットしやすくなると助かります。

・pkgsrcを普及させましょう。
Linuxを使っている人がいきなりNetBSDを使うには間違いなく抵抗があるはず。
自分のプラットフォームを入れ替えるには勇気がいります。
でも最新のmikutterを使ってみたい、そんな人はたまにいます。
まずpkgsrcを使ってみましょう。
pkgsrcを使えれば大体40%位はNetBSDを使っていることになります。
pkgsrcを使える様になれば、時期にNetBSD本体を使うのも
多分抵抗がすくなるなるかと思います。
おそらくきっと。


●NetBSD関連情報サイトまとめ

NetBSDのインストール

NetBSD パッケージシステムに関するドキュメンテーション

Ubuntu改造日記 最新版 NetBSDパッケージ pkgsrcテスト編 その22

NetBSD/i386 6.1.4 ておくれLive Image

NetBSDでの無線LAN設定

NetBSD インストール直後の初期設定まとめ

pkgsrcでソフトウェアをインストールする


●まとめ
非常に洗練された設計で、Kernel依存性のない作りは流石です。
一度使ってみればZaurusやWzero3など超小型端末でも使えるはずです。
勉強できる所はx86の環境で一通り習得しておきましょう。
この作業を繰り返すたびに学習しなおすのは大変なので、
どこかに記録を残しておくと楽です。
ドキュメントを残して再現できる様になれば、
貴方のスキルは別人の様に卓越したレベルになっているはずです。
Arch Linuxと比べれば、同等かこちらの方が幾分楽です。
ブログやWikiの情報量は差がありますけど。

コミュニティの皆様はオープンソースカンファレンスに
可能な限り出展されている様なので
色々と直接お聞きしてみて下さい。
技術情報から簡単な使い方まで聞けるかもしれません。
様々な機種の展示を行っておりますので見るだけでも幸せになれます。
大変親切な方々ばかりなので怖がる必要はありません。
最初の一言が思いつかなければ、「この機種でもNetBSDとMikutter動きますか?」
でも十分かもしれません。
是非持ち寄ってみましょう。


総評
難易度  ★★★★★
お勧め度 ★★★
posted by kapper at 18:37 | Comment(0) | NetBSD
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ