• 検索結果がありません。

LK-3358-A02 Software Manual

N/A
N/A
Protected

Academic year: 2021

シェア "LK-3358-A02 Software Manual"

Copied!
31
0
0

読み込み中.... (全文を見る)

全文

(1)

Rev 1.0

Cortex-A8 AM3358 CPU BOARD

(2)

ご使用になる前に

このたびは、XG-3358 Linux開発キット(LK-3358-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-3358-A02 梱包内容

(3)

目 次

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-3358ボードの接続 ... 13

3.6 動作確認用U-BootのFlashROMへの書き込み ... 14

3.7 動作確認用microSDカードの作成 ... 18

3.8 Linuxの起動 ... 20

3.9 Linuxの動作確認 ... 21

3.10 ネットワークの設定 ... 31

3.11 Linuxの終了 ... 35

4. ブートローダ

36

4.1 U-Boot概要 ... 36

4.2 ブートローダの起動 ... 37

4.3 ネットワーク設定 ... 38

4.4 U-Bootの作成 ... 41

5. Linux

46

(4)

6. microSDカードの作成

56

6.1 MMC起動用microSDカードの作成 ... 56

6.2 NOR Flash起動用microSDカードの作成 ... 60

7. プログラムの作成

64

7.1 プログラムの開発について ... 64

7.2 サンプルアプリケーションのビルド ... 65

7.3 動作確認 ... 67

8. デバイスドライバの作成

68

8.1 サンプルデバイスドライバの概要 ... 68

8.2 サンプルデバイスドライバ/アプリケーションのビルド ... 70

8.3 動作確認 ... 72

9. タッチパネルLCDキットの使用

73

9.1 Linuxカーネルの対応方法 ... 73

9.2 動作確認 ... 77

10. 無線LANモジュールの使用

84

10.1 Linuxカーネルの対応方法 ... 84

10.2 動作確認 ... 88

11. FlashROMの書き込み

91

11.1 FlashROM構成 ... 91

11.2 作業概要 ... 91

11.3 microSDカードの作成 ... 92

11.4 書き込み手順 ... 94

12. 製品サポートのご案内

96

13. エンジニアリングサービスのご案内

97

付録A. 起動ログ

1

付録B. 付属品について

10

(5)

1. 概要

1.1 はじめに

XG-3358は、CPUコアにArm Cortex-A8を採用したマイクロプロセッサ「AM3358」(TEXAS INSTRUMENTS)を搭載した汎用CPU ボードで、標準OSにLinuxを採用しています。 Linuxを採用することで、世界中のプログラマによって日々開発される膨大なオープンソースソフトウェア資産をロイヤリティフリ ーで利用することができます。 本ドキュメントでは、XG-3358の動作方法をはじめ、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-3358-A02 インストールマニュアル』に従って、 先に開発環境の作成を行ってください。

(6)

2. システム概要

2.1 システム概要

XG-3358は、CPUコアにArm Cortex-A8を採用したマイクロプロセッサ「AM3358」(TEXAS INSTRUMENTS)を搭載した汎用CPU ボードです。 Linuxシステムは、ブートローダとLinuxカーネル、ルートファイルシステムから構成されます。ブートローダにSPLとU-Boot、Linux カーネルにLinux-4.9、ルートファイルシステムにはmicroSDカードで動作する専用パッケージを使用します。 Fig 2.1-1 XG-3358システム概要図 XG-3358ボード ルートファイルシステム Linuxカーネル ブートローダ ソフト ウェア ハード ウェア

(7)

2.4 ルートファイルシステム

Linuxは、カーネルとファイルシステムという2つの要素から構成されます。 Linuxでは、全てのデータがファイルという形で管理されています。アプリケーションプログラムやデバイスドライバをはじめ、 HDDやCOMポートなどの入出力デバイスもファイルとして扱われます。 Linuxでは全てのファイルがルートディレクトリを起点としたディレクトリ構造下に管理されており、これら全てのファイル構造の ことをファイルシステムと呼びます。また、システム動作に必要なシステムファイル群のこともファイルシステムと呼びます。 本ドキュメントでは、これらの意味を明確にするため、ファイル管理構造(EXT3やEXT4)のことをファイルシステム、システム動作 に必要なファイル群のことをルートファイルシステムと表現しています。 Linuxのルートファイルシステムは、そのシステムが必要とする機能に合わせて構築する必要があります。 XG-3358では、以下のルートファイルシステムを用意しています。 sdルートファイルシステム SDカード用に構成されたオリジナルLinuxパッケージです。 ルートファイルシステムがSDカード上に展開されるため、電源を落としても変更した内容は破棄されませんが、電源を落とす 前には適切な終了処理が必要になります。 本ドキュメントでは、sdルートファイルシステムを利用したLinuxシステムをSD-Linuxシステム と表現します。 Fig 2.4-1 SD-Linuxシステム RAM Linux カーネル SDカード sd ルートファイル システム

(8)

2.6 添付CD/DVDの構成

XG-3358のLinuxの開発に必要なファイルは、弊社ホームページ及び関連リンクからダウンロードするか、添付CD/DVDから入手 することができます。 ※『X_X』、『X.X』はバージョン番号を示します。バージョン1.0の場合は『1_0』、『1.0』になります。

LK_3358_A02_VX_X

|-- binaries

| |-- sd_image

| | |-- xg3358_uboot.zip

:microSDカードイメージ(FlashROM書き込み用)

| | `-- xg3358_sd.zip

:microSDカードイメージ(動作確認用)

| |-- u-boot.bin

:U-Bootバイナリ(FlashROM起動用)

| |-- u-boot.img

:U-Bootバイナリ(MMC起動用)

| |-- MLO

:SPLバイナリ

| |-- zImage

:Linuxカーネルバイナリ

| |-- am335x-xg3358.dtb

:デバイスツリーバイナリ

| |-- tisdk-rootfs-image-xg3358.tar.xz

:sdルートファイルシステムバイナリ

| |-- modules-xg3358.tar.bz2

:モジュールファイル

| |-- helloworld

:サンプルアプリ

| |-- sample-app

:サンプルアプリ(デバイス確認用)

| `-- sample-driver.ko

:サンプルデバイスドライバ

|-- driver

| |-- com_class

:USB仮想シリアルドライバ

| `-- an178.pdf

:USB仮想シリアルドライバ インストールガイド

|-- index.html

:インデックスHTML

|-- index_images

:インデックスHTMLイメージ

|-- manual

| |-- lk_3358_a02_soft.pdf

:LK-3358-A02ソフトウェアマニュアル

| `-- lk_3358_a02_inst.pdf

:LK-3358-A02インストールマニュアル

|-- sample

| |-- devicedriver-X.X.tar.bz2

:サンプルデバイスドライバソース

| `-- helloworld-X.X.tar.bz2

:サンプルアプリソース

`-- sources

|-- yocto-conf-xg3358-X.X.tar.bz2

:Yocto Confファイル

|-- linux-4.9.28-xg3358-X.X.tar.bz2

:Linuxカーネルソースファイル

`-- u-boot-2017.01-xg3358-X.X.tar.bz2 :U-Bootソースファイル

(9)

3. システムの動作

3.1 動作環境

Linuxの起動を確認するためには、CPUボードと以下の環境が必要です。 使用機器 等 環境 CPUボード XG-3358 HOST PC PC/AT互換機 OS Windows 7/10 メモリ 使用OSによる ソフトウェア ターミナルソフト USBポート 1ポート LANポート 10/100/1000BASE-TX 1ポート SDカードスロット microSDカードを読み込めるスロット(Ubuntuから認識できること) PC-USB-04 ホストPCとXG-3358のシリアル接続用に使用 USBケーブル PC-USB-04で使用 LANケーブル ホストPCと接続時はクロスケーブルを使用 ハブと接続時はストレートケーブルを使用 Audio入出力機器 Audio入出力の動作確認時に使用 LCD-KIT-B01 もしくは LCD-KIT-C01 もしくは LCD-KIT-D01/D02 タッチパネルLCDキットを用いた動作確認時に使用 WM-RP-04S もしくは WM-RP-05S 無線LANモジュールを用いた動作確認時に使用 microSDカード SDルートファイルシステム作成、FlashROMの書き込み等に使用 USBホスト変換ケーブル XG-3358のmicroABコネクタ(CN5)の動作確認時に使用 USBファンクション変換ケーブル XG-3358のmicroABコネクタ(CN5)の動作確認時に使用 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-3358のLinuxの動作確認をするための環境となります。 カーネル等のビルドに使用する開発環境に関しては、開発キット付属の『LK-3358-A02 インストールマニ ュアル』でご確認ください。 Table 3.1-1 動作環境

(10)

3.5 XG-3358ボードの接続

ホストPCとXG-3358ボードの接続例を示します。 LANをネットワークと接続する場合は、ネットワーク管理者と相談し、設定に注意して接続してください。 XG-3358ボード ホストPC シリアルインタフェース ケーブル PC-USB-04 USBケーブル ACアダプタ LANクロスケーブル Fig 3.5-1 XG-3358ボードの接続(PCに接続する場合) シリアルインタフェース ケーブル PC-USB-04 USBケーブル ホストPC XG-3358ボード ACアダプタ LANストレートケーブル Fig 3.5-2 XG-3358 ボードの接続(HUB に接続する場合)

(11)

3.7 動作確認用microSDカードの作成

LK-3358-A02のLinux起動には、ルートファイルシステムで構成されているmicroSDカードが必要です。 本節では、動作確認用microSDカードの作成について説明します。

LK-3358-A02の付属のCD/DVDには、上記構成のmicorSDカードのイメージファイルが用意されています。 以下の手順にてそのイメージファイルをmicroSDカードに書き込みます。

また、書き込みには『Win32 Disk Imager』のツールを使用しますので、事前にインストールをお願いします。 ① 付属CD/DVD内のイメージデータzip圧縮ファイル『xg3358_sd.zip』を解凍します。

解凍後のファイルは2GByteありますので、ご注意ください。 なお、以降の説明では、以下のディレクトリに解凍されたとします。

C:/alphaproject/xg3358_sd.img

② PCのmicroSDカードスロットに書き込むmicroSDカードを挿入します。 ③ 『Win32 Disk Imager』を起動します。

『Device』にmicroSDカードスロットのドライブが選択されていることを確認します。 『Image File』に手順②で解凍したファイルを指定します。(入力欄右側のアイコンを押してファイル選択します。) ④ 『Write』ボタン押します。確認ダイアログが表示されますので、問題なければ『YES』ボタンを押します。 EXT4 0 cyl~ ~End microSDカード ルートファイルシステム /┬─ bin/ ├─ boot/ │ ├─ zImage │ └─ am335x-xg3358.dtb ├─ dev/ ├─ etc/ : Fig 3.7-1 動作確認用microSDカードの構成

(12)

3.8 Linuxの起動

XG-3358上でのLinuxの起動について説明します。 ① XG-3358の電源をいれる前にスイッチが以下の設定になっていることを確認します。 スイッチの設定の詳細に関しては、『XG-3358ハードウェアマニュアル』でご確認ください。 ② FlashROMにU-Boot 2.0以降を書き込みます。 書き込み方法は『11. FlashROMの書き込み』を参照してください。 ③ microSDカードをmicroSDカードスロットSD1に挿入します。 microSDカードは『3.7 動作確認用のmicroSDカードの作成』手順で作成したもの使用してください。 ④ 『3.5 XG-3358ボードの接続』にしたがって、ホストPCとXG-3358を接続します。 PC-USB-04がホストPCに認識されて仮想COMポートが作成されます。 ⑤ ホストOS(Windows)のターミナルソフトを起動します。(設定は『3.2 シリアル初期設定値』を参照してください) ⑥ ACアダプタを接続して、XG-3358の電源を入れます。 ⑦ Linuxカーネルが自動起動します。全ての起動までにはおよそ20秒かかります。 なお、起動ログに関しては、本ドキュメントの『付録A. 起動ログ』でご確認ください。

U-Boot 2017.01-xg3358-2.0 (Aug 30 2018 - 14:23:50 +0900)

CPU : AM335X-GP rev 2.1

I2C: ready

途中省略

Arago 2017.10 xg3358 ttyS0

xg3358 login:

SD

NOR

(13)

3.9 Linuxの動作確認

XG-3358上でのLinux動作確認について説明します。

ログイン

Linux起動後、ログインプロンプト『xg3358 login:』が表示されます。 ログインを実行するにはユーザ『root』を入力してください。 ログイン設定 ユーザ root パスワード なし

Arago 2017.10 xg3358 ttyS0

xg3358 login: root

時刻設定

XG-3358上で時刻の設定をします。XG-3358には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月4日15時30分に設定します。

『date -s '2018-09-04 15:30'』実行後、『hwclock -w』を実行してください。

# date -s '2018-09-04 15:30'

Tue Sep 4 15:30:00 UTC 2018

# hwclock -w

Table 3.9-1 ログイン設定 入力 入力 入力 入力

(14)

USB(CN5)をPCに接続することで、PC上では仮想シリアルとして通信することが可能となります。 なお、PCとは、以下のように接続します。 以下に、簡単な動作確認手順を記載します。 ① XG-3358と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-3358ボードとPCの接続 PC側にはデバイスドライバが必要となります。 ドライバのインストール方法に関しては、『USB仮想シリアルドライバ インストールガイド』でご確認くだ さい。 Table 3.9-2 シリアル設定 XG-3358ボード USBファンクション 変換ケーブル PC 入力 既にロードされている場合でも、上記コマンドを実行することに問題はありません。 ロード済みモジュールは『lsmod』コマンドで確認できます。

(15)

4.2 ブートローダの起動

XG-3358を起動して、U-Bootのコマンドコンソールに入る方法を説明します。 ① XG-3358の電源を入れる前に、スイッチが以下のようになっていることを確認します。スイッチの各設定の詳細に関しては、 『XG-3358 ハードウェアマニュアル』でご確認ください。 ② 『3.5 XG-3358ボードの接続』にしたがって、ホストPCとXG-3358を接続します。 PC-USB-04がホストPCに認識されて仮想COMポートが作成されます。 ③ ホストOS(Windows)のターミナルソフトを起動します。(設定は『3.2 シリアル初期設定値』を参照してください) ④ ACアダプタを接続して、XG-3358の電源を入れます。

⑤ ターミナルに『Hit any key to stop autoboot』の文字が表示され、2秒以内にキー入力を行うとU-Bootのコマンド コンソールが起動します。

コマンドコンソールが起動すると、『=>』が表示されます。

U-Boot 2017.01-xg3358-2.0 (Aug 30 2018 - 14:23:50 +0900)

CPU : AM335X-GP rev 2.1

I2C: ready

DRAM: 128 MiB

Flash: 32 MiB

MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1

Net: cpsw

Hit any key to stop autoboot: 0

=>

2秒以内にキー入力を行います

(16)

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-xg3358-X.X』へ移動します。

$ cd ~/xg3358-lk/u-boot-2017.01-xg3358-X.X

③ コンフィグレーションを行います。 途中の『O=xg3358』のOは、英字大文字のO(オー)ですので、ご注意ください。

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=xg3358 xg3358_defconfig

make[1]: ディレクトリ '/home/guest/xg3358-lk/u-boot-2017.01-xg3358-X.X/xg3358' に入ります

HOSTCC scripts/basic/fixdep

GEN ./Makefile

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

#

make[1]: ディレクトリ '/home/guest/xg3358-lk/u-boot-2017.01-xg3358-X.X/xg3358' から出ます

④ ビルドします。

途中の『O=xg3358』のOは、英字大文字のO(オー)ですので、ご注意ください。

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=xg3358

make[1]: ディレクトリ '/home/guest/xg3358-lk/u-boot-2017.01-xg3358-X.X/xg3358' に入ります

GEN ./Makefile

scripts/kconfig/conf --silentoldconfig Kconfig

途中省略

MKIMAGE u-boot-dtb.img

『arm-linux-gnueabihf-gcc: コマンドが見つかりません』のようなエラーが表示される場合には、クロス コンパイラのインストールが正常にできていない可能性があります。 『LK-3358-A02インストールマニュアル』の『SDKインストール』を再度ご確認ください。 また、手順①で行うPATH設定もご確認ください。 入力 入力 入力 入力

(17)

5. Linux

5.1 Linuxシステムの概要

XG-3358用Linuxシステムは、Linuxカーネルとルートファイルシステムから構成されます。 Linuxカーネルは、デバイスドライバとしてUART、Ethernet、FlashROM等をサポートし、ファイルシステムとしてEXT3、EXT4、 JFFS2、CRAMFS、FAT、NFS等をサポートしています。 ルートファイルシステムは、基本アプリケーションとして、コマンドユーティリティ群「busybox」が収録されています。 Fig 5.1-1 Linuxシステム Linuxカーネル デバイスドライバ UART ルートファイルシステム busybox ファイルシステム ハードウェア EXT3 XG-3358 Ether UART FlashROM RTC Ether EXT4 JFFS2 CRAMFS FAT NFS RTC FlashROM

(18)

Linuxカーネルをビルドする方法を説明します。 Linuxカーネルの設定データはLinuxカーネルソースディレクトリ以下『arch/arm/configs/xg3358_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-xg3358-X.X』へ移動します。

$ cd ~/xg3358-lk/linux-4.9.28-xg3358-X.X

③ クリーンします。

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

④ Linuxカーネルの設定データを呼び出します。

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xg3358_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

『arm-linux-gnueabihf-gcc: コマンドが見つかりません』のようなエラーが表示される場合には、クロス コンパイラのインストールが正常にできていない可能性があります。 『LK-3358-A02インストールマニュアル』の『SDKインストール』を再度ご確認ください。 また、手順①で行うPATH設定もご確認ください。 入力 入力 入力 入力 入力

(19)

5.3 ルートファイルシステムの作成

ゲストOS(Ubuntu)上で、sdルートファイルシステムを作成・変更するための手順を説明します。

作成の準備

① 作業用ディレクトリ『xg3358-lk』をホームディレクトリに作成します。 すでに作成されている場合は、手順②にお進みください。

$ mkdir ~/xg3358-lk

② 手順①で作成した作業用ディレクトリに移動します。

$ cd ~/xg3358-lk

③ 作業用ディレクトリに付属CD/DVD内の以下のファイルをコピーします。 手順④~⑥で例としてCD/DVDから直接コピーする方法を記述します。他の方法でコピーする場合には、コピー作業完了後に、 手順⑦にお進みください。 yocto-conf-xg3358-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-xg3358-X.X.tar.bz2 .

⑥ CD/DVDをアンマウントします。

$ umount /dev/sr0

⑦ コピーしたtarファイルを展開します。『~/xg3358-lk/yocto-conf』ディレクトリができます。

$ tar -xapf yocto-conf-xg3358-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)

入力 入力 入力 入力 入力 入力 入力

(20)

sleep 2 openvt -c 4 -f runWeston : 以降省略 : ⑦ bitbakeを実行します。終了までに数時間かかります。

$ cd ~/tisdk/build

$ . conf/setenv

$ MACHINE=xg3358 bitbake tisdk-rootfs-image

Parsing recipes: 100% |##########################################| Time: 0:10:18

途中省略

NOTE: Tasks Summary: Attempted 6629 tasks of which 27 didn't need to be rerun and all succe

eded.

Summary: There were 77 WARNING messages shown.

⑧ bitbakeが正常に終了すると、『arago-tmp-external-linaro-toolchain/deploy/images/xg3358/』ディレクトリに

sdルートファイルシステム『tisdk-rootfs-image-xg3358.tar.xz』が作成されます。

$

ls arago-tmp-external-linaro-toolchain/deploy/images/xg3358/tisdk-rootfs-image-xg3358.ta

r.xz

arago-tmp-external-linaro-toolchain/deploy/images/xg3358/tisdk-rootfs-image-xg3358.tar.xz

『ERROR: No valid toolchain in PATH』など、toolchainに関するエラーが表示される場合には、インスト ールが正常にできていない可能性があります。 『LK-3358-A02インストールマニュアル』の『toolchainインストール』を再度ご確認ください。 また、手順①で行うPATH設定もご確認ください。 入力 入力 入力 入力 上記の編集は、「起動時に行われるFAT領域に対する処理」を廃止するための修正です。 このファイルはビルド後ルートファイルシステムの『/etc/init.d/weston』になります。

(21)

6. microSDカードの作成

本章では、XG-3358上でLinuxの起動に必須となるmicroSDカードの作成方法について説明します。 MMC起動用microSDカード NOR Flash起動用microSDカード

6.1 MMC起動用microSDカードの作成

MMC起動用のmicroSDカードの作成方法について説明します。

書き込みデータの準備

① 作業用ディレクトリ『xg3358-lk』をホームディレクトリに作成します。 すでに作成されている場合は、手順②にお進みください。

$ mkdir ~/xg3358-lk

② 本手順で使用するデータの置くためのディレクトリ『flash』を作業用ディレクトリに作成します。

$ mkdir ~/xg3358-lk/flash

③ 手順②で作成したディレクトリに移動します。

$ cd ~/xg3358-lk/flash

④ 書き込みに必要な以下のファイルを『~/xg3358-lk/flash』ディレクトリに準備します。 MLO u-boot.img tisdk-rootfs-image-xg3358.tar.xz modules-xg3358.tar.bz2 zImage am335x-xg3358.dtb

4.4 U-Bootの作成』-『MMC起動用U-Bootの作成』、『5.2 Linuxカーネルの作成』、『5.3 ルートファイルシステム

の作成』で作成したファイルでも可能ですが、同等のファイルがCD/DVD内にあります。 本章では、Ubuntu上でmicroSDカードへU-Boot等のデータをコピーする手順があります。 そのため、Ubuntu上で認識できるSDカードリーダをご用意ください。 入力 入力 入力

(22)

Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done

microSDカードへの書き込み

① データ準備手順で用意したデータがある場所に移動します。

$ cd ~/xg3358-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ファイルを使います tisdk-rootfs-image-xg3358.tar.xz modules-xg3358.tar.bz2 zImage am335x-xg3358.dtb ⑤ microSD カードの第2パーティションをマウントします。

$ sudo mount /dev/sdb2 /mnt

⑥ 第2パーティションにsdルートファイルシステムを展開します。

$ sudo tar -axpf tisdk-rootfs-image-xg3358.tar.xz -C /mnt

⑦ 第2パーティションにモジュールファイルを展開します。

$ sudo tar -axpf modules-xg3358.tar.bz2 -C /mnt

⑧ 第2パーティションの/bootディレクトリ内のファイルを削除します。

$ sudo rm /mnt/boot/*

⑨ 第2パーティションの/bootディレクトリにカーネルファイルをコピーします。

$ sudo cp zImage /mnt/boot

入力 入力 入力 入力 入力 入力 入力 入力 入力 入力

(23)

7. プログラムの作成

本章では、XG-3358上で動作するアプリケーションの作成方法について説明します。

7.1 プログラムの開発について

プログラムの開発は、次のような流れで行います。 ① ゲストOS上でソースファイルを作成。 ② ゲストOS上でソースファイルをクロスコンパイルし、実行ファイルを作成。 ③ XG-3358ボード上でゲストOSをnfsでマウントし、実行ファイルをダウンロード。 ④ XG-3358ボード上で動作を確認。 Fig 7.1-1 プログラムの開発手順 ゲストOS ソースコード Arm用実行ファイル ②実行ファイルの 作成 XG-3358 Arm用実行ファイル ③実行ファイルの ダウンロード ④実行 ①ソースコードの 作成 クロス開発環境 Arm用クロスコンパイラ Arm用クロスアセンブラ Arm用リンカ

(24)

サンプルアプリケーションのビルド手順を説明します。 ① 新しいターミナルを開きます。 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 ~/xg3358-lk/helloworld

③ サンプルアプリケーションをビルドします。

$ make

arm-linux-gnueabihf-gcc -Wall helloworld.c -o helloworld

④ アプリケーションプログラムをNFSの共有ディレクトリにコピーします。

$ cp helloworld /nfs

入力 入力 入力 入力

(25)

8. デバイスドライバの作成

本章では、XG-3358上の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カーネルの作成』をご確認ください。

(26)

サンプルデバイスドライバのビルド手順を説明します。 ① 新しいターミナルを開きます。 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 ~/xg3358-lk/devicedriver/driver

③ 汎用デバイスドライバをビルドします。

$ KBUILD=~/xg3358-lk/linux-4.9.28-xg3358-X.X make

make ARCH=arm -C /home/guest/xg3358-lk/linux-4.9.28-xg3358-X.X M=/home/guest/xg3358-lk/de

vicedriver/driver modules

make[1]: ディレクトリ `/home/guest/xg3358-lk/linux-4.9.28-xg3358-X.X' に入ります

CC [M] /home/guest/xg3358-lk/devicedriver/driver/sample-driver.o

Building modules, stage 2.

MODPOST 1 modules

CC /home/guest/xg3358-lk/devicedriver/driver/sample-driver.mod.o

LD [M] /home/guest/xg3358-lk/devicedriver/driver/sample-driver.ko

make[1]: ディレクトリ `/home/guest/xg3358-lk/linux-4.9.28-xg3358-X.X' から出ます

④ 作成した汎用デバイスドライバを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 ~/xg3358-lk/devicedriver/application

③ サンプルアプリケーションをビルドします。

$ make

KBUILDは、Linuxカーネルのソースディレクトリを指定します。 カーネルのビルドについては、『5.2 Linuxカーネルの作成』をご確認ください。 入力 入力 入力 入力 入力 入力 入力

(27)

9. タッチパネルLCDキットの使用

本章では、XG-3358にタッチパネルLCDキットを接続して動作を行う方法を説明します。

9.1 Linuxカーネルの対応方法

Linuxカーネルのデフォルトでは、タッチパネルLCDキットを使用する設定になっておりませんので、Linuxカーネルを再作成する 必要があります。 再作成する手順を以下に説明します。 ① 新しいターミナルを開きます。 PATH環境変数にクロスコンパイラのディレクトリを設定します。

$ export PATH=$HOME/ti-processor-sdk-linux-am335x-evm-04.00.00.04/linux-devkit/sysroots/x86

_64-arago-linux/usr/bin/:$PATH

② 『5.2 Linuxカーネルの作成』で作成したLinuxカーネルのディレクトリに移動します。

$ cd ~/xg3358-lk/linux-4.9.28-xg3358-X.X

③ 『make』の『menuconfig』コマンドで、コンフィグレーションメニューを表示します。

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

HOSTCC scripts/kconfig/mconf.o

HOSTCC scripts/kconfig/lxdialog/checklist.o

省略

本手順では、『5.2 Linuxカーネルの作成』によって一度Linuxカーネルが作成されていることを前提で説明 します。一度も行っていない場合は、先に作成手順を行ってください。 入力 入力 入力

(28)

9.2 動作確認

9.1 Linuxカーネルの対応方法』で作成したカーネルで起動したXG-3358上で、タッチパネルLCDを動作させる手順を説明しま す。 Linux起動 タッチパネルのキャリブレーション タッチパネル確認 ブザー確認 バックライトLED確認 ブッシュスイッチ確認

Linux起動

① NOR Flash起動用のmicroSDカードをXG-3358ボードのmicroSDカードスロットSD1に挿入します。

microSDカードは、『3.7 動作確認用microSDカードの作成』または『6.2 NOR Flash起動用microSDカードの作成』の 手順で作成したもの使用してください。 ② XG-3358ボードにタッチパネルLCDキットを接続します。 接続方法に関しては、使用するタッチパネルLCDキットの『ハードウェアマニュアル』でご確認ください。 ③ 『4.2 ブートローダの起動』の手順に従って、U-Bootを起動します。 続いて、『9.1 Linuxカーネルの対応方法 』で作成したLinuxカーネルイメージ『zImage-lcdkit』と『am335x_xg3358-lcdkit.dtb』をRAM上にダウンロードします。 ④ Linuxカーネルイメージ『zImage-lcdkit』をRAM上にダウンロードします。

U-Boot# tftp 82000000 zImage-lcdkit

link up on port 0, speed 1000, full duplex

Using cpsw device

TFTP from server 192.168.128.210; our IP address is 192.168.128.200

Filename 'zImage-lcdkit'.

Load address: 0x82000000

Loading: #################################################################

途中省略

##########################

X.X MiB/s

Done

Bytes transferred = 3902208 (3b8b00 hex)

⑤ デバイスツリー『am335x_xg3358-lcdkit.dtb』をRAM上にダウンロードします。

(29)

タッチパネルLCDキットのバックライトLED輝度変更を確認します。 ① バックライトLEDをOFFにします。

# echo 0 > /sys/class/leds/lcdkitb01_backlight/brightness

② バックライトLEDをON(100%)にします。

# echo 255 > /sys/class/leds/lcdkitb01_backlight/brightness

バックライトLEDの値に関しては、以下の計算後にタッチパネルLCDキットのコマンドとして送信され ます。 入力値 × 100 ÷ 255 タッチパネルLCDキットに送るコマンドの詳細は、各タッチパネルLCDキットの『ハードウェアマニュ アル』でご確認ください。 また、上記で使用しているコマンドは、LCD-KIT-B01用となります。 LCD-KIT-C01では、『lcdkitb01_backlight』の部分を『lcdkitc01_backlight』、 LCD-KIT-D01では、『lcdkitd01_backlight』、LCD-KIT-D02では、『lcdkitd02_backlight』と なります。 入力 入力

(30)

11. FlashROMの書き込み

本章では、FlashROMの書き込み方法について説明します。

なお、本手順のFlashROMは、『3.6 動作確認用U-BootのFlashROMへの書き込み』のFlashROMと同等のものとなります。

11.1 FlashROM構成

以下に、FlashROMのアドレスマップを記載します。 次節より、このアドレスマップになるようにFlashROMへ書き込む方法を説明します。

11.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 11.1-1 FlashROM構成 本手順では、MMC(microSDカード)起動にて行いますので、Ubuntu上でmicroSDカードへデータを コピーする必要があります。 そのため、Ubuntu上で認識できるSDカードリーダをご用意ください。

(31)

謝辞

Linux、U-Bootの開発に関わった多くの貢献者に深い敬意と感謝の意を示します。

著作権について

・本文書の著作権は、株式会社アルファプロジェクトが保有します。 ・本文書の内容を無断で転載することは一切禁止します。 ・本文書の内容は、将来予告なしに変更されることがあります。 ・本文書の内容については、万全を期して作成いたしましたが、万一ご不審な点、誤りなどお気付きの点がありましたら弊社までご連絡ください。 ・本文書の内容に基づき、アプリケーションを運用した結果、万一損害が発生しても、弊社では一切責任を負いませんのでご了承ください。

商標について

・AM3358は、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

参照

関連したドキュメント

本装置は OS のブート方法として、Secure Boot をサポートしています。 Secure Boot とは、UEFI Boot

タップします。 6通知設定が「ON」になっ ているのを確認して「た めしに実行する」ボタン をタップします。.

イヌワシは晩秋に繁殖行動を開始します。オスとメスが一緒に飛んだり、オス が波状飛行を繰り返します。その後、12月から

ダウンロードしたファイルを 解凍して自動作成ツール (StartPro2018.exe) を起動します。.

If DISB# and VCC are ready, but the voltage across the boot capacitor voltage is lower than 3.1 V, NCV303150 ignores the PWM input signal and starts the boot refresh circuit.. The

If DISB# and VCC are ready, but the voltage across the boot capacitor voltage is lower than 3.1 V, NCP303160 ignores the PWM input signal and starts the boot refresh circuit. The

関西学院大学手話言語研究センターの研究員をしております松岡と申します。よろ

2 第 85.01 項から第 85.04 項までには、第 85.11 項、第 85.12 項又は第 85.40 項から第 85.42