rookie
2014年7月4日 13時41分
お世話になります。
現在は自作アプリが起動するまでに約30秒かかっております。
そこで、下記のHowto・FAQを参考にユーザーランドのサイズを抑えて、
起動時間の高速化を試みております。
http://armadillo.atmark-techno.com/articles/short-boot-time/part1
busyboxの設定について教えていただきたいのですが、
Howtoの説明では以下の設定を「有効」にして他はすべて「無効」となっております。
---抜粋---------------------------------------------------------
Busybox -->
[*] dmesg
[*] ls
[*] shell
[*] ash: ASH shell
[*] ASH is /bin/sh
[*] ASH Optimize for size instead of speed
[*] sh: Hide message on interactive shell startup
[*] test
---ここまで---------------------------------------------------------
しかし、私のBusyBoxコンフィグレーション(v1.20.2)では、
[*] shell
[*] ash: ASH shell
[*] ASH is /bin/sh
上記3つが見当たりません。
おそらく、これらのチェックが無効になっているため、
作成したイメージファイルで書き換えて電源を入れますと、
コンソールに下記のメッセージが出力されてログインプロンプトまで到達できません。
/bin/sh:can't access tty;job control turned off
どの項目を有効にするのか教えていただけますでしょうか?
他の項目は以下にありました。
Busybox -->
Coreutils-->test
Coreutils-->ls
Linux System Utilities-->dmesg
Shells-->Optimize for size instead of speed
Shells-->Hide message on interactive shell startup
参考までに、開発環境と現在(設定変更なし)のイメージファイルサイズ(Byte)、
自作アプリケーションの概要を記載します。
利用機器:Armadillo-840
開発環境:ATDE5
Linuxカーネル:linux3.4-at5
ユーザランド:atmark-dist-20131018
linux.bin:5,643,945
linux.bin.gz:2,764,429
romfs.img:121,488,421
romfs.img.gz:49,568,730
自作アプリ概要
armadilloに市販のUSBカメラを接続して、
取得したカメラ画像をopencvの画像処理して出力するアプリケーション。
GUIはHDMIモニタに出力して、操作はキーボードとマウスを使用。
コメント
rookie
お世話になっております。
度々申し訳ございません。
圧縮したユーザーランドは6MBまで小さくすることができましたが、
自作したアプリがモニタに表示されません。
起動しているかも不明です。
自作アプリは電源投入後に自動起動するようにrc.localに
コマンドを記述しております。
manuconfigでデフォルトの設定に戻すと起動します。
また、作業用PCのTeraTermで確認しますと、
/usr/binに置かれるはずの自作アプリと、
/etc/configにあるはずのrc.localがありません。
何か必要な項目まで無効にしてしまったのでしょうか?
> > Busybox -->
> > Coreutils-->test
> > Coreutils-->ls
> > Linux System Utilities-->dmesg
> > Shells-->Optimize for size instead of speed
> > Shells-->Hide message on interactive shell startup
>
> 多分、上記でashを選択されているので、他は選択しなくともよいはずです。
>
> >コンソールに下記のメッセージが出力されてログインプロンプトまで到達できません。
> >
> > /bin/sh:can't access tty;job control turned off
>
> 推測ですが、
> Busybox--> Shells --> ash::Job control
> が有効になっているからそのメッセージがでるのではないでしょうか?
>
> また、ログインプロンプトは表示されませんよ?
> 参考とされている記事でも、ユーザーランドは /bin/sh(シェル) が起動するだけとあります。
>
> 現状の状態で起動は完了していると思います。
> ぜひ、実測時間を教えていただけますか?
>
>
>
> ちなみに興味本位で私もユーザーランドだけ作ってみました。
>
> ■ バイナリ一覧
>
> atmark-dist$ (cd romfs; ls bin usr/bin/ sbin/ usr/sbin/) > bin: > ash busybox dmesg ls mount sh umount > > sbin/: > > usr/bin/: > > usr/sbin/: > get-board-info-a840 >
>
> ■ サイズ
>
> atmark-dist$ LANG=C ls -l images/romfs.img* > -rw-r--r-- 1 nakai nakai 4644901 Jul 4 14:29 images/romfs.img > -rw-r--r-- 1 nakai nakai 2018209 Jul 4 14:29 images/romfs.img.gz >
>
> 2MB程度となるようですよ。
>
at_nakai
> 自作アプリは電源投入後に自動起動するようにrc.localに
> コマンドを記述しております。
> manuconfigでデフォルトの設定に戻すと起動します。
>
> また、作業用PCのTeraTermで確認しますと、
> /usr/binに置かれるはずの自作アプリと、
> /etc/configにあるはずのrc.localがありません。
>
> 何か必要な項目まで無効にしてしまったのでしょうか?
必要なものを色々と消してしまたんでしょうね。。/sbin/init とかです。
下記にユーザーランドの起動の仕組みがざっくり書かれています。
参照してください。
http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
上記の、「表9.2 /etc/rc.dディレクトリに登録された初期化スクリプト」の
S01mtd
S03flatfsd
S05udevd
S90rc.local
くらいは、/etc/config (flatfsd) を利用する場合は必要ですね。
at_nakai
2014年7月4日 14時45分
> Busybox -->
> Coreutils-->test
> Coreutils-->ls
> Linux System Utilities-->dmesg
> Shells-->Optimize for size instead of speed
> Shells-->Hide message on interactive shell startup
多分、上記でashを選択されているので、他は選択しなくともよいはずです。
>コンソールに下記のメッセージが出力されてログインプロンプトまで到達できません。
>
> /bin/sh:can't access tty;job control turned off
推測ですが、
Busybox--> Shells --> ash::Job control
が有効になっているからそのメッセージがでるのではないでしょうか?
また、ログインプロンプトは表示されませんよ?
参考とされている記事でも、ユーザーランドは /bin/sh(シェル) が起動するだけとあります。
現状の状態で起動は完了していると思います。
ぜひ、実測時間を教えていただけますか?
ちなみに興味本位で私もユーザーランドだけ作ってみました。
■ バイナリ一覧
■ サイズ
2MB程度となるようですよ。