Speecysロボット/設定
2018-04-16 (月) 15:53:00 (1049d)
ロボットおよび関係するコンピュータの設定*1 †
ターミナルの設定 †
ロボットへのアクセスの基本 †
ロボットにアクセスするためには二種類の方法がある.一つはネットワーク経由で普段はこの方法を用いる.もう一つはRS-232Cケーブル経由での接続である.RS-232C経由はプリミティブであるが基本的にどのような場合でも使用できる.故に初期設定用・緊急用として非常に重要な方法である.
RS-232C経由でのアクセスの代表としてWindowsのターミナルを用いた方法がある.以下にターミナルの設定を示す.詳しくはマニュアル参照のこと.
ターミナルの設定 †
- ハイパーターミナルの設定
- ポート:com1(またはcom2だろう)
- 通信速度:9600bps
- パリティ:なし
- ストップビット:1
- データ長:8ビット
- フロー制御:なし
ロボットの基本設定 †
ロボットの設定を行うためにはターミナルを設定し,RS-232C経由でロボットにアクセスする必要がある.まずはターミナルの設定から.
それが済むとロボットの設定であるが,そのほとんど(全て?)はNetBSD1.6.2の設定である.故に,unix/設定/システム?に記述している設定を必要に応じて行う.ただし,万が一取り返しがつかなくなったら(起動しなくなったり)致命的である.普通のPCの場合,最終手段として再インストールという手段が残されているが,Speecysの場合はそれができないからである.この場合,メーカに修理をお願いすることになる.
プログラム開発用PCの作成 †
- NetBSDをインストール
- telnet,ftpでロボットと繋がることを確認
- gmakeをインストール
- binutilsをインストール
- sandpointのinclude,libをbinutilsをインストールしたディレクトリにコピー
- だいたい/usr/local/powerpc-netbsd/
- gccをインストール
- powerpc-netbsd用のクロスコンパイラの作成
- わかりやすい名前でシンボリックリンクを張っておくと楽
- Speecysより提供されている開発キットを設置
- 例:/speecys/local/以下に展開
- 例:include, libが必要であり,各バージョンごとに名前をつけておく
- include -> include1009 (Ver.1.0.0.9をシンボリックリンク)
- include1006
- include1009
- lib -> lib1009 (Ver. 1.0.0.9をシンボリックリンク)
- lib1006
- lib1009
- 開発用IDの設定
- include/speecysid.hに記載
- idはライセンスに書いてある.
- 開発用ライセンスキー
- include/speecysid.hに記載
- コンパイルテスト
- 適当なプログラム(例:a.c)をつくりテスト
NFSマウントで楽ちん †
SandpointをNFSサーバに置き,ロボット側でマウントすることで
- 標準的なコマンドがいっぱい使える
- 作成したプログラムをFTPで送らずに済む
などの利便を実現する.
目標:Sandpointのコマンド群をNFS経由で使用 †
- Speecysロボット上でsuをコピー
- cp /usr/bin/su /bin
- ロボットのsuでないといけない(?)ので/binに退避させておく.
- シェル環境設定ファイル?でPATHの順番を確認
- /usr/binより/binが優先されているか
- cp /usr/bin/su /bin
- NFSサーバを用意?.
- NFSサーバ上にSandpointを準備.
- Sandpointの/usr上にSpeecysロボットの/usrを上書きコピー
- SpeecysロボットにてNFSサーバ上にあるSandpointのusrをマウント?
- Speecysロボット上でマウントテスト?.
- 手動マウントの例:mount -t nfs nfsserver:/usr/home/speecys/usr /usr
- おまけ
- 自分でプログラム開発などを行う場合,自動実行される/root/bin以下のファイルなどが邪魔.そこで,自分用の/rootを作成.オリジナルの/rootを/root_originalとし,必要に応じてfstabでマウントの切替を行ってやる.
- NFSサーバ上にロボットの/rootを/root,/root_originalとしてコピー
- NFSサーバ:/rootを好きなように変更
- NFSサーバ:/etc/exports?
- ロボットのfstabでマウント
- nfsserver:/root /root nfs rw 0 0
- #nfsserver:/root_original /root nfs rw 0 0
- のような形で切替
- 自分でプログラム開発などを行う場合,自動実行される/root/bin以下のファイルなどが邪魔.そこで,自分用の/rootを作成.オリジナルの/rootを/root_originalとし,必要に応じてfstabでマウントの切替を行ってやる.
目標:各ユーザのホームディレクトリをマウント †
SandpointをNFS経由で使用すると自動的にホームディレクトリもマウントされる(ホームディレクトリが/usr/homeなので).
NIS使用でうれしいユーザ管理 †
- Sandpointの準備.
- Sanpointのusrにある以下のファイルをSpeecysロボットの/usr以下にコピー(NFSマウント前に必要)
- /usr/sbin/rpcbind
- /usr/sbin/ypbind
- (/usr/sbin/rpc* いらないかも)
- (/usr/bin/yp* いらないかも)
- NISの設定?
- SpeecysロボットでNFSマウント(ホームディレクトリをNFSマウントする場合)
- /usr/homeから/にシンボリックリンクを張っておく.
- ln -s /usr/home /home
- /homeがユーザディレクトリとなるシステムもあるため
- /usr/homeから/にシンボリックリンクを張っておく.
Sandpointとは †
- Sandpointとは
- NetBSDのPowerPC用リファレンス・プラットフォーム
- Speecysロボットとの関連
- Speecysロボットの頭脳(RPU-100)はNetBSD1.6.2をベースにカスタマイズしたOSであるのである.このことからSpeecysロボット用gccのクロスコンパイラ作成時に必要となる.その他にも,sandpointに付属のソフト・ライブラリの使用ができる,など,同バージョンのSandpointを開発PCといった関連するPCに用意しておくと色々と良いことがある.
Sandpointの準備 †
- Sandpointのファイルゲット(NetBSD1.6.2と同じバージョンにすること)
- Sandpoint解凍
- 例えば/usr/net/sandpoint以下
- 必要なもの以外消去(あってもかまわない)