View
223
Download
4
Category
Preview:
Citation preview
ご使用になる前に このたびは 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
1.2 コマンド表記について ............................................................................................................................................... 2
1.3 CKB-3352 ボードについて ..................................................................................................................................... 3
1.4 対応ドライバについて .............................................................................................................................................. 5
1.5 準備するもの ............................................................................................................................................................. 6
1.6 動作環境 ................................................................................................................................................................... 7
1.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 はじめに .....................................................................................................................................................................12
3.2 CPU ブート・モード ..................................................................................................................................................12
3.3 イメージ・ファイル .....................................................................................................................................................12
3.4 ブート手順 ................................................................................................................................................................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
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 1 章 はじめに 1
第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&タッチパネル用コネクタを搭載
ハードウェアに関わる資料は、「組み込みボード 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
ハードウェア・マニュアル」を参照することをお勧めします。
当社のホーム・ページには、この他デバッガの便利な使い方などを記載しているほか、各種ドキュメントを用意しています。当
社ホーム・ページを是非参照してください。
Note
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 1 章 はじめに 2
マニュアルの構成は以 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 章 はじめに 3
1.3 CKB-3352 ボードについて
詳細仕様については、「CKB-3352 ハードウェア・マニュアル」を参照してください。
CKB-3352 TOP VIEW
CKB-3352 BOTTOM VIEW
[12] SW1
[14] LED1
[13] LED2
[9] DBG_CN
[8] WLAN_CN
[6] PCN1
[4] PCN2
[5] POWER
[10] microSD_CN
[11] EX_CN
[1] LAN_CN
[2] USB_CN
[3] SIO_CN
[7] SW2
[16] LCD_CN
[15] SIOEX_CN
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 1 章 はじめに 4
名称一覧
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 章 はじめに 5
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 章 はじめに 6
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アクセス・ポイントはお客様でご用意
ください。
buildrootをコンパイルするホスト OSが、「Ubuntu 12.04 LTS」以外の場合は、buildrootでコンパイル・エラーとなる
場合があります。
Note
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 1 章 はじめに 7
1.6 動作環境
組み込み Linuxの開発を行うには、以下のホスト環境が必要です。
動作環境
Windowsホスト・パソコン 対応 OS が動作するパソコン 補足
CPU intel Core i シリーズ(2 コア以上) 2GHz 以上
メモリ 4GB 以上
HDD 500GB 以上
DVD ドライブ DVD-Rメディアの読み込みが可能であること インストール時に必要
USB USB2.0 USB シリアル・コンバータに使用
LAN インターフェース 100BASE/TX 以上、1000BASE-T推奨
開発に必要なソフトウェア(Linuxパッケ
ージ等)をオンラインで入手する場合は
インターネットに接続可能のこと
RS-232C ポート USB シリアル変換アダプタを使用する場合は USB ポートが必要
メモリカードリーダ microSD/SDHC スロット。または microSD→USB 変換アダプタ
OS
Windows Vista 32 ビット版
Windows 7 32 ビット版、64 ビット版
Windows 8, Windows 8.1 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 第 2 章 メモリ・マップ 8
第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 章 メモリ・マップ 9
CPU のアドレスと NORフラッシュのアドレス、Linux ターゲットから見たブロック・デバイスを以下の表に記述します。
TI AM3352
(CPU)
MICRON M29W128GL
(NOR-Flash) 用途 Linux
ブロック・デバイス GP1[26..20] Address Block Address
0000000
08000000
0801FFFF
0 000000
01FFFF
1 次ブートローダ格納用
bootloader.bin(62KB 以内)(*1) /dev/mtdblock0
0000001
;
0000011
1-3 020000
07FFFF
2 次ブートローダ格納用
u-boot.bin(384KB 以内) /dev/mtdblock1
0000100
;
0000110
4-6 080000
0DFFFF LCD 起動画像用(384KB以内) (*2) /dev/mtdblock2
0000111 7 0E0000
0FFFFF U-Boot 変数格納用(128KB 以内) /dev/mtdblock3
0001000
;
1110111
8-119 100000
EFFFFF
Linux バイナリ・イメージ格納用
(uImage - 最大 14MB) (*3) /dev/mtdblock4
1111000
1111111 120-127
F00000
FFFFFF 予備(保存データなどに使用可能) /dev/mtdblock5
*1 : bootloader.bin は内蔵 RAM にコピーして実行するため 62K バイトを超えないようにしてください。(スタック領域:1K バイト)
*2 : LCDオプションを使用しない場合は不要です。
*3 : SD/MMC カード上の uImage を実行する場合は不要です。
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
Note
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 2 章 メモリ・マップ 10
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 Linux Parameter 31.75KByte
0x80007FC0 - 0x80FFFFFF Linux Kernel 15.97MByte
0x81000000 - 0x87AFFFFF initrd & free memory 107MByte
0x87B00000 - 0x87FFFFFF LCD Framebuffer 5MByte
2.2.3 EEPROM
EEPROMの仕様は下表のとおりです。
メーカー名 ST マイクロ
品名 M24C01-RMN6
I2Cアドレス 0x51
容量 1Kbit(128x8)
出荷時に当社ベンダ ID を使った有線 LAN の MACアドレスが書き込まれています。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 2 章 メモリ・マップ 11
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 第 3 章 ブート仕様 12
第3章 ブート仕様
3.1 はじめに
CKB-3352 で動作する Linux のブート手順を記述します。
3.2 CPU ブート・モード
CKB-3352 では、AM3352 のブート・モードをディップ・スイッチで切り替え可能です。
通常は、NORフラッシュからブートする XIPブート・モードを選択してください。
UART ブート・モードは、Windows ホスト・パソコンからシリアル・ケーブルを使って NORフラッシュを書き換える場合に選択し
ます。
ブート・モード ディップ・スイッチ(SW2)
1 2
XIP ブート (NOR フラッシュ) ON OFF
UARTブート OFF ON
出荷時は、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 章 ブート仕様 13
3.4 ブート手順
CPUがリセットまたは、電源ONすると、まずCPU内蔵ROMのプログラムが実行され、Bootピンに応じた動作が行われます。
ここでは、XIPブート・モードによる組み込み Linuxが起動するまでの手順を記述します。
XIPブートでは CPU 内蔵 ROMに書かれたプログラムが実行されて NORフラッシュの先頭にジャンプします。
順 プログラム 説明
1 CPU 内蔵 ROM プログラム
0x00020000 番地から実行
(システム ROM、書換不可)
Boot ピンから XIP ブートと判断
2 NOR フラッシュ(Bank0:0x08000000 番地)にジャンプ
1 次ブートを内蔵 RAMにコピーして、内蔵 RAMで実行します。
順 プログラム 説明
3 bootloader.bin (1 次ブート)
0x08000000 番地から実行
bootloader.bin を 0x08000000 番地から内蔵 RAM の 0x402F0400 番地にコピーして
bootloader.bin のエントリにジャンプ
1 次ブートでは、CPU やメモリの初期化などを行い、2 次ブートを RAMにコピーしてジャンプします。
順 プログラム 説明
4 bootloader.bin (1 次ブート)
0x402F0XXX 番地から実行
SDRAM の初期化
5 u-boot.bin(2次ブート)を NORフラッシュ(Bank1:0x08000000 番地)から、DDR(0x87500000)
に 384K バイトをコピー
6 起動時のタイトル画像(title_image.bin)を NOR フラッシュ(Bank4:0x08000000 番地)から、
FlameBuffer(0x87700000)にコピーして LCDに表示
7 u-boot.bin(SDRAM 0x87500000番地)にジャンプ
2次ブートはU-Bootを使用しています。U-Bootの環境設定により指定されたデバイスからカーネルを読み込んで実行します。
順 プログラム 説明
8 u-boot.bin (2次ブート)
0x87500000 番地から実行
MMU、キャッシュの初期化
9 u-boot-env の情報により以下のいずれかに分岐
1.NOR-Flash にある Linux を実行
2.SD/MMC にある Linux を実行
1. NOR-Flash にある Linux を実行
U-Boot環境変数の設定例:
U-BOOT> setenv bootcmd 'fread 8:0x08000000 0x80007FC0 0xE00000; bootm 0x80007FC0'
順 プログラム 説明
10 u-boot.binの続き uImageの先頭にあるヘッダに書かれたサイズを NORフラッシュ(Bank8:0x08000000番地)
からサイズ(0xE00000 バイト)分 SDRAM にコピー
128Kバイト単位でバンクを切り替えながらコピーします
11 カーネルの先頭(SDRAM 0x80007FC0 番地)にジャンプ
12 uImage
0x80007FC0 番地から実行
Linux カーネルとファイル・システムがブートします
2. SD/MMC カード(第 1 パーティションの/uImage)にある Linux を実行
U-Boot環境変数の設定例:
U-BOOT> setenv bootcmd 'mmc rescan 0; fatload mmc 0:1 0x80007FC0 /uImage; bootm 0x80007FC0'
順 プログラム 説明
10 u-boot.binの続き SD/MMC カードの先頭パーティション(fat)に書かれた uImage を SDRAM にコピー
11 カーネルの先頭(SDRAM 0x80007FC0 番地)にジャンプ
12 uImage
0x80007FC0 番地から実行
Linux カーネルがブートします。
1 次ブート、2 次ブートを実行したメモリ(RAM)は、Linuxカーネルにより上書きされます。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 4 章 NOR フラッシュ・メモリへの書き込み 14
第4章 NOR フラッシュ・メモリへの書き込み
4.1 はじめに
この章では Linuxのイメージ・ファイルを NORフラッシュに書き込む方法について説明します。
4.2 イメージ・ファイルの書き込み
4.2.1 Linux ホストから書き込む場合
Windowsホスト・パソコンにインストールされた VMware Player で動作する Linuxホストから NORフラッシュを書き換えることが
できます。
1. CKB-3352 のディップ・スイッチ(SW2)を以下のように UART ブート・モードに変更します。
1 2
OFF 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 次ブートローダ -b bootloader.bin
2 次ブートローダ -u u-boot.bin
Linux イメージ・ファイル -k uImage
起動時の LCD画像 -t 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 フラッシュ・メモリへの書き込み 15
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 フラッシュ・メモリへの書き込み 16
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 フラッシュ・メモリへの書き込み 17
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 第 5 章 サンプル・プログラム 18
第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 章 サンプル・プログラム 19
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 章 サンプル・プログラム 20
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 章 サンプル・プログラム 21
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 章 サンプル・プログラム 22
無線 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 章 サンプル・プログラム 23
カメラ制御
概要 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 章 サンプル・プログラム 24
ライセンス
概要 ライセンス・ファイルを表示します。
CGIプログラム licenses_main.cgi
ソース・ファイル licenses_main.c
buildrootで使用されているソフトウェアのライセンス情報を表示します。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 25
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 章 サンプル・プログラム 26
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 章 サンプル・プログラム 27
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 章 サンプル・プログラム 28
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 信号名 GPIO番号 No 信号名 GPIO番号
1 VCC_ADC 2
LCD_D12 / A16 / eQEP1A_IN /
MCASP0_ACLKR / MCAP0_AXR2 /
MII0_RXLNK / UART4_CTSn / GP0[8]
3 AIN0 4
LCD_D13 / A17 / eQEP1B_IN / MCASP0_FSR
/ MCAP0_AXR3 / MII0_RXER / UART4_RTSn
/ GP0[9]
5 AIN1 6
ASP0_AHCLKR / PWM0_SYNCI / ASP0_AXR2
/ SPI1_CS0 / eCAP2_IN_PWM2o / P0R30_31_3
/ GP3[17]
113
7 AIN2 8
ASP0_ACLKR / eQEP0A_IN / ASP0_AXR2 /
ASP1_ACLKX / MMC0_WP / P0R30_31_4 /
GP3[18]
114
9 GND_ADC 10 ASP0_FSR / eQEP0B_IN / ASP0_AXR3 /
ASP1_FSX / EMU2 / P0R30_31_5 / GP3[19] 115
11 VCC50(+5.0V) 12 VCC33(+3.3V)
13 AD1 / MMC1_D1 / GP1[1] 14 AD0 / MMC1_D0 / GP1[0]
15 AD3 / MMC1_D3 / GP1[3] 16 AD2 / MMC1_D2 / GP1[2]
17 AD5 / MMC1_D5 / GP1[5] 18 AD4 / MMC1_D4 / GP1[4]
19 AD7 / MMC1_D7 / GP1[7] 20 AD6 / MMC1_D6 / GP1[6]
21 CS1n / CLK / MMC1_CLK / EDIO_DI6 /
EDIO_DO6 / P1R30_31_12 / GP1[30] 22
XDMA_EVT_INT0 / TIM4 / CLKo1 / SPI1_CS1
/ P1R31_16 / EMU2 / GP0[19] 19
23 WEn / TIM6 / GP2[4] 24 XDMA_EVT_INT1 / TCLKIN / CLKo2 / TIM7 /
P0R31_16 / EMU3 / GP0[20] 20
25 OEn / TIM7 / GP2[3] 26
UART0_CTSn / UART4_RXD / DCAN1_TX /
I2C1_SDA / SPI1_D0 / TIM7 / EDC_SYNC0o /
GP1[8]
27 ADVn_ALE / TIM4 / GP2[2] 28
UART0_RTSn / UART4_TXD / DCAN1_RX /
I2C1_SCL / SPI1_D1 / SPI1_CS0 /
EDC_SYNC1o / GP1[9]
29
A1 / GM2_RXDV / RGM2_RCTL /
MMC2_D0 / A17 / MII1_TXD3 /
PWM0_SYNCo / GP1[17]
49 30
eCP0I_PWM0o / UART3_TXD / SPI1_CS1 /
CAPI_PWMo / SPI1_SCK / MMC0_WP /
DMA_EVT_INT2 / GP0[7]
7
31 ASP0_AXR0 / PWM0_TZ_IN / SPI1_D1 /
MMC2_CD / P0R30_31_2 / GP3[16] 112 32 VCC33(+3.3V)
33
ASP0_AXR1 / eQEP0_INDEX /
ASP1_AXR0 / EMU3 / P0R30_31_6 /
GP3[20]
116 34 ASP0_AHCLKX / eQEP0_STB / ASP0_AXR3 /
ASP1_AXR1 / EMU4 / P0R30_31_7 / GP3[21] 117
35 I2C0_SCL / TIM7 / UART2_RTSN /
eCAP1_IN_PWM1o / GP3[6] 36
ASP0_ACLKX / PWM0A / SPI1_SCLK /
MMC0_CD / P0R30_31_0 / GP3[14] 110
37 I2C0_SDA / TIM4 / UART2_CTSN /
eCAP2_IN_PWM2o / GP3[5] 38
ASP0_FSX / PWM0B / SPI1_D0 / MMC1_CD /
P0R30_31_1 / GP3[15] 111
39 GND 40 RSTo
GPIO として使用する場合は、Linuxカーネル・コンフィギュレーションで GPIO として選択してください。
ここでは、EX_CN の 30 ピンの GP0[7]を指定する例を示します。
アプリケーションを実行すると、GP0[7]が Low もしくは、High に変化する度にメッセージを表示します。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 29
何かキーが押されるとアプリケーションを終了します。
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] MODE(0-7) マルチプレクスの選択を 0~7 で指定します
bit[3] PULL_DISABLE(1), PULL_ENABLE(0) プルアップ/ダウンを禁止(1)/許可(0)に設定します
bit[4] PULL_UP(1) プルアップ(1)/プルダウン(0)に設定します
bit[5] INPUT_EN(1) 入力(1)/出力(0)に設定します
bit[6] SLEWCTRL FAST(0), SLOW(1) スルーコントロールを 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 章 サンプル・プログラム 30
5.5.4 CAN1サンプル
EX_CN の GPIO とマルチプレクスされた CAN1 を使用するためのアプリケーションについて記述します。
ここで記述する通信手順を行うには、CKB-3352 は送信用と受信用の 2 台と、CAN トランシーバとコネクタが実装された拡張
ボードが必要です。これら機器はユーザ様にてご用意ください。
CAN1 を使用する場合は、Linuxカーネル・コンフィギュレーションで EX_CN[26,28]を CAN1 に選択してコンパイルする必要が
あります。
No. 信号名
26 UART0_CTSn / UART4_RXD / DCAN1_TX / I2C1_SDA / SPI1_D0 / TIM7 / EDC_SYNC0o / GP1[8]
28 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 章 サンプル・プログラム 32
CAN 通信を行う手順を以下に記述します。
受信側の準備
CKB# canconfig can0 bitrate 50000 ctrlmode triple-sampling on
CKB# canconfig can0 start
CKB# candump can0
CAN の設定を行います。(ビットレート:50Kbps)
CAN の通信を開始します。
CAN を受信待ちにします。
送信側の準備
CKB# canconfig can0 bitrate 50000 ctrlmode triple-sampling on
CKB# canconfig can0 start
CKB# cansequence can0 -p
CAN の設定を行います。(ビットレート:50Kbps)
CAN の通信を開始します。
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 章 サンプル・プログラム 33
5.5.5 ADC サンプル
CKB-3352 の拡張コネクタ(EX_CN)の MPU_AN0[3], MPU_AN1[5], MPU_AN2[7]ピンから入力されるアナログ電源の値を
AM3352 の ADCで取得します。
No. 信号名
3 AN0
5 AN1
7 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 章 サンプル・プログラム 34
コンパイルと 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#
CKB#
CKB#
CKB#
CKB#
CKB#
CKB#
echo continuous > /sys/bus/iio/devices/iio\:device0/mode
echo 1 > /sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage0_en
echo 1 > /sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage1_en
echo 1 > /sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage2_en
echo 100 > /sys/bus/iio/devices/iio\:device0/buffer/length
echo 1 > /sys/bus/iio/devices/iio\:device0/buffer/enable
hexdump /dev/iio\:device0
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 35
5.5.6 SPI1 サンプル
CKB-3352 の拡張コネクタ(EX_CN)の 30 ピン、36 ピン、31ピン、38ピンを SPI1/CS0 として使用します。
SPI1 を使用する場合は、カーネル・コンフィギュレーションで機能を選択してください。
また、拡張コネクタの GP317は、LCD タッチパネルの割り込み信号と兼用です。
拡張コネクタで、SPI デバイスを接続する場合は、LCD タッチパネルを接続しないでください。
SPI1 を使用する場合は、Linuxカーネル・コンフィギュレーションで赤字の信号を選択してコンパイルする必要があります。
No. 信号名 No. 信号名
6 ASP0_AHCLKR / PWM0_SYNCI / ASP0_AXR2 /SPI1_CS0 /
eCAP2_IN_PWM2o / P0R30_31_3 / GP3[17]
22 XDMA_EVT_INT0 / TIM4 / CLKo1 / SPI1_CS1 / P1R31_16 /
EMU2 / GP0[19]
26 UART0_CTSn / UART4_RXD / DCAN1_TX / I2C1_SDA /
SPI1_D0 / TIM7 / EDC_SYNC0o / GP1[8]
28 UART0_RTSn / UART4_TXD / DCAN1_RX / I2C1_SCL /
SPI1_D1 / SPI1_CS0 / EDC_SYNC1o / GP1[9]
30 eCP0I_PWM0o / UART3_TXD / SPI1_CS1 / CAPI_PWMo /
SPI1_SCK / MMC0_WP / DMA_EVT_INT2 / GP0[7]
31 ASP0_AXR0 / PWM0_TZ_IN / SPI1_D1 / MMC2_CD /
P0R30_31_2 / GP3[16]
36 ASP0_ACLKX / PWM0A / SPI1_SCLK / MMC0_CD /
P0R30_31_0 / GP3[14]
38 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 章 サンプル・プログラム 36
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 UART0_CTSn / UART4_RXD / DCAN1_TX / I2C1_SDA / SPI1_D0 /
TIM7 / EDC_SYNC0o / GP1[8]
28 UART0_RTSn / UART4_TXD / DCAN1_RX / I2C1_SCL / SPI1_D1 /
SPI1_CS0 / EDC_SYNC1o / GP1[9]
35 I2C0_SCL / TIM7 / UART2_RTSN /
eCAP1_IN_PWM1o / GP3[6]
37 I2C0_SDA / TIM4 / UART2_CTSN /
eCAP2_IN_PWM2o / GP3[5]
同じ信号がマルチプレクスされています。 使用するピンを選択してください。
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 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 37
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 章 サンプル・プログラム 38
5.5.8 ウォッチドッグタイマー用サンプル
CKB-3352 のウォッチドッグタイマーを使ったサンプル・プログラムを付属しています。
ウォッチドッグのカーネル・ドライバは、以下のソースで制御しています。
カーネル・コンフィギュレーション Device Drivers --->
[*] Watchdog Timer Support --->
<*> OMAP Watchdog (デフォルトで有効です)
フラグ CONFIG_OMAP_WATCHDOG
ソース ${BUILDROOT_DIR}/output/build/linux-3.2.1/drivers/watchdog/omap_wdt.c
ウォッチドッグタイマー用のデバイス・ファイルを使用します。
デバイス・ファイル 説明
/dev/watchdog ウォッチドッグ用のデバイス・ファイルです。
アプリケーションのソースは以下にあります。
アプリケーション ソース・ファイル
saWatchdog ${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 第 6 章 使用例 39
第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 章 使用例 40
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 章 使用例 41
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 章 使用例 42
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 章 使用例 43
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 章 使用例 44
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 章 使用例 45
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 サー
バもデフォルトで起動しています。
無線 LAN(wlan0)は、別売の CM-J100(無線 LANモジュール)が必要です。
Note
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 6 章 使用例 46
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 章 使用例 47
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 章 使用例 48
ループバック・デバイスの設定
/etc/network/interfaces.lo
iface lo inet loopback
有線 LAN の設定
/etc/network/interfaces.eth0
DHCP クライアントの場合 iface eth0 inet dhcp
スタティック IP の場合
例: 192.168.0.25
iface eth0 inet static
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 の場合
例: 192.168.100.1
iface wlan0 inet static
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 章 使用例 49
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 章 使用例 50
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 第 7 章 CKB-3352 に含まれるソフトウェア 51
第7章 CKB-3352 に含まれるソフトウェア
CKB Linux SDK に含まれるソフトウェアのライセンス、ソース・パッケージのリストについては、「CKB Linux オプション 2.1 導
入ガイド」を参照してください。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1 第 8 章 トラブル・シューティング 52
第8章 トラブル・シューティング
8.1 最新情報、FAQ など
当社ホーム・ページ( http://www.computex.co.jp/ )に、CKB-3352の最新情報や、FAQを設けます。そちらの方もご参照くだ
さい。
CKB-3352 組み込み Linux ユーザーズ・マニュアル V2.1
変更履歴
日付 版 内容
2014-08 1 初版
2015-01 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 : support@computex.co.jp
FAX : 075 (551)2585
Recommended