ユーティリティの整備


LinuxをOSとして使うには、Linuxのカーネルだけではなくその上で動くユーティリティが必要になる。
通常、PCでLinuxを使用する場合にはCoreutilsなどが必要になるが、容量のそれほど大きくないFlashROMに収める必要が有るため、その代わりにBusyboxTinyLoginを使用する。
他にも、/etcに置く設定ファイルや/devに置くデバイスファイルなど、いくつかのファイルを作っておく必要がある。
また、ファイルの転送のためにkermitを入れておくと便利である。

用意する物

ディレクトリの作成

まず、必要なディレクトリを作成する。~/kompressor_rootfs/ディレクトリ以下に、必要なディレクトリ構造を作る。
 $ mkdir ~/kompressor_rootfs
 $ mkdir ~/kompressor_rootfs/bin
 $ mkdir ~/kompressor_rootfs/dev
 $ mkdir ~/kompressor_rootfs/etc
 $ mkdir ~/kompressor_rootfs/home
 $ mkdir ~/kompressor_rootfs/lib
 $ mkdir ~/kompressor_rootfs/mnt
 $ mkdir ~/kompressor_rootfs/proc
 $ mkdir ~/kompressor_rootfs/root
 $ mkdir ~/kompressor_rootfs/sbin
 $ mkdir ~/kompressor_rootfs/tmp
 $ mkdir ~/kompressor_rootfs/usr
 $ mkdir ~/kompressor_rootfs/usr/bin
 $ mkdir ~/kompressor_rootfs/usr/sbin
 $ mkdir ~/kompressor_rootfs/var
 $ mkdir ~/kompressor_rootfs/var/log
 $ mkdir ~/kompressor_rootfs/var/run
 $ mkdir ~/kompressor_rootfs/var/tmp

BusyBoxのコンパイル

  1. BusyBoxを上記の場所からダウンロードして、~/cross_compile/src/に置く。
  2. busybox-0.60.5.tar.gzを解凍する。
     $ cd ~/cross_compile/src
     $ tar zxvf busybox-0.60.5.tar.gz
     $ cd busybox-0.60.5
    
  3. Config.hを書き換えて、必要なオプションを選択する。
  4. Makefileを書き換える。
  5. makeを実行する。PREFIXとして ~/kompressor_rootfs を指定する。
     $ make PREFIX=~/kompressor_rootfs
     $ make PREFIX=~/kompressor_rootfs install
    
これで ~/kompressor_rootfs/ 以下にBusyBoxがインストールされた。
 $ ls ~/kompressor_rootfs/bin
 $ ls ~/kompressor_rootfs/sbin
とすれば確認できるはずである。 ちなみに、ここでは使用しなかったが、BusyBox Ver1.0ではTinyLoginの機能も含み、さらに拡張されているのでこれを使用しても良い。

TinyLoginのコンパイル

BusyBoxとほとんど同様。
  1. TinyLoginを上記の場所からダウンロードして、~/cross_compile/src/に置く。
  2. tinylogin-1.4.tar.gzを解凍する。
     $ cd ~/cross_compile/src
     $ tar zxvf tinylogin-1.4.tar.gz
     $ cd tinylogin-1.4
    
  3. Makefileを書き換える。
  4. makeを実行する。PREFIXとして ~/kompressor_rootfs を指定する。
     $ make PREFIX=~/kompressor_rootfs
     $ make PREFIX=~/kompressor_rootfs install
    
これで ~/kompressor_rootfs/ 以下にTinyLoginがインストールされた。
 $ ls ~/kompressor_rootfs/bin
 $ ls ~/kompressor_rootfs/sbin
とすれば確認できるはずである。

G-Kermitのコンパイル

  1. ディレクトリ ~/cross_compile/src/gkermit を作る
     $ mkdir ~/cross_compile/src/g-kermit
    
  2. G-kermitを上記の場所からダウンロードして、~/cross_compile/src/gkermit/に置く。
  3. gku100.tar.gzを解凍する。
     $ cd ~/cross_compile/src/gkermit
     $ tar zxvf gku100.tar.gz
    
  4. コンパイルする。makefileは使わない。staticにするとサイズが大きくなるので、stripでサイズを減らす。
     $ arm-linux-gcc -Os --static -o gkermit gproto.c gkermit.c gunixio.c gcmdline.c
     $ arm-linux-strip -s --remove-section=.note --remove-section=.comment gkermit
    
  5. 生成したgkermitを~/kompressor_rootfs/bin/ に置く。
     $ cp ./gkermit ~/kompressor_rootfs/bin
    

設定ファイルの作成

基本的には、PCで動いているLinuxの/etc下にある設定ファイルのうち、必要な物をコピーして書き換えれば良い。rcSは通常のcoreutilsのものと異なるので注意が必要。
不要なファイルも含んでいるが、動作している設定ファイルの例を示しておく。これを使うには、etc.tar.gzをダウンロードして~/に置き、
 $ su
 # cd ~/kompressor_rootfs/
 # tar zxvf ../etc.tar.gz
とする。 <-- Bootdisk Howto -->

デバイスファイルの作成

各種デバイスへのアクセスのため、/dev下にデバイスファイルを作る必要がある。この作業はrootで行う必要がある。
基本的には、PCで動いているLinuxの/dev下にあるデバイスファイルをコピーし、他に必要な物を追加すれば良い。ただし、デバイスファイルをコピーする際は -aオプションを付けないと正常にコピーされないので注意。
不要なファイルも含んでいるが、動作している設定ファイルの例を示しておく。これを使うには、dev.tar.gzをダウンロードして~/に置き、
 $ su
 # cd ~/kompressor_rootfs/
 # tar zxvf ../dev.tar.gz
とする。

[△ Kompressor BoardでLinuxのページへ]
[<< Linux Kernelの移植] [ファイルシステムの作成 >>]

[藤田研究室 トップページへ]

SASAKI Shunsuke