Armadilloフォーラム

起動時間の短縮について

k.nishijo

2018年8月20日 10時50分

西條と申します。

at_itoさんのブログ » Armadillo-840で起動時間の短縮(Qtなし)
https://users.atmark-techno.com/blog/53/919

に従って
製品: Armadillo-840 液晶モデル開発セット
Linuxカーネル: Linux-3.4-at9.tar.gz
Atmark Dist:atmark-dist-20140602-fastboot.tar.gz

にて動作確認しようと思い確認してみましたが

ビルトするときにかならず以下のエラーが発生してしまいます。

/bin/bash: 行 1: glib-mkenums: コマンドが見つかりません
make[6]: *** [gstenumtypes.h] エラー 127
make[6]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user/gstreamer/gstreamer1.0/build/gst' から出ます
make[5]: *** [all-recursive] エラー 1
make[5]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user/gstreamer/gstreamer1.0/build' から出ます
make[4]: *** [all] エラー 2
make[4]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user/gstreamer/gstreamer1.0/build' から出ます
make[3]: *** [build_targets] エラー 2
make[3]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user/gstreamer/gstreamer1.0' から出ます
make[2]: *** [all] エラー 2
make[2]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user/gstreamer' から出ます
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user' から出ます
make: *** [subdirs] エラー 1

どのようにしたらビルとできるのかご教示ください.

コメント

> /bin/bash: 行 1: glib-mkenums: コマンドが見つかりません

当該のブログの記事のソースコードではなく、標準のソースコードでビルドすることはできていますか?

文字通りglib-mkenumsコマンドの存在チェックで失敗していますが、
このコマンドはATDE5に標準でインストールされているため、削除
しない限りはこのエラーは発生しません。

もし、削除している場合は次のコマンドでインストールし直してください。

[ATDE]$ sudo apt-get install libglib2.0-dev  libglib2.0-dev-armhf-cross

西條です。

ご教示いただいたようにapt-getしてやってみましたが

今度は以下のエラーが発生しました。

ほかにapt-get する必要があるものをご教示ください

GEN grammar.tab.c
/bin/bash: /usr/bin/bison: そのようなファイルやディレクトリはありません
make[8]: *** [grammar.tab.c] エラー 127
make[8]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user/gstreamer/gstreamer1.0/build/gst/parse' から出ます
make[7]: *** [all-recursive] エラー 1
make[7]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user/gstreamer/gstreamer1.0/build/gst' から出ます
make[6]: *** [all] エラー 2
make[6]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user/gstreamer/gstreamer1.0/build/gst' から出ます
make[5]: *** [all-recursive] エラー 1
make[5]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user/gstreamer/gstreamer1.0/build' から出ます
make[4]: *** [all] エラー 2
make[4]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user/gstreamer/gstreamer1.0/build' から出ます
make[3]: *** [build_targets] エラー 2
make[3]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user/gstreamer/gstreamer1.0' から出ます
make[2]: *** [all] エラー 2
make[2]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user/gstreamer' から出ます
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/home/atmark/new_src/123/atmark-dist-20140602/user' から出ます
make: *** [subdirs] エラー 1

> > /bin/bash: 行 1: glib-mkenums: コマンドが見つかりません
>
> 当該のブログの記事のソースコードではなく、標準のソースコードでビルドすることはできていますか?
>
> 文字通りglib-mkenumsコマンドの存在チェックで失敗していますが、
> このコマンドはATDE5に標準でインストールされているため、削除
> しない限りはこのエラーは発生しません。
>
> もし、削除している場合は次のコマンドでインストールし直してください。
>
>

> [ATDE]$ sudo apt-get install libglib2.0-dev  libglib2.0-dev-armhf-cross
> 

> GEN grammar.tab.c
> /bin/bash: /usr/bin/bison: そのようなファイルやディレクトリはありません

bisonも無いということは、開発に必要なものを殆んど消してしまっていると思います。

ATDE5に標準でインストールしているパッケージの一覧が下記です。
http://download.atmark-techno.com/atde/atde5-amd64-dpkg-list.txt

何を削除したか不明な場合は、新しくATDE5をダウンロードする方が
簡単だと思います。

> 何を削除したか不明な場合は、新しくATDE5をダウンロードする方が
> 簡単だと思います。

ATDE5を入れなおしてみることにします。

ATDE5を入れなおして、
第15章 SDブートの活用を見ながらSDカード起動時にして確認してみましたが
以下のように再起動を繰り返してしまいます。
WatchDogタイマーがなぜきどうするのか?
正常に起動できない理由をご教示願います。

rebooted by watchdog timedout. <ーーーーーーーーーーーーーーーーーー

Hermit-At v3.10.0 (Armadillo-840/nor) compiled at 10:17:28, Nov 06 2017
mmcsd: SD card at address 0x0000186a
mmcsd: RP04G 3870720KiB
gendisk: /dev/mmcblk0p2: start=0x00040800, size=0x00721800
gendisk: Image.bin.gz is found. (2824373 Bytes)
Copying kernel..done.
Uncompressing kernel.................................................................................................................................................................................done.
Doing console=ttySC2,115200
Doing noinitrd
Doing rootwait
Doing root=/dev/mmcblk0p2

> > 何を削除したか不明な場合は、新しくATDE5をダウンロードする方が
> > 簡単だと思います。
>
> ATDE5を入れなおしてみることにします。
>

この時利用しているユーザーランドは御自身でビルドしたAtmark Distと
Image.bin.gzでしょうか?

そうであれば一旦、標準イメージのlinux-a840-xXXX.bin.gzを使って同じ
状況になるか確認してみてください。
linuxカーネルが動作しないようにコンパイルされているか、カーネルの
イメージファイルが壊れていることが考えられます。

> この時利用しているユーザーランドは御自身でビルドしたAtmark Distと
> Image.bin.gzでしょうか?
>
> そうであれば一旦、標準イメージのlinux-a840-xXXX.bin.gzを使って同じ
> 状況になるか確認してみてください。

linux-a840-v1.21.bin.gzをつかってみたら正常に起動するようになりました。

以上よろしくお願いします。

atmark-dist-20140602/imagesの中に
linux.bin.gz とromfs.imgはできているので壊れてはいないかと思うのですが。。。

再度確認してみましたが、

Armadillo-840で起動時間の短縮(Qtなし)の記事に出てくる

atmark-dist-20140602-fastboot.tar.gzをつかってビルトして、SDブートするとwatch dog による再起動が発生してしまいます。

どうすれば改善するのかご教示ください。

> 再度確認してみましたが、
>
> Armadillo-840で起動時間の短縮(Qtなし)の記事に出てくる
>
> atmark-dist-20140602-fastboot.tar.gzをつかってビルトして、SDブートするとwatch dog による再起動が発生してしまいます。
>
> どうすれば改善するのかご教示ください。

記事はNORフラッシュメモリからのブートについて説明していると思いますが、
それは成功するのでしょうか。

記事の起動時間計測でも言及していますが、この記事で
紹介している手法はユーザーランドの圧縮展開時間の
短縮を狙っています。
最初から非圧縮でSDカードに展開しているのであれば、
何も効果がありません。

> 記事はNORフラッシュメモリからのブートについて説明していると思いますが、
> それは成功するのでしょうか。

フラッシュは現在の状態を消したくないので
できればSDで確認したいかと思ったのですが
SDからはできないということでしょうか?

できないようでしたら、Armadillo840について高速起動の方法について
ほかに参考になる記事や過去のフォーラムがありましたらご教示いただけると助かります。

できれば市販の起動高速起動ツールを使わないで起動高速化したいと考えております。

以上よろしくお願いします。

>
> > 記事はNORフラッシュメモリからのブートについて説明していると思いますが、
> > それは成功するのでしょうか。
>
> フラッシュは現在の状態を消したくないので
> できればSDで確認したいかと思ったのですが
> SDからはできないということでしょうか?

いいえ、何が問題か不明な場合、既に検証済みの手順が正常に動作するか
確認する必要があります。
記事通りフラッシュメモリから起動するのであれば、SDブートにした
際の手順に問題があると切り分けることができますが、そうでなければ
何かわかりません。
逆に、フラッシュメモリからも起動しないのであれば、作成したイメージ側の
問題になります。

他に可能性があるとすると、
ブログの記事はかなり古いat9を使っていますが、このカーネルはA840 1GB品
には対応していませんが、1GB品を使っているでしょうか?
1GB品は基板上のシールの表記がA840ではなくA841またはA843となっています。

その場合は、カーネルソースコードを最新のものに変更して linux-3.x の
シンボリックリンクを作りなおして、ビルドしてみてください。

> 他に可能性があるとすると、
> ブログの記事はかなり古いat9を使っていますが、このカーネルはA840 1GB品
> には対応していませんが、1GB品を使っているでしょうか?
> 1GB品は基板上のシールの表記がA840ではなくA841またはA843となっています。
>
>
> その場合は、カーネルソースコードを最新のものに変更して linux-3.x の
> シンボリックリンクを作りなおして、ビルドしてみてください。
>

1GB品を使っていたので教えていただいた通りカーネルソースコードを最新のものにしたら
WDTのリセットはなくなりました。

ただし、まだ以下のメッセージが出力されてしまいます。

The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193

WARNING: Error while checking root filesystem.
You can login as root now, the system will reboot after logout.
Give root password for system maintenance
(or type Control-D for normal startup):

以上よろしくお願いします。

そのメッセージ通り、SDカードのファイルシステムが正しくunmountされなかった等の理由で破損しています。
ArmadilloやPCでfsckで修復するか、mkfs.ext3 する手順からSDカードの作成をやりなおしてみてください。

fsckの例:

fsck -f /dev/[mmcblk0p2 もしくは カードリーダーによっては sdb2等]

伊藤です。

ビルド時にエラーがでたとのことなので、ATDEに含まれているパッケージのバージョンが、ブログ公開時と異なることが原因かもしれません。

ATDEも、Atmark Distもバージョンアップされていることと、ご自身で変更内容を把握しておくことも必要と思われますので、ブログ Armadillo-840で起動時間の短縮(Qtなし)に添付のatmark-dist-20140602-fastboot.diff_.txtの修正内容を元に、現在のAtmark Dist最新を修正してみてはいかがでしょうか。(ほぼコンフィギュレーションの変更と、起動スクリプトの修正です)

参考情報
・ブログ Armadillo-840で起動時間の短縮(Qtなし): https://users.atmark-techno.com/blog/53/919
・atmark-dist-20140602-fastboot.diff_.txtのファイルの場所: https://users.atmark-techno.com/system/files/blogs/atmark-dist-20140602…