「AKI-H8/3069FでuClinuxを動作させる方法(前編)」の版間の差分
編集の要約なし |
|||
47行目: | 47行目: | ||
細かいパラメータの設定は、"はじめる組込みLinux H8マイコン×uClinuxで学べるマイコン開発の面白さ"の中に記載されているので、<br> | 細かいパラメータの設定は、"はじめる組込みLinux H8マイコン×uClinuxで学べるマイコン開発の面白さ"の中に記載されているので、<br> | ||
詳細はその書籍を参照する。<br> | 詳細はその書籍を参照する。<br> | ||
cd | cd ~/uClinux-dist | ||
make clean | |||
make menuconfig | make menuconfig | ||
<br> | |||
以下のように、uCLinuxのカーネルパラメータの設定を行う。<br> | |||
まず、ベンダーを選択する。<br> | |||
Vendor/Product Selection | |||
Vender (Akizuki) | |||
Akizuki Products (AE3068) | |||
[Exit]を選択して完了する。<br> | |||
<br> | |||
次に、カーネルのバージョンと標準Cライブラリを選択する。<br> | |||
Kernel/Library/Defaults Selection | |||
Kernel Version (linux-2.4.x) | |||
Libc Version (uClibc) | |||
[*] Default all settings | |||
[*] Customize Kernel Settings | |||
[*] Customize Vendor/User Settings | |||
[ ] Update Default Vendor Settings | |||
[Exit]を2回選択した後、[Y]キーを押下して、新しい設定を保存する。<br> | |||
<br> | |||
ブロックデバイスの設定を行う。<br> | |||
Block devices | |||
[ ] ROM disk memory block device(blkmem) | |||
[Exit]を選択して完了する。<br> | |||
<br> | |||
ネットワークの設定を行う。<br> | |||
Networking options | |||
[*] TCP/IP networking | |||
[*] IP: kernel level autoconfiguration | |||
[*] IP: DHCP support (NEW) | |||
[Exit]を選択して完了する。<br> | |||
<br> | |||
ファイルシステムの設定を行う。<br> | |||
File systems | |||
[ ] ROM file system support | |||
Network File Systems | |||
[*] NFS file system support | |||
[*] Provide NFSv3 client support | |||
[*] Root file system on NFS | |||
[Exit]を3回選択した後、[Y]キーを押下して新しい設定を保存する。<br> | |||
シェルの設定を行う。<br> | |||
CoreApplecations | |||
(sash) Shell Program | |||
( ) Sash | |||
(X) nwsh | |||
[Exit]を選択して完了する。<br> | |||
<br> | |||
Webサーバ(thttpd)を標準でインストールする。<br> | |||
Network Applications | |||
[*] thttpd | |||
[Exit]を選択して完了する。<br> | |||
<br> | |||
BusyBoxをインストールする。<br> | |||
BusyBox | |||
[*] echo | |||
[*] echo: fancy (NEW) | |||
[*] free | |||
[Exit]を2回選択した後、[Y]キーを押下して新しい設定を保存する。<br> | |||
<br> | <br> | ||
カーネルパラメータの設定が完了した後、以下のコマンドを実行する。<br> | カーネルパラメータの設定が完了した後、以下のコマンドを実行する。<br> | ||
61行目: | 119行目: | ||
関連リンク : [https://monoist.atmarkit.co.jp/mn/articles/0802/04/news114.html 組み込みLinuxで際立つ「BusyBox」の魅力]<br> | 関連リンク : [https://monoist.atmarkit.co.jp/mn/articles/0802/04/news114.html 組み込みLinuxで際立つ「BusyBox」の魅力]<br> | ||
<br> | <br> | ||
== ルートファイルシステムの準備 == | == ルートファイルシステムの準備 == | ||
ルートファイルシステムを準備する。<br> | ルートファイルシステムを準備する。<br> |
2020年3月2日 (月) 20:53時点における版
概要
AKI-H8/3069Fの動作確認では、H8上で動作するファームウェアを書き込み、マザーボード上のLEDやLCDの動作確認をした。
ここでは、AKI-H8/3069Fに小型CPUで動作可能なuClinuxを載せ、実際に動作させる。
まず、uCLinuxを載せるには、下図の構成を覚えておく。
AKI-H8/3069F上でuClinuxが動作して、コマンド入力を行えるシェルが起動したとしても、キーボードやディスプレイは接続できない。
つまり、AKI-H8/3069F単体では入出力等ができないため、必ず、Linux PCが必要になる。
Linux PC上に、AKI-H8/3069F上のuClinuxの起動に必要なカーネル等のファイルを置くことによって、OSの起動を実現できる。
ここでは、以下の問題を解決していく。
この辺りの問題が、組み込み機器の取り扱いを難しくさせている要因であり、幅広い知識が要求される。
- BIOSに代わるプログラムは何か。
- カーネルはどこから起動されるのか。
- HDD / SSDは無いが、ファイルシステムのマウント先はどうするのか。
AKI-H8/3069F上でuClinuxを動作させるための準備
uClinuxを動作させるための準備を具体的に見ていく。
Linux PCの設定
H8の開発環境とAKI-H8/3069Fに載せるuClinuxのカーネルソースをダウンロードする。
以下のWebサイトから、h8tools_bin.tar.gzとuClinux-dist-sbcrbook20070218.tar.gzをダウンロードする。
- 開発環境 : h8tools
- カーネルソース : uClinux-dist-sbcrbook
開発環境であるh8toolsをインストールする。
まず、h8tools_bin.tar.gzファイルを解凍して、/optディレクトリにコピーする。
tar zxvf h8tools_bin.tar.gz -C /opt
次に、.bashrcファイルにパスを通す。
# .bashrcファイル export PATH=/opt/bin:$PATH
.bashrcファイルの設定を反映させる。
source .bashrc
最後に、パスが通っているか確認する。
which h8300-linux-elf-gcc
次に、uCLinuxのカーネルソースであるuClinux-dist-sbcrbook20070218.tar.gzを解凍する。
ここでは、カーネルソースを/usr/local/srcディレクトリに配置している。
tar zxvf uClinux-dist-sbcrbook20070218.tar.gz -C /usr/local/src
カーネルをコンパイルするために、カーネルソースを配置したディレクトリに移動して、カーネルパラメータの設定を行う。
細かいパラメータの設定は、"はじめる組込みLinux H8マイコン×uClinuxで学べるマイコン開発の面白さ"の中に記載されているので、
詳細はその書籍を参照する。
cd ~/uClinux-dist make clean make menuconfig
以下のように、uCLinuxのカーネルパラメータの設定を行う。
まず、ベンダーを選択する。
Vendor/Product Selection Vender (Akizuki) Akizuki Products (AE3068)
[Exit]を選択して完了する。
次に、カーネルのバージョンと標準Cライブラリを選択する。
Kernel/Library/Defaults Selection Kernel Version (linux-2.4.x) Libc Version (uClibc) [*] Default all settings [*] Customize Kernel Settings [*] Customize Vendor/User Settings [ ] Update Default Vendor Settings
[Exit]を2回選択した後、[Y]キーを押下して、新しい設定を保存する。
ブロックデバイスの設定を行う。
Block devices [ ] ROM disk memory block device(blkmem)
[Exit]を選択して完了する。
ネットワークの設定を行う。
Networking options [*] TCP/IP networking [*] IP: kernel level autoconfiguration [*] IP: DHCP support (NEW)
[Exit]を選択して完了する。
ファイルシステムの設定を行う。
File systems [ ] ROM file system support Network File Systems [*] NFS file system support [*] Provide NFSv3 client support [*] Root file system on NFS
[Exit]を3回選択した後、[Y]キーを押下して新しい設定を保存する。
シェルの設定を行う。
CoreApplecations (sash) Shell Program ( ) Sash (X) nwsh
[Exit]を選択して完了する。
Webサーバ(thttpd)を標準でインストールする。
Network Applications [*] thttpd
[Exit]を選択して完了する。
BusyBoxをインストールする。
BusyBox [*] echo [*] echo: fancy (NEW) [*] free
[Exit]を2回選択した後、[Y]キーを押下して新しい設定を保存する。
カーネルパラメータの設定が完了した後、以下のコマンドを実行する。
make dep make
このカーネルソースは、uClinuxのカーネルの設定・生成だけではなく、BusyBoxなどの設定・生成も行っているので、
makeコマンドが終了するたびに各ツールの設定メニューが立ち上がる。(その都度、詳細を設定してはmakeを実行する)
設定するのが面倒であれば、以下のWebサイトからカーネルであるlinux.binをダウンロードする。(/root/3069Fに配置する)
カーネル : linux.bin
関連リンク : 組み込みLinuxで際立つ「BusyBox」の魅力
ルートファイルシステムの準備
ルートファイルシステムを準備する。
これは、カーネルソースに組み込まれているので、それを流用するだけであるが、デバイスノードの作成などを行う必要がある。
詳細は書籍やWebサイトの情報を参照すること。
まず、ルートファイルシステムの圧縮ファイルであるromfs.tar.gzファイルを、以下のWebサイトからダウンロードする。
ルートファイルシステム : romfs.tar.gz
次に、ルートファイルシステムを展開する。
tar zxvf romfs.tar.gz -C /opt
ファイルの展開が完了後、romfsディレクトリが作成されるので、ファイル名をaki3069fに変更する。
sudo mv /opt/romfs /opt/aki3069f
以上で、カーネルとルートファイルシステムの準備が完了する。
ブートローダの書き込み
組み込み機器で採用されているブートローダには、U-BootやRedBoot等がある。
AKI-H8/3069Fでは、RedBootを使用する。
以下のWebサイトに、AKI-H8/3069F用にカスタマイズされたブートローダがあるので、それを使用する。(/root/3069Fに配置する)
H8ボード用ブートローダ : redboot_std_2mb.srec
USB-シリアル変換ケーブルを接続して、h8writeコマンドでredboot_std_2mb.srecをAKI-H8/3069FMに書き込む。
ファームウェアのサイズが大きいので、書き込み時間が長いので注意する。
h8write -f20 -3069 redboot_std_2mb.srec /dev/ttyUSB0
シリアル通信ソフトの準備
Linuxにおけるシリアル通信ソフトをインストールするため、uucpとminicomをインストールする。
# CentOS sudo yum install uucp minicom # SUSE sudo zypper install uucp minicom
minicomの設定を行うため、以下のコマンドを実行する。
なお、minicomの場合、標準のシリアルポートデバイスが/dev/ttyS1である。
minicom -s
minicomの起動画面にて、ファイル転送プロトコルを選択する。
ファイル転送プロトコル画面では、[I]キーを入力して、[Enter]キーで移動する。
minicomが/usr/local/binディレクトリにインストールされているので、パスを変更する。
次に、[Enter]キーで起動画面に戻り、シリアルポートを選択する。
シリアルポートの設定画面では、[A]キーを入力して、デバイスのファイル名を/dev/ttyUSB0に変更する。(各自の環境に合わせてファイル名を指定する)
上記と同様に、[Enter]キーで起動画面に戻り、["dfl"に設定を保存]を選択して保存する。
最後に、[Minicomを終了]を選択する。
minicomの設定画面から抜ける場合は、[Ctrl] + [A]キーを押下後、[Z]キーを押下する。
[minicomのコマンド一覧]画面が表示されるので、[X]キーを入力して[リセットして終了]を選択する。
また、cuコマンドの終了方法は、~.を入力して[Enter]キーを押下する。
~.