xg series lk-3352-a02 software manual|-- yocto-conf-xg3352-x.x.tar.bz2 :yocto confファイル |--...
TRANSCRIPT
Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved
https://www.apnet.co.jp
XG Series
LK-3352-A02 Software Manual Rev 1.1 Cortex-A8 AM3352 CPU BOARD
ダイジェスト版
XG Series LK-3352-A02
https://www.apnet.co.jp Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved
LK-3352-A02 ソフトウェアマニュアル
ご使用になる前に
このたびは、XG-3352 Linux開発キット(LK-3352-A02)をお買い上げいただき誠にありがとうございます。
本製品をお役立て頂くために、このマニュアルを十分お読みいただき、正しくお使いください。
今後共、弊社製品をご愛顧賜りますよう宜しくお願いいたします。
梱包内容
本製品は、下記の品より構成されております。梱包内容をご確認のうえ、万が一、不足しているものがあれば
お買い上げの販売店までご連絡ください。
●LANストレートケーブル 1本 ●ACアダプタ 1本
●PC-USB-03/04(シリアルI/F ケーブル付) 1個
●USBケーブル(A - B) 1本
コネクタの形状
●JTAG-CNV-01(FFC ケーブル付) 1個
●microSDカード 1個
●CD もしくは DVD 1枚
●マニュアル・サンプルプログラムの
ダウンロード・保証のご案内 1枚
■本製品の内容及び仕様は予告なしに変更されることがありますのでご了承ください。
LK-3352-A02 梱包内容
XG Series LK-3352-A02
https://www.apnet.co.jp Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved
LK-3352-A02 ソフトウェアマニュアル
目 次
1. 概要 1
1.1 はじめに ................................................................................................... 1 1.2 Linuxについて ............................................................................................ 1 1.3 U-Bootについて ......................................................................................... 1 1.4 VirtualBoxについて ..................................................................................... 2 1.5 Ubuntuについて ......................................................................................... 2 1.6 GNUとFSFについて ..................................................................................... 2 1.7 Yocto Projectについて ................................................................................. 2 1.8 GPLとLGPLについて .................................................................................... 3 1.9 保証とサポート ........................................................................................... 3
2. システム概要 4
2.1 システム概要 ............................................................................................. 4 2.2 ブートローダ ............................................................................................. 5 2.3 Linuxカーネル ............................................................................................ 5 2.4 ルートファイルシステム ............................................................................... 6 2.5 クロス開発環境 ........................................................................................... 7 2.6 添付CD/DVDの構成 ..................................................................................... 8
3. システムの動作 9
3.1 動作環境 ................................................................................................... 9 3.2 シリアル初期設定値 ................................................................................... 10 3.3 ネットワーク初期設定値 ............................................................................. 10 3.4 USB ID初期設定値 .................................................................................... 12 3.5 XG-3352ボードの接続 ............................................................................... 13 3.6 動作確認用U-BootのFlashROMへの書き込み ................................................... 14 3.7 動作確認用microSDカードの作成 ................................................................. 18 3.8 Linuxの起動 ............................................................................................. 20 3.9 Linuxの動作確認 ....................................................................................... 21 3.10 ネットワークの設定 ................................................................................. 29 3.11 Linuxの終了 ........................................................................................... 33
4. ブートローダ 34
4.1 U-Boot概要 ............................................................................................. 34 4.2 ブートローダの起動 ................................................................................... 35 4.3 ネットワーク設定 ...................................................................................... 36 4.4 U-Bootの作成 .......................................................................................... 39
5. Linux 43
5.1 Linuxシステムの概要 ................................................................................. 43 5.2 Linuxカーネルの作成 ................................................................................. 44
XG Series LK-3352-A02
https://www.apnet.co.jp Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved
LK-3352-A02 ソフトウェアマニュアル
5.3 ルートファイルシステムの作成 .................................................................... 48
6. microSDカードの作成 53
6.1 MMC起動用microSDカードの作成 ................................................................ 53 6.2 NOR Flash起動用microSDカードの作成 ......................................................... 57
7. プログラムの作成 61
7.1 プログラムの開発について .......................................................................... 61 7.2 サンプルアプリケーションのビルド ............................................................... 62 7.3 動作確認 ................................................................................................. 64
8. デバイスドライバの作成 65
8.1 サンプルデバイスドライバの概要 .................................................................. 65 8.2 サンプルデバイスドライバ/アプリケーションのビルド ..................................... 67 8.3 動作確認 ................................................................................................. 69
9. 無線LANモジュールの使用 70
9.1 Linuxカーネルの対応方法 ........................................................................... 70 9.2 動作確認 ................................................................................................. 74
10. FlashROMの書き込み 77
10.1 FlashROM構成 ....................................................................................... 77 10.2 作業概要 ............................................................................................... 77 10.3 microSDカードの作成 .............................................................................. 78 10.4 書き込み手順 .......................................................................................... 80
11. 製品サポートのご案内 82
12. エンジニアリングサービスのご案内 83
付録A. 起動ログ 1
付録B. 付属品について 9
XG Series LK-3352-A02
1 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
1. 概要
1.1 はじめに
XG-3352は、CPUコアにArm Cortex-A8を採用したマイクロプロセッサ「AM3352」(TEXAS INSTRUMENTS)を搭載した汎用CPU
ボードで、標準OSにLinuxを採用しています。
Linuxを採用することで、世界中のプログラマによって日々開発される膨大なオープンソースソフトウェア資産をロイヤリティフリ
ーで利用することができます。
本ドキュメントでは、XG-3352の動作方法をはじめ、SPL、U-Boot、Linuxカーネル、アプリケーション開発のための手順を説明し
ます。
1.2 Linuxについて
Linuxとは1991年にLinus Torvalds氏によって開発された、オープンソースのUNIX互換オペレーティングシステムです。
Linuxはオープンソース、ロイヤリティフリーという特性から、世界中のプログラマたちにより日々改良され、今では大手企業のサ
ーバや、行政機関などにも広く採用されています。
また、Linuxの特長としてCPUアーキテクチャに依存しないということがあげられます。これは、GNU Cコンパイラの恩恵にもよる
ものですが、数多くのターゲット(CPU)に移植されており、デジタル家電製品を中心に非PC系製品にも採用されるようになりまし
た。
Linuxは、カーネルと呼ばれるOSの核となる部分とコマンドやユーティリティなど多くのソフトウェアから構成されます。これら
のソフトウェアの多くはFSFのGNUプロジェクトによるフリーソフトウェアです。
本ドキュメントでは、Linuxのごく一部の機能と使い方のみを説明しています。
Linuxの詳細については、一般書籍やインターネットから多くの情報を得られますので、それらを参考にしてください。
1.3 U-Bootについて
U-Bootは、DENX Software Engineering社のWolfgang Denk氏が保守を行っているオープンソフトウェアの汎用ブートローダで
す。多くの開発者によって支援され、現在最も機能が豊富で柔軟性に富み、開発が活発に行われています。対応しているアーキテク
チャは、SuperH、PPC、Arm、AVR32、MIPS、x86、68k、Nios、MicroBlazeなどです。またプログラムのダウンロードに関して
も、ネットワークを介したTFTPの他に、CFカード、SDメモリカードなどのストレージデバイスからのダウンロードにも対応して
います。
本ドキュメントでは、VirtualBoxを含めた開発環境がWindowsPCにインストールされていることが前提となって
います。開発環境をインストールされていない場合は、『LK-3352-A02 インストールマニュアル』に従って、
先に開発環境の作成を行ってください。
XG Series LK-3352-A02
4 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
2. システム概要
2.1 システム概要
XG-3352は、CPUコアにArm Cortex-A8を採用したマイクロプロセッサ「AM3352」(TEXAS INSTRUMENTS)を搭載した汎用CPU
ボードです。
Linuxシステムは、ブートローダとLinuxカーネル、ルートファイルシステムから構成されます。ブートローダにSPLとU-Boot、Linux
カーネルにLinux-4.9、ルートファイルシステムにはmicroSDカードで動作する専用パッケージを使用します。
Fig 2.1-1 XG-3352システム概要図
XG-3352ボード
ルートファイルシステム
Linuxカーネル
ブートローダ ソフト ウェア
ハード ウェア
XG Series LK-3352-A02
6 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
2.4 ルートファイルシステム
Linuxは、カーネルとファイルシステムという2つの要素から構成されます。
Linuxでは、全てのデータがファイルという形で管理されています。アプリケーションプログラムやデバイスドライバをはじめ、
HDDやCOMポートなどの入出力デバイスもファイルとして扱われます。
Linuxでは全てのファイルがルートディレクトリを起点としたディレクトリ構造下に管理されており、これら全てのファイル構造の
ことをファイルシステムと呼びます。また、システム動作に必要なシステムファイル群のこともファイルシステムと呼びます。
本ドキュメントでは、これらの意味を明確にするため、ファイル管理構造(EXT3やEXT4)のことをファイルシステム、システム動作
に必要なファイル群のことをルートファイルシステムと表現しています。
Linuxのルートファイルシステムは、そのシステムが必要とする機能に合わせて構築する必要があります。
XG-3352では、以下のルートファイルシステムを用意しています。
sdルートファイルシステム
SDカード用に構成されたオリジナルLinuxパッケージです。
ルートファイルシステムがSDカード上に展開されるため、電源を落としても変更した内容は破棄されませんが、電源を落とす
前には適切な終了処理が必要になります。
本ドキュメントでは、sdルートファイルシステムを利用したLinuxシステムをSD-Linuxシステム と表現します。
Fig 2.4-1 SD-Linuxシステム
RAM
Linux カーネル
SDカード
sd ルートファイル
システム
XG Series LK-3352-A02
8 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
2.6 添付CD/DVDの構成
XG-3352のLinuxの開発に必要なファイルは、弊社ホームページ及び関連リンクからダウンロードするか、添付CD/DVDから入手
することができます。
※『X_X』、『X.X』はバージョン番号を示します。バージョン1.0の場合は『1_0』、『1.0』になります。
LK_3352_A02_VX_X |-- an | `--AN5011.pdf :AN5011 無線LANモジュール(WM-RP-10)の使用方法 |-- binaries | |-- sd_image | | |-- xg3352_uboot.zip :microSDカードイメージ(FlashROM書き込み用) | | `-- xg3352_sd.zip :microSDカードイメージ(動作確認用) | |-- u-boot.bin :U-Bootバイナリ(FlashROM起動用) | |-- u-boot.img :U-Bootバイナリ(MMC起動用) | |-- MLO :SPLバイナリ | |-- zImage :Linuxカーネルバイナリ | |-- am335x-xg3352.dtb :デバイスツリーバイナリ | |-- arago-base-image-xg3352.tar.xz :sdルートファイルシステムバイナリ | |-- modules-xg3352.tar.bz2 :モジュールファイル | |-- helloworld :サンプルアプリ | |-- sample-app :サンプルアプリ(デバイス確認用) | |-- sample-driver.ko :サンプルデバイスドライバ | |-- wmrp10_bt_sample :WM-RP-10用BTサンプルアプリ | `-- wmrp10_ble_sample :WM-RP-10用BLEサンプルアプリ |-- driver | |-- com_class :USB仮想シリアルドライバ | `-- an178.pdf :USB仮想シリアルドライバ インストールガイド |-- index.html :インデックスHTML |-- index_images :インデックスHTMLイメージ |-- manual | |-- lk_3352_a02_soft.pdf :LK-3352-A02ソフトウェアマニュアル | `-- lk_3352_a02_inst.pdf :LK-3352-A02インストールマニュアル |-- sample | |-- devicedriver-X.X.tar.bz2 :サンプルデバイスドライバソース | |-- helloworld-X.X.tar.bz2 :サンプルアプリソース | `-- wmrp10-X.X.tar.bz2 :WM-RP-10サンプルアプリソース `-- sources |-- yocto-conf-xg3352-X.X.tar.bz2 :Yocto Confファイル |-- linux-4.9.28-xg3352-X.X.tar.bz2 :Linuxカーネルソースファイル `-- u-boot-2017.01-xg3352-X.X.tar.bz2 :U-Bootソースファイル
Table 2.6-1 CD/DVD内容
XG Series LK-3352-A02
9 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
3. システムの動作
3.1 動作環境
Linuxの起動を確認するためには、CPUボードと以下の環境が必要です。
使用機器等 環 境
CPUボード XG-3352
HOST PC PC/AT互換機
OS Windows 7/10
メモリ 使用OSによる
ソフトウェア ターミナルソフト
USBポート 1ポート
LANポート 10/100BASE-TX 1ポート
SDカードスロット microSDカードを読み込めるスロット(Ubuntuから認識できること)
PC-USB-04 ホストPCとXG-3352のシリアル接続用に使用
USBケーブル PC-USB-04で使用
LANケーブル ホストPCと接続時はクロスケーブルを使用
ハブと接続時はストレートケーブルを使用
WM-RP-04S もしくは
WM-RP-05S
無線LANモジュールを用いた動作確認時に使用
microSDカード SDルートファイルシステム作成、FlashROMの書き込み等に使用
USBホスト変換ケーブル XG-3352のmicroABコネクタ(CN6)の動作確認時に使用
USBファンクション変換ケーブル XG-3352のmicroABコネクタ(CN6)の動作確認時に使用
PC-CAN-02 CAN通信の動作確認時に使用
電源 ACアダプタ(DC5V±5%)
●HOST PC
LinuxではPCをコンソール端末として使用します。
本Linux開発キットには、PC-USB-04が付属しており、PC-USB-04とPCをUSBケーブルで接続することで、PC上では仮想シリ
アルポートとして認識します。
PC-USB-04の使用方法に関しては、PC-USB-04のマニュアルをご参照ください。
なお、仮想シリアルポートを使用した通信には、ハイパーターミナル等のターミナルソフトウェアが別途必要となります。
上記の環境は、XG-3352のLinuxの動作確認をするための環境となります。
カーネル等のビルドに使用する開発環境に関しては、開発キット付属の『LK-3352-A02 インストールマニ
ュアル』でご確認ください。
XG Series LK-3352-A02
13 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
3.5 XG-3352ボードの接続
ホストPCとXG-3352ボードの接続例を示します。
LANをネットワークと接続する場合は、ネットワーク管理者と相談し、設定に注意して接続してください。
XG-3352ボード ホストPC
シリアルインタフェース ケーブル
PC-USB-04
USBケーブル
ACアダプタ
LANクロスケーブル
Fig 3.5-1 XG-3352ボードの接続(PCに接続する場合)
シリアルインタフェース
ケーブル PC-USB-04
USBケーブル
ホストPCXG-3352ボード
ACアダプタ
LANストレートケーブル
Fig 3.5-2 XG-3352 ボードの接続(HUB に接続する場合)
U-Boot 使用時には、イーサネットポートは、CN3 のみ対応となりますので、LAN ケーブル接続時にはご注意
ください。
XG Series LK-3352-A02
18 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
3.7 動作確認用microSDカードの作成
LK-3352-A02のLinux起動には、ルートファイルシステムで構成されているmicroSDカードが必要です。
本節では、動作確認用microSDカードの作成について説明します。
LK-3352-A02の付属のCD/DVDには、上記構成のmicorSDカードのイメージファイルが用意されています。
以下の手順にてそのイメージファイルをmicroSDカードに書き込みます。
また、書き込みには『Win32 Disk Imager』のツールを使用しますので、事前にインストールをお願いします。
① 付属CD/DVD内のイメージデータzip圧縮ファイル『xg3352_sd.zip』を解凍します。
解凍後のファイルは2GByteありますので、ご注意ください。
なお、以降の説明では、以下のディレクトリに解凍されたとします。
C:/alphaproject/xg3352_sd.img
② PCのmicroSDカードスロットに書き込むmicroSDカードを挿入します。
③ 『Win32 Disk Imager』を起動します。
『Device』にmicroSDカードスロットのドライブが選択されていることを確認します。
『Image File』に手順②で解凍したファイルを指定します。(入力欄右側のアイコンを押してファイル選択します。)
EXT4 0 cyl~
~End
microSDカード ルートファイルシステム /┬─ bin/ ├─ boot/ │ ├─ zImage │ └─ am335x-xg3352.dtb ├─ dev/ ├─ etc/ :
Fig 3.7-1 動作確認用microSDカードの構成
XG Series LK-3352-A02
20 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
3.8 Linuxの起動
XG-3352上でのLinuxの起動について説明します。
① XG-3352の電源をいれる前にスイッチが以下の設定になっていることを確認します。
スイッチの設定の詳細に関しては、『XG-3352ハードウェアマニュアル』でご確認ください。
② FlashROMにU-Boot 2.0以降を書き込みます。
書き込み方法は『10. FlashROMの書き込み』を参照してください。
③ microSDカードをmicroSDカードスロットに挿入します。
microSDカードは『3.7 動作確認用のmicroSDカードの作成』手順で作成したもの使用してください。
④ 『3.5 XG-3352ボードの接続』にしたがって、ホストPCとXG-3352を接続します。
PC-USB-04がホストPCに認識されて仮想COMポートが作成されます。
⑤ ホストOS(Windows)のターミナルソフトを起動します。(設定は『3.2 シリアル初期設定値』を参照してください)
⑥ ACアダプタを接続して、XG-3352の電源を入れます。
⑦ Linuxカーネルが自動起動します。全ての起動までにはおよそ20秒かかります。
なお、起動ログに関しては、本ドキュメントの『付録A. 起動ログ』でご確認ください。
U-Boot 2017.01-xg3352-2.0 (Sep 25 2018 - 13:33:37 +0900)
CPU : AM335X-GP rev 1.0
I2C: ready
:
途中省略
:
Arago 2017.10 xg3352 ttyS0
xg3352 login:
SD NOR
XG Series LK-3352-A02
21 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
3.9 Linuxの動作確認
XG-3352上でのLinux動作確認について説明します。
ログイン
Linux起動後、ログインプロンプト『xg3352 login:』が表示されます。
ログインを実行するにはユーザ『root』を入力してください。
ログイン設定
ユーザ root
パスワード なし
Arago 2017.10 xg3352 ttyS0
xg3352 login: root
時刻設定
XG-3352上で時刻の設定をします。XG-3352にはRTC(リアルタイムクロック)が搭載されており、電源をOFFにした状態でも時刻
を保持することができます。Linuxは起動時にRTCから時刻を読み出し、以後はRTCにアクセスすることなく、CPU内のタイマーモ
ジュールによって時刻を管理しています。Linuxのコマンドライン上からRTCにアクセスするには『hwclock』コマンドを使用しま
す。
① RTCに設定されている時刻を読み出すには『hwclock』コマンドを引数無しで入力します。
# hwclock
Sat Jan 1 12:00:00 2000 0.000000 seconds
② RTCに設定されている時刻を変更する際には『date』コマンドを使用し、システムの時刻を設定し、その更新されたシス
テムの時刻を『hwclock』コマンドでRTCに書き込みます。
例として時刻を2018年9月28日15時30分に設定します。
『date -s '2018-09-28 15:30'』実行後、『hwclock -w』を実行してください。
# date -s '2018-09-28 15:30'
Tue Sep 28 15:30:00 UTC 2018
# hwclock -w
Table 3.9-1 ログイン設定
入力
入力
入力
入力
XG Series LK-3352-A02
26 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
USB(CN6) -USB仮想シリアル-
USB(CN6)をPCに接続することで、PC上では仮想シリアルとして通信することが可能となります。
なお、PCとは、以下のように接続します。
以下に、簡単な動作確認手順を記載します。
① XG-3352とPCをUSBファンクション変換ケーブルで接続します。
② CN5用のカーネルモジュール『g_serial』をロードします。ロード済み場合は手順②にお進みください。
# modprobe g_serial
[ 46.095544] g_serial gadget: Gadget Serial v2.4
[ 46.100155] g_serial gadget: g_serial ready デバイスファイル『/dev/ttyGS0』が作成されて、シリアル通信ができるようになります。
③ PCで仮想シリアルポートをターミナルソフトで開きます。
仮想シリアルのCOM番号に関しては、『USB仮想シリアルドライバ インストールガイド』でご確認ください。
通信速度は、参考までに以下に記載しますが、特に指定はないです。
シリアルの設定
ポート番号 PCに割り当てられた仮想シリアルポート
通信速度 115200bps
データ長 8bit
ストップビット 1bit
パリティ なし
フロー制御 なし
Fig 3.9-3 XG-3352ボードとPCの接続
PC側にはデバイスドライバが必要となります。
ドライバのインストール方法に関しては、『USB仮想シリアルドライバ インストールガイド』でご確認くだ
さい。
Table 3.9-2 シリアル設定
XG-3352ボード
USBファンクション 変換ケーブル
PC
入力
既にロードされている場合でも、上記コマンドを実行することに問題はありません。
ロード済みモジュールは『lsmod』コマンドで確認できます。
XG Series LK-3352-A02
35 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
4.2 ブートローダの起動
XG-3352を起動して、U-Bootのコマンドコンソールに入る方法を説明します。
① XG-3352の電源を入れる前に、スイッチが以下のようになっていることを確認します。スイッチの各設定の詳細に関しては、
『XG-3352 ハードウェアマニュアル』でご確認ください。
② 『3.5 XG-3352ボードの接続』にしたがって、ホストPCとXG-3352を接続します。
PC-USB-04がホストPCに認識されて仮想COMポートが作成されます。
③ ホストOS(Windows)のターミナルソフトを起動します。(設定は『3.2 シリアル初期設定値』を参照してください)
④ ACアダプタを接続して、XG-3352の電源を入れます。
⑤ ターミナルに『Hit any key to stop autoboot』の文字が表示され、2秒以内にキー入力を行うとU-Bootのコマンド
コンソールが起動します。
コマンドコンソールが起動すると、『=>』が表示されます。
U-Boot 2017.01-xg3352-2.0 (Sep 25 2018 - 13:33:37 +0900)
CPU : AM335X-GP rev 1.0
I2C: ready
DRAM: 128 MiB
Flash: 16 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
Net: cpsw
Hit any key to stop autoboot: 0
=>
2秒以内にキー入力を行います
SD NOR
XG Series LK-3352-A02
40 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
MMC起動用U-Bootの作成
MMC起動用のU-Boot(『MLO』,『u-boot.img』ファイル)のビルド手順を説明します。
① 新しいターミナルを開きます。
PATH環境変数にクロスコンパイラのディレクトリを設定します。
$ export PATH=$HOME/ti-processor-sdk-linux-am335x-evm-04.00.00.04/linux-devkit/sysroots/x86
_64-arago-linux/usr/bin/:$PATH
② 準備作業で展開した作業用ディレクトリの『u-boot-2017.01-xg3352』へ移動します。
$ cd ~/xg3352-lk/u-boot-2017.01-xg3352
③ コンフィグレーションを行います。
途中の『O=xg3352』のOは、英字大文字のO(オー)ですので、ご注意ください。
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=xg3352 xg3352_defconfig
make[1]: ディレクトリ '/home/guest/xg3352-lk/u-boot-2017.01-xg3352/xg3352' に入ります
HOSTCC scripts/basic/fixdep
GEN ./Makefile
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
#
# configuration written to .config
#
make[1]: ディレクトリ '/home/guest/xg3352-lk/u-boot-2017.01-xg3352/xg3352' から出ます
④ ビルドします。
途中の『O=xg3352』のOは、英字大文字のO(オー)ですので、ご注意ください。
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=xg3352
make[1]: ディレクトリ '/home/guest/xg3352-lk/u-boot-2017.01-xg3352/xg3352' に入ります
GEN ./Makefile
scripts/kconfig/conf --silentoldconfig Kconfig
:
途中省略
:
MKIMAGE u-boot-dtb.img
../scripts/check-config.sh u-boot.cfg \
../scripts/config_whitelist.txt .. 1>&2
make[1]: ディレクトリ '/home/guest/xg3352-lk/u-boot-2017.01-xg3352/xg3352' から出ます
⑤ makeが正常に終了すると『xg3352』ディレクトリに『MLO』と『u-boot.img』が作成されます。
$ ls xg3352/MLO xg3352/u-boot.img
xg3352/MLO xg3352/u-boot.img
『arm-linux-gnueabihf-gcc: コマンドが見つかりません』のようなエラーが表示される場合には、クロス
コンパイラのインストールが正常にできていない可能性があります。
『LK-3352-A02インストールマニュアル』の『SDKインストール』を再度ご確認ください。
また、手順①で行うPATH設定もご確認ください。
入力
入力
入力
入力
入力
XG Series LK-3352-A02
43 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
5. Linux
5.1 Linuxシステムの概要
XG-3352用Linuxシステムは、Linuxカーネルとルートファイルシステムから構成されます。
Linuxカーネルは、デバイスドライバとしてUART、Ethernet、FlashROM等をサポートし、ファイルシステムとしてEXT3、EXT4、
JFFS2、CRAMFS、FAT、NFS等をサポートしています。
ルートファイルシステムは、基本アプリケーションとして、コマンドユーティリティ群「busybox」が収録されています。
Fig 5.1-1 Linuxシステム
Linuxカーネル
デバイスドライバ
UART
ルートファイルシステム
busybox
ファイルシステム
ハードウェア
EXT3
XG-3352
Ether
UART
FlashROM
RTC
Ether
EXT4
JFFS2 CRAMFS
FAT NFS
RTC
FlashROM
XG Series LK-3352-A02
45 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
作成
Linuxカーネルをビルドする方法を説明します。
Linuxカーネルの設定データはLinuxカーネルソースディレクトリ以下『arch/arm/configs/xg3352_defconfig』に保存されて
います。
① 新しいターミナルを開きます。
PATH環境変数にクロスコンパイラのディレクトリを設定します。
$ export PATH=$HOME/ti-processor-sdk-linux-am335x-evm-04.00.00.04/linux-devkit/sysroots/x86
_64-arago-linux/usr/bin/:$PATH
② 準備作業で展開した作業用ディレクトリの『linux-4.9.28-xg3352』へ移動します。
$ cd ~/xg3352-lk/linux-4.9.28-xg3352
③ クリーンします。
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
④ Linuxカーネルの設定データを呼び出します。
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xg3352_defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
#
# configuration written to .config
#
⑤ 『zImage』をビルドします。終了までに数分から数時間かかる場合があります。
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/config/kernel.release
UPD include/config/kernel.release
:
途中省略
:
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
『arm-linux-gnueabihf-gcc: コマンドが見つかりません』のようなエラーが表示される場合には、クロス
コンパイラのインストールが正常にできていない可能性があります。
『LK-3352-A02インストールマニュアル』の『SDKインストール』を再度ご確認ください。
また、手順①で行うPATH設定もご確認ください。
入力
入力
入力
入力
入力
XG Series LK-3352-A02
48 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
5.3 ルートファイルシステムの作成
ゲストOS(Ubuntu)上で、sdルートファイルシステムを作成・変更するための手順を説明します。
作成の準備
① 作業用ディレクトリ『xg3352-lk』をホームディレクトリに作成します。
すでに作成されている場合は、手順②にお進みください。
$ mkdir ~/xg3352-lk
② 手順①で作成した作業用ディレクトリに移動します。
$ cd ~/xg3352-lk
③ 作業用ディレクトリに付属CD/DVD内の以下のファイルをコピーします。
手順④~⑥で例としてCD/DVDから直接コピーする方法を記述します。他の方法でコピーする場合には、コピー作業完了後に、
手順⑦にお進みください。
yocto-conf-xg3352-X.X.tar.bz2
※『X.X』にはバージョン番号が入ります。Ver1.0の場合は『1.0』
④ CD/DVDをドライブに挿入します。
デフォルトでは、自動でマウントされますが、マウントされない場合は、以下のコマンドを実行します。
$ gvfs-mount -d /dev/sr0
⑤ CD/DVDからファイルをコピーします。
コマンド途中の『*******』はCD/DVDのボリュームラベルになりますので、挿入したCD/DVDに合わせて入力してください。
$ cp /media/guest/*******/sources/yocto-conf-xg3352-X.X.tar.bz2 .
⑥ CD/DVDをアンマウントします。
$ umount /dev/sr0
⑦ コピーしたtarファイルを展開します。『~/xg3352-lk/yocto-conf』ディレクトリができます。
$ tar -xapf yocto-conf-xg3352-X.X.tar.bz2
マウントされているかどうかは、『mount』コマンドで確認できます。
以下のように、『/dev/sr0』が表示されている場合は、すでにマウントされています。
(『*******』は、CD/DVDのボリュームラベルになります。)
$ mount
:
途中省略
:
/dev/sr0 on /media/guest/******* type udf (ro,nosuid,nodev,uhelper=udisks,ui
d=1000,gid=1000,iocharset=utf8,umask=0077)
入力
入力
入力
入力
入力
入力
入力
XG Series LK-3352-A02
51 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
udevadm trigger killproc weston sleep 2 openvt -c 4 -f runWeston : 以降省略 :
⑦ bitbakeを実行します。終了までに数時間かかります。
$ cd ~/xg3352-lk/tisdk/build
$ . conf/setenv
$ MACHINE=xg3352 bitbake arago-base-tisdk-image
Parsing recipes: 100% |##########################################| Time: 0:10:18
:
途中省略
:
NOTE: Tasks Summary: Attempted 3698 tasks of which 13 didn't need to be rerun and all succe
eded.
Summary: There were 52 WARNING messages shown.
⑧ bitbakeが正常に終了すると、『arago-tmp-external-linaro-toolchain/deploy/images/xg3352/』ディレクトリに
sdルートファイルシステム『arago-base-image-xg3352.tar.xz』が作成されます。
$ ls arago-tmp-external-linaro-toolchain/deploy/images/xg3352/ arago-base-image-xg3352.tar.
xz
arago-tmp-external-linaro-toolchain/deploy/images/xg3352/arago-base-image-xg3352.tar.xz
『ERROR: No valid toolchain in PATH』など、toolchainに関するエラーが表示される場合には、インスト
ールが正常にできていない可能性があります。
『LK-3352-A02インストールマニュアル』の『toolchainインストール』を再度ご確認ください。
また、手順①で行うPATH設定もご確認ください。
入力
入力
入力
入力
上記の編集は、「起動時に行われるFAT領域に対する処理」を廃止するための修正です。
このファイルはビルド後ルートファイルシステムの『/etc/init.d/weston』になります。
XG Series LK-3352-A02
53 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
6. microSDカードの作成 本章では、XG-3352上でLinuxの起動に必須となるmicroSDカードの作成方法について説明します。
MMC起動用microSDカード
NOR Flash起動用microSDカード
6.1 MMC起動用microSDカードの作成
MMC起動用のmicroSDカードの作成方法について説明します。
書き込みデータの準備
① 作業用ディレクトリ『xg3352-lk』をホームディレクトリに作成します。
すでに作成されている場合は、手順②にお進みください。
$ mkdir ~/xg3352-lk
② 本手順で使用するデータの置くためのディレクトリ『flash』を作業用ディレクトリに作成します。
$ mkdir ~/xg3352-lk/flash
③ 手順②で作成したディレクトリに移動します。
$ cd ~/xg3352-lk/flash
④ 書き込みに必要な以下のファイルを『~/xg3352-lk/flash』ディレクトリに準備します。
MLO
u-boot.img
arago-base-image-xg3352.tar.xz
modules-xg3352.tar.bz2
zImage
am335x-xg3352.dtb
『4.4 U-Bootの作成』-『MMC起動用U-Bootの作成』、『5.2 Linuxカーネルの作成』、『5.3 ルートファイルシステム
の作成』で作成したファイルでも可能ですが、同等のファイルがCD/DVD内にあります。
本章では、Ubuntu上でmicroSDカードへU-Boot等のデータをコピーする手順があります。
そのため、Ubuntu上で認識できるSDカードリーダをご用意ください。
入力
入力
入力
XG Series LK-3352-A02
55 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
microSDカードへの書き込み
① データ準備手順で用意したデータがある場所に移動します。
$ cd ~/xg3352-lk/flash
まず、第1パーティションにファイルをコピーします。以下の2ファイルを使います
MLO
u-boot.img
② microSD カードの第1パーティションをマウントします。
$ sudo mount /dev/sdb1 /mnt
③ 第1パーティションへU-Bootファイルをコピーします。
$ sudo cp MLO /mnt
$ sudo cp u-boot.img /mnt
④ 第1パーティションをアンマウントします。
$ sudo umount /mnt
次に、第2パーティションにファイルをコピーします。以下の4ファイルを使います
arago-base-image-xg3352.tar.xz
modules-xg3352.tar.bz2
zImage
am335x-xg3352.dtb
⑤ microSD カードの第2パーティションをマウントします。
$ sudo mount /dev/sdb2 /mnt
⑥ 第2パーティションにsdルートファイルシステムを展開します。
$ sudo tar -axpf arago-base-image-xg3352.tar.xz -C /mnt
⑦ 第2パーティションにモジュールファイルを展開します。
$ sudo tar -axpf modules-xg3352.tar.bz2 -C /mnt
⑧ 第2パーティションの/bootディレクトリ内のファイルを削除します。
$ sudo rm /mnt/boot/*
⑨ 第2パーティションの/bootディレクトリにカーネルファイルをコピーします。
$ sudo cp zImage /mnt/boot
$ sudo cp am335x-xg3352.dtb /mnt/boot
⑩ アンマウントします。
$ sudo umount /mnt
入力
入力
入力
入力
入力
入力
入力
入力
入力
入力
入力
入力
XG Series LK-3352-A02
61 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
7. プログラムの作成 本章では、XG-3352上で動作するアプリケーションの作成方法について説明します。
7.1 プログラムの開発について
プログラムの開発は、次のような流れで行います。
① ゲストOS上でソースファイルを作成。
② ゲストOS上でソースファイルをクロスコンパイルし、実行ファイルを作成。
③ XG-3352ボード上でゲストOSをnfsでマウントし、実行ファイルをダウンロード。
④ XG-3352ボード上で動作を確認。
Fig 7.1-1 プログラムの開発手順
ゲストOS
ソースコード
Arm用実行ファイル
②実行ファイルの 作成
XG-3352
Arm用実行ファイル ③実行ファイルの ダウンロード
④実行 ①ソースコードの 作成
クロス開発環境
Arm用クロスコンパイラ
Arm用クロスアセンブラ
Arm用リンカ
XG Series LK-3352-A02
63 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
サンプルアプリケーションのビルド
サンプルアプリケーションのビルド手順を説明します。
① 新しいターミナルを開きます。
PATH環境変数にクロスコンパイラのディレクトリを設定します。
$ export PATH=$HOME/ti-processor-sdk-linux-am335x-evm-04.00.00.04/linux-devkit/sysroots/x86
_64-arago-linux/usr/bin/:$PATH
② 準備作業で展開した作業用ディレクトリの『helloworld』へ移動します。
$ cd ~/xg3352-lk/helloworld
③ サンプルアプリケーションをビルドします。
$ make
arm-linux-gnueabihf-gcc -Wall helloworld.c -o helloworld
④ アプリケーションプログラムをNFSの共有ディレクトリにコピーします。
$ cp helloworld /nfs
入力
入力
入力
入力
XG Series LK-3352-A02
65 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
8. デバイスドライバの作成 本章では、XG-3352上のLEDにアクセス可能なサンプルデバイスドライバの作成方法とそのデバイスドライバを使用したアプリケ
ーションの作成方法について説明します。
8.1 サンプルデバイスドライバの概要
サンプルデバイスドライバはLEDデバイスへのアクセス関数を提供します。
デバイスドライバの概要
ユーザプログラム上からデバイスにアクセスする際、通常はデバイスファイルを通じてシステムコールを発行し、デバイスドライ
バに処理を依頼します。デバイスドライバはデバイスへのアクセス関数を提供することにより、ユーザプログラム上からデバイス
にアクセスする手段を提供します。
サンプルデバイスドライバはキャラクタ型デバイスドライバになり、モジュールとしてビルドします。このデバイスドライバは、
ユーザプログラム上からLEDデバイスにアクセスするための関数を提供します。システムコール(API)は『open』、『close』、
『write』になります。サンプルデバイスドライバを示すデバイスファイルは『/dev/sample0』になります。
ユーザプログラム
デバイスファイル(/dev/sample0)
キャラクタ型デバイス
サンプルデバイスドライバ
(sample-driver.ko)
open
close
write
①システムコールを発行
デバイス
Linuxユーザ空間
Linuxカーネル空間
ハードウェア
②デバイスファイルを通じて
デバイスドライバにアクセス
③システムコールに対応した
関数を実行する
Fig 8.1-1 サンプルデバイスドライバの概要
本章での作業には、Linuxカーネルビルドした環境が必要です。
カーネルのビルドについては『5.2 Linuxカーネルの作成』をご確認ください。
XG Series LK-3352-A02
68 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
サンプルデバイスドライバのビルド
サンプルデバイスドライバのビルド手順を説明します。
① 新しいターミナルを開きます。
PATH環境変数にクロスコンパイラのディレクトリを設定します。
$ export PATH=$HOME/ti-processor-sdk-linux-am335x-evm-04.00.00.04/linux-devkit/sysroots/x86
_64-arago-linux/usr/bin/:$PATH
② 準備作業で展開した作業用ディレクトリの『devicedriver/driver』へ移動します。
$ cd ~/xg3352-lk/devicedriver/driver
③ 汎用デバイスドライバをビルドします。
$ KBUILD=~/xg3352-lk/linux-4.9.28-xg3352 make
make ARCH=arm -C /home/guest/xg3352-lk/linux-4.9.28-xg3352 M=/home/guest/xg3352-lk/de
vicedriver/driver modules
make[1]: ディレクトリ `/home/guest/xg3352-lk/linux-4.9.28-xg3352' に入ります
CC [M] /home/guest/xg3352-lk/devicedriver/driver/sample-driver.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/guest/xg3352-lk/devicedriver/driver/sample-driver.mod.o
LD [M] /home/guest/xg3352-lk/devicedriver/driver/sample-driver.ko
make[1]: ディレクトリ `/home/guest/xg3352-lk/linux-4.9.28-xg3352' から出ます
④ 作成した汎用デバイスドライバをNFSの共有ディレクトリにコピーします。
$ cp sample-driver.ko /nfs
サンプルアプリケーションのビルド
サンプルアプリケーションのビルド手順を説明します。
① 新しいターミナルを開きます。
PATH環境変数にクロスコンパイラのディレクトリを設定します。
(ドライバビルドしたターミナルで引き続き作業する場合、この手順は不要です。)
$ export PATH=$HOME/ti-processor-sdk-linux-am335x-evm-04.00.00.04/linux-devkit/sysroots/x86
_64-arago-linux/usr/bin/:$PATH
② 準備作業で展開した作業用ディレクトリの『devicedriver/application』へ移動します。
$ cd ~/xg3352-lk/devicedriver/application
③ サンプルアプリケーションをビルドします。
$ make
arm-linux-gnueabihf-gcc -Wall sample-app.c -o sample-app
④ アプリケーションプログラムをNFSの共有ディレクトリにコピーします。
$ cp sample-app /nfs
KBUILDは、Linuxカーネルのソースディレクトリを指定します。
カーネルのビルドについては、『5.2 Linuxカーネルの作成』をご確認ください。
入力
入力
入力
入力
入力
入力
入力
入力
XG Series LK-3352-A02
77 LK-3352-A02 ソフトウェアマニュアル Copyright©2018 ALPHA PROJECT Co.,Ltd. All rights reserved https://www.apnet.co.jp
10. FlashROMの書き込み 本章では、FlashROMの書き込み方法について説明します。
なお、本手順のFlashROMは、『3.6 動作確認用U-BootのFlashROMへの書き込み』のFlashROMと同等のものとなります。
10.1 FlashROM構成
以下に、FlashROMのアドレスマップを記載します。
次節より、このアドレスマップになるようにFlashROMへ書き込む方法を説明します。
10.2 作業概要
FlashROMに書き込む手順は、以下の2つの作業で行います。
① MMC起動用のmicroSDカードを作成します。
microSDカードをMMC起動できるように作成し、FlashROMに書き込むデータも入れます。
② FlashROMに用意したデータを書き込みます。
MMC起動のU-Bootを利用して、FlashROMにデータを書き込みます。
次節より、上記の作業順番で説明します。
FlashROM 32MByte
開始アドレス 領域名 領域サイズ
0x00000000 U-Boot 512 KByte
0x00080000 U-Boot環境変数領域 256 KByte
0x000C0000 未使用 31.25 MByte
Fig 10.1-1 FlashROM構成
本手順では、MMC(microSDカード)起動にて行いますので、Ubuntu上でmicroSDカードへデータを
コピーする必要があります。
そのため、Ubuntu上で認識できるSDカードリーダをご用意ください。
XG Series LK-3352-A02
謝辞 Linux、U-Bootの開発に関わった多くの貢献者に深い敬意と感謝の意を示します。
著作権について ・本文書の著作権は、株式会社アルファプロジェクトが保有します。
・本文書の内容を無断で転載することは一切禁止します。
・本文書の内容は、将来予告なしに変更されることがあります。
・本文書の内容については、万全を期して作成いたしましたが、万一ご不審な点、誤りなどお気付きの点がありましたら弊社までご連絡ください。
・本文書の内容に基づき、アプリケーションを運用した結果、万一損害が発生しても、弊社では一切責任を負いませんのでご了承ください。
商標について ・AM3352は、TEXAS INSTRUMENTS株式会社の登録商標、商標または商品名称です。
・Linuxは、Linus Torvaldsの米国およびその他の国における登録商標または商標です。
・U-Bootは、DENX Software Engineeringの登録商標、商標または商品名称です。
・Windows®の正式名称は、Microsoft®Windows®Operating Systemです。
・Microsoft、Windowsは、米国Microsoft Corporation.の米国およびその他の国における商標または登録商標です。
・Windows®10、Windows®7は、米国Microsoft Corporation.の商品名称です。
・VirtualBoxは、OracleCorporationの商品名称です。
本文書では下記のように省略して記載している場合がございます。ご了承ください。
Windows®10は、Windows 10もしくはWin10
Windows®7は、Windows 7もしくはWin7
・その他の会社名、製品名は、各社の登録商標または商標です。
ALPHA PROJECT Co.,Ltd. 株式会社アルファプロジェクト
〒431-3114
静岡県浜松市東区積志町834
https://www.apnet.co.jp
E-MAIL: [email protected]