Linux Zaurusの情報
2017年6月、シャープ製のPDA Linux Zaurus SL-C760で懐かしのCP/Mを使うことができました。今度は、C/C++セルフ開発環境を作成しました。
いろいろと遊んでみようとネット検索したら、リンク切れになっているサイトが多いために目指す情報にたどり着けないことがあり残念です。2003年ころに発売になった機種で約15年も経過しており、もはや現役マシンではないのかもしれません。
2007年には、「ザウルス宝箱Pro」というソフト開発者のために技術情報などを提供していたページが提供を終了したのでとても残念です。
- SHARP Zaurus ※
- SHARP Zaurus SL-C760仕様 ※
- SHARP Zaurus SL-C760 ※
- SHARP Zaurus サポートステーション SL-C760 ※
- SHARP ザウルスサポートステーション 開発者向け技術情報 ※
セルフ開発環境をインストール
Linux ZaurusはLinuxを搭載しているので、セルフ開発環境を整備することにより、いろいろなソフトウェアをソースコードからインストールすることができます。
ザウルスファンの方が、セルフ開発環境のパッケージの公開先やインストール方法について解説しています。しかし、リンク切れが多く目的の情報にたどり着くために苦労しました。
私がインストールした環境(dev-img.bin パッケージ化群)は、ここからダウンロードしました。(ミラー)をクリックしてダウンロードします。
- アセンブラ&リンカ binutils 2.9.5.0.14-dev-1
- 標準Cライブラリ glibc 2.2.2-dev-2
- Cコンパイラ gcc 2.95.1-dev-1
- Linux用ヘッダファイル linux-headers 2.4.6-dev-2
- makeユーティリティ make 3.77-dev-1
- C++コンパイラ gcc-cplus 2.95.1-dev-3
- Unix基本コマンド群 busybox 0.60.3-dev-1
ダウンロードしたパッケージ(.ipk)をSDカードに保存して、Linux Zaulusに装着します。
[設定]-[ソフトウェアの追加/削除]をクリックします。
[ソフトウェアをインストール]をクリックします。
パッケージを選択します。
インストール先を[●本体メモリー]とします。
パッケージを順々にインストールします。
C言語テストプログラムのビルド
C言語セルフ開発環境が整いました。gccのバージョンを確認します。
gcc --version
gccのバージョンは、2.95.1です。
下記テストプログラム(test.c)を作成します。
#include <stdio.h> main() { printf("Hellow\n"); }
テストプログラム(test.c)をビルドします。
gcc -o test test.c
テストプログラム(test.c)を実行します。
./test
無事、小さなテストプログラムを実行することができました。
NKF 文字コードフィルターをソースからビルド
Linux Zaurusは、nkfコマンドがインストールされていません。nkfは、文字コードの変換や改行コードの変換を行うフィルターで、昔からいろんなプラットフォームに移植され使用しているコマンドです。
今回は、ソースからビルドします。
ここから、nkf-2.1.4.tar.gz をダウンロードします。
SDカード(/mnt/card)に格納して、Linux Zaurusに装着します。
アーカイブを展開します。
tar -zxvf /mnt/card/nkf-2.1.4.tar.gz
内容を確認します。
cd nkf-2.1.4 ls
nkfをビルドします。
make
/tmp で、I/O Errorが発生しました。
/tmp の容量が不足しているようです。ホームディレクトリの直下に tmpディレクトリを作成します。
mkdir /home/zaurus/tmp export TMP=/home/zaurus/tmp echo $TMP
もう一度、nkfをビルドします。
make
今度は、正常に終了しました。
root権限でインストールします。
su make install
nkf のバージョンを確認します。
nkf --version
NKFの使い方
テスト用のテキスト(JIS ,SJIS ,UTF8 ,EUC)を用意しました。
cat test_jis_crlf.txt cat test_sjis_crlf.txt cat test_utf8_crlf.txt cat test_euc_crlf.txt
Linux Zaulusは、EUCコードを採用しているようです。
文字コードと改行コードの確認
–guess オプション で、文字コードと改行コードを調べることができます。
nkf --guess test_jis_crlf.txt nkf --guess test_sjis_crlf.txt nkf --guess test_utf8_crlf.txt nkf --guess test_euc_crlf.txt
文字コードの変換
入力側と出力側を指定して、文字コードの変換をします。
- -j : 出力指定 JIS(ISO-2022-JP)に変換
- -s : 出力指定 Shift-JISに変換
- -e : 出力指定 EUC-JPに変換
- -w : 出力指定 UTF-8に変換
- -J : 入力指定 JIS(ISO-2022-JP)と仮定
- -S : 入力指定 Shift-JISと仮定
- -E : 入力指定 EUC-JPと仮定
- -W : 入力指定 UTF-8と仮定
nkf -J -e test_jis_crlf.txt nkf -S -e test_sjis_crlf.txt nkf -W -e test_utf8_crlf.txt
改行コードの変換
入力側文字コードと出力側文字コードを指定して文字コードの変換をします。
- -Lu : 改行コードをLF(0x0A)に変換 【unix形式】
- -Lw : 改行コードをCR+LF(0x0D 0x0A)に変換 【Windows形式】
- -Lm : 改行コードをCD(0x0D)に変換 【Mac形式】
nkf -Lu test_euc_crlf.txt | nkf --guess nkf -Lm test_euc_crlf.txt | nkf --guess nkf -Lw test_euc_crlf.txt | nkf --guess
上書き
–overwrite オプションで指定したファイルに直接上書きします。
cat test.txt nkf --guess test.txt nkf --overwrite -Lw test.txt nkf --guess test.txt nkf --overwrite -Lm test.txt nkf --guess test.txt
最後に
Linux Zaurusのセルフ開発環境が整いました。自分でC言語プログラムを作成したり、フリーウェアなどをビルドすることができます。しかし、少し大きなプログラムをビルドすると。 virural memory exhausted エラーが発生してしまいます。
スワップの設定などしてみたのですが、ビルドできないものもあります。
やっぱり、小さなLinuxですのでクロス開発環境を準備しないと遊べないのかな。