気の向くままに辿るIT/ICT/IoT
システム開発

VirtualBoxにNetBSDをインストール

ホーム前へ次へ
ゲストOSとしてBSD/PC-UNIXをインストール【VirtualBox】

仮想マシンで動くOS

VirtualBoxにNetBSDをインストール

 仮想化ソフトウェアの1つVirtualBoxで作成した仮想マシンゲストOSには、様々なOSをインストールできますが、このページでは、BSD/UNIXディストリビューション(ディストロ)の中から任意に抽出し、当サイトにおいてVirtualBox上で検証したBSD/UNIX系OSの内、NetBSDのインストール及び起動について記します。

[仮想化ソフトウェア]

VirtualBox 4.3.14 r95030

[ホストOS]

Fedora 20 KDE Spin
x86/32ビット

[ホスト環境]

CPU:Intel Core2 4300@1.80GHz
CPU Architecture : x86/32bit
仮想化支援機能(Intel VT)なし
RAM:2GB

Screenshot/スクリーンショット

スクリーンショット一覧
NetBSD
NetBSD
NetBSD/i386
VBoxSDLコマンドでインストール&起動
撮影時のデスクトップはLXDE

VirtualBoxとNetBSD/i386

 尚、以前、試してみた際になぜかVirtualBoxにNetBSD/i386をインストールできず、QEMUVMware Playerにインストールできたので放置していましたが、ホストマシンのHDD換装/RAM微増強、ホストOSをWindows Vista SP2からFedora 20に入れ替え、Fedora上にVirtualBoxをインストールした後、ふと、やっぱり、VirtualBoxだけできないってことないよね?と思って調べてみたら、随分前からhttps://www.virtualbox.org/ticket/3947のQ&Aにあるような解決策というか代替策があったようで可能であることが判明しました。

 そのリンク先のQ&A上でもVirtualBoxにNetBSD/i386をインストールするにあたってCPUのIntel VTx/AMD-Vなどハードウェア仮想化支援機能の要否が語られていますが、結果、そうした機能がなくてもできるとのこと。

 当サイトの検証用ホストマシンは以前も今もこれら仮想化支援機能には対応していませんが、先の通り、VMware Playerにはインストールできましたし、それは、VMware Playerにハードウェア仮想化機能がない場合、自動的に「ソフトウェア仮想化支援機能」なるもので代用してくれる機能が備わっているからだとすると、VirtualBoxの仮想マシンが未対応だからという見方もできますが、そういう意味ではグラフィカルフロントエンドQtEMUによるQEMUで作成した仮想マシンにもインストールできたのでVirtualBoxで何らかの対応方法があるはずと思い調べてみたところリンク先の情報に辿り着きました。

VBoxSDL --norawr0 --startvm NetBSD

VBoxSDL --nopatm --startvm NetBSD

 それにしても根本的な解決策とは言い難いものの、VirtualBoxマネージャからなり、他なりで仮想マシンを作っておき、その後、コマンドラインからVBoxSDLを使えば、VirtualBoxマネージャからではインストールすることができないNetBSD/i386をインストールしたり、起動したりできるというのは目から鱗でした。

 ちなみにスクリーンショットでは、VirtualBoxマネージャも起動させていますが、別にその必要はなく、端末からVBoxSDL...とするだけで仮想マシンを起動することが可能です。

 ドキュメントによれば、VBoxSDLは、試験的なものであって公式にサポートされるものではなく、Windows、Linuxには対応するものの、Mac OS Xには未対応のデバッグ用のコマンドである模様、また、コマンドラインオプションも豊富で解像度なども指定できるなど柔軟な設定が可能となっているようですが、今回のような使い方が想定されたコマンドではないようです。

 尚、仮想マシンの指定には、仮想マシン名やUUIDが使えるとのことで、最初、何も考えずにフルパスで.vdiを指定してみたらダメで、あれ?と思って仮想マシン名である(拡張子のない)「NetBSD」としてみたら、あっさりインストールでき、VirtualBoxマネージャのNetBSD用仮想マシンの設定でインストール用のディスクイメージやディスクを外した上、同様のコマンドを実行したら、あっさり、起動もできました。

 ちなみに(VBoxSDLのパスが通っているという前提、かつ、VirtualBoxマネージャの[ファイル(F)] > [環境設定(P)]の[一般]タブで設定されている仮想マシンの保存先を参照するのだと思いますが、)この時、コマンドを実行するパスは仮想マシンのあるディレクトリである必要はなく、任意です。

NetBSD/i386 6.1.4のインストール

 今回は、NetBSD 6.1.2用のboot.isoを使用させて頂きましたが、既に6.1.4がリリースされているのでインストール中に変更し、NetBSD/i386 6.1.4をインストールしました。

 NetBSD/i386のインストールについては、QEMUでの検証の際、インストール後のアプリケーション等については、VMware Playerでの検証の際に書いたので、ここでは、端折ります。

物理マシン上のNetBSD/i386でできたことのおさらいと確認

 今回インストールできたら、やってみようと思っていたことは、物理マシン上のNetBSD/i386 Xfce4でできたことのおさらいと確認です。

 何を確認したいかというと音量調整関連とFlash Player関連でYouTube、Gyao!、radikoを視聴する際の下準備における手順です。

 最初からXfce(、GNOME、KDEなどの統合デスクトップ環境)を使っていれば、特に何もしなくてもよかったのかもしれませんが、JWMを常用していて後からXfce4を入れたからか、いろいろ調整が必要となり、インストールやアンインストールを繰り返す内、更に調整に手間取り、最終的にできたにはできたものの、後になってみると知識や手順としてうやむやな部分があります。

 特にALSAやOSS、PulseAudioはどう使い分けるべきなのか、OSSの後継がALSAであり、Linuxにおいては、ALSAはOSSもPulseAudioも巧みに使ったサウンドサーバである模様ですが、全てのパッケージが必要なのか、ALSAだけあれば他の代替もしてくれるのか、また、これらは、それぞれ、相互に補完するライブラリがある模様も先の選択も絡めてどれとどれが必要なのか、これが決まってグラフィカルな音量調節パネルのパッケージを導入した場合、VLCなどのオーディオプレーヤーの(基準となる)音量調節を滞りなく行うにはどうするのか、また、ヘッドホンで聴く際にも、なぜか、ヘッドホンと外部スピーカーの両方から音が聴こえるという事象もあり、この辺りの原因究明とその対策を講じてみようと思うに至った次第です。

 尚、サイマルラジオ、インターネットからのストリーム配信、オーディオCD/DVD再生についても、これらの使い分け及び正しい使い方をしないと(適切なパッケージのインストールとオーディオプレーヤーでの設定との間で整合性を保たないと)Xine(xine-ui、gxine)やAudacious、GStreamer、VLCなどオーディオプレーヤーをインストール済みでも音が出ない、サウンドを聴くことができないということにもなりかねないので、しっかり、チェックしておきたいところです。

 というのもNetBSD/i386をインストール済みの自分のノートPC(dynabook Satellite)では試行錯誤の上、できたのですが、先日、ほぼ同スペックのNetBSD/i386を入れた知人のノートPC(FMV)においても同じくJWMでなくてもXfce4が使えるのでPC初心者の知人でも設定可能な要素が増えることは、手軽に覚える楽しみという上でもXfce4を追加インストールする価値はあるだろうと思っていたこと、知人が以前ボリューム調整についてちらっと話していたことや使っている内にFlashをインストールしたくなった模様であることもあって数日中にも心踊らせてFMVを持ってやって来そうな勢いであることから、その時に備えて、あっさり、すっきり、スマートに短時間で再現し、そのままお持ち帰りできるように今回確認するに至っています。

NetBSD/i386 Xfce4でYouTube/Gyao!/radikoの視聴

 音源(ALSA、OSS、PulseAudio)はともかく、結果から言うと。。。

 NetBSD/i386 Xfce4においてYouTubeについては、[adobe-flash-plugin11]をインストールしただけで視聴できました。

 今回、諸事情により、ホストOSをWindows VistaからFedoraにすることになり、Linuxになったわけですが、Linuxや*BSDでは、視聴できないと思われがちだったGyao!は、実は、ユーザーエージェントでサポートするか否かを振り分けていただけということが判明。

User Agentの例:Windows 7(Windows on Windows 64bit)/Firefox 3.0の場合

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/3.0

 そこで[adobe-flash-plugin11]をインストールの上、少なくともFirefox(Seamonkey、Iceweasel...etc.)などMozilla系ブラウザには、User Agent編集用プラグインが複数あるので、そのうちの何れかをインストールしてユーザーエージェントをWindowsやAndroidなどに書き換えれば、Linuxでも*BSDでも視聴可能になることがわかり、必要に応じて[ツール(T)]メニュー等から使用するUser Agentを変更する必要はありますが、確かにfedora上でGyao!の動画を視聴することができました。

 また、radikoは、WindowsならFlash Player、Linux(Fedora)なら[flash-plugin]をインストールしさえすれば聴くことができましたが、radikoもユーザーエージェントで判別しているようで*BSD、少なくともNetBSDをサポートしておらず、NetBSDにおいては、[adobe-flash-plugin11]のインストールと併せて、Gyao!と同様、ブラウザのプラグインを使ってユーザーエージェントを編集及び視聴時に選択/設定、マシンを再起動すれば、以後radikoでラジオを聴くことができるようになりました。

 結果、dynabookに入れたNetBSD/i386 Xfce4上でYouTube、Gyao!、radikoを視聴することができたわけですが、その為には、下準備としてFlashの導入、それに加え、サイマルラジオ、ストリーム配信、オーディオCD/DVD再生においてもサウンドサーバの導入が必要でした。

 その後、1ヶ月前後経過したでしょうか、すっかり、メインマシンのFedora上のvlcで世界の音楽系ラジオ局の放送を聴くことにどっぷりハマっていたある日、ふとNetBSDでradikoを聴こうと思ったら、「放送局名、もしくは番組表から選局してください。」とポップアップ画面が出て聴くことができなくなっており、Fedoraでも試してみたら同じく聴くことができなくなっていました。。。あんなに良好に聴くことができていたのに。。。radikoのバグだと信じて待つしかなさそうです。

 => あれから数ヶ月経ったでしょうか、確認してみるとFedora(Linux)と、更にNetBSDでもUser Agentの編集をする必要もなくFirefoxでは、radikoを視聴することができるようになっていた一方、NetBSD上のSeamonkeyでは視聴できませんでした(原因不明)。

 => その後、NetBSD上のSeamonkeyでもradikoを視聴できるようになりました。

NetBSD/i386におけるadobe-flash-plugin11のインストール

 NetBSD/i386におけるデスクトップ環境においてブラウザでFlash Playerを利用できるようにするには、[adobe-flash-plugin11]のインストールが必要で、基本的には、NetBSD Wikiの通りです。

$ cat /etc/fstab
...
procfs    /usr/pkg/emul/linux/proc  procfs  rw,linux
...
$

 [/etc/fstab]にLinuxエミュレーション用のprocデバイス行があるか確認、なければ追記します。

$ sudo vi /etc/mk.conf
...
ACCEPTABLE_LICENSES+=flash-license
ACCEPTABLE_LICENSES+=adobe-flashsupport-license
ALLOW_VULNERABLE_PACKAGES=yes
$

 [/etc/mk.conf]に[ACCEPTABLE_LICENSES]として[flash-license]とリンク先にはありませんが、これに加えて[adobe-flashsupport-license]を追加(+=)設定、また、これもリンク先にはありませんが、脆弱性の懸念があるパッケージも許容することを意味する[ALLOW_VULNERABLE_PACKAGES]を[yes]としておきます。

$ su -
Password:
# unset PKG_PATH
# cd /usr/pkgsrc/multimedia/adobe-flash-plugin11
# make && make install clean
#

 次にpkgパッケージの利用はできない(予めパッケージ化されたadobe-flash-plugin11はない)ようなので有効になっている場合には、root権限で単に[unset PKG_PATH]とするなり、敢えて手間のかかる方法を選ぶなら設定ファイル上でPKG_PATHをコメントアウトしてソースコマンドまたは、ログアウト&再ログインして設定を有効にするなりします。

 [/usr/pkgsrc/multimedia/adobe-flash-plugin11]に移動(cd)し、[make && make install clean]して[adobe-flash-plugin11]をコンパイル及びインストールします。

 この時、[adobe-flash-plugin]でも[adobe-flash-plugin10]でもなく、最新の[adobe-flash-plugin11]をコンパイル及びインストールします。

 場合によっては、既にインストール済みのソフトウェアバージョンの不一致によるエラーとなることがありますが、その場合は、当該ソフトウェアをアップデートするなり、一度アンインストールして再度、[adobe-flash-plugin11]を[make && make install clean]するなりします。

 なんらかの理由でflash関連ファイルが既に存在する場合にもエラーとなる可能性があり、その場合には、[pkg_delete -rR *flash*]のようにしてflash関連を全て削除してから再度インストールしてみると上手くいく可能性があります。(当サイト検証時にもそういうことがありました。)

# chroot /usr/pkg/emul/linux /bin/bash
# ldconfig
# exit    <=chroot環境から抜ける
# nspluginwrapper -v -i /usr/pkg/lib/netscape/plugins/libflashplayer.so
Install plugin /usr/pkg/lib/netscape/plugins/libflashplayer.so
    into /usr/pkg/lib/netscape/plugins/npwrapper.libflashplayer.so
# exit
$

 次にchroot環境で[ldconfig]を実行したら、chroot環境を抜け、[nspluginwrapper]コマンドで[libflashplayer.so]をインストール(コピー)します。

 リンク先の例のようにOperaも利用できますが、これでFirefoxやSeamonkeyなどMozilla系のブラウザを起動し、[ツール(T)] > [アドオンマネージャ(A)]を選択すれば、[プラグイン]タブに[Shockwave Flash 11.2.x]が登録されていることが確認できますし、既にブラウザを起動していた場合には、アドレスバー上で[about:plugins]と入力して[Enter]でその登録を確認することができます。

 ちなみにこの記事によると2012年段階でAdobe社が、Linuxのサポートやめちゃおっかなーという主旨の発表をしたらしく、とはいえ5年はサポートされるから、とりあえず、まだ大丈夫だねということのようです。。。というか、むしろ、HTML5対応ブラウザならFlashやSilverlightは要らないっていう話もあるので大丈夫そうですね。

 と呑気に構えていたら、少なくともFedora(Linux)上のFirefoxにおいては、2014年12月時点で(もうちょっと前から?)、実質、FlashをベースとしたYouTube/Gyao!/radikoの視聴に支障を来たすケースが出て来たことから代替策を模索したところ、とりあえず、アドオンとプラグインで対応できました。

 ただ、NetBSD/i386におけるSeamonkeyでは、今のところ、従来通り、[Shockwave Flash 11.2]を[実行時に確認する]に設定したまま、YouTube、radikoを視聴できますし、User Agent SwitcherなどでユーザーエージェントをWindowsなどにしておけば、Gyao!も視聴可能です。

 尤もNetBSD/i386では、[ALLOW_VULNERABLE_PACKAGES=yes]と脆弱性を許容する設定にしているだけでFlashの脆弱性についても根本的な解決策が欲しいところなわけですが。。。

[追記] 2015年03月現在、Gyao!に限っては、Flash 11.2のサポートが切れた?のか、Linux(Fedora)でもNetBSDでも視聴できなくなっています。

その後の展開は、先のリンク「Flash Player代替策Linux版FirefoxでYouTube/radiko/Gyao!を視聴」で。

NetBSD/i386と音源(ALSA、OSS、PulseAudio)

 オーディオ再生の為には、PC及びパッケージソフトウェアが対応する音源、サウンドサーバが必要でオープンソースのサウンドサーバには、当初、OSS/Open Sound Systemがありましたが、その後継となるALSA/Advanced Linux Sound Architectureが、更にクロスプラットフォームのPulseAudioというサウンドサーバが登場、ことLinuxにおいては、ALSAが、アプリケーションからはPulseAudioが提供している仮想デバイスを使うように設定し、OSSも包含するような仕様となっているようです。

 よって相互に互換性を持つライブラリがあったりもしますが、ALSA、OSS、PulseAudio関連のパッケージを全てインストールした上でALSAを利用するのがベストと言えそう、状況に応じてLinuxエミュレーションを行う*BSDにおいては、これに加えてエミュレーション用のOSS、ALSA、PulseAudio関連モジュールも必要となるようですが、少なくともNetBSDにおいては、これらの内の一部は、[adobe-flash-plugin11]をインストールした時に依存関係上、同時にインストールされるものもあるようです。

 いろいろ試行錯誤した結果、OSSと(Alsa)のケースとPulseAudioのケースを分けてやってみた方がよさそうです。

 音源については、radikoと らじるらじる 、映像&音声については、YouTube、ブラウザはMozilla系のFirefox、Seamonkeyで視聴するケースについてみていくものとします。

 まず、radikoと らじるらじる は、追加で必要となるコーデックはなく、前述のadobe-flash-plugin11のインストールによりブラウザのプラグインに自動登録される[Shockwave Flash]を[常に有効にする]か[実行時に確認する]などとして有効にしておけば、聴取できました。

 YouTubeでは、追加でOSSやAlsaといったサウンドサーバ、音源・映像用コーデックが必要な模様でした。

 YouTubeは、同じく、[Shockwave Flash 11.2]プラグインを有効にした上、NetBSDの公式リポジトリ上のalsa、oss、ogg、vorbis、x264と名の付くコーデック類(バイナリで可)を(全て)インストールすれば、視聴可能でした。

 オーディオCD/DVDの再生もこれらのコーデックがあれば、再生できるはずですが、そうでない場合には、マルチプラットフォーム対応で様々なコーデックを内蔵しているVLCメディアプレーヤーを使えば、再生可能です。

$ sudo usermod -G operator user_account

 尚、オーディオCD/DVDにおいてNetBSDでは、使用するユーザーアカウントを[operator]グループ(Linuxでは、[audio]グループ)に追加する必要があります。

 NetBSD/i386のXfce4環境におけるVLCのオーディオデバイスとしては、今のところOSSのみ検出されますが、ALSAは検出されません。(PulseAudioはまだ入れていない)

 よってAlsaが("あるさ"っていう割には、)どこにいったのかわかりませんが、OSSがあれば、YouTubeやVLCでの視聴もできました。

 一方、PulseAudioですが、NetBSDの公式リポジトリからpulseaudio及びlibflashsupport-pulseとsuse_pulseaudioを除くpulseと名の付くコーデックを全てインストールしてみましたが、今のところ、PulseAudioの実相の再現はうまくいっていません。

 尚、気付けば、NetBSD Wiki using pulseaudioというページがありました。。。これによると[hal]を[/etc/rc.d]にコピって[/etc/rc.conf]に[hal=YES]を追記、[meta-pkgs/pulseaudio-tools]とアプリごとに必要なライブラリパッケージが掲載されており、これだけでいいならAmarokとVLCメディアプレーヤー、Flash Playerについては楽ですが。。。

 設定画面上で確認しやすいという意味でVLCメディアプレイヤーで試してみることにしました。

 デスクトップ環境に関わらず、Fedora上のVLCでは、ALSAやPulseAudioが認識され、デバイス選択において[自動]/[デフォルト]以外にも個々に選択肢として表示され、xfce4-mixerで[Playback:内部オーディオ アナログステレオ(PulseAudio)]を選択した場合やPulseAudio用のpavucontrolでも音量調整ができます。

 一方、NetBSD/i386 Xfce4上のVLCの設定画面上では、今のところ、なぜか、OSSしか認識されず、それでも一瞬、pavucontrolやデバイス選択に関わらずxfce4-mixerなどで音量調整できたかと思うと次の瞬間、音がでなくなってフリーズしたり、そもそも調整が効かなかったり、どのミキサーで調整しても無反応だったりすることもあります。

 ということは、NetBSD/i386 Xfce4では、Linuxエミュレーションを含め、ALSA、PulseAudio関連パッケージが不足しているということなのかもしれません。

 ALSA、PulseAudioのライブラリ不足でマシンにインストールされ、認識されているサウンドサーバがPulseAudioだとしたら「どのミキサーでも無反応」という症状は、正常であるわけですが、それ以外の挙動の原因がわかりません。

 違う環境でもやってみようということでFedora 20 Cinnamon上のAmarokにおいて、まず、xfce4-mixerでは、ALSAでもPulseAudioでも一瞬調整できたかと思いきやミュートになってしまい、pavucontrolで確認してみると、なぜか[出力装置(O)]のアイコンが消音(ミュート)状態になっていました。

 もしやと思い、pavucontrolを起動しつつ、xfce4-mixerでミュートにしてみると連動するかのようにpavucontrolでも消音(ミュート)状態になる一方、xfce4-mixerのミュートを(ミュートした時に同時にミュートされたものも含め)解除してもpavucontrol側では、ミュートになったままで、改めてアイコンをクリックし、解除する必要がありました。

 ただ、そもそもCinnamonならタスクバーの音量調整アイコンをクリックするとパネルが開き、再生中のオーディオの音量調整はもとより、それ以前に起動もできるので他のミキサーを使う必要すらなく、xfce4-mixerやpavucontrolで音量調整するというのは仕様外で邪道と言え、これらを操作した結果挙動がおかしかったとしても論外と言えるでしょう。

 GNOMEやKDE、MATEもタスクバーに音量調整アイコンがあるので検証してみるならXfceかLXDEですよね。。。

 そこでFedora 20 Xfceの場合、xfce4-mixerにおいて[HDA Intel (ALSA mixer)]で調整してしまうと前述の通り、連動してpavucontrolがミュートにxfce4-mixer側で解除してもpavucontrol側はミュートのままですが、xfce4-mixer側で[Playback:内部オーディオ アナログステレオ(PulseAudio)]にした状態で行った設定は全てpavucontrol側と連動しており、当然後者が正しい使い方と言えるでしょうし、Cinnamonで試した時も同様にすれば、正常に動作したことでしょう。

 ということは、検証中のPCにおいてFedora(Linux)では、PulseAudio対応ミキサーでPulseAudioによる調整を行なえば、よいということのようです。

 そこでNetBSD/i386に話を戻すと、OSS対応のミキサーを探すか、PulseAudioやALSAを認識するように調整するか、外部ミキサーでの調整を諦めるかの3択。

 VirtualBoxでは、VirtualBoxマネージャから当該仮想マシンの設定でオーディオの[ホストドライバー](ALSA、OSS、PulseAudio、なし)と[コントローラー](Intel HD、SoundBlaster 16、ICH AC97)を選択できるので適宜設定の上、確認すればよさそうです。

 ちなみにこの検証用というわけではないのですが、いまさらながらデスクトップマシン用にアマゾンで程良い大きさ(小ささ?)かつスタイリッシュなモノトーンのロジクールの外部スピーカーを買い足したところだったのでちょうどよかったと言えます。

 尚、ロジテックのホワイト&グレーのスイッチングハブと並べて置いてあり、何れもブラック&シルバーのPCとの色合いもよく良い感じです。

 この枠内、何を勘違いしたのか、別に必要のなかったX Serverモジュールをインストールしてしまった為、スムースにできなかっただけでした。。。

 ただ、VirtualBoxで作成した仮想マシンにインストールしたNetBSD/i386 6.1.4で、なぜか、以下のように[modular-xorg-server]のインストール(make install)に失敗、問題解消の為のインストール及びその後のxorg関連のインストールににえらい時間がかかり、ようやくXが起動するに至りました。。。

 エラー内容からpkgsrc/graphics/MesaLibが必要っぽく、もしかしてMesaっていうのもある?と思って確認するとありました。

$ su -
Password:
# unset PKG_PATH
# cd /usr/pkgsrc/graphics/Mesa
# make install
# cd /usr/pkgsrc/graphics/MesaLib
# make install
# cd /usr/pkgsrc/x11/modular-xorg-server
# make install
# cd /usr/pkgsrc/meta-pkgs/modular-xorg-apps
# make install
# cd /usr/pkgsrc/meta-pkgs/modular-xorg-fonts
# make install

 そこで、まず、[/usr/pkgsrc/graphics/Mesa]を、そして[/usr/pkgsrc/graphics/MesaLib]をインストールした後、[/usr/pkgsrc/x11/modular-xorg-server]をmake installしてみたら、うまくいき、続けてNetBSD Wikiに沿ってpkgsrc/meta-pkgs/modular-xorg-apps、pkgsrc/meta-pkgs/modular-xorg-fontsをインストール。

# cd /usr/pkgsrc/x11/xf86-input-keyboard
# make install
# cd /usr/pkgsrc/x11/xf86-input-mouse
# make install
# cd /usr/pkgsrc/x11/xf86-video-vesa
# make install
# cd
# X -configure
# ls
... xorg.conf.new ...
# cp xorg.conf.new /etc/X11/xorg.conf

 更に[/usr/pkgsrc/x11/xf86-input-keyboard]、[/usr/pkgsrc/x11/xf86-input-mouse]、最もシンプルなビデオデバイスであると認識している[/usr/pkgsrc/x11/xf86-video-vesa]をインストールした後、[/root]にcdして[X -configure]、カレントディレクトリにできた[xorg.conf.new]を/etc/X11にコピー。

 
Section "Monitor"
    Identifier  "Monitor0"
    VendorName  "Monitor Vendor"
    ModelName  "Monitor Model"
    HorizSync  30-120
    VertRefresh  50-100
EndSection

 尚、VirtualBoxにNetBSD/i386をインストールした場合、(今回は、vesaをインストールするも)xf86-video-*にvboxvideoがない模様でGNOME、KDE、Xfce、LXDE...といったような統合デスクトップ環境なら解像度の変更もできるかもしれませんが、ウィンドウマネージャを使う場合など[/etc/X11/xorg.conf]の[Section "Monitor"(Identifierが"Monitor0")]のセクションに[HorizSync]と[VertRefresh]の2行を追記すれば、固定にはなるものの、変更できます。

 この時点で[startx]とした時にデフォルトのtwmが起動しますが、その後のこともあるので必要に応じてrootや任意のユーザーアカウントのホームディレクトリに/etc/X11/xinit/xinitrcを~/.xinitrcとしてコピー、あとは適宜/etc/X11/xorg.confや~/.xinitrcを編集することになります。

 尚、Mesaのインストールには、数時間かかり、MesaLibは結構早くインストールできましたが、今回は、よくわからないながらも念の為、Mesaを入れてみただけであってMesaLibだけでもいけるのかどうかはわかりません。

 ただ、Mesaを入れる前のmodular-xorg-serverはさんざん時間がかかった挙句、エラーとなったのに比し、Mesa及びMesaLibインストール後には、それでも2〜3時間はかかったかと思いますが、make clean clean-depends済みのmodular-xorg-serverのインストールは意外と早かったように感じました。

 ちなみにmodular-xorg-fontsを入れないと~/.xinitrcでLANGを設定したところで日本語に限らず、文字という文字が化けます。

 それにしてもNetBSD 6.1.2のインストールから始まって今回の6.1.4に至る今までNetBSDのXは物理マシンに3台、それ以前にQEMUやVMware Player上の仮想マシンは何度と無く入れたり、入れ替えたり、入れ直したりしていますが、過去、こんなに時間がかかったことはなく、あっという間に環境構築できたはずなのですが、なぜ??

 modular-xorg-serverが数時間後にエラーになり、その後、Mesaのインストールに数時間、MesaLibに数時間でその日は作業終了、modular-xorg-serverのインストール、modular-xorg-appsで数時間でまた1日が終わり、また日を改めてmodular-xorg-fonts、xf86-input-keyboard、xf86-input-mouse、xf86-video-vesaを入れて半日終了で足掛け3日間もかかっており、自分ではやったことありませんが、昔のカーネル+アルファからコンパイルみたいな状況に。。。

 VirtualBoxだったからとか、VBoxSDLで起動したからとか、それに関してネットワーク設定が。。。とか、そういうこと?、それとも[Xorg -configure]の手順もなくなり、[X -configure]のみになっていることからしても先のNetBSDにおけるxorg導入のリンク先のWikiが更新されている気がしますし、もしかしてxorgのモジュール化が極々最近の話で前回試した時まではモジュール化されていなかった為、前回までと今回では、状況が違ったということなんでしょうか。。。?

 他の操作は、サクサク動くんですが。。。ここまで時間がかかると、いいか、別にやらなくても。。。とさえ思えてきますが。。。と言いつつ、やるんですけど。

 ようやく本来の検証を開始すべく、[pkgsrc/meta-pkgs/xfce4]をmake install、念の為、Flash導入前にYouTubeが視聴できないことを確認、前述のように[/etc/mk.conf]に必要な行を追記の上、[adobe-flash-plugin11]をmake install。。。

 と思ったらやり直したりもした関係で同じ環境でもパッケージなら長いなと思いつつも1時間前後だった気がするxfce4。。。[pkgsrc/meta-pkgs/xfce4]をmake installしてみたら、前日の正午に始めたのに、翌朝起きてみても、昼前になっても、18時になっても終わっていない。。。かれこれ30時間経過中。。。インストールで日をまたぐというのは自身初。。。自動でやってくれているだけ、まだいいけど。。。一体いつ終わる。。。の?

 おおおおおお、19時にようやくxfce4のmake install完了。。。実に31時間。。。かれこれMesaのmake installから正味4日?5日?。。。adobe-flush-pluginのmake installは、また日を改めようと思います。。。

 というわけで日を改め、adobe-flush-pluginのmake installする前に念の為、xfce4を起動してみることに。

 するとrootアカウントでは、xfce4を起動することができますが、一般ユーザーアカウントでは、extmod、dbe、glx、record、dri、dri2、vesa、kbd、mouseのABIバージョンとサーババージョンのmismatchの末、giveup。。。となり、xfce4を起動できず。。。

$ sudo vi /etc/X11/xorg.conf
Section "Server Flags"
    Option  "IgnoreABI"
EndSection

 そこで/etc/X11/xorg.confにABIを無視する設定を追記、再起動してみましたが、/var/log/Xorg.0.logを確認すると。。。その前後で(EE)/エラーから(WW)/警告には変わっているものの、今度は、Segmentation faultとなり、やはり、Xを起動できず。

 

 NetBSDには、対応するGuest Additions(vboxadditions)はない為、これによる対応は論外。

$ sudo vi ~/.profile
export PKG_PATH=http//...
$ su -
Password:
# pkg_add -v pkg_rolling-replace
# man_rolling-replace
...
# cd /var/db/pkg && grep "blddep x11-links" */* | cut -d/ -f1 | sort -u | xargs pkg_admin set rebuild=YES
# pkg_rolling-replace -rsv
...

 rootではXを起動できて一般ユーザーアカウントでは起動できない。。。それなのにバージョンのmismatch?

 と思いつつも以前、NetBSDのパッケージリストを眺めている時に[pkg_rolling-replace]というスクリプトが目に付いたこともあり、スクリプトなのでそんなはずもないでしょうが、ここで変に時間がかかるのを避けようと念の為、PKG_PATHを設定後、pkg_addでインストール、[man pkg_rolling-replace]にザッと目を通してみました。

 すると再構築に必要となるx11に対するコンパイル済みパッケージを全てに[rebuild=YES]というフラグを立てmakeする為のサンプルとこのフラグを立てたものに依存するパッケージを全てアップデートするサンプルがありました。

 [-uv]オプションでもいいのか。。。な?と思いつつも、それらサンプル2つを併用すれば、X11関連のアップデートができると踏んで(きっと長いんだろうな。。。と思いつつも)実行。。。約4時間で完了しましたが、意味がなかったようで、やはり、一般ユーザーアカウントでは、Xを起動することができません。

 なんとなくxf86-input-keyaboardとxf86-input-mouseをmake updateしてみましたが、変わらず。

 pkgsrcを全てアップデートしないとダメなのか。。。?

本来の検証ができない。。。けど。。。さすがに疲れたから。。。無期限延期。

後日談

 今尚、VirtualBoxでの検証継続をする気にはなれませんが、後日、このホストマシンでもあるデュアルコアCPU、RAM2GBのメインマシンのFedoraにおいてVLCなどでインターネットラジオを聴きながらだとブラウザ上の検索などの挙動が遅くなったり、IP電話での通話ができなくなり、(家の場合、NTTに切り替わり、NTT料金となってしまい、)、ルータの電源コネクタを再接続させないとIP電話が使えない状態になってしまうこともあったりして、常々、煩わしいなと思っていました。

 重い腰を上げて試しに同一LAN上にあるNetBSDを入れてあるdynabookやe-one上のVLCで再生したところ、少なくともメインマシンでのブラウザにはなんの支障もないことが判明。

 なんとなく、シングルコアCPU、RAM512MBのdynabookはノートPCなので同世代のデスクトップよりは省電力設計でしょうが、デスクトップとはいえ、e-oneは、もっともっと古く、500MHzシングルコアCPU、RAM128MBと非力であることから消費電力も低いだろうということ、Dilloやw3m、lynx、linksなどは問題ありませんが、Midoriだとネットサーフィンも厳しいなど使い道が限られるということでインターネットラジオの再生には、e-oneを使うことに。

(以降の作業終了後、消費電力を調べてみたら、なんとdynabookは、最大65W/通常25W、FedoraマシンであるHP Pavilion Slimlineは、最大180W、SOTEC e-oneは、260W。。。昔は、こんなに無駄に電力消費してたのか。。。e-oneが一番電気食ってるらしい。。。!?から以後、ネットラジオは、dynabookで聴くことにしよう。。。)

 ただ、e-oneにインストールしたNetBSD上のVLCで再生する際、基本音量が小さ過ぎてVLCの音量を170%〜200%程度にしないと聴くことができない上、音が割れてしまう現象が。

 最初、これに気づかず、ヘッドフォンをつなぐと音は出るものの、スピーカーから音が出ない、でも、当時、音は出ていたはず、数カ月前、初めてカバーを外したときにも簡易ながらスピーカーは付いていたし、スペック表を見ると、やはり、内蔵スピーカーはあるはず。。。試しにボリューム調整ツマミ付きの外部スピーカーをつなげ、ボリュームを上げてみたら音が出る。。。そのまま外部スピーカーを外してみたら音が出たまま。。。お、内蔵スピーカーから音出てる。。。やっぱり、あったし、壊れてもいない、基本となる音量が小さかっただけだったということが判明。

 おそらく音割れは、非力な内蔵スピーカーゆえのこと、ベースとなる音を上げてボリュームを絞れば、音割れしないはず、現にこのマシンをメインに使っていた当時、音割れしていた記憶もない。

 これまでQEMUに始まり、VMware Player、VirtualBox、実機でdynabook、FMV、e-oneに入れたNetBSDでことごとくOSS/ALSA/PulseAudioをうまく使う方法を探ってきたにも関わらず、まだ、理路整然と理解できているとは言い難いものの、おそらく基準となる音量をあげるにはPulseAudio用のpavucontrolを使うのが得策だろうと思うに至り、ついては、OSS/ALSA関連のパッケージもインストールする必要があるだろうと。

 そこでNetBSDのパッケージリストを眺めてpavucontrol、pavumeter含め、OSS/ALSA/PulseAudio関連のパッケージをみつくろってインストール、NetBSD Wiki using pulseaudioを参考に設定することに。

$ sudo cp /usr/pkg/share/examples/rc.d/hal /etc/rc.d
$ sudo cp /usr/pkg/share/examples/rc.d/dbus /etc/rc.d
$ su -
Password:
# echo hal=yes >> /etc/rc.conf
# echo dbus=yes >> /etc/rc.conf
# exit
$

 そのページには、palseaudioの起動には、halが必要とありますが、実際には、halだけだと起動しても「halの起動には、dbusが必要」というエラーが出るのでhalとdbusを/etc/rc.dにコピーして/etc/rc.confにhal=yes、dbus=yesをそれぞれ追記する必要があります。

$ sudo vi /usr/pkg/etc/pulse/default.pa
...
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
load-module module-oss device="/dev/audio0" sink_name=output source_name=input
...
$

 また、「/usr/pkg/etc/pulse/default.paのload-module module-oss device="/dev/dsp"...部のデバイスを多くの場合、/dev/audio0に書き換える必要がある」とあるので書き換えます。

$ pulseaudio
...
W: [(null)] module.c: module-detect is deprecated. Please use module-udev-detect instead of module-detect!
...
$

 pavucontrolの前に、ここでpulseaudioを起動してみると何やらエラーが。

 読んでみるとその中に「module-detectは非推奨だから代わりにmodule-udev-detectを使って!」とあります。

 先のdefault.paファイルで設定されているのだろうと探してみるとmodule-detectファイル存在チェック(if文)後に読み込むんでいる行があったので、その2ヶ所をmodule-udev-detectに変更。

 halとdbusを追加したので(それぞれコマンドラインから開始してもよいですが、)PCを再起動。

$ pulseaudio
$ pavucontrol
...

 再度、pulseaudioやpulseaudio --startとしてみると無事エラーもなくプロンプトが返ってきました。

 更にpavucontrolとしてみると無事設定パネルが表示されました。

 pavucontrol設定パネルで設定後、設定パネルを閉じ、VLCを起動しないとpavucontrolでの設定が反映されないことに気付くまで少し戸惑いましたが、その手順でやれば、問題なく、基本音量の調整ができるようになりました。

 20数%になっていた基準の音を70%に設定したところ、VLCのボリューム設定50%でも相応な音量で聴くことができるようになりました。

 試しにPCを再起動してみましたが順調です。

VLCの使用例

 この作業に伴い、インターネットラジオ局の追加と保存ができるようになりました。

 Fedoraでは、リポジトリを追加し、インストールしたVLCに既にあったIcecastがお気に入りとなっていました。

 ところが、FedoraにインストールしたVLCと違ってNetBSDでpkg_addしたvlcの[インターネット]部には、[podcast]のみで[Icecast]がありませんでした。

 そこで追加する方法を模索していたら、とりあえず、[メディアライブラリ]になら追加できる方法が判明。

 xtermなどの端末で好きな場所に例えば[icecast]というディレクトリを作成、そこに次の要領で音源ファイルを保存していく。

  1. [icecast.org]で[Steam]をクリックすると[http://dir.xiph.org/]に遷移、検索ボックスや[M3U|XSPF]のリンク付きで各ラジオ局のリストが表示される。
  2. 必要なラジオ局の[M3U|XSPF]の内、必要なリンクをクリックしてダウンロード、必要な分だけこれを繰り返す。
  3. ダウンロードしたファイル(群)を先の[icecast]ディレクトリに移動。

 終わったらVLCの[メディアライブラリ]をクリック後、プレイリスト部の余白で右クリック、続いて[ディレクトリを追加]をクリック、(先の例の通りなら)[icecast]ディレクトリを追加するだけ。

 これでVLCを終了しても次回以降の起動時にも[メディアライブラリ]に(先の例の通りなら)[icecast]ディレクトリがあるのでクリックして展開、リストの中から任意のものを選択して、プレーヤーの再生ボタンを押すか、右クリックして表示されるメニューから[再生]を選択すれば再生開始します。

追記

 改めてNetBSDのインストールとその後の設定等々についてまとめてみました。

リンク

ホーム前へ次へ