「12ステップで作る 組込みOS自作入門」で説明されている組込みOSの開発を 行うための,開発用サーバです.自前のPCに環境構築しなくても,開発を行う ことができます.
■ 概要
インターネット上にある開発サーバです.クロスコンパイラをインストール済みの FreeBSD環境です.
ログイン権限を与えられたかたは,自由にログインして利用することができます.
このような環境として,以前コンパイルサーバを 立てたことがあるが使い勝手がイマイチだったので,今回新たにサーバを立てました.
ひとまずトライアル運用してみますので,使ってみたいとか興味のあるかたは個別に 連絡ください.またご意見などありましたらお願いします.
■ 目的
以下のような利用を想定しています.
■ サーバ環境について
インターネット上のFreeBSDのサーバ環境に一時的にユーザIDを付与してSSHで ログイン可能にします.シェルなどがそのまま扱えます. (FreeBSDのユーザ環境がそのまま使える感じです)
環境自体はFreeBSDのjailにより,独立したユーザ空間として構築してあります. このため,できることはかなり限定されています.
環境内にはsshでのログインとsftp,scpでのファイル転送のみが可能です. 環境内ではネットワークは利用できません.
当然ですがrootにはなれません.クロスコンパイラなどの必要なツール類は あらかじめインストールしてあります.ホストのgccが使えますので,ツールを 自前でビルドすることはできます.
■ 利用上の注意
利用上の注意は以下のようなものです.まあ,他人に迷惑をかけずに自己責任で 節度を持った大人の使いかたをしてくださいということです.
■ 使いたいときの連絡方法
※ 勉強会などのために一時的なアカウントをこちらから配布した場合は, 以下は不要です.その場合は配布されたアカウントを利用してください.
ひとまずトライアル運用です.利用できるのは展示会や勉強会などで私と名刺交換 などをしていて,直接の面識があるかたのみとさせてください.
以下を坂井までメールにて連絡ください.
■ 使いかた (ログイン方法とファイル転送方法)
アカウント登録後,以下で接続できます.
(ログイン) % slogin -p <ポート番号> -i <秘密鍵ファイル> <ログインユーザ名>@<サーバ名>
(ファイル転送) % scp -P <ポート番号> -i <秘密鍵ファイル> <コピー元> <コピー先>秘密鍵は通常は .ssh/id_rsa に置き,パーミッションを600にしておきます (.sshのパーミッションは700にします). そして slogin や scp での秘密鍵はデフォルトで .ssh/id_rsa が利用されますので, 通常は -i での指定は不要です.
勉強会などのためにこちらからアカウント配布した場合は,秘密鍵は不要です. 秘密鍵は指定せず,配布したパスワードを入力してログインしてください. (毎回のパスワード入力が面倒ならば,.ssh に公開鍵を置いてしまってもいいです)
scpでのコピー元とコピー先は,リモート側のファイルの場合は 「<ログインユーザ名>@<サーバ名>:<ファイル名>」のようにして指定します.以下,例です.
% scp -P xxxxx sample.c myname@hogehoge.kozos.jp: (ローカルのsample.cをサーバ側のホームディレクトリにコピー) % scp -r -P xxxxx dir myname@hogehoge.kozos.jp: (ローカルのdirをサーバ側にディレクトリごとコピー) % scp -P xxxxx myname@hogehoge.kozos.jp:sample.c . (サーバ上のsample.cをローカル側にコピー) % scp -P xxxxx myname@hogehoge.kozos.jp:dir/sample.c ./dir (サーバ上のdir/sample.cをローカル側のdir内にコピー)ポート指定,鍵指定,ログインユーザ名,サーバ名などは .ssh/config に記述 しておけば,毎回指定する必要は無く名前指定で済むようになります. 以下,.ssh/config の記述例です.ファイルパーミッションは644でかまいません.
Host hogehoge HostName hogehoge.kozos.jp Port XXXXX User myname IdentityFile ~/.ssh/id_rsa上記のような .ssh/config を作成しておくと,以下でログインできるようになります.
% slogin hogehogescpは以下のようなかんじで実行できるようになります.ちょう楽ですね.
% scp sample.c hogehoge: (ローカルのsample.cをサーバ側にコピー) % scp hogehoge:sample.c . (サーバ上のsample.cをローカル側にコピー)秘密鍵は通常は ~/.ssh/id_rsa に置き,パーミッションを 600 にしておきます. この場合は IdentityFile の指定は不要です(「~/.ssh/id_rsa」がデフォルトなので). ただしサーバごとに秘密鍵を切替えたい場合には,IdentityFile で切替えることが できます. (秘密鍵は自己を証明するためのものなので通常は複数サーバに対してもひとつだけを 利用するようですが,なんらかの理由で鍵を別々にしたい場合など)
もう1点,もしも秘密鍵にパスフレーズを指定している場合には,毎回入力するのが 面倒に感じるかと思います.
この場合,ssh-agent/ssh-add を利用することでパスフレーズ入力を初回の1回に できるためたいへん便利になります.各自,調べてみてください.
■ 使いかた (ログイン後)
.tcshrc や .vimrc や .emacs などの設定ファイルは各自でホームディレクトリに 置いてください.
必要そうなツール類はあらかたインストール済みです. H8向けクロスコンパイラもインストールしてあります.
他に使いたいツールがあれば連絡ください (必要に応じてこちらでインストールします). もしくは個別にビルドして $HOME/bin に置いてください.
ネットワークは使えません(ssh/sftp/scpによる接続しかできません). ネットワークに関しては,やりたいことはたぶんftpやwgetでのファイル取得くらい なのだけど必要なファイルはscpで送り込めばいいので不要だろうという判断です.
標準のログインシェルはtcshですが,bashもインストール済みです.
tar, lha, zip, bzip2 などの操作ツールはひととおり入っています. それぞれのファイルは以下で展開できます.
% tar xvf hogehoge.tar (tarファイル) % tar xvzf hogehoge.tgz (tgzファイル) % lha x hogehoge.lzh (lzhファイル) % unzip hogehoge.zip (zipファイル) % bunzip2 hogehoge.bz2 (bzip2ファイル)
FreeBSDの標準のmakeはBSD由来のもののため,GNU make とは異なります. GNU make は「gmake」としてインストールされています.このためmakeを実行して Makefileの解釈でエラーが出たりする場合は,gmakeを利用してみてください. (とくにGNUのツール類のビルドで起きやすい)
クロスコンパイラなどを独自にビルドしたい場合には,./configure する際に --prefix=$HOME/cross などを指定して make ; make install (もしくは gmake ; gmake install)すれば,$HOME/cross/bin 以下にインストール されるはずです.インストール先がホームディレクトリならば,make install は 一般ユーザで実行可能です. あとは PATH に $HOME/cross/bin を追加すればOKです. 他ツール類も同様にして,独自にビルドしてホームディレクトリ以下にインストール することができます.
■ 利用形態
利用形態は以下の2つです.
■ 免責
■ フラッシュROMへの書き込みについて
マイコンボードのフラッシュROMへの書き込みにはh8writeが必要です. こちらはコンパイラによるモジュールのビルドとはまた別の話になります.
当然ですがフラッシュROMへの書き込みは手元で行う必要があるので, h8writeなどのツール類は別途,手元のPCにインストールする必要があります. 詳しくは12ステップ本の1stステップを参照してください.
なので,まったく環境構築せずに済むというわけではないです.
ですが,以下でコンパイル済みの実行形式が配布されています.(できることならば ソースから自前でコンパイルしたものを利用したほうがいいとは思いますが)
またマイコンボードの添付CD-ROMにも,コンパイル済みの実行形式が添付されて います.さらにFDTなどの別ツールを利用するという選択肢もあります.
フラッシュROMの書き込みにはこれらを利用して,ビルドにはコンパイルサーバを 利用するようにすれば,開発環境構築の手間はほとんどかからなくなります.
■ 最後にちょっと読んでね
本サービスはまあ基本的には自由に使っちゃって構いませんが,なるべくなら自前の PCでの開発をおすすめします.
組込み開発のひとつの敷居というか難しさは,開発環境構築にあります.これは実務 でも問題になりがちです.
ふつうの書籍ではこのような土台作業の部分は「OS開発の本質ではない」として, 開発環境を限定したりツール類のインストールCDを添付することで隠してしまいます. しかし12ステップ本では,このような土台作業こそ初心者に説明が必要という考えで, あえて開発環境構築から,それも組込みでは一番オーソドックスでつぶしがきく binutils+gccのクロスビルド方法から説明してあります. そして,ユーザ側でいろいろな環境を選べるように説明しています.
学習の際には,学習者が行うことを限定したり制限したりするほうが教える側は楽です. しかしそうではなく「説明して,選択させる」ということが大切と考えているから です.
なのでできることならば,やはり1stステップの手順で自前のPCに開発環境を構築 することをおすすめします.それもひとつの勉強だからです.
今回このようなサーバを構築したのは,それでも初心者の方が開発環境作りで つまづいてしまったときに,結局そこから何も進められなくてモチベーションが 下がってしまうという状況をなんとか助けたいというのが目的です. せっかく組込みOSに興味を持った入門者のかたが,それが原因になって入口で 引き返してしまうのはもったいないと思うからです.
なのでこれは「開発サーバを使えば開発環境を構築しなくても済むよ. だからみんな環境構築なんてせずに,サーバを使おうね」ということではなく, 初心者がつまずいたときの代替手段です.
なので初期のうちはサーバ利用でも構いませんが,なるべくならばひと段落したところ でもう一度1stステップを読みかえして,自前PCでの環境構築に再挑戦することを やはりおすすめします. 最近はクラウド上で開発できるような環境もあり便利でいいとは思いますが,便利な ものを使うだけでなく,やはり土台となる作業を自分でやることは勉強としてとても 大切だと思います.
とはいっても,使うことを遠慮したりする必要はないです.ガンガン使っちゃって ください.