📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
編集の要約なし |
|||
| (同じ利用者による、間の5版が非表示) | |||
| 39行目: | 39行目: | ||
== BusyBoxの構成 == | == BusyBoxの構成 == | ||
BusyBoxの構成を下図に示す。<br> | |||
[[ファイル:BusyBox 1.jpg|フレームなし|中央]] | |||
<br> | |||
* BusyBox | * BusyBox | ||
*: 1つのコマンド | *: 1つのコマンド | ||
*BusyBoxの内部構成 | *BusyBoxの内部構成 | ||
*: アプレットとlibbb | *: アプレットとlibbb | ||
<br> | <br> | ||
アプレットとは、コマンドの機能に相当するものである。<br> | アプレットとは、コマンドの機能に相当するものである。<br> | ||
| 88行目: | 88行目: | ||
まず、BusyBoxの最新のソースコードを[https://busybox.net 公式Webサイト]からダウンロードする。<br> | まず、BusyBoxの最新のソースコードを[https://busybox.net 公式Webサイト]からダウンロードする。<br> | ||
ダウンロードしたファイルを展開して、展開先のディレクトリに移動する。<br> | ダウンロードしたファイルを展開して、展開先のディレクトリに移動する。<br> | ||
tar | tar xf busybox-<バージョン>.tar.bz2 | ||
cd busybox- | cd busybox-<バージョン> | ||
<br> | <br> | ||
次に、どのアプレットを含めるのかを設定するため、以下のコマンドを実行して、設定画面を開く。<br> | 次に、どのアプレットを含めるのかを設定するため、以下のコマンドを実行して、設定画面を開く。<br> | ||
make menuconfig | make -j $(nproc) menuconfig | ||
<br> | <br> | ||
これは、Linuxカーネルのコンパイルと同様の画面である。<br> | これは、Linuxカーネルのコンパイルと同様の画面である。<br> | ||
| 104行目: | 104行目: | ||
標準では、カレントディレクトリ下の_installディレクトリにインストールされる。<br> | 標準では、カレントディレクトリ下の_installディレクトリにインストールされる。<br> | ||
(BusyBoxの実行ファイルは、_install/bin/busyboxである)<br> | (BusyBoxの実行ファイルは、_install/bin/busyboxである)<br> | ||
make | make -j $(nproc) | ||
make install | make install | ||
<br> | <br> | ||
| 122行目: | 122行目: | ||
lrwxrwxrwx 1 user group 7 Jan 7 22:36 chown -> busybox | lrwxrwxrwx 1 user group 7 Jan 7 22:36 chown -> busybox | ||
lrwxrwxrwx 1 user group 7 Jan 7 22:36 cp -> busybox | lrwxrwxrwx 1 user group 7 Jan 7 22:36 cp -> busybox | ||
...略... | ...略... | ||
<br> | <br> | ||
| 128行目: | 129行目: | ||
./_install/bin/ls | ./_install/bin/ls | ||
<br> | <br> | ||
ここでは、Linux | ここでは、Linux PC上で動作させたが、実務においては、組み込み機器のMCUに合わせてクロスコンパイルする必要がある。<br> | ||
<br> | |||
( | クロスコンパイルの手順は、<code>make</code>コマンドでコンパイルする時、<code>CROSS_COMPILE</code>オプションを付加して、クロスコンパイル向けGCCファイルのパスを指定する。<br> | ||
(クロスコンパイル向けGCCファイルのパスから、gccを除いた文字列を指定する)<br> | |||
<br> | <br> | ||
例えば、Renesas | 例えば、Renesas SH向けGCCのファイル名がsh-linux-gccの場合、<br> | ||
<code>CROSS_COMPILE=/<Renesas SH向けGCCのインストールディレクトリ>/sh-linux-</code>と指定して、Renesas SHで動作するBusyBoxをコンパイルする。<br> | |||
make CROSS_COMPILE=sh-linux- | # 例1. Renesas SH向け | ||
make -j $(proc) CROSS_COMPILE=/<Renesas SH向けGCCのインストールディレクトリ>/sh-linux- | |||
make install | make install | ||
# 例2. AArch64向け | |||
make -j $(proc) CROSS_COMPILE=/<AArch64向けGCCのインストールディレクトリ>/aarch64-linux-gnu- | |||
make install | |||
<br> | <br> | ||
最後に、生成された_installディレクトリ下のファイルを、組み込み機器に配置する。<br> | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:uCLinux]] | [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:uCLinux]] | ||