時間が空きましたが、チュートリアルを継続です。 今回は、Linuxの起動時にアプリケーションを自動で起動するようにする、という内容です。
参考
参考サイトとXilinxドキュメントを参考にします。
参考サイト :
ZYBO (Zynq) 初心者ガイド (15) Linux起動時にアプリケーションを自動実行させる - Qiita
Xilinxドキュメント :
p68 "Application Auto Run at Startup" から
Linuxでのアプリケーション自動起動
Linuxでは、システム起動時に/etc/init.d
ディレクトリに置かれたスクリプトを実行するようになっているとのこと。
Linux起動の仕組みを理解しよう[rcスクリプト編]:Windowsユーザーに教えるLinuxの常識(最終回) - @IT
手順
完全に参考サイトの通りです。
これでは記事にならないので、やっている内容を確認しながら進めてみます。
アプリケーション起動用スクリプトを間に挟むやり方でやります。
起動時に実行するアプリケーションプロジェクトの作成
開発用Ubuntuで、Petalinuxプロジェクトディレクトリに移動して、以下を実行します。
petalinux-create -t apps --template install -n myinit --enable
以下を参考に、このコマンドの内容を確認してみます。
p19
petalinux-create
コマンドの詳細が記載されています。
これを見ると、上のコマンドは、
-t apps
オプション : Petalinuxプロジェクト内にapplication componentを追加する--template
オプション : アプリケーションのテンプレートを指定(オプション)install
: ビルド済みのバイナリを追加する場合、このテンプレートを指定します。
--enable
: componentの作成後、ルートファイルシステムに追加する
というような内容になっています。
実行結果
noki@ubuntu:~/work/Petalinux/Zybo-base-linux-peta$ petalinux-create -t apps --template install -n myinit --enable INFO: Create apps: myinit INFO: New apps successfully created in /home/noki/work/Petalinux/Zybo-base-linux-peta/project-spec/meta-user/recipes-apps/myinit INFO: Enabling created component... INFO: sourcing bitbake INFO: oldconfig rootfs INFO: myinit has been enabled noki@ubuntu:~/work/Petalinux/Zybo-base-linux-peta$
生成ファイルの変更
生成されたファイルのうち、以下を参考サイトの通りに編集します。
project-spec/meta-user/recipes-apps/myinit/myinit.bb
project-spec/meta-user/recipes-apps/myinit/files/myinit
以下のファイルは新規作成して、内容を編集します。
project-spec/meta-user/recipes-apps/myinit/files/myinit_run.sh
編集している内容を少し確認してみます。
project-spec/meta-user/recipes-apps/myinit/myinit.bb
install -d ${D}${sysconfdir}/init.d
install -m 0755 ${S}/myinit ${D}${sysconfdir}/init.d/myinit
myinit
アプリケーションを/etc/init.d
にインストールする、という内容のようです。
正確にはbitbakeツールを知らないと分からないかと。
デフォルトで生成されるファイルでは、このインストール先が/usr/bin
になっていますが、これで起動時自動実行になるようです。install -d ${D}${bindir}
install -m 0755 myinit_run.sh ${D}${bindir}
myinit_run.sh
スクリプトを/usr/bin
にコピーします。
project-spec/meta-user/recipes-apps/myinit/files/myinit
再ビルド
以下のコマンドを実行します。
petalinux-build -x package
実行
上記でできたイメージをSDカードにコピーして、ZYBOに挿入し、電源を入れると、LEDが点滅しました!
次回
チュートリアルはもうちょっとなので、がんばって進めます。
次は自作IPの制御という内容で、オリジナルのシステムを作っていく上では大事な内容になると思います。