CKB-3352
組み込み Linux ユーザーズ・マニュアル V2.1
(第 2 版)
Copyright (C)2014 (株)コンピューテックス
ご使用になる前に
このたびは CKB-3352 Linux オプションをお買い上げいただきありがとうございます。
CKB-3352 Linux オプションをご使用になる前にマニュアルをよくお読みいただき、正しくお使いください。
本製品を輸出する(日本国外への持出含む)場合、またはソフトウェアを国内非居住者に提供する場合は外国為替及び外国貿易法
に従って必要な手続きをお取りください。
本製品および付属のマニュアル、回路図、ソフトウェア等の一部、または全部を無断で使用することや、複製することはできません。
本製品の内容、および仕様に関しては製品の信頼性、機能、設計の改良により将来予告なしに変更することがあります。
CSIDE に関する著作権は(株)コンピューテックスに帰属します。
CSIDE、PALMiCE および COMPUTEX は、(株)コンピューテックスの登録商標です。
Microsoft および Windows は、米国 Microsoft Corporation の、米国、日本およびその他の国における登録商標または商標です。
Linux は、Linus Torvalds 氏の日本およびその他の国における登録商標または商標です。
その他本書で取り上げる会社名および製品名などは、一般に各メーカーの商標、または登録商標です。
あわせて当社 WEB サイトに掲載されている「保証規定」も必ずご確認ください。
http://www.computex.co.jp/support/guarantee/index.htm
目 次
第 1 章 はじめに ........................................................................................................ 1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
はじめに ....................................................................................................................................................................... 1
コマンド表記について............................................................................................................................................... 2
CKB-3352 ボードについて ..................................................................................................................................... 3
対応ドライバについて .............................................................................................................................................. 5
準備するもの ............................................................................................................................................................. 6
動作環境 ................................................................................................................................................................... 7
Linux クロス開発環境 ............................................................................................................................................. 7
第 2 章 メモリ・マップ ................................................................................................. 8
2.1 はじめに ....................................................................................................................................................................... 8
2.2 メモリ・デバイス........................................................................................................................................................... 8
2.2.1 NOR フラッシュ・メモリ ................................................................................................................................ 8
予備の領域を使用する場合 ................................................................................................................................................................................9
MTD ブロックの配置を変更する場合 .............................................................................................................................................................. 10
2.2.2 DDR3 SDRAM メモリ ..............................................................................................................................10
2.2.3 EEPROM ....................................................................................................................................................10
2.3 microSD カード ........................................................................................................................................................11
2.3.1 microSD カードを/usr フォルダとして使用する場合 ......................................................................11
第 3 章 ブート仕様 .................................................................................................12
3.1
3.2
3.3
3.4
はじめに .....................................................................................................................................................................12
CPU ブート・モード ..................................................................................................................................................12
イメージ・ファイル .....................................................................................................................................................12
ブート手順................................................................................................................................................................13
第 4 章 NOR フラッシュ・メモリへの書き込み .....................................................14
4.1 はじめに .....................................................................................................................................................................14
4.2 イメージ・ファイルの書き込み ...............................................................................................................................14
4.2.1 Linux ホストから書き込む場合 ............................................................................................................14
4.2.2 シリアル・ケーブルを使って書き込む場合 .........................................................................................15
4.2.3 PALMiCE3 を使って書き込む場合 ....................................................................................................15
4.2.4 microSD カードから書き込む場合......................................................................................................16
U-Boot から microSD を使って書き換える ................................................................................................................................................... 16
Linux から microSD を使って書き換える ....................................................................................................................................................... 16
4.3 U-Boot の設定 .......................................................................................................................................................17
4.3.1 U-Boot 環境変数の確認と設定 .......................................................................................................17
第 5 章 サンプル・プログラム ..................................................................................18
5.1 はじめに .....................................................................................................................................................................18
5.2 HTTP サーバ&CGI プログラム .............................................................................................................................19
5.2.1 概要 ............................................................................................................................................................19
5.2.2 ソース・ファイル ..........................................................................................................................................19
5.2.3 コンパイル ...................................................................................................................................................19
5.2.4 Web サーバの起動 ...................................................................................................................................20
5.2.5 各操作の説明 .........................................................................................................................................21
LED 制御 ................................................................................................................................................................................................................. 21
有線 LAN(eth0)の設定 ...................................................................................................................................................................................... 21
無線 LAN(wlan0)の設定.................................................................................................................................................................................... 22
カメラ制御 ................................................................................................................................................................................................................ 23
設定内容を NOR フラッシュに保存.................................................................................................................................................................. 23
CKB-3352 再起動............................................................................................................................................................................................... 23
ライセンス .................................................................................................................................................................................................................. 24
5.3 カメラ用サンプル ......................................................................................................................................................25
5.4 LCD、タッチパネル、LED 用サンプル .................................................................................................................25
5.5 拡張コネクタ(EX_CN)用サンプル .......................................................................................................................27
5.5.1 拡張コネクタのマルチプレクス設定 .....................................................................................................27
5.5.2 メモリバス(/CS 空間)アクセスサンプル ..............................................................................................27
5.5.3 GPIO サンプル ...........................................................................................................................................28
Linux の GPIO クラスを使って EX_CN の GPIO ピンを操作する............................................................................................................. 29
5.5.4 CAN1サンプル ..........................................................................................................................................30
5.5.5 ADC サンプル.............................................................................................................................................33
デバイス・ファイル..................................................................................................................................................................................................... 33
ソース・ファイル......................................................................................................................................................................................................... 33
コンパイルと NOR フラッシュ書き込み ............................................................................................................................................................... 34
continuous モード用サンプル(generic_buffer)実行 ................................................................................................................................... 34
5.5.6 SPI1 サンプル ............................................................................................................................................35
デバイス・ファイル..................................................................................................................................................................................................... 35
サンプル・ソース(spidev_test) ............................................................................................................................................................................. 35
5.5.7 I2C サンプル ...............................................................................................................................................36
デバイス・ファイル..................................................................................................................................................................................................... 36
i2c-tools .................................................................................................................................................................................................................. 36
第 6 章 使用例 .......................................................................................................39
6.1 はじめに .....................................................................................................................................................................39
6.2 マスストレージ(USB/microSD)をマウントする ...............................................................................................39
6.2.1 USB メモリ/USB ハードディスクのフォーマット ..................................................................................39
vFAT でフォーマットする ....................................................................................................................................................................................... 39
ext2 でフォーマットする ......................................................................................................................................................................................... 39
6.2.2 USB メモリ/USB ハードディスクのマウント ........................................................................................40
6.2.3 USB メモリ/USB ハードディスクのアンマウント .................................................................................40
6.2.4 microSD カードのフォーマット ................................................................................................................41
vFAT でフォーマットする ....................................................................................................................................................................................... 41
ext2 でフォーマットする ......................................................................................................................................................................................... 41
6.2.5 microSD カードのマウント ......................................................................................................................41
パーティション 1 を/mnt フォルダにマウントする場合 .................................................................................................................................... 41
パーティション 2 を/usr フォルダにマウントする場合 ..................................................................................................................................... 41
6.2.6 microSD カードのアンマウント...............................................................................................................41
6.3 Linux ホストのディレクトリをマウントする(NFS) ...............................................................................................42
6.3.1 Linux ホスト側の準備 ............................................................................................................................42
NFS サーバのインストール ................................................................................................................................................................................... 42
/etc/exports ファイルを編集する .................................................................................................................................................................... 42
NFS サーバを再起動する ................................................................................................................................................................................... 42
6.3.2 CKB-3352 側でマウントする ................................................................................................................42
mount コマンドを使ってマウントする ................................................................................................................................................................. 42
/etc/fstab を使って Linux ホスト上のディレクトリをマウントする ............................................................................................................ 42
6.4 Windows ホストのディレクトリをマウントする(CIFS/SMB) ..........................................................................43
6.4.1 Windows ホスト側の準備......................................................................................................................43
6.4.2 CKB-3352 側でマウントする ................................................................................................................43
mount コマンドを使ってマウントする ................................................................................................................................................................. 43
/etc/fstab を使って Windows ホスト上のディレクトリをマウントする...................................................................................................... 43
6.5 CM-J100 による無線 LAN を使う ....................................................................................................................44
6.5.1 CM-J100 ローダブル・モジュール .........................................................................................................44
6.5.2 無線 LAN 設定ファイル .........................................................................................................................45
6.6 ネットワークの設定方法 .......................................................................................................................................46
6.6.1 設定ファイル ..............................................................................................................................................47
6.6.2 ネットワークの接続、切断 .....................................................................................................................48
6.6.3 タイムサーバから時刻を設定する .......................................................................................................49
6.6.4 システム時刻を RTC に設定する .......................................................................................................50
6.6.5 RTC を使ったサスペンドモードを試す .................................................................................................50
第 7 章 CKB-3352 に含まれるソフトウェア .......................................................51
第 8 章 トラブル・シューティング ............................................................................52
8.1 最新情報、FAQ など ...........................................................................................................................................52
第1章 はじめに
1.1 はじめに
このマニュアルは、CKB-3352 ボード用の組み込み Linux について記述しています。
本版で説明する機能は、CKB Linux SDK V2.01.01 で使用可能です。
主な特長は以下のとおりです。
TI 製 Cortex-A8 コア搭載 AM3352(720MHz 品)
Linux カーネル 3.2.1
USB2.0 HighSpeed ホストを 2 つ搭載し、マスストレージ、UVC カメラに対応
microSD カードスロットを標準搭載
Gigabit 有線 LAN(1000Base/T)を標準搭載
無線 LAN モジュール(SDIO 接続:CM-J100)を搭載可能(オプション)
LCD&タッチパネル用コネクタを搭載
Note
ハードウェアに関わる資料は、「組み込みボード CKB-3352」に付属する CD-ROM の中にある資料を参照してください。
本製品のマニュアルは以下のマニュアルで構成されています。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1(本書)
「組み込みボード CKB-3352」で動作する組み込み Linux の機能について記載されています。
CKB Linux オプション 2.1 導入ガイド
「組み込みボード CKB シリーズ」共通の Linux 開発環境(Linux ホスト)の構築から、ビルド、フラッシュ・メモリへの書
込み、および、当社デバッガ(C-Shark と、PALMiCE3)でデバッグするための手順までの概要が記載されていま
す。
本製品をセットアップされる場合は、「CKB Linux オプション 2.1 導入ガイド」に沿って行い、必要な箇所は本書や「CKB-3352
ハードウェア・マニュアル」を参照することをお勧めします。
当社のホーム・ページには、この他デバッガの便利な使い方などを記載しているほか、各種ドキュメントを用意しています。当
社ホーム・ページを是非参照してください。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 1
マニュアルの構成は以 4 下のとおりです。
第 1 章 はじめに
「組み込みボード CKB-3352」で動作する Linux の開発を行う為の準備について記述しています。
第 2 章 メモリ・マップ
CKB-3352 で動作する Linux が使用する CPU、NOR フラッシュ、RAM のメモリ・マップを記述しています。
第 3 章 ブート仕様
CKB-3352 で動作する Linux のブート手順を記述しています。
第 4 章 NOR フラッシュ・メモリへの書き込み
CKB Linux SDK で開発したプログラム(バイナリ・ファイル)を CKB-3352 の NOR フラッシュに書き込む方法を記述
しています。
第 5 章 サンプル・プログラム
CKB-3352 Linux に標準でコンパイルされるサンプル・プログラムについて記述しています。
第 6 章 使用例
CKB-3352 Linux で行える各種機能についての使用例を記述しています。
第 7 章 CKB-3352 に含まれるソフトウェア
CKB-3352 に含まれるソフトウェアやライセンスについて記述しています。
第 8 章 トラブル・シューティング
CSIDE が使用できない場合や、デバッグ時のトラブル・シューティングです。
1.2 コマンド表記について
本マニュアルで説明する表記について説明します。
コマンドの表記は以下のように記述します。
コマンド表記
説明
WINPC> command parameter …
Windows ホスト・パソコンで実行するコマンドを示します。
LINUXPC$ command parameter …
Linux ホスト(Ubuntu)で実行するコマンドを示します。
U-BOOT> command parameter …
CKB-3352 のコンソールで実行する U-Boot コマンドを示します。
CKB# command parameter …
CKB-3352 のコンソールで実行する Linux コマンドを示します。
Linux ホストと、CKB-3352 コマンドのプロンプトが“#”の場合は root 権限で、“$”の場合はユーザ権限で実行します。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 2
1.3 CKB-3352 ボードについて
詳細仕様については、「CKB-3352 ハードウェア・マニュアル」を参照してください。
[2] USB_CN
[1] LAN_CN
[3] SIO_CN
[14] LED1
[13] LED2
[4] PCN2
[12] SW1
[5] POWER
[6] PCN1
[7] SW2
[11] EX_CN
[8] WLAN_CN
[9] DBG_CN
[10] microSD_CN
CKB-3352 TOP VIEW
[15] SIOEX_CN
[16] LCD_CN
CKB-3352 BOTTOM VIEW
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 3
名称一覧
No.
名称
仕様
[1]
LAN_CN
LAN コネクタ
[2]
USB_CN
USB ホスト・コネクタ
[3]
SIO_CN
シリアル I/F コネクタ
[4]
PCN2
2 芯電源ケーブル接続用コネクタ
[5]
POWER
POWER LED (緑)
[6]
PCN1
DC ジャック
[7]
SW2
CPU ブート・モード切替スイッチ
[8]
WLAN_CN
無線 LAN モジュール接続用コネクタ ※1
[9]
DBG_CN
デバッガ接続用コネクタ
[10]
microSD_CN
microSD カード・ソケット
[11]
EX_CN
拡張用端子
[12]
SW1
CPU リセット・スイッチ
[13]
LED2
モニタ用 LED (赤)
[14]
LED1
モニタ用 LED (赤)
[15]
SIOEX_CN
シリアル I/F 拡張端子
[16]
LCD_CN
ディスプレイ・モジュール接続用コネクタ
※1 無線 LAN モジュール(CM-J100)が接続可能です。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 4
1.4 対応ドライバについて
CKB Linux SDK V2.01.01 で対応する AM3352 用の内蔵モジュールは以下になります。
内蔵モジュール
用途
対応状況
DDR3 SDRAM
MT41J64M16JT-15E_G (MICRON) : 128MB、16bit バス
○
NOR Flash
M29W128GL70N6E(MICRON) 16MB、16 ビットバス
○
UART0
コンソール入出力
○
調歩同期式、RS-232C トランシーバ:MAX3232ECAE (MAXIM 製)
I2C0
EEPROM : M24C01 128 x 8 bit ( Addr=0x51)
○
PMIC : TPS65217C (Addr=0x24)
DVI-D : TFP410 (Addr=0x38)、VESA DDC(EDID) (Addr=0x50)
TSC2007 タッチパネル入力(Addr=0x48)
RTC : S-353901A-T8 (Addr=0x30) * CKB-LCD-01 のみ
EXT1_CN コネクタに出力
LCD 出力
LCD 表示用フレームバッファ(LCD_CN)に対応
○
DVI-D 出力
LVDS 表示用フレームバッファ(DVD-D_CN)に対応
○
TFP410-EP トランスレータ
USB0
USB ホスト(下段) USB2.0 High Speed に対応
○
USB1
USB ホスト(上段) USB2.0 High Speed に対応
○
MMC0
microSD_CN
○
MMC2
SDIO 接続無線 LAN アダプタ(CM-J100)用コネクタ
○
イーサネットコントローラ(ETHER)
Ether Phy(KSZ9021RNI) 10BASE-T / 100BASE-TX /1000Base/T
○
ユーザ制御用 LED
GPIO(P8_8, P8_9)
○
EX_CN (8 ビットメモリバス)
CS1n、WEn、OEn、ADVn_ALE、AD0-AD7
○
EX_CN (I2C0)
I2C0_SCL、I2C0_SDA
○
EX_CN (I2C1)
I2C_SCL(GP109), I2C_SDA(GP108)
○
EX_CN (SPI1)
SPI1_SCLK(GP314), SPI1_D1(GP316), SPI_D0(GP315), SPI_CS0(GP317)
--
EX_CN (ADC)
AN0, AN1, AN2, VCC_ADC, GND_ADC
○
EX_CN (DCAN)
DCAN1-TX(GP109), DCAN1_RX(GP108)
○
EX_CN (UART4)
UART4-TXD(GP109), UART4_RXD(GP108)
○
GPIO
GP007, GP019, GP020, GP108, GP109, GP117, GP314, GP315, GP316, GP318,
○
GP319, GP320, GP321
上記対応表の「--」の内蔵モジュールについては、Linux ドライバは用意しておりません。
EX_CN で使用可能な機能は一部マルチプレクスによる選択が可能です。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 5
1.5 準備するもの
CKB Linux オプション 2.1 : OPT-CKB-L2.1 (本製品)
● AC 電源アダプタ
● CKB Linux SDK V2.01.01(DVD-ROM)
● microSD カード
● LAN ケーブル
● USB シリアル・コンバータ
● USB ケーブル(USB シリアル・コンバータ用)
以下はユーザ様にてご用意してください。
組み込みボード CKB-3352 (別売 / CKB Linux オプションを使用する場合に必要です。)
● CKB-3352 ボード本体
● 2 芯電源ケーブル
● CKB-3352 CD (CD-ROM)
無線 LAN ボード CM-J100 (別売 / SDIO 接続、無線 LAN 機能を使用する場合に必要です。)
● CM-J100 本体
ディスプレイ・モジュール CKB-LCD-02 (別売)
● CKB-LCD-02 ボード本体 (タッチパネル付き LCD ボード)
● 接続ケーブル
ディスプレイ・モジュール CKB-LCD-01 (別売)
● CKB-LCD-01 ボード本体 (タッチパネル付き LCD ボード、カメラ・モジュール、RTC)
CKB-LCD-01 のカメラ・モジュールは CKB-3352 で使用できません。
● 接続ケーブル
作業用パソコン (ユーザ様にてご用意ください)
仕様に関しては「1.6 動作環境」を参照してください。
VMware Player (ユーザ様にてご用意ください)
VMware Player 5.0.2 推奨。無償版を使用可能です。
Linux 開発環境(Linux ホスト)を動作させるために、作業用の Windows ホスト・パソコンにインストールします。
Windows ホスト・パソコンがインターネットに接続できない場合は、あらかじめ入手しておいてください。
Ubuntu 12.04 LTS (ユーザ様にてご用意ください)
CKB-3352 の Linux 開発環境として”Ubuntu 12.04 LTS”を使用します。
このマニュアルでは、Windows ホスト・パソコンの VMware Player 上で動作させます。
インターネットに接続できない場合は、開発に必要なパッケージとともにあらかじめ入手しておいてください。
その他、有線 LAN を使用するための HUB や、無線 LAN を使用するための無線 LAN アクセス・ポイントはお客様でご用意
ください。
Note
buildroot をコンパイルするホスト OS が、「Ubuntu 12.04 LTS」以外の場合は、buildroot でコンパイル・エラーとなる
場合があります。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 6
1.6 動作環境
組み込み Linux の開発を行うには、以下のホスト環境が必要です。
動作環境
Windows ホスト・パソコン
CPU
メモリ
HDD
DVD ドライブ
USB
対応 OS が動作するパソコン
intel Core i シリーズ(2 コア以上) 2GHz 以上
4GB 以上
500GB 以上
DVD-R メディアの読み込みが可能であること
USB2.0
LAN インターフェース
100BASE/TX 以上、1000BASE-T 推奨
RS-232C ポート
メモリカードリーダ
USB シリアル変換アダプタを使用する場合は USB ポートが必要
microSD/SDHC スロット。または microSD→USB 変換アダプタ
Windows Vista
Windows 7
Windows 8, Windows 8.1
OS
補足
インストール時に必要
USB シリアル・コンバータに使用
開発に必要なソフトウェア(Linux パッケ
ージ等)をオンラインで入手する場合は
インターネットに接続可能のこと
32 ビット版
32 ビット版、64 ビット版
32 ビット版、64 ビット版
1.7 Linux クロス開発環境
CKB Linux SDK による開発には Linux クロス開発環境の構築が必要です。
VMware Player Ver5 または、Ver6
Ubuntu 12.04 LTS を動作させる仮想マシンとして必要です。
Ubuntu 12.04 LTS
CKB-3352 の Linux 開発環境です。VMware Player 上で動作するようにインストールします。
以降の説明では、Linux ホストと記述します。
CKB Linux SDK V2.01.01
Linux ホストにインストールして開発環境を構築します。
必要なソフトウェアのインストールと環境構築の詳細については「CKB Linux オプション 2.1 導入ガイド」を参照してください。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 7
第2章 メモリ・マップ
2.1 はじめに
この章では、CKB-3352 に実装されたデバイスのメモリ・マップについて記述します。
2.2 メモリ・デバイス
AM3352 に接続されるメモリ・デバイスのアドレスを下表に記述します。
AM3352 アドレス
デバイス
サイズ
0x08000000 - 0x0801FFFF(/CS0)
NOR フラッシュ・メモリ
型番:M29W128GL
16M バイト(128K バイト × 128 バンク)
CPU からは 128K バイト空間のみアクセス可能で、上位アド
レスは GPIO によりバンクを切り替えます。
0x09000000 - 0x09FFFFFF
外部拡張データバス(EX_CN)
16M バイト(muxed 16-bit bus)
0x402F0400 - 0x402FFFFF
内蔵 RAM
63K バイト
0x80000000 - 0x87FFFFFF(EMIF0)
DDR3 SDRAM
型番: MT41J64M16JT-15E:G TR
128M バイト
303MHz, CL=5, CWL=5
2.2.1 NOR フラッシュ・メモリ
NOR フラッシュ・メモリの仕様は下表のとおりです。
メーカー名
MICRON
品名
M29W128GL
メーカー・コード / デバイス・コード
0x20 / 0x227E
容量
16M Byte
バス幅
16 bit
セクタ・ブロック
128KByte x 128Block
書き込みタイプ
JEDEC 標準型コマンド互換
NOR フラッシュ・メモリにはブートローダ、OS や各種データを格納しています。
CKB-3352 では、/CS0 の 128K バイト空間のみが割り当てられています。
上位アドレスを AM3352 の MUX により別の機能で使用するため、NOR フラッシュの 16M バイト空間をアクセスするには上位
アドレスを AM3352 の GPIO(GP1[26..20])7 ビットを使ってバンクを切り替えてアクセスします。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 2 章 メモリ・マップ 8
CPU のアドレスと NOR フラッシュのアドレス、Linux ターゲットから見たブロック・デバイスを以下の表に記述します。
TI AM3352
(CPU)
GP1[26..20]
Address
0000000
0000001
;
0000011
0000100
;
0000110
08000000
0801FFFF
MICRON M29W128GL
(NOR-Flash)
Block
Address
000000
0
01FFFF
用途
Linux
ブロック・デバイス
1 次ブートローダ格納用
bootloader.bin(62KB 以内)(*1)
/dev/mtdblock0
1-3
020000
07FFFF
2 次ブートローダ格納用
u-boot.bin(384KB 以内)
/dev/mtdblock1
4-6
080000
0DFFFF
LCD 起動画像用(384KB 以内) (*2)
/dev/mtdblock2
7
0E0000
0FFFFF
U-Boot 変数格納用(128KB 以内)
/dev/mtdblock3
0000111
0001000
100000
Linux バイナリ・イメージ格納用
;
8-119
/dev/mtdblock4
EFFFFF
(uImage - 最大 14MB) (*3)
1110111
1111000
F00000
120-127
予備(保存データなどに使用可能)
/dev/mtdblock5
1111111
FFFFFF
*1 : bootloader.bin は内蔵 RAM にコピーして実行するため 62K バイトを超えないようにしてください。(スタック領域:1K バイト)
*2 : LCD オプションを使用しない場合は不要です。
*3 : SD/MMC カード上の uImage を実行する場合は不要です。
Note
NOR フラッシュを書き換えたり、バンクを切り替えるプログラムは RAM で実行します。NOR フラッシュで実行しないでく
ださい。
予備の領域を使用する場合
デフォルトでの NOR フラッシュ・メモリは最後のブロックを予備として空けています。
電源断やリセットしても保持したいデータをこの領域に保存することができます。
予備領域(mtdblock5)をフォーマット
mtdblock5 を ext2 でフォーマットします。
CKB# mkfs.ext2 /dev/mtdblock5
予備領域(mtdblock5)にデータを保存する例を以下に記述します。
/etc 以下にある保存したいファイルを mtdblock5 に保存して Linux 起動時に上書き設定する例を記述します。
/etc フォルダ以下のファイルを保存したい場合の例
CKB# mkdir -p /mnt/save_settings
CKB# mount /dev/mtdblock5 /mnt/save_settings
CKB# cp -fp /etc/{保存したいファイル} /mnt/save_settings/etc ; 保存したいデータをすべて記述します。
CKB# umount /mnt/save_settings
CKB# rm -r /mnt/save_settings
保存したデータを Linux 起動時に上書き設定する例を以下に記述します。
以下の初期化シェルを設定します。
/etc/init.d/S30load_settings
CKB# mkdir -p /mnt/save_settings
CKB# mount /dev/mtdblock5 /mnt/save_settings
CKB# cp -rfp /mnt/save_settings/etc/* /etc/
CKB# umount /mnt/save_settings
CKB# rm -r /mnt/save_settings
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 2 章 メモリ・マップ 9
MTD ブロックの配置を変更する場合
以下のソースに記述された変数の値を変更することで MTD ブロックのサイズや配置を変更できます。
変更箇所
Linux ソース・パス
buildroot-{日付}/output/build/linux-3.2.1/arch/arm/mach-ckb3352/board-ckb_3352.c
変数
static struct mtd_partition ckb_norflash_partition[]
2.2.2 DDR3 SDRAM メモリ
CKB-3352 上で動作する組み込み Linux は DDR3 SDRAM を使用します。
ここでは、Linux が使用する DDR3 SDRAM について記述します。
Linux 使用メモリ
アドレス
0x80000100 - 0x80007FBF
0x80007FC0 - 0x80FFFFFF
0x81000000 - 0x87AFFFFF
0x87B00000 - 0x87FFFFFF
用途
Linux Parameter
Linux Kernel
initrd & free memory
LCD Framebuffer
サイズ
31.75KByte
15.97MByte
107MByte
5MByte
2.2.3 EEPROM
EEPROM の仕様は下表のとおりです。
メーカー名
ST マイクロ
品名
M24C01-RMN6
I2C アドレス
0x51
容量
1Kbit(128x8)
出荷時に当社ベンダ ID を使った有線 LAN の MAC アドレスが書き込まれています。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 2 章 メモリ・マップ 10
2.3 microSD カード
CKB-3352 では microSD カードを Linux のファイル・システムとして使用できます。
CKB-3352 では NOR フラッシュ・メモリと DDR3 SDRAM だけで Linux が起動するようになっており、基本ファイル・システムは、
uImage にリンクされた initrd を RAM ディスクに展開して実行するようになっています。
/usr フォルダには必要最低限のファイルのみコピーして initrd を作成するようになっていますが、より大きなファイル・サイズの
アプリケーションやデータを扱う場合は、microSD カードに/usr 以下のファイルを配置して起動時に microSD カードを/usr にマ
ウントするように変更してください。
2.3.1 microSD カードを/usr フォルダとして使用する場合
microSD カードを/usr フォルダとして使用する場合は以下のようにしてください。
Linux ホストから見た microSD のデバイスが、/dev/sde1 で、CKB ボードの/dev/mmcblk0p1 を/usr フォルダとする場合の
microSD 作成例
1. Linux ホストで microSD カードに ext2 のパーティションを作成します。
2.
microSD カードをフォーマットします。
LINUXPC$ sudo mkfs.ext2 /dev/sde1 -L mmc_usr
3. buiildroot をコンパイルすると、microSD カード用の usr フォルダのファイルは、以下のフォルダに作成されます。
~/buildroot-{日付}/output/images/sdcard_usr_folder/
4.
microSD カードをマウントして usr フォルダのファイルをコピーします。
LINUXPC$ sudo mkdir /media/mmc_usr ; ubuntu 12.04 では/media の下のボリューム・ラベル名に自動マウントされます。
LINUXPC$ sudo mount /dev/sde1 /media/mmc_usr
LINUXPC$ sudo cp -rfp ~/buildroot-{日付}/output/images/sdcard_usr_folder/* /media/mmc_usr/
5.
microSD カードを umount して Linux ホストから取り出します。
LINUXPC$ sudo umount /media/mmc_usr
CKB-3352 の Linux で起動時に上記で作成した microSD をマウントするには、以下の設定をしてください。
~/buildroot-{日付}/board/ckb/ckb-3352/fs/etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount pt>
<type>
<options>
<dump> <pass>
;
;
/dev/mmcblk0p1 /usr
ext2
ro,relatime,errors=continue 0 0
<=== この行を追加
Options で、ro フラグを rw フラグに変更することで書き込み可能になりますが、書き込み中に電源断するとファイルが失われる
可能性があります。ファイルの破壊を防ぐには ro(リード・オンリー)でマウントしてください。
書き込む必要のある時にのみ、rw フラグで remount することで microSD の破壊を最小限にしてください。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 2 章 メモリ・マップ 11
第3章 ブート仕様
3.1 はじめに
CKB-3352 で動作する Linux のブート手順を記述します。
3.2 CPU ブート・モード
CKB-3352 では、AM3352 のブート・モードをディップ・スイッチで切り替え可能です。
通常は、NOR フラッシュからブートする XIP ブート・モードを選択してください。
UART ブート・モードは、Windows ホスト・パソコンからシリアル・ケーブルを使って NOR フラッシュを書き換える場合に選択し
ます。
ディップ・スイッチ(SW2)
1
2
ON
OFF
OFF
ON
ブート・モード
XIP ブート (NOR フラッシュ)
UART ブート
出荷時は、XIP ブート・モードに設定されています。
3.3 イメージ・ファイル
CKB-3352 で Linux を実行するためには、以下のバイナリ・ファイルが必要です。
buildroot-{日付}/output/images フォルダに作成されます。
ファイル名
種類
ファイルサイズ制限
bootloader.bin
1 次ブートローダ
62K バイト以内
内蔵 RAM にコピーできる最大サイズ
u-boot.bin
2 次ブートローダ
384K バイト以内
title_image.bin
起動時のタイトル画像
384K バイト以内
uImage
Linux カーネル
initrd(RAM ディスク)を含みます。
14M バイト以内
CKB-3352 では、カーネルと initrd を含む uImage のサイズを 14MB 以内になるように作成してください。なお、initrd に入りき
らないアプリケーションやデータなどは microSD カードや USB マスストレージにファイル・システムを構築してください。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 3 章 ブート仕様
12
3.4 ブート手順
CPU がリセットまたは、電源 ON すると、まず CPU 内蔵 ROM のプログラムが実行され、Boot ピンに応じた動作が行われます。
ここでは、XIP ブート・モードによる組み込み Linux が起動するまでの手順を記述します。
XIP ブートでは CPU 内蔵 ROM に書かれたプログラムが実行されて NOR フラッシュの先頭にジャンプします。
順
1
2
プログラム
CPU 内蔵 ROM プログラム
0x00020000 番地から実行
(システム ROM、書換不可)
説明
Boot ピンから XIP ブートと判断
NOR フラッシュ(Bank0:0x08000000 番地)にジャンプ
1 次ブートを内蔵 RAM にコピーして、内蔵 RAM で実行します。
順
3
プログラム
bootloader.bin (1 次ブート)
0x08000000 番地から実行
説明
bootloader.bin を 0x08000000 番地から内蔵 RAM の 0x402F0400 番地にコピーして
bootloader.bin のエントリにジャンプ
1 次ブートでは、CPU やメモリの初期化などを行い、2 次ブートを RAM にコピーしてジャンプします。
順
4
5
プログラム
bootloader.bin (1 次ブート)
0x402F0XXX 番地から実行
6
7
説明
SDRAM の初期化
u-boot.bin(2 次ブート)を NOR フラッシュ(Bank1:0x08000000 番地)から、DDR(0x87500000)
に 384K バイトをコピー
起動時のタイトル画像(title_image.bin)を NOR フラッシュ(Bank4:0x08000000 番地)から、
FlameBuffer(0x87700000)にコピーして LCD に表示
u-boot.bin(SDRAM 0x87500000 番地)にジャンプ
2 次ブートは U-Boot を使用しています。U-Boot の環境設定により指定されたデバイスからカーネルを読み込んで実行します。
順
8
9
1.
プログラム
u-boot.bin (2 次ブート)
0x87500000 番地から実行
説明
MMU、キャッシュの初期化
u-boot-env の情報により以下のいずれかに分岐
1.NOR-Flash にある Linux を実行
2.SD/MMC にある Linux を実行
NOR-Flash にある Linux を実行
U-Boot 環境変数の設定例:
U-BOOT> setenv bootcmd 'fread 8:0x08000000 0x80007FC0 0xE00000; bootm 0x80007FC0'
順
10
11
12
2.
プログラム
u-boot.bin の続き
uImage
0x80007FC0 番地から実行
説明
uImage の先頭にあるヘッダに書かれたサイズを NOR フラッシュ(Bank8:0x08000000 番地)
からサイズ(0xE00000 バイト)分 SDRAM にコピー
128K バイト単位でバンクを切り替えながらコピーします
カーネルの先頭(SDRAM 0x80007FC0 番地)にジャンプ
Linux カーネルとファイル・システムがブートします
SD/MMC カード(第 1 パーティションの/uImage)にある Linux を実行
U-Boot 環境変数の設定例:
U-BOOT> setenv bootcmd 'mmc rescan 0; fatload mmc 0:1 0x80007FC0 /uImage; bootm 0x80007FC0'
順
10
11
12
プログラム
u-boot.bin の続き
uImage
0x80007FC0 番地から実行
説明
SD/MMC カードの先頭パーティション(fat)に書かれた uImage を SDRAM にコピー
カーネルの先頭(SDRAM 0x80007FC0 番地)にジャンプ
Linux カーネルがブートします。
1 次ブート、2 次ブートを実行したメモリ(RAM)は、Linux カーネルにより上書きされます。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 3 章 ブート仕様
13
第4章 NOR フラッシュ・メモリへの書き込み
4.1 はじめに
この章では Linux のイメージ・ファイルを NOR フラッシュに書き込む方法について説明します。
4.2 イメージ・ファイルの書き込み
4.2.1 Linux ホストから書き込む場合
Windows ホスト・パソコンにインストールされた VMware Player で動作する Linux ホストから NOR フラッシュを書き換えることが
できます。
1. CKB-3352 のディップ・スイッチ(SW2)を以下のように UART ブート・モードに変更します。
1
OFF
2
ON
2. Windows ホスト・パソコンと CKB-3352 を RS-232C ケーブルで接続します。
3. VMware Player の「取り外し可能デバイス」の「Future Devices FT232R USB UART」を有効にしてください。
Linux ホストからは、/dev/ttyUSB0 で USB シリアル・コンバータを使った転送ができます。
4. 以下のコマンドで書き換えたいバイナリ・ファイルをロードします。
LINUXPC$ cd buildroot-{日付}/output/images
LINUXPC$ sudo ./uartflasher_CKB -flashimages -p /dev/ttyUSB0 -d CKB-3352 -i init_CKB-3352.bin -b bootloader.bin
-u u-boot.bin -k uImage -t title_image.bin
書き換えるバイナリのオプションとファイル名を以下の表に記述します。(同時に複数指定が可能です)
種類
1 次ブートローダ
2 次ブートローダ
Linux イメージ・ファイル
起動時の LCD 画像
オプション
-b
-u
-k
-t
ファイル名
bootloader.bin
u-boot.bin
uImage
title_image.bin
以下のコマンドでオプションの詳細を確認できます。
LINUXPC$ ./uartflasher_CKB -h
一度 uartflasher_CKB を実行するとその時の設定を.uart_flasher.settings ファイルに保存します。前回と同様の設定で書
き込む場合は以下のようにオプション指定なしでコマンドを実行し、以降の確認では Enter キーを押します。
LINUXPC$ sudo ./uartflasher_CKB
uartflasher_CKB はコンパイル済みの実行バイナリを CKB Linux SDK の DVD-ROM にも用意しています。
DVD-ROM から Linux ホストにコピーした時に実行権がない場合は、以下のコマンドで実行権を付加してください。
# chmod +x uartflasher_CKB
5. 「Waiting for BOOTME... (power on or reset target now)」と表示されたら、CKB ボードの電源を ON または、リセット・ボタ
ンを押すと転送と書き込みを開始します。
6. 必要なバイナリ・ファイルをすべて書き込んだら CKB-3352 のディップ・スイッチ(SW2)を NOR 側に変更してリセットします。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 4 章 NOR フラッシュ・メモリへの書き込み 14
4.2.2 シリアル・ケーブルを使って書き込む場合
Windows ホスト・パソコンからシリアル・ケーブルを使って NOR フラッシュを書き換えることができます。
詳細は、「CKB Linux オプション 2.1 導入ガイド」の「フラッシュ・メモリへの書き込み」の章を参照してください。
4.2.3 PALMiCE3 を使って書き込む場合
CSIDE for PALMiCE3 ARM を使って NOR フラッシュにデータを書き込む方法を以下に記述します。
1. buildroot をコンパイルしておきます。
2. CKB Linux SDK DVD-ROM にある CSIDE プロジェクトファイル (PALMiCE3-ckb-3352.cpf)を使って PALMiCE3 ARM を
起動します。
3. CSIDE メニュー[ファイル]-[ロード]を選択するとファイル・サーバのダイアログが開きます。
4. この中から、以下のファイルを選択(ファイル名のチェックボックスを ON)してから[ダウンロード]ボタンを押してください。
ファイル名
ファイルの種類
ロード環境
ロード・アドレス
buildroot-{日付}\output\images\bootloader.bin
バイナリ(*.bin)
オブジェクトのみ
86000000
buildroot-{日付}\output\images\title_image.bin
バイナリ(*.bin)
オブジェクトのみ
87000000
buildroot-{日付}\output\images\uImage.bin
バイナリ(*.bin)
オブジェクトのみ
80007FC0
buildroot-{日付}\output\build\uboot-2012.10\u-boot
ELF/DWARF2(*.axf…..)
オブジェクトとデバッグ情報
00000000
5. Tera Term 等のシリアル・コンソールを開いてください。
ボーレート:115200、データ:8bit、パリティ:none、ストップ:1bit
6. PALMiCE3 にて実行[F5 キー]するとシリアル・コンソールに U-Boot が起動します。AUTOBOOT が設定されている場合は、
bootcmd が実行される前に、いずれかのキーで U-BOOT プロンプトに移行してください。
7. U-Boot コマンドで DDR メモリから NOR フラッシュに以下のコマンドで書き込みます。
u-boot.bin
U-BOOT> flash_uboot
bootloader.bin
U-BOOT> flash_bootloader 86000000
title_image.bin
U-BOOT> flash_titleimage 87000000
uImage
U-BOOT> flash_kernel 80007FC0
8. U-Boot の環境変数で以下のように設定して変更できます。
NOR フラッシュ
U-BOOT> setenv bootcmd 'fread_kernel 80007FC0; bootm 80007FC0'
microSD カード
U-BOOT> setenv bootcmd 'mmc rescan 0; fatload mmc 0:1 0x80007FC0 /uImage; bootm 80007FC0'
9. saveenv コマンドにて U-Boot 環境変数を NOR フラッシュにセーブしてください。
環境変数の保存
U-BOOT> saveenv
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 4 章 NOR フラッシュ・メモリへの書き込み 15
4.2.4 microSD カードから書き込む場合
U-Boot から microSD を使って書き換える
U-Boot が実行できる状態では、microSD を使って uImage を書き換えることができます。
1. microSD の第一パーティションを FAT でフォーマットしておきます。
2. 書き換える uImage ファイルを microSD のルート(/)フォルダに書き込みます。
なお、Windows ホスト・パソコンで書き込む場合は、microSD が X ドライブであれば以下のように配置します。
X:\uImage
3. CKB-3352 ボードの microSD スロットに microSD カードを挿入して電源を入れます。
4. U-Boot が、autoboot に設定されている場合はカーネルが起動する前になんらかのキーを押して U-Boot のコマンド・プロ
ンプトに移行してください。
5. 以下のコマンドで microSD からカーネルを NOR フラッシュに書き換えます。
U-BOOT> mmc rescan 0
U-BOOT> fatload mmc 0:1 0x80007FC0 /uImage
U-BOOT> erase 8 119
U-BOOT> fwrite 80007FC0 8:08000000 E00000
Linux から microSD を使って書き換える
Linux が起動した状態で NOR フラッシュを書き換えるには以下のように行います。
システム・イメージや、ブートローダなどの製品自体のアップデートを行いたい場合に、この方法を推奨します。
1. microSD の第 1 パーティションにあらかじめ uImage をコピーしておきます。
2. 以下のコマンドで microSD マウントします。
CKB# mount /dev/mmcblk0p1 /mnt
3. 以下のコマンドで uImage を書き換えます。
CKB# dd if=/mnt/uImage of=/dev/mtdblock4
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 4 章 NOR フラッシュ・メモリへの書き込み 16
4.3 U-Boot の設定
U-Boot はコマンドや環境変数を使用することで様々な設定や機能を使うことができます。
CKB-3352 で動作する U-Boot について記述します。
4.3.1 U-Boot 環境変数の確認と設定
U-Boot の環境変数は、"printenv"コマンドで確認できます。
U-BOOT> printenv
baudrate=115200
bootargs=console=ttyO0,115200n8
bootcmd=fread_kernel 0x80007FC0; bootm 0x80007FC0
bootdelay=3
mmcboot=mmc rescan 0; fatload mmc 0:1 0x80007FC0 /uImage.bin; bootm 0x80007FC0
norboot=fread_kernel 0x80007FC0; bootm 0x80007FC0
r=bootm 0x80007FC0
stderr=serial
stdin=serial
stdout=serial
Environment size: 320/2044 bytes
U-Boot の環境変数の設定を変更する場合は、"setenv"コマンドで設定できます。
U-BOOT> setenv bootcmd 'mmc rescan 0; fatload mmc 0:1 0x80007FC0 /uImage; bootm 80007FC0'
U-BOOT> saveenv
Saving Environment to Flash...
. done
Un-Protected 1 sectors
Erasing Flash...
. done
Erased 1 sectors
Writing to Flash... 9....8....7....6....5....4....3....2....1....9....8....7....6....5....4....3....2....1....done
. done
Protected 1 sectors
NOR フラッシュに保存された U-Boot 環境変数をクリアするには以下のコマンドでクリアできます。
U-BOOT> protect off 7; erase 7
U-Boot 環境変数に設定された内容を実行するには、run コマンドで実行できます。
以下のコマンドでは、mmcboot 環境変数に設定されたコマンドが実行されます。
U-BOOT> run mmcboot
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 4 章 NOR フラッシュ・メモリへの書き込み 17
第5章 サンプル・プログラム
5.1 はじめに
CKB Linux SDK では、デフォルトで、HTTP サーバと C 言語を使った CGI プログラムを簡単なサンプル・プログラムとして準備
しています。
HTTP サーバ&CGI サンプル
LED アプリケーション
有線 LAN(eth0)サンプル
無線 LAN(wlan0)サンプル (CM-J100 オプションが必要)
USB カメラ・アプリケーション(UVC 規格に対応した USB カメラが必要)
タッチパネル・アプリケーション(LCD オプションが必要)
拡張バス用サンプル(メモリバス、GPIO、CAN)
で構成されています。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 18
5.2 HTTP サーバ&CGI プログラム
5.2.1 概要
Web ブラウザ経由で CKB-3352 ボード上の LED 制御をしたり、有線 LAN、無線 LAN の設定を変更、保存できます。
5.2.2 ソース・ファイル
本 Web アプリケーションの CGI プログラムは C 言語で記述されています。
httpd 関連ファイル: buildroot-{日付}/board/ckb/ckb-3352/fs/root/www/
index.html
httpd サーバのメインのホーム・ページです。
style.css
HTML のスタイルを設定したファイルです。
[cgi-bin]
生成された CGI(バイナリ)が格納されます。
[images]
サンプル・プログラムで使用する画像ファイルが格納されています。
CGI ソースファイル: buildroot-{日付}/board/ckb/ckb-3352/cgi-bin/
Makefile
すべての CGI 実行バイナリを make します。
led_main.c
LED を点灯/消灯するアプリケーション
ethernet_form_main.c
有線 LAN(eth0)の IP アドレスを設定するアプリケーション
wireless_form_main.c
無線 LAN(wlan0)のセキュリティや SSID、IP アドレス、DHCP サーバを設定するアプリケーション
camstream_main.c
カメラを使用するアプリケーション
save_settings_main.c
設定を NOR フラッシュの/dev/mtdblock5 に保存するアプリケーション
reboot_main.c
CKB-3352 を再起動するアプリケーション
licenses_main.c
ライセンス・ファイルを表示するアプリケーション
5.2.3 コンパイル
CGI サンプル・プログラムをコンパイルするには、作業ディレクトリへ移動して make コマンドを使用します。
作業ディレクトリ: buildroot-{日付}/board/ckb/ckb-3352/cgi-bin
LINUXPC$ make
デバッグするにはデバッグ情報を出力しておく必要があります。デバッグ情報を出力するには、コンパイラの引数に"-ggdb"を
指定します。
コンパイル操作に変更が必要な場合は Makefile を編集してください。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 19
5.2.4 Web サーバの起動
Web アプリケーションを動作させるためには、Web サーバが必要になります。
本サンプルでは Web サーバに httpd を使用しています。
CKB-3352 ボード起動時に httpd を動作させるには下記のファイルを使用します。(デフォルトで起動します。)
httpd 実行制御ソース・ファイル: buildroot-{日付}/board/ckb/ckb-3352/fs/etc
httpd.conf
httpd 設定ファイル
[init.d]
+--- S80httpd
httpd 初期化シェル
CKB-3352 の有線 LAN(eth)は、出荷時の設定で DHCP クライアントとして設定されています。
DHCP サーバから割り当てられた IP アドレスを確認して、CKB-1808 と同一ネットワークにある Windows ホスト・パソコンのブラ
ウザ(Google Chrome または、Firefox を推奨)で CKB-3352 の IP アドレスを入力してください。
CKB# ifconfig eth0
eth0
Link encap:Ethernet HWaddr 00:A0:0B:00:00:01
inet addr:192.168.0.132 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::2a0:bff:fe00:1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5741 errors:0 dropped:490 overruns:0 frame:0
TX packets:617 errors:0 dropped:0 overruns:1 carrier:0
collisions:0 txqueuelen:1000
RX bytes:474569 (463.4 KiB) TX bytes:336168 (328.2 KiB)
Interrupt:33
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 20
5.2.5 各操作の説明
CKB-3352 と LAN で接続された Windows ホスト・パソコンからブラウザで CKB-3352 の IP アドレスを URL として入力してくだ
さい。
Firefox または、Google Chrome を推奨します。Internet Explorer では、stylesheet が適用されない部分があるので一部のスタ
イルが文字でのみ表示されます。
LED 制御
概要
LED のアイコンをクリックすると LED の状態が反転します。
CGI プログラム
led_main.cgi
ソース・ファイル
led_main.c
LED のアイコンをクリックすると LED の状態が反転します。アイコンの状態と CKB-3352 ボード上の LED の状態が同じである
ことを確認してください。
有線 LAN(eth0)の設定
概要
有線 LAN の IP アドレスを変更します。
CGI プログラム
ethernet_form_main.cgi
ソース・ファイル
ethernet_form_main.c
ブラウザの操作ナビから、「有線 LAN(eth0)の設定」を選択すると、IP アドレスを設定する項目が表示されます。
設定項目を入力して「上記変更を有効にします」をクリックすると有線 LAN の IP アドレスが変更されます。
IP アドレスを DHCP サーバから取得するか、固定 IP を指定することができます。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 21
無線 LAN(wlan0)の設定
概要
無線 LAN の設定を行います。
CGI プログラム
wireless_form_main.cgi
ソース・ファイル
wireless_form_main.c
動作モード、セキュリティ方式、SSID およびパスフレーズ(パスワード)を設定します。無線の動作モードで「アクセス・ポイント・
モード」にすると CKB ボード自身をアクセス・ポイントとして動作させます。このとき、固定 IP アドレスを指定して、DHCP サーバを
起動するかどうかを選択します。変更を実際の動作に反映するには、「上記変更を有効にします」をクリックしてください。
無線の動作モードで「インフラストラクチャ・モード」にすると指定されたアクセス・ポイントに接続します。IP アドレスを DHCP サ
ーバから取得するか、固定 IP を指定することができます。変更を実際の動作に反映するには、「上記変更を有効にします」をクリ
ックしてください。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 22
カメラ制御
概要
UVC 規格に対応した USB カメラをターゲットの CKB-LCD-01 ボードの LCD パネルに表示、またはネットワークを
通じてブラウザ上にストリーミング表示します。
CGI プログラム
camstream_main.cgi
ソース・ファイル
camstream_main.c
設定内容を NOR フラッシュに保存
概要
IP アドレスの設定および無線 LAN セキュリティの設定の内容を NOR フラッシュに保存します。
CGI プログラム
save_settings_main.cgi
ソース・ファイル
save_settings_main.c
[書き込み]ボタンを押すと、IP アドレスの設定および無線 LAN セキュリティの設定の内容を NOR フラッシュに保存します。再
起動すると、保存内容を読み出して実際の動作に反映します。
CKB-3352 再起動
概要
CKB-3352 ボードを再起動します。
CGI プログラム
reboot_main.cgi
ソース・ファイル
reboot_main.c
[再起動]ボタンをクリックすると、CKB-3352 ボードを再起動します。
なお、PALMiCE3 でデバッグ中の場合はデバッグを継続できなくなります。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 23
ライセンス
概要
ライセンス・ファイルを表示します。
CGI プログラム
licenses_main.cgi
ソース・ファイル
licenses_main.c
buildroot で使用されているソフトウェアのライセンス情報を表示します。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 24
5.3 カメラ用サンプル
CKB-3352 には、UVC(USB Video Class)に対応した USB カメラを使ってカメラ画像を LCD へ表示または、ネットワーク・ストリ
ーミングを行うサンプル・アプリケーションを付属しています。
カメラ画像を LCD に表示するアプリケーションは、LCD ボード CKB-LCD-01 が必要です。
USB カメラは、UVC(USB Video Class)に対応した USB カメラが必要です。
それぞれのアプリケーションのソースは以下にあります。
アプリケーション
ソースファイル
usb_cam_app
buildroot-{日付}/board/ckb/common/samples/usb_cam_app/
usb_cam_streamer
buildroot-{日付}/board/ckb/common/samples/usb_cam_streamer/
USB カメラは、以下のデバイス・ファイルを使用します。 認識した順に video0~video2 まで割り当てられます。
カメラが接続されて認識された場合にのみこれらのファイルは存在します。
デバイス・ファイル
説明
/dev/video0
1 つ目に認識した UVC カメラを制御するデバイス・ファイルです。
/dev/video1
2 つ目に認識した UVC カメラを制御するデバイス・ファイルです。
/dev/video2
3 つ目に認識した UVC カメラを制御するデバイス・ファイルです。
USB カメラのカーネル・ドライバは、以下のソースで制御しています。
buildroot ディレクトリの output/build/linux-3.2.1/以下のソースを参照してください。
カーネル・コンフィギュレーション
[*] Device Drivers --->
<*> Multimedia support --->
[*] Video capture adapters
[*]
--->
V4L USB devices
<*>
--->
USB Video Class (UVC)
フラグ
CONFIG_USB_VIDEO_CLASS
ソース
drivers/media/video/uvc/uvc_video.c
5.4 LCD、タッチパネル、LED 用サンプル
LCD ボード CKB-LCD-01 に付属するタッチパネルを使った GUI アプリケーションや、LED を制御するアプリケーションを付
属しています。
アプリケーションのソースは以下にあります。
アプリケーション
ソースファイル
launcher
buildroot-{日付}/board/ckb/common/samples/launcher/
gui1
buildroot-{日付}/board/ckb/common/samples/gui1/
ts_led
buildroot-{日付}/board/ckb/common/samples/ts_led/
LCD ボード(CKB-LCD-01)に付属するタッチパネルを使った GUI アプリケーションや、LED を制御するアプリケーションは、
以下のデバイス・ファイルまたは、クラス・ドライバのシステム・ファイルを使用します。
デバイス・ファイル
説明
/dev/fb0
LCD 用のフレームバッファ用のデバイス・ファイルです。
/dev/input0
タッチパネル用のデバイス・ファイルです。
/sys/class/leds/led0/brightness
LED1 を点灯、消灯するシステム・ファイルです。
/sys/class/leds/led1/brightness
LED2 を点灯、消灯するシステム・ファイルです。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 25
LCD のカーネル・ドライバは、以下のソースで制御しています。
buildroot ディレクトリの output/build/linux-3.2.1/以下のソースを参照してください。
カーネル・コンフィギュレーション
System Type --->
[*] Support LCD --->
Select LCD board
--->
( ) CKB LCD-01
(X) CKB LCD-02
フラグ
CONFIG_CKB_LCD_01 または、CONFIG_CKB_LCD_02
ソース
arch/arm/mach-omap2/board-ckb3352.c
タッチパネルのカーネル・ドライバは、以下のソースで制御しています。
カーネル・コンフィギュレーション
[*] Device Drivers --->
Input device support
[*]
--->
Touchscreens
<*>
--->
TSC2007 based touchscreens
フラグ
CONFIG_TOUCHSCREEN_TSC2007
ソース
drivers/input/touchscreen/tsc2007.c
LED のカーネル・ドライバは、以下のソースで制御しています。
カーネル・コンフィギュレーション
[*] Device Drivers --->
[*] LED Support --->
[*] LED Class Support
<*>
フラグ
LED Support for GPIO connected LEDs
CONFIG_LEDS_CLASS
CONFIG_LEDS_GPIO
CONFIG_LEDS_GPIO_PLATFORM
ソース
drivers/leds/led-class.c
drivers/leds/led-gpio.c
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 26
5.5 拡張コネクタ(EX_CN)用サンプル
CKB-3352 の EX_CN に拡張ボードを接続してアクセスする場合のアプリケーション・サンプルを付属しています。
5.5.1 拡張コネクタのマルチプレクス設定
CKB-3352 の拡張コネクタ(EX_CN)では、ピンのマルチプレクスを変更して各種機能に使用する事が出来ます。
buildroot から、make linux-menuconfig にて、以下の設定で拡張コネクタのピンの設定が行えます。
カーネル・コンフィギュレーション
System Type --->
;
[*] Support GPMC CS1 mem on EX_CN
EX_CN devices/ pin multiplex options
WLAN_CN multiplex options
--->
--->
上記メニューで、CKB-3352 の拡張コネクタ(EX_CN と WLAN_CN)の各ピンのデフォルトを変更できます。
5.5.2 メモリバス(/CS 空間)アクセスサンプル
EX_CN のメモリバス(/CS1 空間)をメモリ・マップしてデータを R/W するアプリケーションです。
アプリケーションのソースは以下にあります。
アプリケーション
ソース・ファイル
ext_cn_mem
buildroot-{日付}/board/ckb/ckb-3352/samples/ext_cn_mem/
ドライバのソースは以下にあります。
ドライバ
ソース・ファイル
ckb_gpmc_cs1.ko
buildroot-{日付}/output/build/linux-3.2.1/drivers/mtd/chips/ckb_gpmc_cs1.c
Linux 起動時に以下のドライバがロードされます。
CKB# modprobe ckb_gpmc_cs1.ko
アプリケーションを実行します。0x00~0xFF のシーケンシャルなデータを CS1 空間の 0x0 番地に書き続けます。
何かキーが押されるとアプリケーションを終了します。
CKB# ext_cn_mem
The CS1 device was opened successfully.
CS1 memory mapped successfully.
CS1=0x400e4000
Press any key to exit...
Writing value=0x0
Writing value=0x1
Writing value=0x2
Writing value=0x3
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 27
5.5.3 GPIO サンプル
EX_CN の GPIO をアクセスするアプリケーションです。
アプリケーションのソースは以下にあります。
アプリケーション
ソース・ファイル
gpio_int
buildroot-{日付}/board/ckb/common/samples/gpio_int/
書式と仕様は以下のとおりです。指定 GPIO の立ち上がり、立下りの両エッジの割り込みを許可し変化を監視します。
[書式] # gpio_int <gpio-pin>
gpio-pin = GPIO 番号
GPIO 番号は GPn[m]を「32*n+m」と決めています。EX_CN の GPIO 番号は以下の通りです。
No
信号名
1
VCC_ADC
2
3
AIN0
4
5
AIN1
6
7
AIN2
8
9
GND_ADC
10
11
13
15
17
19
VCC50(+5.0V)
AD1 / MMC1_D1 / GP1[1]
AD3 / MMC1_D3 / GP1[3]
AD5 / MMC1_D5 / GP1[5]
AD7 / MMC1_D7 / GP1[7]
CS1n / CLK / MMC1_CLK / EDIO_DI6 /
EDIO_DO6 / P1R30_31_12 / GP1[30]
12
14
16
18
20
23
WEn / TIM6 / GP2[4]
24
25
OEn / TIM7 / GP2[3]
26
27
ADVn_ALE / TIM4 / GP2[2]
28
21
29
31
33
35
37
39
A1 / GM2_RXDV / RGM2_RCTL /
MMC2_D0 / A17 / MII1_TXD3 /
PWM0_SYNCo / GP1[17]
ASP0_AXR0 / PWM0_TZ_IN / SPI1_D1 /
MMC2_CD / P0R30_31_2 / GP3[16]
ASP0_AXR1 / eQEP0_INDEX /
ASP1_AXR0 / EMU3 / P0R30_31_6 /
GP3[20]
I2C0_SCL / TIM7 / UART2_RTSN /
eCAP1_IN_PWM1o / GP3[6]
I2C0_SDA / TIM4 / UART2_CTSN /
eCAP2_IN_PWM2o / GP3[5]
GND
GPIO 番号
No
22
信号名
LCD_D12 / A16 / eQEP1A_IN /
MCASP0_ACLKR / MCAP0_AXR2 /
MII0_RXLNK / UART4_CTSn / GP0[8]
LCD_D13 / A17 / eQEP1B_IN / MCASP0_FSR
/ MCAP0_AXR3 / MII0_RXER / UART4_RTSn
/ GP0[9]
ASP0_AHCLKR / PWM0_SYNCI / ASP0_AXR2
/ SPI1_CS0 / eCAP2_IN_PWM2o / P0R30_31_3
/ GP3[17]
ASP0_ACLKR / eQEP0A_IN / ASP0_AXR2 /
ASP1_ACLKX / MMC0_WP / P0R30_31_4 /
GP3[18]
ASP0_FSR / eQEP0B_IN / ASP0_AXR3 /
ASP1_FSX / EMU2 / P0R30_31_5 / GP3[19]
VCC33(+3.3V)
AD0 / MMC1_D0 / GP1[0]
AD2 / MMC1_D2 / GP1[2]
AD4 / MMC1_D4 / GP1[4]
AD6 / MMC1_D6 / GP1[6]
XDMA_EVT_INT0 / TIM4 / CLKo1 / SPI1_CS1
/ P1R31_16 / EMU2 / GP0[19]
XDMA_EVT_INT1 / TCLKIN / CLKo2 / TIM7 /
P0R31_16 / EMU3 / GP0[20]
UART0_CTSn / UART4_RXD / DCAN1_TX /
I2C1_SDA / SPI1_D0 / TIM7 / EDC_SYNC0o /
GP1[8]
UART0_RTSn / UART4_TXD / DCAN1_RX /
I2C1_SCL / SPI1_D1 / SPI1_CS0 /
EDC_SYNC1o / GP1[9]
eCP0I_PWM0o / UART3_TXD / SPI1_CS1 /
CAPI_PWMo / SPI1_SCK / MMC0_WP /
DMA_EVT_INT2 / GP0[7]
49
30
112
32
VCC33(+3.3V)
116
34
ASP0_AHCLKX / eQEP0_STB / ASP0_AXR3 /
ASP1_AXR1 / EMU4 / P0R30_31_7 / GP3[21]
36
38
40
ASP0_ACLKX / PWM0A / SPI1_SCLK /
MMC0_CD / P0R30_31_0 / GP3[14]
ASP0_FSX / PWM0B / SPI1_D0 / MMC1_CD /
P0R30_31_1 / GP3[15]
RSTo
GPIO 番号
113
114
115
19
20
7
117
110
111
GPIO として使用する場合は、Linux カーネル・コンフィギュレーションで GPIO として選択してください。
ここでは、EX_CN の 30 ピンの GP0[7]を指定する例を示します。
アプリケーションを実行すると、GP0[7]が Low もしくは、High に変化する度にメッセージを表示します。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 28
何かキーが押されるとアプリケーションを終了します。
CKB# gpio_int 7
Press any key to terminate the application
Current val=0
......
poll() GPIO 7 interrupt occurred
poll() GPIO 7 interrupt occurred
poll() GPIO 7 interrupt occurred
poll() GPIO 7 interrupt occurred
Current val=1
......
Linux の GPIO クラスを使って EX_CN の GPIO ピンを操作する
Linux の GPIO クラスを使って GPIO 信号を High/Low する方法を記述します。
EX_CN, WLAN_CN の各ピンの MUX を設定します。
以下の値を対応するピン用のシステムファイル(/debugfs/omap_mux/*)に MUX の設定値を出力します。
ビット位置
bit[2..0]
bit[3]
bit[4]
bit[5]
bit[6]
モード
MODE(0-7)
PULL_DISABLE(1), PULL_ENABLE(0)
PULL_UP(1)
INPUT_EN(1)
SLEWCTRL FAST(0), SLOW(1)
意味
マルチプレクスの選択を 0~7 で指定します
プルアップ/ダウンを禁止(1)/許可(0)に設定します
プルアップ(1)/プルダウン(0)に設定します
入力(1)/出力(0)に設定します
スルーコントロールを FAST(0)/SLOW(1)に設定します。
例: EX_CN[34] MPU_GP321 を GPIO(出力)に設定する
grep gpio3_21 /debugfs/omap_mux/*
/debugfs/omap_mux/mcasp0_ahclkx:signals: mcasp0_ahclkx | NA | mcasp0_axr3 | mcasp1_axr1 | NA | NA | NA | gpio3_21
# echo 0x07 > /debugfs/omap_mux/mcasp0_ahclkx
例: 設定を確認する
# cat /debugfs/omap_mux/mcasp0_ahclkx
name: mcasp0_ahclkx.gpio3_21 (0x44e109ac/0x9ac = 0x0007), b NA, t NA
mode: OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT
signals: mcasp0_ahclkx | NA | mcasp0_axr3 | mcasp1_axr1 | NA | NA | NA | gpio3_21
EX_CN コネクタの 34pin(GP3[21])を出力ポートにして信号を High/Low する手順を以下に記述します。
GP3[21]の GPIO 番号の求め方は、GPn[m]とすると、n*32+m で計算されます。
3 * 32 + 21 = 117 (GPIO 番号)
# echo 117 > /sys/class/gpio/export
GP3[21]を出力に設定します。
# echo out > /sys/class/gpio/gpio117/direction
GP3[21]をハイレベルに設定する
# echo 1 > /sys/class/gpio/gpio117/value
GP3[21]をローレベルに設定する
# echo 0 > /sys/class/gpio/gpio117/value
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 29
5.5.4 CAN1サンプル
EX_CN の GPIO とマルチプレクスされた CAN1 を使用するためのアプリケーションについて記述します。
ここで記述する通信手順を行うには、CKB-3352 は送信用と受信用の 2 台と、CAN トランシーバとコネクタが実装された拡張
ボードが必要です。これら機器はユーザ様にてご用意ください。
CAN1 を使用する場合は、Linux カーネル・コンフィギュレーションで EX_CN[26,28]を CAN1 に選択してコンパイルする必要が
あります。
No.
26
28
信号名
UART0_CTSn / UART4_RXD / DCAN1_TX / I2C1_SDA / SPI1_D0 / TIM7 / EDC_SYNC0o / GP1[8]
UART0_RTSn / UART4_TXD / DCAN1_RX / I2C1_SCL / SPI1_D1 / SPI1_CS0 / EDC_SYNC1o / GP1[9]
アプリケーションのソースは以下にあります。
アプリケーション
ソース・ファイル
canconfig
buildroot-{日付}/output/build/canutils-0391cd2/src/
candump
buildroot-{日付}/output/build/canutils-0391cd2/src/
cansend
buildroot-{日付}/output/build/canutils-0391cd2/src/
cansequence
buildroot-{日付}/output/build/canutils-0391cd2/src/
buildroot から、make linux-menuconfig にて、以下の設定で拡張コネクタのピンの設定が行えます。
カーネル・コンフィギュレーション
System Type --->
EX_CN devices/ pin multiplex options
--->
[*] Devices on Pins 26,28
Pin 26,28 device (CAN1)
--->
[*] Networking support --->
[*] CAN bus subsystem support --->
CAN device drivers --->
<*> Platform CAN drivers with Netlink support
[*] CAN bit-timing calculation
<*> Bosch D_CAN devices --->
<*> Generic Platform Bus based D_CAN driver
カーネル・コンフィギュレーションで CAN を有効にすると、MUX された GPIO が CAN 専用の端子になります。GPIO として使
用する場合は、上記「Devices on Pins 26,28」設定を外してください。SDK のデフォルトでは CAN1として設定されています。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 30
ハードウェアの接続を行います。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 31
CAN 通信を行う手順を以下に記述します。
受信側の準備
CKB# canconfig can0 bitrate 50000 ctrlmode triple-sampling on
CAN の設定を行います。(ビットレート:50Kbps)
CKB# canconfig can0 start
CAN の通信を開始します。
CKB# candump can0
CAN を受信待ちにします。
送信側の準備
CKB# canconfig can0 bitrate 50000 ctrlmode triple-sampling on
CAN の設定を行います。(ビットレート:50Kbps)
CKB# canconfig can0 start
CAN の通信を開始します。
CKB# cansequence can0 -p
CAN からをテスト用のシーケンシャル・データを送り
続けます
送信側の cansequence は、テストの為に 0x00~0xFF のシーケンシャルなデータを送り続けます。
受信側では以下のようにデータを受信する度に受信データが表示されます。
CKB# candump can0
interface = can0, family = 29, type = 3, proto = 1
<0x002> [1] 00
<0x002> [1] 01
<0x002> [1] 02
<0x002> [1] 03
<0x002> [1] 04
<0x002> [1] 05
......
補足として、以下にコマンドの使用例を記述します。
CAN のビットレートを 1Mbps に設定する場合 (最大ビットレート)
CKB# canconfig can0 bitrate 1000000 ctrlmode triple-sampling on
CAN を停止する場合
CKB# canconfig can0 stop
標準フレーム(ID:0x10)で 4 バイト・データ(0x11,0x22,0x33,0x44)を送信する場合
CKB# cansend can0 -i 0x10 0x11 0x22 0x33 0x44
拡張フレーム(ID:0x800)で 4 バイト・データ(0x11,0x22,0x33,0x44)を送信する場合
CKB# cansend can0 -i 0x800 0x11 0x22 0x33 0x44 -e
拡張フレーム(ID:0xFFFFF)で 4 バイト・データ(0x11,0x22,0x33,0x44)を 10 回送信する場合
CKB# cansend can0 -i 0xFFFFF 0x11 0x22 0x33 0x44 -e --loop=10
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 32
5.5.5 ADC サンプル
CKB-3352 の拡張コネクタ(EX_CN)の MPU_AN0[3], MPU_AN1[5], MPU_AN2[7]ピンから入力されるアナログ電源の値を
AM3352 の ADC で取得します。
No.
3
5
7
信号名
AN0
AN1
AN2
buildroot から、make linux-menuconfig にて、以下の設定で拡張コネクタのピンの設定が行えます。
System Type --->
EX_CN devices/ pin multiplex options
--->
CAN device drivers --->
[*] ADC (Pins 3,5,7)
SDK のデフォルトでは ADC が有効に設定されています。
デバイス・ファイル
ADC(oneshot モード)で使用するデバイス・ファイルは、以下のファイルです。
/sys/bus/iio/devices/iio\:device0/mode
“oneshot”をライト
/sys/bus/iio/devices/iio\:device0/in_voltage0_raw
/sys/bus/iio/devices/iio\:device0/in_voltage1_raw
/sys/bus/iio/devices/iio\:device0/in_voltage2_raw
AN0 データをリード
AN1 データをリード
AN2 データをリード
ADC(continuous モード)で使用するデバイス・ファイルは、以下のファイルです。
/sys/bus/iio/devices/iio\:device0/mode
“continuous”をライト
/sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage0_en
/sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage1_en
/sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage2_en
“1“をライトして AN0 を使用許可
“1“をライトして AN1 を使用許可
“1“をライトして AN2 を使用許可
/sys/bus/iio/devices/iio\:device0/buffer/length
バッファレングスをライト
/sys/bus/iio/devices/iio\:device0/buffer/enable
“1”をライトしてバッファを許可
/dev/iio:device0
バッファをリード
アプリケーションから、ADC をアクセスする場合は、これらデバイス・ファイルを使用してください。
ソース・ファイル
ADC のサンプル・プログラムは、ADC の値をファイルに変換する C 言語プログラムで提供します。
continuous モード用サンプル:
(buildroot ディレクトリ)/output/build/linux-3.2.1/drivers/staging/iio/Documentation/generic_buffer.c
generic_buffer.c
ADC 用 continuous モード用 C 言語ソース・ファイル(サンプル)
コンパイル
LINUXPC$ cd (buildroot ディレクトリ)/output/build/linux-3.2.1/drivers/staging/iio/Documentation/
LINUXPC$ (buildroot ディレクトリ)/output/host/usr/bin/arm-linux-gcc generic_buffer.c -o generic_buffer
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 33
コンパイルと NOR フラッシュ書き込み
作成された実行ファイルをファイル・システム(/bin)にコピーして uImage.bin を作成して NOR フラッシュに書き込みます。
LINUXPC$ cd (buildroot ディレクトリ)/
LINUXPC$ cp target/device/ckb-3352/samples/sensor/sensor-adc output/target/bin/
LINUXPC$ cp output/build/linux-3.2.1/drivers/staging/iio/Documentation/generic/generic_buffer output/target/bin/
LINUXPC$ make
continuous モード用サンプル(generic_buffer)実行
generic_buffer は、continuous モードで ADC 値を取得するサンプルです。
以下に continuous モードでの実行例を記述します。
CKB#
echo continuous > /sys/bus/iio/devices/iio\:device0/mode
CKB#
echo 1 > /sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage0_en
CKB#
echo 1 > /sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage1_en
CKB#
echo 1 > /sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage2_en
CKB#
echo 100 > /sys/bus/iio/devices/iio\:device0/buffer/length
CKB#
echo 1 > /sys/bus/iio/devices/iio\:device0/buffer/enable
CKB#
hexdump /dev/iio\:device0
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 34
5.5.6 SPI1 サンプル
CKB-3352 の拡張コネクタ(EX_CN)の 30 ピン、36 ピン、31ピン、38ピンを SPI1/CS0 として使用します。
SPI1 を使用する場合は、カーネル・コンフィギュレーションで機能を選択してください。
また、拡張コネクタの GP317 は、LCD タッチパネルの割り込み信号と兼用です。
拡張コネクタで、SPI デバイスを接続する場合は、LCD タッチパネルを接続しないでください。
SPI1 を使用する場合は、Linux カーネル・コンフィギュレーションで赤字の信号を選択してコンパイルする必要があります。
No.
信号名
No.
6
22
26
28
30
31
信号名
ASP0_AHCLKR / PWM0_SYNCI / ASP0_AXR2 /SPI1_CS0 /
eCAP2_IN_PWM2o / P0R30_31_3 / GP3[17]
XDMA_EVT_INT0 / TIM4 / CLKo1 / SPI1_CS1 / P1R31_16 /
EMU2 / GP0[19]
UART0_CTSn / UART4_RXD / DCAN1_TX / I2C1_SDA /
SPI1_D0 / TIM7 / EDC_SYNC0o / GP1[8]
UART0_RTSn / UART4_TXD / DCAN1_RX / I2C1_SCL /
SPI1_D1 / SPI1_CS0 / EDC_SYNC1o / GP1[9]
eCP0I_PWM0o / UART3_TXD / SPI1_CS1 / CAPI_PWMo /
SPI1_SCK / MMC0_WP / DMA_EVT_INT2 / GP0[7]
ASP0_AXR0 / PWM0_TZ_IN / SPI1_D1 / MMC2_CD /
P0R30_31_2 / GP3[16]
36
38
ASP0_ACLKX / PWM0A / SPI1_SCLK / MMC0_CD /
P0R30_31_0 / GP3[14]
ASP0_FSX / PWM0B / SPI1_D0 / MMC1_CD / P0R30_31_1 /
GP3[15]
同じ信号がマルチプレクスされています。使用するピンを選択してください。
デバイス・ファイル
使用するデバイス・ファイルは、以下のファイルです。
/dev/spidev2.0
SPI1/CS0 デバイス・ファイル
アプリケーションから、SPI1/CS0 をアクセスする場合は、これらデバイス・ファイルを使用してください。
サンプル・ソース(spidev_test)
spidev_test は、SPI 通信を行うサンプルです。
(buildroot ディレクトリ)/output/build/linux-3.2.1/Documentation/spi/spidev_test.c
spidev_test.c
SPI 用 C 言語ソース・ファイル(サンプル)
サンプル・ソースは、クロスコンパイラでコンパイルしてファイル・システムに転送してください。
LINUXPC$ cd (buildroot ディレクトリ)/output/build/linux-3.2.1/Documentation/spi/
LINUXPC$ (buildroot ディレクトリ)/output/host/usr/bin/arm-linux-gcc spidev_test.c –o spidev_test
以下は、SPI1/CS0 を 8bit、1000000Hz で通信する実行例です。
CKB# spidev_test –D /dev/spidev2.0 –b 8 –s 1000000
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 35
5.5.7 I2C サンプル
CKB-3352 の拡張コネクタ(EX_CN)の MPU_GP108[26], MPU_GP109[28]ピンは I2C1 として使用できます。
これら I2C1 で使用するピンは、GPIO(GPIO1_8,GPIO1_9)、UART4、DCAN1 がマルチプレクスされているので、カーネル・コン
フィギュレーションで機能を選択してください。 また、I2C0 は、ボード上の EEPROM に接続されています。
SPI1 を使用する場合は、Linux カーネル・コンフィギュレーションで赤字の信号を選択してコンパイルする必要があります。
No.
信号名
No.
26
28
信号名
UART0_CTSn / UART4_RXD / DCAN1_TX / I2C1_SDA / SPI1_D0 /
TIM7 / EDC_SYNC0o / GP1[8]
UART0_RTSn / UART4_TXD / DCAN1_RX / I2C1_SCL / SPI1_D1 /
SPI1_CS0 / EDC_SYNC1o / GP1[9]
I2C0_SCL / TIM7 / UART2_RTSN /
eCAP1_IN_PWM1o / GP3[6]
I2C0_SDA / TIM4 / UART2_CTSN /
eCAP2_IN_PWM2o / GP3[5]
35
37
同じ信号がマルチプレクスされています。 使用するピンを選択してください。
buildroot から、make linux-menuconfig にて、以下の設定で拡張コネクタのピンの設定が行えます。
カーネル・コンフィギュレーション
System Type --->
EX_CN devices/ pin multiplex options
--->
[*] Devices on Pins 26,28
Pin 26,28 device (I2C1)
--->
カーネル・コンフィギュレーションで I2C1 を選択すると、MUX された GPIO が I2C 専用の端子になります。GPIO として使用す
る場合は、上記「Devices on Pins 26,28」設定を外してください。SDK のデフォルトでは I2C1 でなく CAN1 に設定されています。
デバイス・ファイル
I2C で使用するデバイス・ファイルは、以下のファイルです。
/dev/i2c-1
I2C0 デバイス・ファイル
/dev/i2c-2
I2C1 デバイス・ファイル
アプリケーションから、I2C1 をアクセスする場合は、このデバイス・ファイル(/dev/i2c-2)を使用してください。
デバイス・ファイルは起動時に自動的に作成されますが、I2C1 に I2C デバイスが何も接続されていない状態では、このデバイ
ス・ファイルは作成されません。
i2c-tools
i2c-tools は、I2C 通信を行うサンプルです。デフォルトで以下のコマンドが/usr/bin フォルダにインストールされます。
i2cget, i2cset, i2cdetect, i2cdump
以下は、i2cdetect を使って i2c-2 に接続されたデバイスを検出してみます。
CKB# i2cdetect -r -y 2
0
00:
1 2
3 4
5 6
7
8 9
a b
c d
e f
-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 36
50: -- 51 -- -- -- -- -- -- -- -- -- -- -- -- -- -60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -70: -- -- -- -- -- -- -- -この例では、I2C1(/dev/i2c-2)にアドレス(0x51)のデバイスが接続されている事を検出しています。
以下は、i2cget を使って i2c-2 に接続されたアドレス(0x51)のレジスタ(0x00)をリードします。
CKB# i2cget -f -y 2 0x51 0x00 b
以下は、i2cset を使ってアドレス(0x51)のレジスタ(0x00)に 0x55 をライトします。
CKB# i2cget -y 2 0x51 0x00 0x55 b
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 37
5.5.8 ウォッチドッグタイマー用サンプル
CKB-3352 のウォッチドッグタイマーを使ったサンプル・プログラムを付属しています。
ウォッチドッグのカーネル・ドライバは、以下のソースで制御しています。
カーネル・コンフィギュレーション
フラグ
ソース
ウォッチドッグタイマー用のデバイス・ファイルを使用します。
デバイス・ファイル
/dev/watchdog
説明
ウォッチドッグ用のデバイス・ファイルです。
アプリケーションのソースは以下にあります。
アプリケーション
saWatchdog
Device Drivers --->
[*] Watchdog Timer Support --->
<*> OMAP Watchdog (デフォルトで有効です)
CONFIG_OMAP_WATCHDOG
${BUILDROOT_DIR}/output/build/linux-3.2.1/drivers/watchdog/omap_wdt.c
ソース・ファイル
${BUILDROOT_DIR}/board/ckb/ckb-3352/samples/wdt/
アプリケーション・サンプルの使用方法
例 1)
ウォッチドッグタイマーのタイムアウト時間 5 秒として、2 秒間隔で WatchDog を更新します。
CPU がリセットされない事を確認できます。
# saWatchdog 5 2
例 2)
ウォッチドッグタイマーのタイムアウト時間を 2 秒にして、5 秒間隔で WatchDog を更新します。
WatchDog を更新する前にタイムアウトして CPU がリセットされる事を確認できます。
# saWatchdog 2 5
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 38
第6章 使用例
6.1 はじめに
この章では、CKB-3352 組み込み Linux の使用方法について記述します。
6.2 マスストレージ(USB/microSD)をマウントする
USB メモリ、USB ハードディスク、microSD カードをマウントする方法を以下に記述します。
フォーマットされてない場合は、マウントする前にフォーマットしてください。
6.2.1 USB メモリ/USB ハードディスクのフォーマット
USB メモリや USB ハードディスクをフォーマットする例を記述します。
尚、フォーマットする場合はアンマウントしてから行ってください。
vFAT でフォーマットする
CKB# mkfs.vfat /dev/sda1
ext2 でフォーマットする
CKB# mkfs.ext2 /dev/sda1
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 39
6.2.2 USB メモリ/USB ハードディスクのマウント
CKB-3352 の USB ホスト・コネクタは 2 つあります。
コネクタの上段、下段共に USB 2.0 High-Speed 対応のホストです。
USB メモリやハードディスクを CKB-3352 の USB ホストに挿入すると以下のメッセージが表示されます。
usb 1-1: new high speed USB device number 2 using musb-hdrc
usb 1-1: New USB device found, idVendor=058f, idProduct=6387
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: Mass Storage
usb 1-1: Manufacturer: Generic
usb 1-1: SerialNumber: 627DC7F1
scsi2 : usb-storage 1-1:1.0
scsi 2:0:0:0: Direct-Access
Generic
Flash Disk
8.07 PQ: 0 ANSI: 2
sd 2:0:0:0: Attached scsi generic sg0 type 0
sd 2:0:0:0: [sda] 4057088 512-byte logical blocks: (2.07 GB/1.93 GiB)
sd 2:0:0:0: [sda] Write Protect is off
sd 2:0:0:0: [sda] Assuming drive cache: write through
sd 2:0:0:0: [sda] Assuming drive cache: write through
sda: sda1
sd 2:0:0:0: [sda] Assuming drive cache: write through
sd 2:0:0:0: [sda] Attached SCSI removable disk
デバイスが"sda"と、パーティション"sda1"と表示されます。 このメッセージは、"dmesg"コマンドで再表示できます。
尚、他のマスストレージ(USB メモリ、USB ハードディスク)がすでにある場合は、"sdb", "sdc", "sde"... と、接続された順にデ
バイス名が追加されます。
CKB# mount /dev/sda1 /mnt
6.2.3 USB メモリ/USB ハードディスクのアンマウント
CKB-3352 の電源を切ったり、リセットする場合は、リード/ライトでマウントされたマスストレージはアンマウントしてください。
CKB# umount /dev/sda1
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 40
6.2.4 microSD カードのフォーマット
microSD カードをフォーマットする例を記述します。尚、フォーマットする場合はアンマウントしてから行ってください。
vFAT でフォーマットする
CKB# mkfs.vfat /dev/mmcblk0p1
ext2 でフォーマットする
CKB# mkfs.ext2 /dev/mmcblk0p2
6.2.5 microSD カードのマウント
microSD カードを CKB-3352 の microSD スロットに挿入します。
以下のメッセージが表示されます。このメッセージは、"dmesg"コマンドで再表示できます。
mmc0: new high speed SD card at address e624
mmcblk0: mmc0:e624 SU02G 1.84 GiB
mmcblk0: p1 p2
デバイスが"mmcblk0"と、microSD カードにパーティションが 2 つある場合は、パーティション"p1", "p2" と表示されます。
パーティション 1 を/mnt フォルダにマウントする場合
CKB# mount /dev/mmcblk0p1 /mnt
パーティション 2 を/usr フォルダにマウントする場合
CKB# mount /dev/mmcblk0p2 /usr
6.2.6 microSD カードのアンマウント
CKB-3352 の電源を切ったり、リセットする場合は、リード/ライトでマウントされたマスストレージはアンマウントしてください。
CKB# umount /dev/mmcblk0p1
CKB# umount /dev/mmcblk0p2
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 41
6.3 Linux ホストのディレクトリをマウントする(NFS)
以下のようにマウントする例を記述します。
Linux ホスト IP アドレス
192.168.0.11
Linux ホスト ディレクトリ・パス
/home/ubuntu/CKB/buildroot-{日付}/output/target/usr
CKB-3352 ターゲット ディレクトリ・パス
/usr
6.3.1 Linux ホスト側の準備
NFS サーバのインストール
Linux ホストにて、以下のコマンドを実行して NFS サーバをインストールしてください。
LINUXPC$ sudo apt-get install nfs-kernel-server
/etc/exports ファイルを編集する
Linux ホストにて、以下のコマンドを実行して NFS でマウントされるディレクトリを/etc/exportfs ファイルに追加してください。
/etc/exports ファイルに以下の 1 行を追加します。
/home/ubuntu 192.168.0.0/255.255.0.0(rw,sync,no_subtree_check)
NFS サーバを再起動する
Linux ホストにて、以下のコマンドを実行して NFS サーバを再起動してください。
LINUXPC$ sudo service nfs-kernel-server restart
LINUXPC$ sudo exportfs -r
6.3.2 CKB-3352 側でマウントする
mount コマンドを使ってマウントする
CKB-3352 の Linux で以下のコマンドで Linux ホストのディレクトリをマウントしてください。
Linux ホストの IP アドレスが 192.168.0.11 の場合は、以下のコマンドでマウントします。
CKB# mount -o nolock,tcp -t nfs 192.168.0.11:/home/ubuntu/SDK/buildroot-{日付}/output/target/usr/usr
/etc/fstab を使って Linux ホスト上のディレクトリをマウントする
起動時に毎回マウントする場合は、/etc/fstab に記述してください。
192.168.0.11:/home/ubuntu/SDK/buildroot-{日付}/output/target/usr /usr nfs rw,relatime,hard,nolock,tcp 0 0
/etc/fstab を記述後に以下のコマンドでマウントしてください。
CKB# mount -a
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 42
6.4 Windows ホストのディレクトリをマウントする(CIFS/SMB)
以下のようにマウントする例を記述します。
Windows IP アドレス
192.168.0.10
Windows 共有フォルダ
C:\shared
CKB-3352 ターゲット
/mnt/shared
6.4.1 Windows ホスト側の準備
Windows ホストでは共有するフォルダ(C:\shared)のプロパティにて共有フォルダを設定してください。
また、Windows 以外(NAS 等)の samba 共有可能なフォルダも CKB-3352 から CIFS を使ってマウントすることができます。
6.4.2 CKB-3352 側でマウントする
mount コマンドを使ってマウントする
CKB-3352 の Linux で以下のコマンドで Windows ホストのディレクトリをマウントしてください。
CKB# mount -t cifs //192.168.0.10/shared /mnt/shared -o rw,noserverino,username={username},password={password}
/etc/fstab を使って Windows ホスト上のディレクトリをマウントする
起動時に毎回マウントする場合は、/etc/fstab に記述してください。
//192.168.0.10/shared /mnt/shared cifs rw,noserverino,username={username},password={password} 0 0
/etc/fstab を記述後に以下のコマンドでマウントしてください。
CKB# mount -a
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 43
6.5 CM-J100 による無線 LAN を使う
CKB-3352 では、オプションの CM-J100 を使って無線 LAN(802.11b/g/n : 2.4GHz 帯)が使用できます。
無線 LAN モジュール(CM-J100)は、以下のファイルを使用します。
ローダブル・モジュール本体
ローダブル・モジュール初期化シェル
WPA クライアント設定アプリ
WPA サプリカント本体
hostapd 本体
iw 本体
connect.sh 作成シェル
アクセスポイント設定用シェル
hostapd(OPEN)設定用シェル
hostapd(WEP)設定用シェル
hostapd(WPA/WPA2-TKIP/AES)設定用シェル
Infra(OPEN)設定用シェル
Infra(WEP)設定用シェル
Infra(WPA/WPA2-TKIP/AES)設定用シェル
/lib/modules/cmj100.ko
/etc/init.d/S35cmj100
/usr/sbin/wpa_cli
/usr/sbin/wpa_supplicant
/usr/sbin/hostapd
/usr/sbin/iw
/etc/init.d/S36create_connect_sh
/etc/network/wlan-scripts/connect.sh
/etc/network/wlan-scripts/HOSTAPD_OPEN.sh
/etc/network/wlan-scripts/HOSTAPD_WEP.sh
/etc/network/wlan-scripts/HOSTAPD_WPA2.sh
/etc/network/wlan-scripts/INFR_OPEN.sh
/etc/network/wlan-scripts/INFR_WEP.sh
/etc/network/wlan-scripts/INFR_WPA2.sh
6.5.1 CM-J100 ローダブル・モジュール
CM-J100 のデバイス・ドライバは、ローダブル・モジュールの形で提供します。
Linux のカーネル・コンフィギュレーションでローダブル・モジュールの指定が可能です。
Linux カーネル・コンフィギュレーションを変更するには以下のコマンドを実行します。
ubuntu:~/SDK/buildroot-{日付}$ make linuux-menuconfig
[*] Device Drivers --->
[*] Network device support
[*] Wireless LAN
--->
--->
[*] Computex CM-J100 support
--->
System Type --->
CKB Features
--->
Select WLAN daughter board (CM-J100)
--->
(X) CM-J100
CKB-3352 はデフォルトで有効になっています。
デバイス・ドライバのソースは、以下のフォルダにあります。
buildroot-{日付}/board/ckb/common/cmj100-module
buildroot-{日付}/output/build/linux-3.2.1/drivers/net/wireless/cm-j100
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 44
6.5.2 無線 LAN 設定ファイル
無線 LAN モジュール(CM-J100)のローダブル・モジュールは以下のシェルで有効にします。
/etc/inti.d/S35cmj100
#!/bin/sh
#
# Start the insmod CM-J100 modules....
#
if [ -e /lib/modules/cmj100.ko ]; then
echo "insmod CM-J100..."
/sbin/insmod /lib/modules/cmj100.ko
fi
"/etc/network/wlan-scripts/connect.sh"ファイルが存在しない場合は、"/etc/inti.d/S36create_connect_sh"によって起動時
に作成します。デフォルトでは以下のシェルで、アクセス・ポイントに接続します。
/etc/network/wlan-scripts/connect.sh
#!/bin/sh
# $ Examples
# /etc/network/wlan-scripts/INFRA_WPA2.sh '"SSID"' '"Passphrase"'
/etc/network/wlan-scripts/HOSTAPD_WPA2.sh n 1 'CKB00a00b112257' 'pass1234'
# DHCP Server Start
udhcpd /etc/udhcpd.wlan0.conf
既存のアクセス・ポイントを使用する場合は、セキュリティに対応したシェルを使用してください。
デフォルトでは、アクセス・ポイント・モードで無線セキュリティ"WPA/WPA2-PSK(TKIP/AES)"、SSID"CKB{MAC アドレス}"、
パスワード"pass1234"に設定されていますので、無線 LAN に対応した機器を同じ設定にして接続できます。また、DHCP サー
バもデフォルトで起動しています。
Note
無線 LAN(wlan0)は、別売の CM-J100(無線 LAN モジュール)が必要です。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 45
6.6 ネットワークの設定方法
CKB-3352 では、起動時のネットワークの設定を以下のファイルで行っています。
/etc/network/interfaces.lo
設定ファイル
/etc/network/interfaces.eth0
/etc/network/interfaces.wlan0
/etc/init.d/S40network
ネットワーク・インターフェースの設定は、"/etc/init.d/S40network"が起動時にインターフェース毎の設定ファイルを
"/etc/network/interfaces"ファイルにすることで設定します。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 46
6.6.1 設定ファイル
インターフェース毎(lo, eth0, wlan0)の設定は、各ファイル(interfaces.lo, interfaces.eth0, interfaces.wlan0)で行ってください。
/etc/init.d/S40network
#!/bin/sh
#
# Start the network ....
#
echo "Starting network..."
# create interaces
echo auto lo wlan0 eth0 > /etc/network/interfaces
if [ -e /etc/network/interfaces.lo ]; then
cat /etc/network/interfaces.lo >> /etc/network/interfaces
fi
if [ -e /etc/network/interfaces.eth0 ]; then
cat /etc/network/interfaces.eth0 >> /etc/network/interfaces
fi
if [ -d /sys/class/net/wlan0 ]; then
# wait for wlan0 to be created
echo "Waiting for wlan0 interface to be ready..."
echo "Waiting for wlan0 interface to be ready..." > /dev/tty0
loop_cnt=0
# Send output and error messages of ifconfig to /dev/null
while [ 1 ]; do
ifconfig wlan0 > /dev/null 2>&1
if [ $? == 0 ]; then
break;
fi
echo "Please be patient...."
echo "Please be patient...." > /dev/tty0
sleep 1;
loop_cnt=$(( loop_cnt + 1));
if [ $loop_cnt == 10 ]; then
echo "Giving up...Interface wlan0 not found."
echo "Giving up...Interface wlan0 not found." > /dev/tty0
exit
fi
done
# add wlan0 interfaces
cat /etc/network/interfaces.wlan0 >> /etc/network/interfaces
# starting wpa_supplicant
echo "Starting wpa_supplicant..."
echo "Starting wpa_supplicant..." > /dev/tty0
wpa_supplicant -Dwext -iwlan0 -C/var/run -B
fi
/sbin/ifup -a
if [ -d /sys/class/net/wlan0 ]; then
# Connect to a network if it is specified
sh /etc/network/wlan-scripts/connect.sh
fi
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 47
ループバック・デバイスの設定
/etc/network/interfaces.lo
iface lo inet loopback
有線 LAN の設定
/etc/network/interfaces.eth0
DHCP クライアントの場合
iface eth0 inet dhcp
スタティック IP の場合
iface eth0 inet static
例: 192.168.0.25
address 192.168.0.25
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
無線 LAN の設定
/etc/network/interfaces.wlan0
DHCP クライアントの場合
iface wlan0 inet dhcp
スタティック IP の場合
iface wlan0 inet static
例: 192.168.100.1
address 192.168.100.1
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.1
出荷時に無効な設定をコメント"#"にしています。
6.6.2 ネットワークの接続、切断
設定ファイルを変更したり、ネットワークを切断、接続する場合は、以下のコマンドを実行します。
すべての I/F を接続
CKB# ifup -a
すべての I/F を切断
CKB# ifdown -a
有線 LAN のみ I/F を接続
CKB# ifup eth0
有線 LAN のみ I/F を切断
CKB# ifdown eth0
無線 LAN のみ I/F を接続
CKB# ifup wlan0
無線 LAN のみ I/F を切断
CKB# ifdown wlan0
ネットワーク設定(/etc/network/interfaces*) を変更した場合は、ifdown して ifup し直すと変更が反映されます。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 48
6.6.3 タイムサーバから時刻を設定する
以下のコマンドでネットワークにあるタイムサーバ(ntp サーバ)から時刻を設定します。
CKB# ntpdate {ntp サーバ}
crond を使って定期的に ntpdate を実行して時刻を合わせるには、以下のファイルを作成して buildroot を make します。
buildroot-{version}/board/cev/cevrza1l/fs/etc/inti.d/S90crond を以下の内容で作成します。
#!/bin/sh
# Start the crond....
#
case "$1" in
start)
echo "Starting crond..."
/sbin/crond
;;
stop)
echo -n "Stopping crond..."
killall crond
;;
restart|reload)
"$0" stop
"$0" start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
buildroot-{version}/board/cev/cevrza1l/fs/var/spool/cron/crontabs/root を以下の内容で作成します。
# Example of /var/spool/cron/crontab/root:
#
# +-------------- minute (0 - 59)
# | +----------- hour (0 - 23)
# | |
+-------- day (1 - 31)
# | |
| +----- month (1 - 12)
# | |
| |
+-- week (0 - 6) (Sun=0 or 7)
# | |
| |
|
# * *
* *
* command to be executed
# 1 時間毎に ntpdate を実行する
0 */1 * * * /usr/bin/ntpdate {ntp サーバ}
{ntp サーバ}には、NTP サーバの IP アドレスを指定してください。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 49
6.6.4 システム時刻を RTC に設定する
以下のコマンドでネットワークにあるシステム時刻を RTC に設定します。
CKB# hwclock –u –w
RTC に設定された時刻は Linux 起動時にシステム時刻にロードされます。
6.6.5 RTC を使ったサスペンドモードを試す
以下のコマンドでシステムは 10 秒間サスペンドモードに移行します。
CKB# rtcwake -a -d /dev/rtc0 --mode=mem --seconds=10
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 50
第7章 CKB-3352 に含まれるソフトウェア
CKB Linux SDK に含まれるソフトウェアのライセンス、ソース・パッケージのリストについては、「CKB Linux オプション 2.1 導
入ガイド」を参照してください。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 7 章 CKB-3352 に含まれるソフトウェア 51
第8章 トラブル・シューティング
8.1 最新情報、FAQ など
当社ホーム・ページ( http://www.computex.co.jp/ )に、CKB-3352 の最新情報や、FAQ を設けます。そちらの方もご参照くだ
さい。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
第 8 章 トラブル・シューティング 52
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
変更履歴
日付
2014-08
2015-01
版
1
2
内容
初版
・CKB Linux SDK のバージョンを V2.01.00 から V2.01.01 に変更
・「5.5 拡張コネクタ(EX_CN)用サンプル」の各項にある「linux-menuconfig」のメニュー説明の間違いを修正
・「5.5.8 ウォッチドッグタイマー用サンプル」の項を追加
CKB-3352 組み込み Linux
技術的なお問い合わせについて
CKB-3352 に関する技術的なお問い合わせについては、当社ホーム・ページ(http://www.computex.co.jp/)内、サポートペー
ジの「技術的なお問い合わせ」に掲載されているご質問用紙にご記入の上、E-mail 又は FAX にてテクニカルセンタまでお送りく
ださい。
株式会社コンピューテックス
テクニカルセンタ
E-mail : [email protected]
FAX :
075 (551)2585
株式会社コンピューテックス
本 社
〒605-0846 京都市東山区五条橋東 4-432-13 對嵐坊ビル
TEL:075-551-0528(代) FAX:075-551-2585
東京営業所
TEL:03-5753-9911(代) FAX:03-5753-9917
テクニカルセンタ
TEL:075-551-0373 FAX:075-551-2585
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
2015 年 1 月 第 2 版
CM1552(B)1501
© Copyright 2026 Paperzz