アプリケーションノート Tegra3 QSeven SOMへのLinux(Ubuntu)の

アプリケーション ノート
Tegra3 QSeven SOMへのLinux(Ubuntu)のインストール
本書の内容
SECO社では、さまざまなSOM(System-on Module)、キャリア・ボード製品をリリースする一方、
これら製品に対するBSP(board support package)も社内で開発しています。ボード製品ユーザは
SECOがリリース中のBSPを自由に入手することが可能です。これにより、ユーザによるOS実装の
足掛かりとしていただく、あるいは迅速なユーザ・アプリケーションの評価実施をサポートします。
SECO社のTegra3搭載QSevenボードについては、現状Linux(Ubuntu 11.04)パッケージが提供されて
おり、同ボード・ユーザはプライベート・サイトから自由にパッケージをダウンロードして、インス
トールできます。
本ノートでは、 Tegra3搭載QSevenボード(QuadMo747-X/T30)のeMMC(オンボード・フラッシュ
ドライブ)にLinuxパッケージをインストールする際の手順を紹介します。キャリア・ボードとして
SECOCQ7-MXMを使いますが、SECOCQ7-pITX/Xboardなど、他のキャリア・ボードを使う場合
でも参考にしていただけます。
それでははじめましょう
Page 1
Tegra3 Qseven SOMのBSPは
専用サイトから入手可能
SECOプライベート・サイトにアクセスします。登録したユーザ名 / パスワードでログイン
します。
Page 2
Linuxパッケージ・アーカイブを
ダウンロードする
QuadMo747-X/T30セクションには、いくつかのカテゴリが用意されています。『BSP』を選択すると、
ファイルがいくつか現れます。今回は、青色の矢印で示した4ファイルをダウンロードします。
※ ファイル名(バージョン、内容物)は、本資料制作時点のものです。
Page 3
Linuxセットアップの概要は
プライベート・サイトから取得したマニュアル『APN-Quadmo747-X-T30_Linux_setup.pdf』
には、セットアップに必要な環境、Linuxパッケージのインストール、カーネル再設定の方法などについて
述べられています。今回は、オンボードeMMCに、Ubuntu(Linux)(GNOMEデスクトップ付)をインス
トールしてみます。
ホストPCに、Tegra3用のLinuxファイル・システムを配置、NFSサーバ / DHCPサーバを構築して、一度
リモートでLinuxを起動します。この後、ボード上のeMMCシリコン・ディスクをマウントし、こちらにLinux
パッケージ(tgzファイル)を展開する、という方法を採ります。
Page 4
LAN機能の付いたPCを用意
ホストPCとTegra3 QSevenボードは、LANケーブルで接続します。この際、ホストPCはIPアドレスが固定
されます。また、以降示すセットアップでは、NFS/DHCPサーといったツールのホストPCへのインストールが
伴います。このため、有線LANポートを装備し、たとえば無線LANにてインターネットに接続できるノートPC
などの環境が適当でしょう。
マニュアル『APN-Quadmo747-X-T30_Linux_setup.pdf』には、ホストPCの要件として、Ubuntu
10.04環境を指定していますが、他の(新しい)バージョンでも運用は可能です。本稿作成において、Ubuntu
12.04 LTSをホスト環境として使用しました。
それでは、次ページ以降、セットアップの手順を示していきます。
Page 5
ホストPCのセットアップ-1
1.
適当なシリアル・ターミナルをインストールします。本稿では、オリジナル・マニュアルにしたがい、
『minicom』をインストールしました。root権限で以下のコマンドを実行します。
apt-get install minicom
2. 市販のUSB-シリアル・ケーブルを
接続します。通常/dev/ttyUSB0で
認識されます。端末エミュレータ
にて、minicom ‒s とタイプし、
minicomの設定を行います。
ボーレート115.2Kbps, データ8bit、
ストップ1bit、パリティ/フロー制
御なしの設定とします。
Page 6
ホストPCのセットアップ-2
3.
root権限で以下コマンドを順に実行します。
mkdir /targetfs
tar xvzf Quadmo747-X-T30_targetfs_l4t_r15_rc_ubuntu-11.04_v1.3.tgz -C /targetfs
cp Quadmo747-X-T30_targetfs_l4t_r15_rc_ubuntu-desktop-11.04_v1.3.tgz /targetfs
ホストPCの/targetfsフォルダに展開したファイル・システムは、Tegra3ボードをブートした後
NFS経由で読み込まれます。また、/targetfsにコピーしたアーカイブは、Tegra3オンボードeMMC
上に展開するものです(これが、最終的にTegra3を単独で起動させたときのLinuxファイル・システム
となる)。
4.
適当なフォルダを作成し、こちらに、Quadmo747-X-T30_Tools_Rev814.tgzを展開します。
例えば、以下コマンドを順に実行します(root権限は不要)。
mkdir <homeフォルダ>/t30bsp/t30tools
tar xvzf Quadmo747-X-T30_Tools_Rev814.tgz -C <homeフォルダ>/t30bsp/t30tools
本アーカイブは、オンボードeMMCにブートローダを書き込むフラッシュ・ユーティリティを含みます。
Page 7
ホストPCのセットアップ-3.1
5.
NFSサーバをセットアップします。root権限で以下コマンドを順に実行します。
apt-get install nfs-kernel-server nfs-common portmap
/etc/exportsファイルに、以下の行を記載します。
/targetfs *(async,rw,no_root_squash,no_all_squash,subtree_check)
/etc/init.d/nfs-kernel-server restart
exportfs ‒a
6.
ネットワーク・インターフェイスを設定します(有線LANに固定IPアドレスを付与)。以下処理を行います。
/etc/network/interfacesファイルに、以下の4行を記載します(以降、有線LANは、eth0で認識されて
いるものと仮定)。
auto eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
Page 8
ホストPCのセットアップ-3.2
ネットワーク・インターフェイスを再起動します。
/etc/init.d/networking restart
※Ubuntuインストールでは、LANはデフォルトでDHCP接続の設定になっています。のちに行う、NFS経由
でのLinux起動が不調(LAN接続が不調)の場合、下図のようにホストPCの有線LAN設定を変更し、固定IP
アドレスをお試し
ください。
Page 9
ホストPCのセットアップ-4.1
7.
DHCPサーバをセットアップします。root権限で以下処理を順に実行します。
apt-get install dhcp3-server
/etc/default/dhcp3-serverに、以下の一行を記載します。
INTERFACES="eth0"
/etc/dhcp/dhcpd.confに、以下の各行を記載します。
ddns-update-style none;
allow bootp;
subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.1;
default-lease-time 345600;
max-lease-time 31557600;
range 10.0.0.2 10.0.0.254;
option root-path "10.0.0.1:/targetfs,wsize=8192,rsize=8192,v3";
}
Page 10
ホストPCのセットアップ-4.2
DHCPサーバを再起動します。
/etc/init.d/dhcp3-server restart
※上記コマンドがエラーとなった場合は、以下のコマンドを試してみます。
/etc/init.d/isc-dhcp-server restart
Page 11
ホストPCとボードを接続する
下図に示すように、ホストPCとボードをLANケーブル、USB-シリアル・ケーブルで接続します。MXM
キャリア・ボードの場合は、Tegra3オンボードeMMCのフラッシュ用に、キャリア・ボード上のmini-B
コネクタとホストPCをUSBケーブルで接続します。また、JP1をショートします(リカバリ・モード)。
他のキャリア・ボードを使う場合は、プライベート・サイトからダウンロードしたPDFマニュアルの10節を
参考に設定を
行います。
Page 12
Tegra3オンボードeMMCをフラッシュする−1
ホストPCの端末エミュレータから、lsusb とタイプします。下図に示すように、Nvidia Corp. のUSB
デバイスがリストされれば正常です。表示されない場合は、キャリア・ボードの設定、あるいはホストPCと
接続するキャリア・ボード上のUSBコネクタの位置などを、マニュアルにしたがって確認ください。
Page 13
Tegra3オンボードeMMCをフラッシュする−2
Tegra3オンボードeMMCにパーティションを行い、u-boot / カーネルを書き込みます(eMMCフラッシュ)。
7ページに示すステップ4で作成した、フラッシュ・ユーティリティのフォルダに移動します
(<homeフォルダ>/t30bsp/t30tools/secotoolsに移動)。root権限で、以下のコマンドを実行します。
./bootloader/mkubootscript -i bootloader/seco_q7_t30/seco_q7_t30_emmc_2GB.hush -o
/targetfs/boot-emmc.img
※上記コマンドは、1行で入力します。
※RAM搭載量が1GバイトのTegra3 QSevenモジュールの場合は、seco_q7_t30_emmc_1GB.hushを
指定します。
Page 14
Tegra3オンボードeMMCをフラッシュする−3
続いて以下のコマンドを実行します。
./seco_flash.sh mmcblk0p1 <RAMサイズ> <eMMCサイズ>
例えば、RAM 2Gバイト、eMMCが4Gバイトであれば、下のようにタイプします。
./seco_flash.sh mmcblk0p1 2GB 4GB
正常に終了すれば、下図のようなメッセージでコマンド実行が終了します。USBケーブルは外して構いません。
Page 15
NFSサーバからLinuxシステムを起動する-1
MXMキャリア・ボードのJP1上のジャンパを外します。ホストPC上で、minicomを起動します。
つぎに、Tegra3ボードに電源を再投入します。Tegra3のシリアル・ポートから、minicom上にコンソール
表示が現れます。
Tegra3オンボードeMMCからブートします。そして、これまでに構築したホストPC上のDHCPサーバより、
IPアドレスがTegra3に割り
振られます。最後に、ホスト
PC上のNFSサーバにより、
ホストPC上の/tragetfsに
展開したLinuxファイル
システムがリモートで
Tegra3に読み込まれます。
ホストPCの/targetfsが、
Tegra3のルート・ディレク
トリ(/)になります。
Page 16
NFSサーバからLinuxシステムを起動する-2
下図は、minicomコンソール上から、ルート・ディレクトリ(/)の一覧を表示させた状態です。7ページの
ステップ3で、ホストPCの/targetfsにコピーしたファイル、『Quadmo747-X-T30_targetfs_l4t_r15_rc_
ubuntu-desktop-11.04_v1.3.tgz』(603Mバイト)が見えています。
Page 17
Tegra3オンボードeMMCに
Linuxシステムをインストールする
最後の作業になります。Tegra3オンボードeMMCにLinuxファイル・システムをインストールします。
以下に示すコマンドを順に実行します。これらは、ホストPCではなく、Tegra3に対するものです。
minicomシリアル・コンソール上から実行します。
mkfs.ext3 /dev/mmcblk0p1
mount /dev/mmcblk0p1 /mnt
tar xzf /Quadmo747-X-T30_targetfs_l4t_r15_rc_ubuntu-desktop-11.04_v1.3.tgz -C /mnt
sync
umount /mnt
オンボードeMMC(/dev/mmcblk0p1)にext3ファイル・システムを作成し、/mntにマウントします。
そして、Linuxファイル・システム(Quadmo747-X-T30_targetfs_l4t_r15_rc_ubuntu-desktop11.04_v1.3.tgz)を/mntにマウントしたオンボードeMMCに展開する、というものです。
以下のコマンドを実行して、Tegra3のオンボードeMMCからLinuxシステムを起動できるようにします。
dd if=/boot-emmc.img of=/dev/mmcblk0 bs=1k count=4 seek=12k
最後に、halt コマンドにて、Tegra3をシャット・ダウンします。
Page 18
Linuxの動作を確認する-1
以上でインストール作業は終了です。USB-シリアル・ケーブルは接続したままでも構いません。Tegra3
シリアル・コンソールは引き続き有効です。ホストPCとのLANケーブル接続は外します。インストールした
Linuxシステムでは、DHCP接続が有効になっているため、社内LANなどの環境に接続すれば、インターネット
接続が行えます。
映像出力は、HDMI
出力が有効です。
HDMI入力付きの
モニタ/TVを接続
して再起動すれば、
オンボードeMMC
から起動し、
GNOMEデスク
トップが再現され
ます。
Page 19
Linuxの動作を確認する-2
下図は、Ubuntu 11.04から11.10環境にアップデートした後のようすです。Unityのランチャが動作して
います。SECOからは、カーネル・ソースも提供されています。たとえば、液晶パネル(LVDS)への映像出力も
カーネル・カスタ
マイズによって
可能になります。
これによって、
マルチ・ディスプ
レイ環境を構築
する等も可能です。
Page 20
改 定
日
履 歴
付
改
2013年2月12日
定
内
容
初版作成
ご注意事項
1. 本ドキュメントに記載の内容は本資料発行時点の情報をもとにしており、随時変更する
場合があります。
2.
本ドキュメントに示される回路、ソフトウェア、および関連情報は、動作や応用一例を
説明するために掲示しております。これらの使用に起因する損害に関し、弊社はその
責任を負いません。
3.
本ドキュメントの内容について、正確を期すべく作成していますが、本ドキュメントの
記載内容のあやまりに起因する損害が生じた場合、弊社は一切その責任を負いません。
4.
本ドキュメントの内容について、転載または複製はご遠慮ください。
Page 21