フリースケールの i.M28EVK 開発キットは、i.MX28プロセッサのソフトウェアを実行し、機能を評価するためのプラットフォームを提供します。このドキュメントでは、Intel / AMDアーキテクチャのコンピューター上のUbuntu 12.04 64ビットPrecise PangolinホストでLinuxボードサポートパッケージ(BSP)を実行する方法について詳しく説明します。32 ビット ホストについては、このドキュメントでは説明しておらず、ここで説明するものとは異なる設定手順があります。
Ubuntu Linux ホストは、ARM イメージを作成する BSP をクロスコンパイルするために使用されます。BSP は、Linux Target Image Builder (LTIB) という名前のビルドシステム、コンパイルとデバッグ用の GNU ツールスイート、U-Boot ブートローダー、Linux カーネル、およびルートファイルシステムを提供します。
Ubuntuまたは仮想マシン(VMwareまたはVirtualBox)を実行している専用コンピューターを使用して、ホストUbuntuソフトウェアを実行できます。Ubuntuイメージは、Ubuntuサイト( Ubuntu 12.04.1 LTS(Precise Pangolin))からダウンロードできます。
このUbuntuホストISOは、md5チェックサムとともに使用されました。
ubuntu-12.04.1-desktop-amd64.iso 06472ddf11382c8da1f32e9487435c3d
ISO を取得する方法の 1 つは、zsync を使用して以下をダウンロードすることです。
zsync http://releases.ubuntu.com/12.04/ubuntu-12.04.1-desktop-amd64.iso.zsync
ダウンロード後、ISOのインストールはユーザーの好みです(専用のLinux PCまたは仮想マシンのいずれか)。
BSPのダウンロードは、このサイト L2.6.36_MX28_SDK_10.12_Source と 、 ログイン資格情報を指定するために無料の登録が必要なLinuxドキュメントのドキュメントから、
436e0b8e1c7976c657d530a45f9dbd0c L2.6.35_10.12.01_SDK_source_bundle.tar.gz
de0274320a17c1e989d1ef5c088973e2 L2.6.35_10.12.01_SDK_docs.tar.gz
Ubuntuのログイン資格情報
このドキュメントに使用されます。
Ubuntuホストにログインすると、BSPをインストールする前に、既存のパッケージが最新バージョンに更新されます。使用されるUbuntuパッケージマネージャーはapt-getです。
$ sudo apt-get update $ sudo apt-get upgrade
01. インストールされているすべてのパッケージで新しいリビジョンを確認する
02. 見つかった新しいパッケージがすべてインストールされます。
ltib ビルドシステムには追加パッケージが必要です。
evinceはデフォルトのPDFリーダーで、別のオプションはzathuraです。
$ sudo apt-get zathuraをインストールする
LTIB では、一部の操作にスーパー ユーザー特権が必要です。有効にするには、sudo エントリが sudo'ers ファイルに追加されます。詳細については、'man visudo' を実行してください。
$ sudo visudo
最初の単語、userはログインアカウント 'user'です これは、使用したログインに変更することも、グループを設定している場合は、開発者が参加するグループを提供できます - 詳細については、sudoのマニュアルページを参照してください。
次の行を追加します。
ユーザ ALL =NOPASSWD: /usr/bin/rpm/ /opt/freescale/ltib/usr/bin/rpm
Ubuntuはデフォルトのシェル「ダッシュ」を使用します。ただし、これにより、ltibシステムの一部であるbashスクリプトでエラーが発生します。デフォルトのシェルを「dash」から「bash」に変更
$ sudo update-alternatives --install /bin/sh sh /bin/bash 1
ccache は、ltib システムでサポートされている高速な C/C++ コンパイラ キャッシュを提供します。ccache パッケージがインストールされた後に構成するには:
$ sudo apt-get install ccache $ ccache -M 50M $ ccache -c
02. キャッシュ制限を50メガに設定する
03.キャッシュフォルダをクリアします
次のディレクトリ構造が使用されます。
/home/user/freescale/imx28/
|-- archive
|-- L2.6.35_10.12.01_ER_source
|-- L2.6.35_10.12.01_SDK_docs
|-- L2.6.35_10.12.01_SDK_scripts
|-- ltib
|-- ubuntu-imx28-ltib-patch
アーカイブディレクトリは、BSP と文書が保存される場所です。コマンドを使用してディレクトリを作成します。
$ mkdir -p ~/freescale/imx28/archive
ソフトウェア開発キットの内容を抽出するために、次の手順を使用しました。
$ cd ~/freescale/imx28/archive $ tar -zxf L2.6.35_10.12.01_SDK_source_bundle.tar.gz -C ..
01.圧縮されたタールボールを含むディレクトリに移動します。
02. 現在のディレクトリの上のディレクトリ(-C..)に内容を抽出します
-z unzip
-x抽出
-f L2.6.35_10.12.01_SDK_source_bundle.tar.gz
$ tar -zxf L2.6.35_10.12.01_SDK_docs.tar.gz
01. 現在のディレクトリの上のディレクトリ(-C..)に内容を抽出します
-z unzip
-x抽出
-f このファイルをL2.6.35_10.12.01_SDK_docs.tar.gz
両方のtarファイルの内容は、ディレクトリ/home/user/freescale/imx28にあります。
L2.6.35_10.12.01_SDK_source_bundle.tar.gzからコンテンツを抽出した後、ファイルL2.6.35_10.12.01_SDK.source.tar.gzすべてのソースとビルドシステムが含まれます。内容を抽出してインストールします。これにより、ビルドシステムであるltibディレクトリが作成されます。
$ tar -zxf L2.6.35_10.12.01_SDK_source.tar.gz $ cd L2.6.35_10.12.01_ER_source $ ./install
ライセンス情報を読み、「YES」と入力して同意します。次に、インストールディレクトリが要求され、次のように提供されます。これが親ディレクトリです。
インストールスクリプトはパッケージをコピーし、「インストールが完了しました。ltib のインストールが ../ltib で、インストールを完了するには、次のようにします。
cd .../ltib ./ltib
ただし、これを行う前に、Ubuntu 12.04.01でltibを実行するために適用する必要があるパッケージとパッチがあります。
次のパッケージが必要です。以下に添付されているスクリプト pkg-setup.sh には、ダウンロードして実行してインストールできるこれらのパッケージがあります。
$ sh pkg-setup.sh
sudo apt-get -y gettext libgtk2.0-dev をインストールするRPMバイソンM4 LibFreeType6-DEV
sudo apt-get -y libdbus-glib-1-dev liborbit2-dev intltool をインストールする
sudo apt-get -y ccache zlib1g zlib1g-dev gcc g ++ libtool
sudo apt-get -y install uuid-dev liblzo2-dev tcl wget libncurses5-dev
sudo apt-get -y libncursesw5-dev lib32z1 libglib2.0-devをインストールするxsltproc
sudo apt-get -y install ia32-libs libc6-dev-i386
このファイル pkg2-setup.sh には、開発用のオプション パッケージが含まれています。インストール、ダウンロード、実行するには:
$ sh pkg2-setup.sh
ホスト設定の詳細については、ドキュメントltib_build_host_setup.pdfを参照してください。
glibc-develおよびzlib Ubuntu 12.04パッケージのファイルの場所が9.0.4から変更されました元のltibがリリースされたUbuntu。ltib 操作を更新するために、ディレクトリ ~/freescale/imx28/ltib から次のパッチが実装されています。
1.ファイル ltib は 2387 行目で変更され、rpm 呼び出しに '-v' オプションが追加されます
古い:
system('rpm --force-debian 2>/dev/null') == 0?
新機能:
system('rpm -v --force-debian 2>/dev/null') == 0?
2. bin/Ltibutils.pm ファイルが更新され、glibc-devel と zlib がサポートされるようになりました。
glibc-devel 更新: 563 行目で /usr/lib32/libm.so のチェックを追加
'glibc-devel' => sub {-f 'usr/lib/libm.so' || -f '/usr/lib64/libz.so' || -f '/usr/lib32/libm.so'},
zlibc update: Line 584 add /lib/x86_64-linux-gnu/libz.so*
zlib => sub{my @f = (glob('/usr/lib/libz.so*'),
glob('/lib/x86_64-linux-gnu/libz.so*'),
glob('/lib/libz.so*'),
上記のパッチは、アタッチメント 0001-patches-for-12.04-ubuntu.patch にもあります。
LTIBパッケージも、Ubuntuで正しくビルドするために調整が必要です。以下のtarファイルubuntu-imx28-ltib-patch.tgzには、すべての更新が含まれています。ltibソースディレクトリと同じディレクトリレベルでコンテンツをダウンロードして抽出します。
$ tar -zxf ubuntu-imx28-ltib-patch.tgz
├── ltib
├── ubuntu-imx28-ltib-patch
└── ubuntu-imx28-ltib-patch.tgz
ディレクトリをubuntu-imx28-ltib-patchに変更してから、install-patches.sh スクリプトを実行します。
$ cd ubuntu-imx28-ltib-patch
$./install-patches.sh
次のパッケージが更新されます。
tar ファイル L2.6.35_10.12.01_SDK_scripts.tar.gz には、ltib ビルドから SD カードにイメージを書き込むためのスクリプトが含まれています。内容を抽出し、スクリプトを ltib ディレクトリにコピーし、更新された fdisk コマンドで動作するように mk_mx28_sd スクリプトを更新します。
$ tar -zxf L2.6.35_10.12.01_SDK_scripts.tar.gz $ cd L2.6.35_10.12.01_SDK_scripts $ cp mk_hdr.sh ~/freescale/imx28/ltib $ cp mk_mx28_sd ~/freescale/imx28/ltib $ cd ~/freescale/imx28/ltib
スクリプトを編集mk_mx28_sd、177 行目に 'u' を追加し、その後に o コマンドを追加します。これにより、シリンダがセクタに変更されます。
古い:
エコー "o
n
新機能:
エコー "U
o
n
/dev/sdb にある SD カードを作成するように更新したら、次のようにします。
$ ./mk_mx28_sd /dev/sdb
注: 自動的にマウントされた場合、スクリプトを機能させるにはマウントを解除する必要があります
$ sudo umount /dev/sdb*
i.MX28EVKには、EVKの下部にあるスロット0のSDカードから実行するブートオプションがあります。EVKの上部には、スタートアッププロセス中に読み取られるスイッチがあり、使用するブートメディアを決定します。この例では、スロット 0 の SD カードが使用されており、次の設定が必要です。
| B3/DIP1 | B2/DIP2 | B1/DIP3 | B0/DIP4 |
|---|---|---|---|
| 1 | 0 | 0 | 1 |
ユーザーガイドのセクション3.2.1 i.MX28_Linux_BSP_UG.pdfを参照してください。すべてのオプションのブートモード。ユーザーガイドは、 Linuxドキュメント バンドルのドキュメントにあります。ブートスイッチの位置とSDカードスロット0の位置を示す図については、次のセクションを参照してください。
コンピューターのシリアル・ポートは、i.MX28EVK シリアル・ポートに接続されています。通信設定は115200ボー、8データビット、パリティなし、1ストップビットです。このポートにはフロー制御が設定されていません。これは通常、115200、8N1と表示されます。電源が接続されています