13,007
回編集
(ページの作成:「== 概要 == BusyBoxとは、主に組み込みLinuxで使われるオープンソースの万能コマンドのことである。<br> BusyBoxは、cpコマンドやping…」) |
編集の要約なし |
||
83行目: | 83行目: | ||
例えば、/bin/catを実行すると、そのリンク先である/bin/busyboxが実行されて、argv[0]は/bin/catとなる。<br> | 例えば、/bin/catを実行すると、そのリンク先である/bin/busyboxが実行されて、argv[0]は/bin/catとなる。<br> | ||
/bin/busyboxは、argv[0]が/bin/catであることを確認して、catアプレットを呼び出す。<br> | /bin/busyboxは、argv[0]が/bin/catであることを確認して、catアプレットを呼び出す。<br> | ||
<br><br> | |||
== BusyBoxの設定とインストール == | |||
まず、BusyBoxの最新のソースコードを[https://busybox.net 公式Webサイト]からダウンロードする。<br> | |||
ダウンロードしたファイルを展開して、展開先のディレクトリに移動する。<br> | |||
tar jxvf busybox-1.31.1.tar.bz2 | |||
cd busybox-1.31.1 | |||
<br> | |||
次に、どのアプレットを含めるのかを設定するため、以下のコマンドを実行して、設定画面を開く。<br> | |||
make menuconfig | |||
<br> | |||
これは、Linuxカーネルのコンパイルと同様の画面である。<br> | |||
例えば、Coreutilsを選択すると、下図の画面が表示される。(catアプレットやcpアプレット等が選択されている)<br> | |||
[Y]キーを押下するとアプレットが選択され、[N]キーを押下すると選択が解除される。<br> | |||
[[ファイル:BusyBox 2.jpg|フレームなし|中央]] | |||
<br> | |||
使用するアプレットの選択が完了した後、[Exit]を選択して、[Yes]を選択すると選択内容の保存を行う。<br> | |||
<br> | |||
次に、上記で選択したアプレットを含むBusyBoxをコンパイルしてインストールする。<br> | |||
標準では、カレントディレクトリ下の_installディレクトリにインストールされる。<br> | |||
(BusyBoxの実行ファイルは、_install/bin/busyboxである)<br> | |||
make | |||
make install | |||
<br> | |||
最後に、_install/binディレクトリの中を確認する。<br> | |||
上記に記載したように、各アプレットがBusyBoxへのシンボリックリンクになっている。<br> | |||
# 入力 | |||
ls -l _install/bin | |||
<br> | |||
# 出力 | |||
lrwxrwxrwx 1 user group 7 Jan 7 22:36 addgroup -> busybox | |||
lrwxrwxrwx 1 user group 7 Jan 7 22:36 adduser -> busybox | |||
lrwxrwxrwx 1 user group 7 Jan 7 22:36 ash -> busybox | |||
-rwxr-xr-x 1 user group 626080 Jan 7 22:36 busybox | |||
lrwxrwxrwx 1 user group 7 Jan 7 22:36 cat -> busybox | |||
rwxrwxrwx 1 user group 7 Jan 7 22:36 chgrp -> busybox | |||
lrwxrwxrwx 1 user group 7 Jan 7 22:36 chmod -> busybox | |||
lrwxrwxrwx 1 user group 7 Jan 7 22:36 chown -> busybox | |||
lrwxrwxrwx 1 user group 7 Jan 7 22:36 cp -> busybox | |||
...略... | |||
<br> | |||
BusyBoxの動作を確認するため、以下のアプレットを実行する。<br> | |||
ファイルの一覧が表示されれば、BusyBoxが正常に動作している。<br> | |||
./_install/bin/ls | |||
<br> | |||
ここでは、Linux PC上で動作させたが、実際は、組み込み機器のMCUに合わせてクロスコンパイルする必要がある。<br> | |||
クロスコンパイル方法は、makeコマンドでコンパイルする際に、gccのプレフィックスを入力するだけである。<br> | |||
(クロスコンパイル用gccのファイル名から、gccを除いた文字列)<br> | |||
<br> | |||
例えば、Renesas SH用gccの名称はsh-linux-gccなので、 | |||
以下のようにしてRenesas SHで動作するBusyBoxをコンパイルして、インストールする。<br> | |||
make CROSS_COMPILE=sh-linux- | |||
make install | |||
<br> | |||
生成された_installディレクトリ下のファイルを、組み込み機器に転送してインストールする。<br> | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:uCLinux]] | [[カテゴリ:uCLinux]] |