MC68EZ328 SBCの製作中ですが、ソフトウェアの準備もしておかなければということで、uClinuxをビルドしてみました。ただし、uClinuxの公式サイトはもうなくなっていますので、アーカイブを入手するところから始めます。
ビルドはクロスコンパイル環境で行います。今回は手元のWindows10 WSL(Ubuntu 20.04 LTS 64bit)で行うことにしました。
参考としたサイトは以下のサイトです。
2014年の記事になりますが、この内容に沿ってArcturus社のuCsimmというMC68EZ328を使用したマイコンボード用のuClinux (3.x kernel)をビルドしてみます。
uClinuxの入手
今回使用したアーカイブはこの2つです。uClinuxのソースとToolchainの実行環境(クロスコンパイラ)です。
- uClinux-dist-20140504.tar.bz2 (SOURCEFORGE)
- m68k-uclinux-tools-20121115.tar.bz2 (Google Code Archive)
クロスコンパイル環境の準備
まず、Toolchainを展開します。/usr/local 配下にインストールします。
| |
これで/usr/local配下にm68k-uclinuxというディレクトリができ、/usr/local/binにもm68k-uclinux-* というバイナリが展開されていることが確認できます。
これでm68kのクロスコンパイル環境ができました。
uClinuxのビルド
次にuClinuxのソースを作業用ディレクトリに展開します。
| |
作業用ディレクトリにuClinux-distというディレクトリができます。
make configを行いビルドオプションを選択します。プラットフォームはArcturus社のuCsimmを選びます。これ以外のオプションはひとまずデフォルトのままとしました。
| |
これでMakefileができましたので、makeをします。
| |
残念ながら途中でエラーになりました。
ビルドエラーの対応
このビルドエラーは参考にしているサイトでも取り上げられています。
まずは、共有ライブラリが見つからないというエラーです。
/usr/local/libexec/gcc/m68k-uclinux/4.5.1/cc1: error while loading shared libraries: libmpc.so.2:
これは必要なパッケージをインストール後にシンボリックリンクを張って対応しました。
| |
もう一つ libmpfr.so.4が無いというエラーも同様に対応しました。
| |
次はこのようなエラーがでました。
/usr/local/m68k-uclinux/bin/ld.real: cannot find -lutil
こちらはtelnetdのコンパイル時に発生しています。記事と同様にmake configでtelnetdを使わないように設定しました。原因はパラメタがおかしいのではと思われますが、あとで確認することにして、まずはビルドを通します。

これで順調にコンパイルが進みました。

最後にimage.binを/tftpbootにコピーできないというエラーがでますが、imagesディレクトリにバイナリ自体はできていますので、特に問題ありません。

まとめ
2021年のOSでもuClinuxのビルドはできました。今回製作中のMC68EZ328 SBC用にカスタマイズが必要になるでしょうが、ひとまず動かせるものはできそうです。
