|
このページは「24環境」の情報です 第14回 yet another KNOPPIX-JP for CAT †海老原祐太郎
2003/6/24
CAT790開発CDROMのVersion0.97以降からは、あくまでもおまけですが、ブータブルCDROMになっていて 今回はこのブータブルCDROMでCAT709用の "Hello World" をクロスコンパイルするまでのチュートリアルを書きます。 ただし、YAK-CDROMと、ここに書いてあることはすべて無保証です。 備 準 †ごくごく普通のPCを用意します。knoppixは PCのハードディスクをまったく使わなくても動作するので メモリーは潤沢に用意してください。knoppixはスワップはおろか、 KNOPPIXはPCのハードディスクをまったく使用せずに全てのファイルをRAMDISK上で動作するのがウリ 一番いい方法はやっぱりHDDに空きパーテーションを用意して、yakをHDDインストールしてしまう方法です。 USB外付けHDD
USBフラッシュメモリー
立ち上げてみよう †CAT709開発CDROMはブータブルになっています。 KNOPPIXは洗練されたGUI環境を持ちますが、小生はコマンドライン派なのでコンソールしか使いません。(笑 先のUSB系diskはSCSIハードディスクとして認識されますのでデバイス名は $ su - ← rootユーザーになる(パスワード無し) # cfdisk /dev/sda ← USBディスクのパーテーションわけ # mkfs.ext2 /dev/sda1 ← ext2形式でフォーマット # mount /dev/sda1 /mnt/sda1 ← マウント # exit $ cd /mnt/sda1 ← 移動 $ mkdir project1 ← プロジェクトディレクトリを作る $ cd project1 ← 移動 プログラムの開発 †テキストエディターは kwrite がお勧めです。 $ kwriter hello.c kwriter の使い方は画面を見ればわかりますので割愛です(A^^;; # include <stdio.h> int main(){ printf("Hello World\n"); } まずは普通にコンパイルして動作させてみます。 $ gcc hello.c $ ./a.out Hello World $ file a.out a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped 動きましたね。file コマンドで a.outファイルの種類を調べてみると Intel 80386用のコードになっていることがわかります。 $ sh3-linux-gcc hello.c $ ./a.out ./a.out: cannot execute binary file $ file a.out a.out: ELF 32-bit LSB executable, Hitachi SH, version 1 (SYSV), dynamically linked (uses shared libs), not stripped クロスコンパイラ sh3-linux-gcc でコンパイルすると、実行できなくなりました。 それではこの a.out を実行機に持っていって実行させてみます。 まずnfsサーバ(開発用PC)の準備ですが、
ネットワークの設定は/etc/hosts.allow を編集してください。 $ su - # kwrite /etc/hosts.allow エクスポートの設定は/etc/exports です。 # kwrite /etc/exports # /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). /mnt/sda1 192.168.1.0/255.255.255.0(sync,ro,no_root_squash) /mnt/sdb1 192.168.7.0/255.255.255.0(sync,ro,no_root_squash) このエクスポート例は /mnt/sda1 を192.168.1.* マシンに対して ReadOnly でエクスポートする設定です。 /etc/exports ファイルを修正したら nfs サーバを再起動します。 /etc/init.d/nfs-kernel-server restart これでサーバの準備が整いましたので、次にクライアントからnfsでマウントします。 # mount サーバのIPアドレス:/mnt/sda1 /mnt それでは早速先ほどの実行ファイルを実行してみましょう # cd /mnt # ./a.out Hello World CAT709で無事実行することができました。 nfsトラブルシューティング †1.クライアント側で mount: RPC: Program not registered というエラーが出る場合はサーバ側の /etc/hosts.allow に portmap の行が無いのが原因。参考↓ 2.クライアント側で mount: RPC: Authentication error; why = Failed (unspecified error) というエラーが出る場合はサーバ側で /ets/hosts.deny で蹴られている。 |