GNU/Linux on CAT68701(sh3-board) りぬくす工房の海老原様から SH3を搭載した組み込みLinuxボードをいただきました。
その後、不覚にも自分のミスで壊してしまいましたが、 海老原様とエーワン様 のご厚意で、 また、いただいてしまいました。 本当にありがとうございます m(_ _)m

小さくて場所をとらず、冷却用のFANがいらないのでとても静かです。 机の上においても全く気になりません :)

News

Photo

ボードが届きました :)
電源を確保するためにSCSI-HDDをばらしました ^^;
とりあえず設置してみました
ボードはきちんと動いています :)
ちゃんとブートしました :))
ネットワークも大丈夫です :)))
supercatにあやかってkanjanekoという名前にしようと思います :)
箱に納めて(戻して)みました ^^;
ケーブルもささっています ^^;;
問題なく動いているようです :)))
復活しました :)
無事、起動しました :))
安全のために電源を変えました :)


Some changes...(Sep.5.2002)

sidに載せ変えたついでにりぬくす工房のcdrom(isoイメージ)に入っているカーネルソースとパッチを利用して、 Kernelを2.4.17に変えました。 内容はほとんど海老原さんの例(2.4.19)に従ってます。 カーネル設定で違うのはcs89x0をカーネル組み込みにした点だけ。 後は、sramの扱いがモジュールになったので自動的に組み込むために /etc/modulesを利用する。

% cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line.  Comments begin with
# a "#", and everything on the line after them are ignored.
mtdblock
slram map=sram,0x10000000,0x10080000

後はswapを作成するスクリプトを書いて/etc/init.dに置いて /etc/rcS.d/S20modutilsの後に呼ばれるようにリンク。

% cat /etc/init.d/initswap
mkswap /dev/sram
swapon /dev/sram
% sudo ln -s /etc/init.d/initswap /etc/rcS.d/S25initswap

後はcvsから取って来たliloをmakeする時に partition.cに#define EXTENDED_PARTITION 0とか追加したような気が…


SH3 Xserver

uVNCが動かせたらいいなとか 思ってたら、海老原さんが本家のVNCサーバを動かしてくれました。 スクリーンショットをこちらで見ることができます。


Making Web-server(APACHE)

材料apache_1.3.19
何も考えず./configure
何も考えずmake… 途中で一度だけ原因不明のエラーでsshによる接続が切断されるも、 その後、再びmakeするだけで完了。
何も考えずmake install
/usr/local/apache/conf/httpd.confのServerNameだけ設定
/usr/local/apache/bin/apachectl startをエラー無く実行
なぜか繋がらない
/usr/local/apache/logs/error_logに

[Fri Apr 20 17:20:13 2001] [emerg] Your kernel was built without CONFIG_SYSVIPC
httpd: Please consult the Apache FAQ for details
[Fri Apr 20 17:20:13 2001] [emerg] (38)Function not implemented: could not call

カーネルの再コンパイルか…


Making Java(Kaffe)

材料kaffe-1.0.6
configureを通すためにconfig.subを改造しconfig/sh3を偽造
kaffe/kaffevm/locks.cのマクロ、COMPARE_AND_EXCHANGEをごまかす
in-lineアセンブラで玉砕


Making Print-server(SAMBA)

材料samba-2.0.7
何も考えずにconfigureが通らない
後回し


My favorite tool(CVS)

材料cvs-1.11
swapfileを用意しながら頑張るも母体だけではコンパイルできず
クロス環境が必要そうなので後回し


I like the T more than the B.

bashにも慣れてきたので後回し


Connection via LAN(sshd)

充電期間も過ぎたことなのでいきなりsshdを上げることにする。 まず、openssh-2.5.1p2openssl-0.9.6とzlib-1.1.3のソースを用意した。 クロス環境でmakeを行い失敗する度に間者猫でmakeを行う作業を繰り返すことでまずzlibをコンパイルした。 zlibに関しては何の問題もなく構築に成功した。 次に同様の方法でopensslをコンパイルした。 Configureとconfigスクリプトを実行してしまうとあり得ないオプションが設定されてしまうので、 libz.aとzlib.h、zconf.hだけをクロス環境から見えるところにコピーして、 何も考えずに単にmakeを実行した。 結果としてmake installでperlが外すので、 includeのopensslディレクトリの中身と生成されたlibRSAglue.aとlibssl.aとlibcrypt.a、 libcrypto.aを適切なところに手動でコピーしてopensshの構築に入る。 /usr/localをnfsマウントにする予定なので、 自分で構築する際のprefixは基本的に/usr/localを指定している。 sshdのコンパイルは苦労なく成功したので、 /etc/init.dにsshdのスクリプトを置いて デフォルトのrunlevelが2なので/etc/rc2.dからS30sshdという名前でリンクをはった。 これで他所から無事に入れるようになった :))))))


Connection with LAN(telnetd)

とりあえず、telnetdをあげるとよさそう。
海老原さんの作ったtelnetd_0.17-6_sh3.debを持ってくる。
dpkg -iするとadduserがないと怒られる。
次は海老原さんの作ったadduser_3.11.1_all.debを持ってくる。
dpkg -iすると/usr/share/locale/fr/LC_MESSAGESがないと怒られる。
mkdir -p /usr/share/locale/fr/LC_MESSAGESでごまかす。
後はpasswd,adduser,telnetdの順番でインストールできた。
あれ?入れない…

telnetdはネイティブ過ぎて今まで自分で構築したことが無かった。 だから何かの設定を忘れているのだろう… sshdなら苦も無く構築してきたのにこれほどtelnetdで悩まされるとは… というわけで、sshdをあげるまでの道に続く ^^;


I like the vi but the vim is the best

間者猫でmakeすると一部の(大きな?)ファイルでout of memory…
別に用意したクロスコンパイル環境でその続きをmake。
必要に応じて交互に繰り返す…
入力を受けつけないvimができた…どこかで失敗したらしい… :((

その後、ターミナルの所為と判明。 多段undoとwindow分割のできるvimが使えるようになった;)


Save the disk space

MELCO RCF-C(CompactFlash 64M)はシステムを入れただけで7割近く埋まってしまっている。 128Mのコンパクトフラッシュは高価なので論外だけど、 ApacheやSambaなどをコンパイルすために他の方法で何とかディスクの容量を確保しておきたい。

まず、海老原さんの書いた文書を参考にNFSが使えるようにportmapをインストールしてみた。 次に、NFSサーバを用意する必要がある。 本当はシリアル接続しているPCのディスクを共有するのがわかりやすいのだけど、 このPCはLinuxとWindows2000を切り替えながら利用しているので、 いつでもマウントできるように学校のSolarisマシンのDiskをexportすることにした。
最初に、lime(NFSサーバ)の/etc/dfs/dfstabに次のように追加。

share -F nfs -o rw=win2k,root=win2k -d "export lime dir for win2k" /space/fjt/sh3

これで1G以上のストレージが確保できる :)
次に、起動時にNFSマウントできるように間者猫の/etc/fstabに次のように追加。

lime:/space/fjt/sh3	/mnt/sh3	nfs defaults,rw 0 0

ついでに、このマウントポイントをホームディレクトリにするために、 /etc/passwdに書かれた自分のホームディレクトリを/mnt/sh3に変更してみた。 その後、間者猫を再起動し、 リセットボタン(おまじない)で更に再起動して無事マウントされることを確認 :)


Make, make, make, make

binutils-20001112_sh3.tar.gzとgcc-20001120_sh3.tar.gzを/で展開。
海老原さんのところからlibc6-dev_2.2-1_sh3.debを持ってくる。
さらにmake_3.79.1-1_sh3.debを持ってくる。
ここで、現在のディスク使用率…94% :(
/usr/share/localeの下をenとjaとlocale.aliasを残して消去。
84%まで下がった :)


Connection with serial line

普段利用しているOSがWindowsなので TeraTermを利用して接続することが多いのですが、 せっかくだからLinuxから接続してみます。

私が利用しているLinuxのディストリビューションはKondaraです。
まず、シリアル接続に必要なcuコマンドを得るために、 uucpのパッケージをインストールしました。
私のマシンはCOM0にシリアルマウスをつないでいるため、 Boardとのシリアル接続にはCOM0でなくてCOM1を利用しています。
次に、setserialコマンドで接続の情報を確認します。

sudo setserial -a /dev/cua1

続いて、シリアル接続を行うために必要な権限をデバイス(COM1)に与えます。

sudo chown uucp.uucp /dev/cua1

最後に実際にcuコマンドによって接続を行います。 -lは利用するデバイスを指定し、-sは通信速度を指定しています。

sudo cu -l /dev/cua1 -s 115200

無事に接続できればログインconsoleが表示されるはずです。


Making an environment for beginning

初期状態ではrootにパスワードが設定されていないため、 怖くてネットワーク接続できません。 そこで、まずpasswdコマンドでrootにパスワードを設定しました。

また、常にrootで作業するのも危険なので、 作業用にuser accountを増やすことにしました。 adduserコマンドは既にパッケージから入手できますが、 急場しのぎに/etc/passwdを直接編集してアカウントfjtを追加しました。 私の場合/etc/passwdに次の様な情報を書き加えています。

fjt::$USER_ID:$GROUP_ID:Mitsunori Fujita:/home/fjt:/bin/bash

最後に、新しいアカウントにパスワードを設定するため、 passwd fjtと実行して適当にパスワード決めました。