このドキュメントでは、Ubuntu 14.04 Trusty Tahr ホストで i.MX 6 シリーズ LTIB を構築するためのソリューションをいくつか紹介します。
Virtualbox 仮想マシンは、ビルド ホストに使用される Ubuntu コンピューター用に作成されました。
Linux Target Image Builder (LTIB) は、イメージ (ブートローダー u-boot、Linux uImage、およびルート ファイル システム) の作成に使用される perl スクリプトです。ここに示すビルド例は、i.MX 6Q および最小ルート ファイル システム用です。
md5sum L3.0.35_4.1.0_130816_source.tar.gz
dec08bb266134b94af0f54356e2e9de9 L3.0.35_4.1.0_130816_source.tar.gz
md5sum L3.0.35_4.1.0_docs.tar.gz
85f122c72735f3d162a99ae42554e886 L3.0.35_4.1.0_docs.tar.gz
md5sum ubuntu-14.04-desktop-amd64.iso
dccff28314d9ae4ed262cfc6f35e5153 ubuntu-14.04-desktop-amd64.iso
LTIB のビルド要件を満たすには、さまざまなパッケージが必要です。
L3.0.35_4.1.0_docs.tar.gzのダウンロードにある「Setting_Up_LTIB_host.pdf」のドキュメントを参照してください。
インストールされたすべてのパッケージを示すtrustyPkgs.txt添付ファイルについては、以下を参照してください。これは、
コマンド: dpkg --list
ホストでコマンド "dpkg --list" を実行し、お気に入りの差分ツールを使用してtrustyPkgs.txtと比較できます。(例、meld、diff)。不足しているパッケージは、お気に入りのパッケージマネージャーを使用して追加できます。たとえば、u-boot-tools パッケージにある mkimage をインストールするには、sudo apt-get install u-boot-tools を実行します。
パッケージ m4 のビルドに失敗します。エラーメッセージの貼り付け:
gcc -std=gnu99 -I. -g -O2 -MT clean-temp.o -MD -MP -MF .deps/clean-temp.Tpo -c -o clean-temp.o clean-temp.c
clean-temp.h:22:0からインクルードされたファイルでは、
clean-temp.c:23 より:
./stdio.h:477:1:エラー:ここで 'gets'が宣言されていません(関数ではありません)
make[3]: *** [clean-temp.o]エラー 1
make [3]:ディレクトリ '/opt/freescale/ltib/usr/src/rpm/BUILD/m4-1.4.16/lib' を離れます
make[2]: *** [all] エラー 2
make [ 2 ] : ディレクトリ '/opt/freescale / ltib / usr / src / rpm / BUILD/m4-1.4.16 / lib' を残します
m4 パッケージを新しいバージョンに置き換えてください。LTIB にバンドルされている m4 パッケージはバージョン 1.4.16 です。新しいバージョン1.4.17が利用可能で、ビルドの失敗はありません。
md5sum m4-1.4.17.tar.gz > m4-1.4.17.tar.gz.md5
mv m4* /opt/freescale/pkgs
cd
お好みのエディタを使用してm4.specを編集します。5 行目は、16 から 17 に変更するバージョン番号です。
翻訳元:
| 1 %define pfx /opt/freescale/rootfs/%{_target_cpu} | ||
| 2 | ||
| 3 まとめ | : GNU マクロプロセッサ | |
| 4 名前 | : m4 | |
| 5 バージョン | : 1.4.16 | |
| 6 リリース | : 1 | |
| 7 ライセンス | : GPL |
更新:
| 1 %define pfx /opt/freescale/rootfs/%{_target_cpu} | ||
| 2 | ||
| 3 まとめ | : GNU マクロプロセッサ | |
| 4 名前 | : m4 | |
| 5 バージョン | : 1.4.17 | |
| 6 リリース | : 1 | |
| 7 ライセンス | : GPL |
/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: /lib/libc.so.6 が見つかりません
/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: /usr/lib/libc_nonshared.a が見つかりません
/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: /lib/ld-linux.so.3 が見つかりません
collect2: ld が 1 つの終了ステータスを返しました
make: *** [busybox_unstripped] エラー 1
エラー: /home/user/imx6/ltib/tmp/rpm-tmp.60711 (%build) からの終了ステータスが正しくありません
RPMビルドエラー:
/home/user/imx6/ltib/tmp/rpm-tmp.60711 (%build) からの終了ステータスが正しくありません
busybox のビルド時間: 93 秒
busybox の構築に失敗しました
# 文字を追加すると、299 行目と 300 行目が削除されます
| 297 # テキスト検索ファイルから絶対パスを削除する (存在する場合) | |
| 298 perl -w -e ' | |
| 299 #@ARGV = grep { 'file $_' =~ m,ASCII C プログラム テキスト, } @ARGV; | |
| 300 #exit(0) @ARGVない限り; | |
| 301$^I = ".bak"; |
ビルドが完了すると、u-boot.bin と uImage が
[user@trusty ltib]$ tree rootfs/boot
rootfs/boot
├── bootable_kernel -> uImage
├── linux.config
├── System.map
├── Uブーツ
├── u-boot.bin
├── uImage
├── vmlinux
└── zImage
元の添付ファイルは次の場所に移動しました trustyPkgs.txt.zip
元の添付ファイルは次の場所に移動しました lkc-1.4.tar.gz
「ubuntu-ltib-patch.tgz」を参照してください。IMX280 ./ltib ERRに付属
私は自分のプライベートローカルマシンで/opt/freescale/pkgsをチェックし、以前に取得したすべてのlkc*ダウンロードを添付しています。(lkc-1.4.tar.gz、添付ファイルについては、このディスカッションのトップの最初のエントリを参照してください)。
この記事を書いている時点では、最新のFreescale Linux BSPは http://www.freescale.com/imx6tools で入手できます。これらは現在、LTIBに代わるYocto Projectベースです。LTIB BSP は Freescale によって更新されなくなったため (ソフトウェア アップデート、新しいカーネルなど)、Yocto Project BSP を使用することをお勧めします。
> また、imx_usb_loaderに関連する別の質問がありますが、imx_usb_loaderは u-boot のロードのためだけなのか、それとも system.img の >flashing にも使用できるのかということです。
u-bootのみ。
imx_usb_loaderに関する質問については、さまざまなトピックの質問に対して新しいコミュニティ投稿を開始するのが最善です。そして実際、 http://community.freescale.com を検索すると、他の人がこれについて尋ねていることがわかります。例として、 https://community.freescale.com/docs/DOC-94117アプリのソースコードを検査できる場所。
-Curtis
Hi,
私はimx6用のLTIBを構築するためのあなたの手順に従いました、そしてそれはいくつかのパッケージ(m4、bison、automake、autoconfなど)が指定されたURLから欠落するまで正常にインストールされていました http://bitshrine.org/gpp/ 。したがって、これらのパッケージを個別にダウンロードし、Curtisが述べたようにビルドに含めました。
" /opt/freescale/pkgs は、linux-2.6.35.3-imx_12.02.00.bz2 と md5 ファイルを見つけることができれば、それを置く場所です。残念ながら、bitshrine.org がダウンロードするパッケージを提供できないことがあります。パッケージをダウンロードできる別のサイトを知りません。"(2014年8月)
Curtisと同じ行で、「 パッケージをダウンロードするための代替サイトを知らない」
他のサイトから他のパッケージをダウンロードしたが、lkcのsrcを見つけることができなかったため、現在、すべてのパッケージをダウンロードできる代替サイトや「lkc」パッケージをダウンロードするためのリンクはありますか?
そして、私のインストールは以下のメッセージで停止します
処理:lkc
=================
ビルドパスが取得された理由:事前に構築されたrpmがない、
ネットワーク接続のテスト
OK GPPです。
GPP から lkc-1.4-lib.patch.md5 を試してみてください
http://bitshrine.org/gpp//lkc-1.4-lib.patch.md5:
2015-10-30 21:51:15 エラー 404: 見つかりません。
GPP から lkc-1.4-lib.patch を試してみてください
http://bitshrine.org/gpp//lkc-1.4-lib.patch:
2015-10-30 21:51:15 エラー 404: 見つかりません。
取得できません: ./ltib 行 802 の lkc-1.4-lib.patch
./ltib 行 1392 で死亡。
トレースバック:
メイン::build_host_rpms:1392
メイン::host_checks:1447
メイン:554
また、imx_usb_loaderに関連する別の質問がありますが、imx_usb_loaderはu-bootのロードのためだけなのか、それともsystem.imgのフラッシュにも使用できるのかということです。
よろしくお願いします。
Hi,
あなたは言いました。このビルドから生成されたuImageは、デモイメージで利用可能なものとは異なる」と述べている。
デモ イメージとその後に生成される uImage とのバイト比較を検討する場合、埋め込まれた日付/タイム スタンプの uImage に違いがあることが保証されます。
フリースケールの一般提供 (GA) リリースには、そのリリースを構成する特定のバージョンのソフトウェア・パッケージが含まれています。GAリリースにバンドルされているLinuxカーネルソースから作成されたuImageのパッチについて質問されました。
Freescale i.MX Linuxソース・ベースはGITリポジトリから入手でき、お気に入りのWebブラウザである「Freescale i.MX Linux Tree<http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/>またはGITの「クローン」機能を利用してローカルにコピーを作成できます。
$ git clone git://git.freescale.com/imx/linux-2.6-imx.git.
注: リポジトリ名は linux-2.6-imx.git です。ただし、すべての Linux GA リリース、3.0、3.10 などが含まれています。
現在の Web ビューのスナップショットを次に示します。
フリースケールがLinux GAリリースを発行すると、コードのスナップショットにGIT タグ が適用されます。Linux の命名規則:
rel_imx_3.0.35_4.1.0
==================
rel_imx – リリースを示します
3.0.35–Linuxカーネルバージョン
4.1.0– フリースケール版
GIT ブランチ ツリーはパッチに使用されます。変更が見つかり、リリースに必要であると判断されると、GIT コミットがブランチにプッシュされます。Linux の命名規則:
imx_3.0.35_4.1.0
=============
imx – imx のみに注目し、rel_imxには注意しません。
3.0.35–Linuxカーネルバージョン
4.1.0– フリースケール版
各パッチコミットでは、ブランチ名は常に最新のコミットで見つかります。
Webビューを見ると、ブランチ名とタグリリース名が表示されます。ここに要約されたビューを表示するために、いくつかのコミットを削除しました。
上の図から、黄色のボックス (rel_imx_3.0.35_4.1.0) は、ボード サポート パッケージ (BSP) リリースにあるものと一致するコミット ポイントです。緑色のボックス imx_3.0.35_4.1.0 は、このリリースで使用可能な最新のパッチです。
BSP リリースのブランチで使用可能なすべてのパッチを適用することをお勧めします。
gitを使用すると、チェリーピックオプションを使用し、追加情報が必要な場合はオンラインでチュートリアルを検索できます。
git チェリーピック
-Curtis
Hi Curtis,
あなたの返信をありがとう、そしてそれは役に立ちました。
現在、このビルドから生成されたuImageがデモイメージで利用可能なものとは異なるという別の問題に直面しています。
したがって、デモ画像で利用可能な他の機能を追加するには、パッチを適用する必要がありますか。
それらのパッチを共有できますか。
選択したプロファイル、mfgファームウェアが機能しない理由です-最小プロファイルに変更します。
mfg oneは、Windows上で動作し、ボードをプログラムする方法を提供する製造ツールをサポートしています。興味がある場合は、ダウンロードするためのリンクの freescale.com/imx6tools<>を参照してください。
誠に
カーティス
Hi Curtis,
上記の設定を使用してu-boot.binとuImageを生成することができました。
ただし、取得された u-boot は、 i.MX 6 Q/D/DL/S L3.0.35_4.1.0 GA リリース で言及されているビルド済みのデモイメージで利用可能なものとは異なります。
i.MX6Q Sabre-SDボードを使用しており、メニュー構成で次の設定を選択しました。
1、フリースケール i.MX リファレンスボード
2、imx6qとしてのプラットフォームタイプ
3、mfgファームウェアプロファイルのパッケージプロファイル
4、「U-Boot用のボードを選択してください」を「mx6q_sabresd」として選択します
メニュー構成で他に何も変更していませんが、Sabre-SDボードでuImageが正常に動作している間、ubootイメージは機能しません。
Hello Todd,
texinfoの失敗を再現しようとしましたが、texinfoパッケージ全体がすべてのltibステップで正しく機能しました。
Ubuntuホストマシン:
$ lsb_release -a
LSB モジュールは利用できません。
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
リリース:14.04
コードネーム:trusty
ダウンロードしたL3.0.35_4.1.0_130816_source.tar.gz、最小ルートファイルシステムをインストールして構築しました。次に、特にtexinfoパッケージで作業しました。
./ltib -p texinfo -m 準備
./ltib -p texinfo -m scbuild
./ltib -p texinfo -m scinstall
./ltib -p texinfo -m scdeploy
これらの ltib の各ステップは正常に完了しました。
あなたが投稿したエラー状態から、「all」ターゲットが
このMakefileを確認したところ、244行目に「all」ターゲットが見つかりました-以下は「all」の前後の行番号の貼り付けです。
239 # make distcheck 中に TEXINFO_MAINT が設定されている場合。この場合、
240 # info/ で生成された単純な doc 関連ファイルが distcleancheck を失敗させる。
241 distcleancheck_listfiles = \
242 find -type f -exec sh -c 'test -f $(srcdir)/{} ||エコー {}' ';'
243
244 all: config.h
245 $(MAKE) $(AM_MAKEFLAGS) 全再帰的
246
247 .サフィックス:
午前248時--リフレッシュ:
tools/Makefile は ./ltib から生成されます。-m scbuild ステップを実行します。
私はあなたの失敗シナリオを再現することができないので、ここに提案があります:
1.あなたはccacheについて言及し、おそらくキャッシュされた以前の結果をクリーンアップします。ccache -C コマンドはキャッシュをクリーンアップし、texinfo パッケージだけをビルドします。
$ ccache -C
$ rm -f rpm/BUILD/texinfo-4.8
$ ./ltib-m prep -p texinfo
$ ./ltib-m scbuild -p テクスイン
2. すべてのホストパッケージがインストールされていることを再確認します - このスレッドの最初の投稿の「ホストパッケージ」セクションを参照してください。
3. 2014/11/28 - Freescale の新しい BSP ビルド オファリングは Yocto Project に基づいているため、LTIB ベースの BSP の代わりにこれを試すことができます。 リンクについては、http://www.freescale.com/imx6tools を参照してください。この記事の執筆時点での最新の一般提供 (GA) は 3.10.17 です。これは、LTIB 3.0.35 よりも新しい Linux カーネル 3.10.17 であり、更新された u-boot とルート ファイル システムです。
がんばって
-Curtis
Hi,
同じバージョンの Ubuntu 14.04 64 ビット環境で、同じバージョンの LTIB のビルドを実行しようとしています。m4を乗り越えましたが、texinfo-4.8でビルドの失敗は発生していませんパッケージ:
config.status: po/POTFILES の作成
config.status: po/Makefile の作成
+ 作る
全再帰的にする
make[1]: ディレクトリ '/opt/freescale/ltib/usr/src/rpm/BUILD/texinfo-4.8' に入ります
すべてのツールを作る
make [2]:ディレクトリ '/opt/freescale/ltib/usr/src/rpm/BUILD/texinfo-4.8/tools'に入ります
make[2]: *** ターゲットを 'all' にするルールはありません。ストップ8
make [2]:ディレクトリ '/opt/freescale/ltib/usr/src/rpm/BUILD/texinfo-4.8/tools'を離れます
make[1]: *** [all-recursive] エラー 1
make [1]: ディレクトリ '/opt/freescale/ltib/usr/src/rpm/BUILD/texinfo-4.9' を離れます
make: *** [all] エラー 2
エラー: /home/toddh/Q7120/LTIB/ltib/tmp/rpm-tmp.9064 (%build) からの終了ステータスが正しくありません
RPMビルドエラー:
/home/toddh/Q7120/LTIB/ltib/tmp/rpm-tmp.9064 (%build) からの終了ステータスが正しくありません
texinfo のビルド時間: 17 秒
texinfo の構築に失敗しました
./ltib 行 1392 で死亡。
最新バージョンのキャッシュがインストールされています。
texinfo-4.9 でもパッチを適用してみましたinto/opt/freescale別のスレッドごとに実行されますが、それでも同じビルドエラーが発生します。誰かがこのエラーで私たちを助けることができますか?
ありがとうございます
トッドH
誰かがこれらのファイルを持っていますか:
linux-2.6.35.3-imx_12.02.00.bz2.md5
linux-2.6.35.3-imx_12.02.00.bz2
bitshrineがそれらをまったく持たないことに決めたようで、私はそれらの代わりを見つけることができません。
別の方法として、以前のバージョンに戻すことはできますか、それともそれらが存在しなくなった場合は、yuctoメソッドに移行する必要がありますか?
ありがとうございます
Todd
Hi Curtis,
あなたの推薦をありがとう!
私はimx233ボードのQTを構築しようとしています!
よろしくお願いいたします。
ピグエン
こんにちはファイ、
Linux Target Image Builder (LTIB) はパッケージプールを定義し ( LTIB : LtibFaq を参照)、/opt/freescale/pkgs は linux-2.6.35.3-imx_12.02.00.bz2 と md5 ファイルがあればそれを置く場所です。残念ながら、bitshrine.org がダウンロードするパッケージを提供できない場合があります。パッケージをダウンロードできる別のサイトを知りません。
imx23evk では、LTIB BSP の代わりに Yocto Project ベースの FSL Community BSP を使用することもできます 。imx23 は、LTIB のものよりも新しい Linux カーネルとブートローダ、U-Boot をサポートしています。 開始方法については、リリースノートの http://freescale.github.io を参照してください。
ありがとうございます
-Curtis
Hi CurtisWald,
あなたのトピックは私にとって非常に役に立ちます!ありがとうございました
私はimx233のためにubuntu 14.04でLTIBをビルドしました。
問題があります:
--------------------------------------------------------------------------------------------------------------------------
プロセッシング・プラットフォーム: フリースケールiMX233/stmp3780ベース・ボード
=============================================================
using config/platform/imx/.config
処理:fake-provides
===========================
処理中: u-boot-v2009.08
=============================
Processing: kernel-2.6.35
===========================
ビルドパスが取得された理由:事前に構築されたrpmがない、
ネットワーク接続のテスト
OK GPPです。
GPP から linux-2.6.35.3-imx_12.02.00.bz2.md5 を試してみてください。
http://bitshrine.org/gpp/linux-2.6.35.3-imx_12.02.00.bz2.md5:
16:12:20 エラー 404: 見つかりません。
GPP から linux-2.6.35.3-imx_12.02.00.bz2 を試してみてください
http://bitshrine.org/gpp/linux-2.6.35.3-imx_12.02.00.bz2:
16:12:21 エラー 404: 見つかりません。
取得できません: linux-2.6.35.3-imx_12.02.00.bz2 at ./ltib line 802.
f_buildrpms() がエラーを返し、終了しました
トレースバック:
メイン:572
開始: Mon Aug 4 16:12:18 2014
終了: 2014年8月4日(月) 16:12:21
経過時間: 3秒
次のパッケージはビルドに失敗しました。
kernel-2.6.35
ビルドに失敗しました
エラーまたは割り込みで終了
------------------------------------------------------------------------------------------------------------------------------------
リンクが切れてしまったので、次にどうしたらいいのかわかりませんか?
手伝ってくれませんか?
これらのファイルを別のソースからダウンロードする必要がありますか?しかし、LTIBにリンクする方法がわかりません。
ありがとうございます
ピグエン