前回(11)のminorを32から24に書き換えるというのが変だということに気付いた。
32で動いていたのだから、そこは書き換えたらいかんだろう。
よくわからんが、class登録するときだけ24にして、他は32のままに変更した。
そうすると、/devにも作成されたし、echoすると成功した。
GISTに置いておこう。
https://gist.github.com/hirokuma/1bda2e783813412c4df16b8027f5480c
まだ、32だの24だのが何なのか理解していないので、次回からはそこを調べていこう。
Linux/Zynqのつながりを見ていくことになるはずだ。
あとは、おまけだ。
image.ubの効率的な作り方を知っておきたい。
全体をビルドするときは petalinux-build だけでやっているが、けっこう時間がかかる。
今回だと、koファイルだけビルドして、image.ubの元になる場所にコピーして、image.ubを作り直す、というだけでよいはずだ。
事前のチェックとか、そういうのはすっ飛ばせないだろうか。
まず、--helpを見る。
使えそうなのは、この辺りか。
Deploy kernel forcefully:
$ petalinux-build -c kernel -x deploy -fBuild kernel and update the bootable images:
$ petalinux-build -c kernel
$ petalinux-build -x packageBuild rootfs only:
$ petalinux-build -c rootfs
Build myapp of rootfs only:
$ petalinux-build -c rootfs/myapp
以前ダメだったスラッシュでの方法も書かれている。
が、これはmyappなので、moduleだと使えないんじゃなかろうか?
試しにgpio-demoでやってみたが、やっぱりエラーだ。
PetaLinuxのユーザーズガイドを見る。
v2017.2はUG1144(pdf)だが、内容はv2017.1と同じらしい。
コマンドラインリファレンスUG1157(pdf)もある。
ネットから探しているけど、DocNavを使うのがよいだろうね。
気になっていたこのコマンド。
$ petalinux-build -x package
これは、今のdeployエリアに入っているものからFIT imageを作るものらしい。
だから、koファイルを作って、deployエリアにコピーさえすれば、最後に -x packageでimage.ubができるはず。
rootfs/myappではなく、myappを直接指定すればよいのかな?
$ petalinux-build -c myapp
$ petalinux-build -x package
やってみた。
$ petalinux-build -c led8drv [INFO] building led8drv [INFO] sourcing bitbake INFO: bitbake led8drv Loading cache: 100% |############################################| Time: 0:00:00 Loaded 3236 entries from dependency cache. Parsing recipes: 100% |##########################################| Time: 0:00:02 Parsing of 2447 .bb files complete (2415 cached, 32 parsed). 3237 targets, 224 skipped, 0 masked, 0 errors. NOTE: Resolving any missing task queue dependencies Initialising tasks: 100% |#######################################| Time: 0:00:06 Checking sstate mirror object availability: 100% |###############| Time: 0:00:13 NOTE: Executing SetScene Tasks NOTE: Executing RunQueue Tasks NOTE: Tasks Summary: Attempted 2430 tasks of which 2389 didn't need to be rerun and all succeeded. INFO: Copying Images from deploy to images [INFO] successfully built led8drv
lsでimage/linuxのタイムスタンプを見ると、rootfs.cpioやvmlinuxは更新されているが、image.ubは同じだ。
$ petalinux-build -x package [INFO] building project [INFO] sourcing bitbake INFO: generating FIT Image INFO: bitbake petalinux-user-image -R /home/xxx/build/conf/fit-image.conf Loading cache: 100% |############################################| Time: 0:00:00 Loaded 3236 entries from dependency cache. Parsing recipes: 100% |##########################################| Time: 0:00:02 Parsing of 2447 .bb files complete (2415 cached, 32 parsed). 3237 targets, 224 skipped, 0 masked, 0 errors. NOTE: Resolving any missing task queue dependencies Initialising tasks: 100% |#######################################| Time: 0:00:05 Checking sstate mirror object availability: 100% |###############| Time: 0:00:11 NOTE: Executing SetScene Tasks NOTE: Executing RunQueue Tasks NOTE: Tasks Summary: Attempted 2431 tasks of which 2402 didn't need to be rerun and all succeeded. INFO: Copying Images from deploy to images [INFO] successfully built project
こっちは、image.ubのタイムスタンプが更新された。
しかし、それぞれ時間かかるのよねぇ。
$ time petalinux-build -c led8drv real 1m23.720s user 1m10.616s sys 0m11.788s $ time petalinux-build -x package real 1m20.351s user 1m7.700s sys 0m10.048s
いっそのこと、petalinux-buildでやった方が早いんじゃないだろうか?
$ time petalinux-build real 2m34.151s user 2m10.356s sys 0m19.984s
微妙やね。。。
コマンドを2回打ち込まなくてよい分、この方が楽かもしれん。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。