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

Linux ブログランキングへ

2019年03月22日

世界の全ての機器を制覇するOS NetBSD Dreamcastイメージ作成 sysutils/dc-tools+emulator/gxemul 動作テスト その38 #NetBSD

2019-03-22-195543_1600x900_scrot.png

数年前にNetBSD/Dreamcastをつついさんに教えてもらいましたが、
ブログに残すのを忘れていてメモが残っていませんでした。
今回テストしなおしたのでブログに書いておきます。
テストするには母艦はNetBSD i386かamd64とエミュレータとしてgxemulが必要。
ブータブルCDを焼くには更にcdrecordが必要です。

●NetBSD/Dreamcast概要
NetBSDは移植性が高いOSでDreamcastでも動作しています。
しかし、DreamcastブートCDの仕様が特殊なのでNetBSDのFTPサーバにある
ISOファイルを焼いても起動しません。ご注意を。
詳細は英語ドキュメントですが、下記の公式HPに書いてあります。
日本語ドキュメントは情報が古くて使えません。
是非ご一読を。

NetBSD/dreamcast: How to use NetBSD/dreamcast
https://www.netbsd.org/ports/dreamcast/howto.html

Dreamcastの仕様として、
・4秒の無音ファイルを作り、オーディオトラックが必要
・IP.BIN
・IP.txt
・NetBSDのKernel
・NetBSDのイメージ本体
を1枚のディスクにちゃんと焼かないと起動できない仕組みになっているそうです。
読んだだけですけど、間違っていたらごめんなさい。
後はブロードバンドアダプタでアクセス出来る様にdhcpcdとSwapファイルも焼き込みます。
で起動させる訳ですね。
結構難しいですが、公式HPに情報がちゃんと書いてあります。

じゃあどうやってDreamcastのイメージファイルを作るのかと言いますと
pkgsrcにdc-toolsという自動作成アプリがあります。
多分、母艦がNetBSDからじゃないと動作しません。
ここでニワカユーザー、ハッカーの殆どが脱落する訳ですw
NetBSDの専門知識が必要です。そりゃ難しいですわね。僕も同じです。
あと、エミュレータとしてgxemulが自動で連動できる様になっています。
そちらも使います。pkgsrcからインストール可能です。

じゃあまずdc-toolsから
普通にpkgsrcからビルドしてインストール

cd pkgsrc/sysutils/dc-tools/
make && make install

次はエミュレータのgxemulも同じ様にビルド

cd pkgsrc/emulator/gxemul
make && make install

無事インストール出来ましたらホームフォルダに戻って
NetBSDをdc-toolsからダウンロード。
まずdc-burn-netbsdアプリの使い方を解説します。
端末からコマンドで指定します。

dc-burn-netbsd -k GENERIC -e

これでKernelをダウンロードして自動的にエミュレータで
NetBSDが起動します。

オプションは重要で解説ドキュメントが他にないので
しっかり目を通しておきます。

Usage: dc-burn-netbsd [opts]
-C : Clean work directory before starting
-b : Burn generated image to CD using cdrecord
-c opts : Set cdrecord opts (driveropts=burnfree gracetime=3)
-d dist : Take kernel/ & sets/ under dist dir - will not try to download
-e : Boot resultant image under an emulator (requires gxemul)
-h : This help
-i : Use existing ISO image. Assumed to be already bootable
-k type : Set kernel type (GENERIC) eg: GENERIC or GENERIC_MD
-l : Setup live cd - implies '-s base -K GENERIC' unless otherwise set
-s type : Include NetBSD release, type is base, std, x or list of sets
-t tmpd : Set temporary work directory to tmpd
-v vers : Set NetBSD version (7.0.1) use '?' for list

-kがNetBSDのKernel、-eがエミュレータ起動
これだけじゃ、起動するだけでなにも出来ません。
アプリがないんです。
オプションの-sが重要でこれがイメージ設定です。
*BSDを使っている人はご存知ですね?多分。
-eオプションでxにしておきます。
NetBSDのバージョンをするには-vオプション。


一例で端末からコマンド起動

dc-burn-netbsd -k GENERIC -s x -v 8.0 -e

でエミュレータ起動すると色々と質問されます。
root device:はgdrom0a、
terimnalタイプは[vt100」にしておきます。
後は全部エンターキーでそのまま指定なし。
するとやっとNetBSDが起動できます。
Xはメモリが無いのでしょうか?起動しません。

●CD-RにNetBSD/Dreamcastを焼く?
やっていませんが、ヘルプファイルには-bオプションをつけると
自動でCD-Rに焼いてくれるそうです。
まずCD-ROMドライブを認識させないと駄目らしいですけど。

dc-burn-netbsd -k GENERIC -b

類似情報はこちら

http://m-arai.s41.xrea.com/hos/DC/step2.html

●インストールログ

bash-4.4# dc-burn-netbsd -k GENERIC -s x -e
Sets set to: base.tgz etc.tgz comp.tgz man.tgz misc.tgz modules.tgz tests.tgz text.tgz xbase.tgz xcomp.tgz xetc.tgz xfont.tgz xserver.tgz

>> Download kernel if needed
download/7.0.1/kernel/netbsd-GENERIC.bin.gz: already present

>> Download sets if needed
download/7.0.1/sets/base.tgz: already present
download/7.0.1/sets/etc.tgz: already present
download/7.0.1/sets/comp.tgz: already present
download/7.0.1/sets/man.tgz: already present
download/7.0.1/sets/misc.tgz: already present
download/7.0.1/sets/modules.tgz: already present
download/7.0.1/sets/tests.tgz: already present
download/7.0.1/sets/text.tgz: already present
download/7.0.1/sets/xbase.tgz: already present
download/7.0.1/sets/xcomp.tgz: already present
download/7.0.1/sets/xetc.tgz: already present
download/7.0.1/sets/xfont.tgz: already present
download/7.0.1/sets/xserver.tgz: already present

>> Generate the ip.txt file and use to create IP.BIN bootloader
Setting CRC to B6D8 (was 0000)
Contents of data already match requirements

>> Create filesystem with boot loader
mkisofs: Warning: -C specified without -M: old session data will not be merged.
290410+0 records in
290410+0 records out
594759680 bytes transferred in 9.295 secs (63987055 bytes/sec)

Bootable image generated as dc-burn-netbsd-files/data.raw

>> Run emulator (gxemul -XEdreamcast -d co23965696:data.raw)
GXemul 0.6.0.1 Copyright (C) 2003-2014 Anders Gavare
Read the source code and/or documentation for other Copyright messages.

Simple setup...
net:
simulated network: 10.0.0.0/8 (max outgoing: TCP=100, UDP=100)
simulated gateway+nameserver: 10.0.0.254 (60:50:40:30:20:10)
simulated nameserver uses real nameserver 192.168.100.1
machine:
memory: 2 MB
cpu0: SH7750
machine: Dreamcast (200.00 MHz)
diskimage: data.raw
IDE CD-ROM id 0, read-only, 567 MB (1161704 sectors)
loading Dreamcast IP.BIN from IDE id 0 to 0x8c008000
Dreamcast boot filename: NETBSD.BIN (to be loaded to 0x8c010000)
ISO9660 boot:
"CDROM":NETBSD.BIN
extracted 2296996 bytes into /tmp/gxemul.8CWMs0W3eSZw
loading /tmp/gxemul.8CWMs0W3eSZw
removing /tmp/gxemul.8CWMs0W3eSZw
cpu0: starting at 0x8c000140

NOTE: This is a LEGACY emulation mode.
-------------------------------------------------------------------------------

●-vオプション

bash-4.4# dc-burn-netbsd -v ?
Official release versions:
- 1.6
- 1.6.1
- 1.6.2
- 2.0
- 2.0.2
- 2.0.3
- 2.1
- 3.0
- 3.0.1
- 3.0.2
- 3.0.3
- 3.1
- 3.1.1
- 4.0
- 4.0.1
- 5.0
- 5.0.1
- 5.0.2
- 5.1
- 5.1.1
- 5.1.2
- 5.1.3
- 5.1.4
- 5.1.5
- 5.2
- 5.2.1
- 5.2.2
- 5.2.3
- 6.0
- 6.0.1
- 6.0.2
- 6.0.3
- 6.0.4
- 6.0.5
- 6.0.6
- 6.1
- 6.1.1
- 6.1.2
- 6.1.3
- 6.1.4
- 6.1.5
- 7.0
- 7.0.1
- 7.0.2
- 7.1
- 7.1.1
- 7.1.2
- 7.2
- 8.0

Daily built versions:
- daily-HEAD-201903190900Z
- daily-HEAD-201903192200Z
- daily-HEAD-201903201230Z
- daily-HEAD-201903201940Z
- daily-HEAD-201903210830Z
- daily-HEAD-201903211740Z
- daily-netbsd-7-201903131220Z
- daily-netbsd-7-201903190450Z
- daily-netbsd-7-0-201903112330Z
- daily-netbsd-7-0-201903171100Z
- daily-netbsd-7-1-201903141540Z
- daily-netbsd-7-1-201903200820Z
- daily-netbsd-8-201903160740Z
- daily-netbsd-8-201903170510Z
- daily-netbsd-8-201903191600Z
- daily-netbsd-8-201903210240Z
- daily-netbsd-8-201903220040Z

Daily built branches (will take latest version):
- daily-HEAD
- daily-HEAD-lint
- daily-HEAD-llvm
- daily-netbsd-7
- daily-netbsd-7-0
- daily-netbsd-7-1
- daily-netbsd-8
posted by kapper at 20:17 | Comment(0) | NetBSD

世界の全ての機器を制覇するOS NetBSD コンソール版スクリーンキャプチャ graphics/scrot その37 #NetBSD


NetBSDで簡単にスクリーンキャプチャできるアプリないかな?
という事でscrotを入れてみました。
pkgsrcにもあるので簡単です。
コマンドラインですが、手軽なので是非使ってみましょう。

●scrot
ターミナルからキャプできるスクリーンキャプチャです。
pkgsrcにあってサポートされています。
是非使ってみましょう。
使い方はこちらです。

Scrot の使い方メモ
http://d.hatena.ne.jp/ino46/20100919/1284904800

インストールはpkgsrcからビルド。

cd pkgsrc/graphics/scrot
make
make install

これだけです。
使い方は端末から

scrot -d 5

みたいな感じで5秒遅延させても使えます。
キーボード登録させておくと便利です。
是非使ってみましょう。

posted by kapper at 13:51 | Comment(0) | NetBSD

世界の全ての機器を制覇するOS NetBSD コンソール版テトリスクローン vitetris ビルド その36 #NetBSD

2019-03-22-130610_1600x900_scrot.png

今日はNetBSDでVitetrisをビルドしてみました。
星の数ほどあるかもしれないTetrisクローンゲームのコンソール版。
Linux関係にはパッケージがありますが
何故かNetBSDにはありませんでしたのでビルドします。
Cライブラリしか必要ないのでどんな環境でも動きそう。
低スペック環境でどうぞ。

●Vitetrisとは
端末のテトリスクローンです。
Xがなくても動く高機能テトリスです。
Windows、Linux、DOS、NetBSDに対応しています。
ビルドしてみましょう。

https://www.victornils.net/tetris/

まずは公式Githubからソースコードをダウンロードして解凍。

https://github.com/vicgeralds/vitetris

でビルドするだけです。

./configure
make
make install

これだけです。
所が実行しようとするとエラーが出ます。

./tetris
./tetris: Shared object "libX11.so.7" not found

ありゃま。
libX11.so.7が認識していないっぽいです。
じゃあテスト。

cp /usr/X11R7/lib/libX11.so.7 /usr/lib/

で実行すると動きましたw
何故リンクが見えていないのでしょうか?
よく分かりませんがまあ動いたのでよしとします。

export LD_LIBRARY_PATH=/usr/local/lib:/usr/pkg/lib:/usr/X11R7/lib

っと、パスを/usr/X11R7/libにも加えておきます。
.xinitrcなどに貼っておきましょう。
そんなので良いんか?(ぉぃ

●まとめ
こんなパスのエラーなんて出ないはずですが、
とりあえずNetBSDでも動きました。
そんなので良いんか?(ぉぃ
NetBSD対応と公式HPにありますが、修正した方が良くないですか?
pkgsrcにもありませんし・・・
非常に軽量な割に高機能なので遊べます。
旧型機種におすすめ。

posted by kapper at 13:32 | Comment(0) | NetBSD
にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ