KOYAMA Yoshiaki のブログ

プログラミングについての試行錯誤をつらつら書き溜めていきます。

PC-G850V、PC-G850VS とMac の仮想化ソフト Parallels Desktop 7 for Mac 上の Ubuntu 11.10 にシリアル接続し、G850ターミナルでログインする。

前回、予告した PC-G850V、PC-G850VS とMac の仮想化ソフト Parallels Desktop 7 for Mac 上の Ubuntu 11.10 にシリアル接続し、Ubuntu 11.10 ( Linux ) にリモート・ログインできるターミナル (端末)

PC-G850/G815/E200用ソフトウェア
G850ターミナル
http://www16.ocn.ne.jp/~ver0/g800/index.html#g850term
http://ver0.sakura.ne.jp/g800/index.html#g850term

G850ターミナルを紹介したいと思います。


Mac の USB ポートと PC-G850V、PC-G850VS 周辺機器接続端子(11ピン) にそれぞれ 秋月電子通商 USB・RS232C シリアルポート変換ケーブル、高松製作所 RS232C シリアルケーブル を接続し、Mac の仮想化ソフト Parallels Desktop 7 for Mac 上の Ubuntu 11.10 にシリアルポートからログインするためには、Ubuntu 11.10 上に /etc/init/ttyS0.conf ファイルを作成する必要があります。

絶対無糖 (Zettai Non Sugar): Ubuntu でシリアルポートからログインする
http://zettai-non-sugar.blogspot.com/2009/05/ubuntu.html

SerialConsoleHowto - Community Ubuntu Documentation
https://help.ubuntu.com/community/SerialConsoleHowto

上記、URL が参考になります。簡単に説明すると Parallels Desktop 上の Ubuntu 11.10 で Terminal を起動します。


ここでは sudo を何度も使うのは面倒なので sudo su を使ってスーパーユーザーになります。

yoshiaki@ubuntu:~$ sudo su
[sudo] password for yoshiaki: 
root@ubuntu:/home/yoshiaki# 

/etc/init ディレクトリに移動し、属性と一緒に tty1.conf ファイルを ttyS0.conf にコピーします。

root@ubuntu:/home/yoshiaki# cd /etc/init
root@ubuntu:/etc/init# cp -p tty1.conf ttyS0.conf

ttyS0.conf ファイルを次のように編集します。

# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -L 9600 ttyUSB0 vt220 

編集には vi、emacs などを使ってください。


重要なのは

exec /sbin/getty -L 9600 ttyUSB0 vt220 

の一行です。それぞれ

通信ボートレート: 9600 bps
シリアルポートデバイス名: ttyUSB0
端末エミュレータ: vt220

を表しています。


シリアルポートのデバイス名は、コマンド dmesg で確認できます。Parallels Desktop 7 上で Ubuntu 11.10 を起動し、秋月電子通商 USB・RS232C シリアルポート変換ケーブルを Mac の USB ポートに繋ぐと Mac 側か Ubuntu 11.10 側のどちらに接続するか尋ねてくるので、Ubuntu 11.10 を選択します。


Terminal でコマンド dmesg を使うと

yoshiaki@ubuntu:~$ dmesg

[  128.609750] usbcore: registered new interface driver usbserial_generic
[  128.609751] usbserial: USB Serial Driver core
[  128.610480] USB Serial support registered for pl2303
[  128.610861] pl2303 2-1:1.0: pl2303 converter detected

*[  128.625703] usb 2-1: pl2303 converter now attached to ttyUSB0

[  128.625713] usbcore: registered new interface driver pl2303
[  128.625717] pl2303: Prolific PL2303 USB to serial adaptor driver
[  129.884737] init: ttyS0_org main process (1743) terminated with status 1
[  129.884757] init: ttyS0_org main process ended, respawning
yoshiaki@ubuntu:~$ 

上の * 印より、シリアルポートのデバイス名 ttyUSB0 が判明します。秋月電子通商 USB・RS232C シリアルポート変換ケーブルは、変換チップに PL2303 を使っています。Ubuntu 11.10 上ではドライバを必要としません。


コマンド lsusb でも確認できます。

yoshiaki@ubuntu:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 203a:fff9  
Bus 002 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
yoshiaki@ubuntu:~$ 


また、Ubuntu 11.10 に含まれる端末エミュレータは、/lib/terminfo ディレクトリの

root@ubuntu:/etc/init# cd /lib/terminfo
root@ubuntu:/lib/terminfo# ls -alF
total 60
drwxr-xr-x 15 root root 4096 2011-09-17 04:29 ./
drwxr-xr-x 20 root root 4096 2011-10-25 18:16 ../
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 a/
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 c/
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 d/
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 E/
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 h/
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 l/
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 m/
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 p/
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 r/
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 s/
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 v/
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 w/
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 x/

v ディレクトリから確認できます。

root@ubuntu:/lib/terminfo# cd v
root@ubuntu:/lib/terminfo/v# ls -alF
total 24
drwxr-xr-x  2 root root 4096 2011-10-01 02:31 ./
drwxr-xr-x 15 root root 4096 2011-09-17 04:29 ../
-rw-r--r--  1 root root 1194 2011-09-17 04:29 vt100
-rw-r--r--  1 root root 1188 2011-09-17 04:29 vt102
-rw-r--r--  1 root root 1279 2011-09-17 04:29 vt220
-rw-r--r--  1 root root  470 2011-09-17 04:29 vt52
root@ubuntu:/lib/terminfo/v# 

VT200 の端末エミュレータUbuntu 11.10 にはないようなので VT220 を用いました。詳しくはないので、これで正しいのかわかりません。端末エミュレータの定義は w3m などに使われます。


コマンド start ttyS0 (sudo start ttyS0) で開始します。

root@ubuntu:/etc/init# start ttyS0
ttyS0 start/running, process 2318
root@ubuntu:/etc/init# exit
exit
yoshiaki@ubuntu:~$ 

これで、Ubuntu 11.10 側の設定は終わりです。


PC-G850V、PC-G850VS 側は、

PC-G850/G815/E200用ソフトウェア
http://www16.ocn.ne.jp/~ver0/g800/index.html#g850term
http://ver0.sakura.ne.jp/g800/index.html#g850term

から、G850ターミナル ソースとバイナリ[ g850term20080419.zip ] をダウンロードし、その中に含まれるファイル g850vtermj.ihx を拙作 PCG-LinkMac [ http://kyoshiaki.sakura.ne.jp/osx/pcg850v.html#pcglink ] を使って、PC-G850V側に転送します。PCG-LinkMac の ReadMe ファイルを参考にしてください。


Mac OS X 10.7.2 Lion のドライバ問題の回避方法が

2011-07-31 - KOYAMA Yoshiaki の日記
http://d.hatena.ne.jp/KYoshiaki/20110731

に説明されています。


Mac 側の PCG-LinkMac から PC-G850V側 にファイル g850vtermj.ihx を転送する方法を簡単に説明します。

ファイル g850vtermj.ihx のサイズが大きいので、まず最初に PC-G850V の ON キーを押して電源を入れた後、ボールペンなどでリセットスイッチを押して PC-G850Vを初期状態にします。(注意、リセットすると保存したすべての BASIC プログラムなどが消去されるので、事前に Mac 側に退避しておいてください。)

Mac 側、PC-G850V側 のシリアル入出力条件を設定し、PC-G850V側で機械語モニタモードに入ります。g850vtermj.ihx のために必要なユーザーエリアは 722B ですが、念のため 7600 にします。その後、R 命令を使ってデータを読み込んでください。読み込みが終了するとデータが入ったエリア(領域)が表示されます。今回は INFO:0100-722B がそれに当たります。

MON
*USER 7600
*R
INFO:0100-722B
*

読み込みが終了したら G100 でで G850 ターミナルを実行します。シリアルポートが繋がっていないので、何も表示されませんが、BASIC キーを押して端末の設定を行います。

*G100

数字キーで設定を変更でき、リターンキーを押すと変更しません。現在の状態は、[ ] の中に表示されています。私の設定は

BAUD 5: 9600
PARITY 0: none
FLOW 0: none
ECHO 0: off
SCREEN 2: 36*6
KANJI: 2: SJIS

です。設定が終わったら、OFF キーで終了してください。端末の設定は、実行中 (Ubuntu 11.10 にログイン中)でも BASIC キーを押せば、変更できます。特に、漢字コードや画面サイズは変更したくなるかもしれません。


秋月電子通商 USB・RS232C シリアルポート変換ケーブルをUSB ポートから抜き、再度差します。Mac 側、Ubuntu 11.10 側のどちらに接続するか尋ねられるので Ubuntu 11.10 側をクリックします。


PC-G850V、PC-G850VS 側で、機械語モニタモードに入り G100 で G850 ターミナルを実行します。

login 画面が出ない時は Return キーを押してください。

Ubuntu 11.10 login


login name を入力し、リターンキーを押してください。続いてパスワードを入力し、リターンキーを押します。これでログインできます。後は、Ubuntu 10.10 上の Terminal と同じです。

cat

w3m

ls

Land of Lisp 本、Kindle 版 Steve Jobs、Parallels Desktop 上の Ubuntu 11.10 に PC-G850VS 用 G850ターミナルでリモートログイン。

iOS 5 のダウンロード、iPhone 4S の発売、iCloud の開始時に、 2011年11月5日 Steve Jobs 氏が亡くなったことが発表されました。56歳でした。

ご冥福をお祈りします。


前回、Learning GNU Emacs を読んだ感想を書きましたが、もう少し Lisp について学びたくなりました。そんな中、Lisp 創案者の John McCarthy 氏の訃報を知り、驚きました。


以前、Practical Common Lisp (Books for Professionals by Professionals) の読破に挫折していたので、何か易しい良書がないか探していました。日本語の Lisp 本は、だいたい持っているので、洋書を選ぶことにしました。折角、iPad を所持しているので、Kindle 版の電子書籍にしました。


それで Land of LISP: Learn to Program in Lisp, One Game at a Time! を購入してみしました。魅かれた点は、実際にプログラムを組みながらゲームを作成するところです。


Lisp の実行環境は、Cocoa Eamcs 上の SLIME と sbcl を使用しました。

SLIME: The Superior Lisp Interaction Mode for Emacs
http://common-lisp.net/project/slime/

sbcl のインストールには homebrew を用いました。

Homebrew ― MacPorts driving you to drink? Try Homebrew!
http://mxcl.github.com/homebrew/


まだ、読み始めたばかりです。Lisp の基本的な部分の理解が深まりました。

Lisp の表記には、Code Mode と Data Mode の2つあります。

P36 
Location 1247

> (+ 1 2)
3

> (expt 2 3)
8

> 2
2

Code Mode は、実際に式が評価されます。上の例では (+ 1 2)、(expt 2 3)、 2 がそれぞれ Code Mode として評価されます。

> '(+ 1 2)
(+ 1 2)

> '(expt 2 3)
(EXPT 2 3)

> '2
2

> '(one two three)
(ONE TWO THREE)

> 'one
ONE

> '(1 2 3)
(1 2 3)

式の先頭に ' を追加すると Data Mode になります。これまで理解できなかった部分が明解になりました。


nil、()、'()、'nil の扱いについても、はっきりしました。

P51
The Four Disguise of ()

> (eq '() nil) 
T 

> (eq '() ()) 
T 

> (eq '() 'nil)
T 


また、ドット対記法も理解できました。

> '(1 2 3)
(1 2 3)

> (cons 1 (cons 2 (cons 3 nil)))
(1 2 3)

> '(1 . (2 . (3 . nil)))
(1 2 3)

> (cos 1 (cons 2 3))
(1 2 . 3)

> '(1 . (2 . 3))
(1 2 . 3)

リスト (1 2 3 ) は、最後が nil で終わるリスト。(1 2 . 3) は、最後が 3 で終わるリスト。

リストを図にすると上のようになります。図で表すと理解しやすいと思います。


Land of LISP: Learn to Program in Lisp, One Game at a Time! を読んでいる途中、Amazon.comKindleスティーブ・ジョブス氏の伝記が発売開始になりました。即購入しました。値段は $18.09 です。日本語版のように上下2冊にわけられるのではなく、1冊のようです。Apple 関連の本は、いろいろ読んでいるので、おおまかな内容がわかっています。そのため、英語ですが、割と読みやすいです。特に NeXT 関係の箇所を楽しみにしています。まだまだ先ですが、すごいページ数です。(汗)


また、Ubuntu 11.10 (日本語 Remix CD) を 仮想化ソフト Parallels Desktop 7 for Mac にインストールしたついでに、以前から試したかった PC-G850VS と Linux をシリアル接続し、Ubuntu 11.10 ( Linux ) にリモート・ログインできるターミナル (端末)

PC-G850/G815/E200用ソフトウェア
G850ターミナル
http://www16.ocn.ne.jp/~ver0/g800/index.html#g850term
http://ver0.sakura.ne.jp/g800/index.html#g850term

G850ターミナルを試してみました。


Parallels Desktop 7 上の Ubuntu 11.10 にリモートログインし、w3m、vi などの動作にも成功しました。次回紹介したいと思います。それにしてもすごいプログラムですね!

Ubuntu 11.10 login

w3m

ls