Comments
Description
Transcript
CKB-RZ/A1H 組み込み Linux ユーザーズ
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 (第 2 版) Copyright (C)2014 (株)コンピューテックス ご使用になる前に CKB-RZ/A1H 組込み 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-RZ/A1H ボードについて .............................................................................................................................. 3 対応ドライバについて .............................................................................................................................................. 5 準備するもの ............................................................................................................................................................. 6 動作環境 ................................................................................................................................................................... 7 Linux クロス開発環境 ............................................................................................................................................. 7 第 2 章 メモリ・マップ ................................................................................................. 8 2.1 はじめに ....................................................................................................................................................................... 8 2.2 メモリ・デバイス........................................................................................................................................................... 8 2.2.1 SPI フラッシュ・メモリ ................................................................................................................................... 8 予備の領域を使用する場合 ................................................................................................................................................................................9 MTD ブロックの配置を変更する場合 .................................................................................................................................................................9 2.2.2 SDRAM メモリ.............................................................................................................................................. 9 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 章 SPI フラッシュ・メモリへの書き込み .......................................................14 4.1 はじめに .....................................................................................................................................................................14 4.2 イメージ・ファイルの書き込み ...............................................................................................................................14 4.2.1 eSD ブート・モードを使って Linux ホストから書き込む場合........................................................14 4.2.2 シリアル・ケーブルを使って書き込む場合 .........................................................................................17 4.2.3 PALMiCE3 を使って書き込む場合 ....................................................................................................17 4.2.4 USB メモリから uImage.bin を書き換える場合 ...............................................................................18 U-Boot コマンドを使って USB メモリのバイナリを SPI フラッシュに書き込む ........................................................................................ 18 Linux から USB メモリを使って書き換える...................................................................................................................................................... 18 4.3 U-Boot の設定 .......................................................................................................................................................19 4.3.1 U-Boot 環境変数の確認と設定 .......................................................................................................19 第 5 章 サンプル・プログラム ..................................................................................20 5.1 はじめに .....................................................................................................................................................................20 5.2 HTTP サーバ&CGI サンプル ................................................................................................................................21 5.2.1 概要 ............................................................................................................................................................21 5.2.2 ソース・ファイル ..........................................................................................................................................21 5.2.3 コンパイル ...................................................................................................................................................22 5.2.4 Web サーバの起動 ...................................................................................................................................22 5.2.5 各操作の説明 .........................................................................................................................................23 LED 制御 ................................................................................................................................................................................................................. 23 有線 LAN(eth0)の設定 ...................................................................................................................................................................................... 23 無線 LAN(wlan0)の設定.................................................................................................................................................................................... 24 設定内容をフラッシュ・メモリに保存 ................................................................................................................................................................. 25 CKB-RZ/A1H 再起動 ....................................................................................................................................................................................... 25 ライセンス .................................................................................................................................................................................................................. 25 5.3 LCD、タッチパネル、LED 用サンプル .................................................................................................................26 5.4 拡張コネクタ(EXT1_CN)用サンプル .................................................................................................................27 5.4.1 拡張コネクタのマルチプレクス設定 .....................................................................................................27 5.4.2 メモリバス(/CS2 空間)アクセスサンプル(8 ビット) ...........................................................................27 5.4.3 GPIO クラス ................................................................................................................................................29 GPIO 番号表 ......................................................................................................................................................................................................... 29 EXT1_CN 信号表 ................................................................................................................................................................................................. 30 Linux の GPIO クラスを使って EXT1_CN の GPIO ピンを操作する ....................................................................................................... 31 GPIO クラスを使ったアプリケーション例 ............................................................................................................................................................ 31 5.4.4 ADC コンバータ .........................................................................................................................................32 EXT2_CN 信号表 ................................................................................................................................................................................................. 32 デバイス・ファイル..................................................................................................................................................................................................... 32 5.4.5 SPI2 .............................................................................................................................................................33 EXT2_CN 信号表 ................................................................................................................................................................................................. 33 デバイス・ファイル..................................................................................................................................................................................................... 33 サンプル・ソース ....................................................................................................................................................................................................... 33 5.4.6 RIIC3(I2C) ..................................................................................................................................................34 EXT1_CN 信号表 ................................................................................................................................................................................................. 34 第 6 章 使用例 .......................................................................................................35 6.1 はじめに .....................................................................................................................................................................35 6.2 マスストレージ(USB/microSD)をマウントする ...............................................................................................35 6.2.1 USB メモリ/USB ハードディスクのフォーマット ..................................................................................35 vFAT でフォーマットする ....................................................................................................................................................................................... 35 ext2 でフォーマットする ......................................................................................................................................................................................... 35 6.2.2 USB メモリ/USB ハードディスクのマウント ........................................................................................36 6.2.3 USB メモリ/USB ハードディスクのアンマウント .................................................................................36 6.2.4 microSD カードのフォーマット ................................................................................................................37 vFAT でフォーマットする ....................................................................................................................................................................................... 37 ext2 でフォーマットする ......................................................................................................................................................................................... 37 6.2.5 microSD カードのマウント ......................................................................................................................37 パーティション 1 を/mnt フォルダにマウントする場合 .................................................................................................................................... 37 パーティション 2 を/usr フォルダにマウントする場合 ..................................................................................................................................... 37 6.2.6 microSD カードのアンマウント...............................................................................................................37 6.3 Linux ホストのディレクトリをマウントする(NFS) ...............................................................................................38 6.3.1 Linux ホスト側の準備 ............................................................................................................................38 NFS サーバのインストール ................................................................................................................................................................................... 38 /etc/exports ファイルを編集する .................................................................................................................................................................... 38 NFS サーバを再起動する ................................................................................................................................................................................... 38 6.3.2 CKB-RZ/A1H 側でマウントする .........................................................................................................38 mount コマンドを使ってマウントする ................................................................................................................................................................. 38 /etc/fstab を使って Linux ホスト上のディレクトリをマウントする ............................................................................................................ 38 6.4 CM-J100 による無線 LAN を使う ....................................................................................................................39 6.4.1 CM-J100 ローダブル・モジュール .........................................................................................................39 6.4.2 無線 LAN 設定ファイル .........................................................................................................................40 6.5 ネットワークの設定方法 .......................................................................................................................................41 6.5.1 設定ファイル ..............................................................................................................................................42 6.5.2 ネットワークの接続、切断 .....................................................................................................................43 6.5.3 タイムサーバから時刻を設定する .......................................................................................................44 6.5.4 システム時刻を RTC に設定する .......................................................................................................44 第 7 章 CKB-RZ/A1H に含まれるソフトウェア................................................45 第 8 章 トラブル・シューティング ............................................................................46 8.1 最新情報、FAQ など ...........................................................................................................................................46 第1章 はじめに 1.1 はじめに このマニュアルは、CKB-RZ/A1H ボード用の組み込み Linux について記述しています。 本版で説明する機能は、CKB Linux SDK V2.01.01 で使用可能です。 主な特長は以下のとおりです。 ルネサス製 Cortex-A9 コア搭載 RZ/A1H(400MHz 品)に対応 USB2.0 ホスト(High-Speed)を 2 つ搭載し、マスストレージに対応 microSD カードスロットを搭載 有線 LAN(10Base-T/100Base-TX)を搭載 無線 LAN モジュール(SDIO 接続:CM-J100)を搭載可能(オプション) タッチパネル付き LCD モジュールを搭載可能 Note ハードウェアに関わる資料は、「組み込みボード CKB-RZ/A1H」に付属する CD-ROM の中にある資料を参照してくださ い。 本製品のマニュアルは以下のマニュアルで構成されています。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル(本書) 「組み込みボード CKB-RZ/A1H」で動作する組み込み Linux の機能について記載されています。 CKB Linux オプション 2.1 導入ガイド 「組み込みボード CKB シリーズ」共通の Linux 開発環境(Linux ホスト)の構築から、ビルド、フラッシュ・メモリへの書 込み、および、当社デバッガ(C-Shark と、PALMiCE3)でデバッグするための手順までの概要が記載されていま す。 本製品をセットアップされる場合は、「 CKB Linux オプション 2.1 導入ガイド」に沿って行い、必要な箇所は本書や 「CKB-RZ/A1H ハードウェア・マニュアル」を参照することをお勧めします。 当社のホーム・ページには、この他デバッガの便利な使い方などを記載しているほか、各種ドキュメントを用意しています。当 社ホーム・ページを是非参照してください。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 1 章 はじめに 1 マニュアルの構成は以下のとおりです。 第 1 章 はじめに 「組み込みボード CKB-RZ/A1H」で動作する Linux の開発を行う為の準備について記述しています。 第 2 章 メモリ・マップ CKB-RZ/A1H で動作する Linux が使用する CPU、SPI フラッシュ、RAM のメモリ・マップを記述しています。 第 3 章 ブート仕様 CKB-RZ/A1H で動作する Linux のブート手順を記述しています。 第 4 章 SPI フラッシュ・メモリへの書き込み CKB Linux SDK で開発したプログラム(バイナリ・ファイル)を CKB-RZ/A1H の SPI フラッシュに書き込む方法を記 述しています。 第 5 章 サンプル・プログラム CKB-RZ/A1H Linux に標準でコンパイルされるサンプル・プログラムについて記述しています。 第 6 章 使用例 CKB-RZ/A1H Linux で行える各種機能についての使用例を記述しています。 第 7 章 CKB-RZ/A1H に含まれるソフトウェア CKB-RZ/A1H に含まれるソフトウェアやライセンスについて記述しています。 第 8 章 トラブル・シューティング CSIDE が使用できない場合や、デバッグ時のトラブル・シューティングです。 1.2 コマンド表記について 本マニュアルで説明する表記について説明します。 コマンドの表記は以下のように記述します。 コマンド表記 説明 WINPC> command parameter … Windows ホスト・パソコンで実行するコマンドを示します。 LINUXPC$ command parameter … Linux ホスト(Ubuntu)で実行するコマンドを示します。 U-BOOT> command parameter … CKB-RZ/A1H のコンソールで実行する U-Boot コマンドを示します。 CKB# command parameter … CKB-RZ/A1H のコンソールで実行する Linux コマンドを示します。 Linux ホストと、CKB-RZ/A1H コマンドのプロンプトが“#”の場合は root 権限で、“$”の場合はユーザ権限で実行します。 ユーザ権限から sudo コマンドで root 権限の実行が行えます。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 1 章 はじめに 2 1.3 CKB-RZ/A1H ボードについて 詳細仕様については、「CKB-RZ/A1H ハードウェア・マニュアル」を参照してください。 [2] USB_CN [3] SIO_CN [1] LAN_CN [4] POWER [16] DBG_CN [5] PCN2 [6] PCN1 [7] SW2 [8] SW1 [9] WLAN_CN [15] EXT1_CN [10] EXT2_CN [11] LED1 [12] LED2 [14] microSD_CN [13] RCA1_CN CKB-RZ/A1H TOP VIEW [17] SIOEX_CN [19] LCD_CN [18] CAMERA_CN CKB-RZ/A1H BOTTOM VIEW CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 1 章 はじめに 3 名称一覧 No. 名称 仕様 [1] LAN_CN LAN コネクタ [2] USB_CN USB ホストコネクタ [3] SIO_CN シリアル I/F コネクタ [4] POWER POWER LED (緑) [5] PCN2 2 芯電源ケーブル接続用コネクタ [6] PCN1 DC ジャック [7] SW2 CPU リセット・スイッチ [8] SW1 CPU モード・スイッチ [9] WLAN_CN 無線 LAN モジュール接続用コネクタ ※1 [10] EXT2_CN 拡張用端子 [11] LED1 モニタ用 LED (赤) [12] LED2 モニタ用 LED (赤) [13] RCA1_CN コンポジットビデオ入力端子 ※2 [14] microSD_CN microSD カードスロット [15] EXT1_CN 拡張用端子 [16] DBG_CN デバッガ接続用コネクタ [17] SIOEX_CN シリアル I/F 拡張端子 [18] CAMERA_CN カメラ・モジュール接続用コネクタ ※2 [19] LCD_CN ディスプレイ・モジュール接続用コネクタ ※1 無線 LAN モジュール(CM-J100)が接続可能です。 ※2 Linux ドライバは用意しておりません。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 1 章 はじめに 4 1.4 対応ドライバについて CKB Linux SDK V2.01.01 で対応する RZ/A1H 用の内蔵モジュールは以下になります。 内蔵モジュール 用途 対応状況 SDRAM MT48LC16M16A2P-6A (CS3) 32M バイト ○ UART0 UART0 コンソール入出力 ○ RIIC1 TSC2007 タッチパネル入力(Addr=0x48) ○ RIIC2 M24C01-RMN6 EEPROM(Addr=0x51) ○ VDC 出力 LCD 表示用フレームバッファ(LCD_CN)に対応 ○ USB0 USB ホスト(下段) ○ USB1 USB ホスト(上段) ○ SD0 microSD スロット ○ SD1 SDIO 接続無線 LAN アダプタ(CM-J100)用コネクタ ○ SPI マルチ I/O バス Ch.0 MX25L12835FZNI-10G SPI シリアルフラッシュ ○ イーサネットコントローラ(ETHER) Ether Phy(μPD60610) 10/100Mbps ○ ユーザ制御用 LED GPIO(P8_8, P8_9) ○ EXT1_CN (8 ビットメモリバス) /CS2、/X_WE0、/X_RD、D0-D7、A2-A5 ○ EXT1_CN (RIIC3) I2C(SCL3、SDA3) ○ EXT1_CN (SSI) SSISCK0、SSIWS0、SSITXD0、SSIRXD0 -- EXT2_CN (ADC) AN0, AN1, AN2, AN3, AN5 ○ EXT2_CN (SPI) RSPCK2、SSL20、MOSI2、MISO2 ○ CAMERA_CN カメラ・モジュール接続用コネクタ -- RCA1_CN コンポジット・ビデオ入力端子 -- 上記対応表の「--」の内蔵モジュールについては、Linux ドライバは用意しておりません。 EX_CN で使用可能な機能は一部マルチプレクスによる選択が可能です。 CKB-RZ/A1H 組み込み 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-RZ/A1H (別売 / CKB Linux オプションを使用する場合に必要です。) ● CKB-RZ/A1H ボード本体 ● 2 芯電源ケーブル ● CKB-RZ/A1H CD (CD-ROM) 無線 LAN モジュール CM-J100 (別売 / SDIO 接続、無線 LAN 機能を使用する場合に必要です。) ● CM-J100 本体 ディスプレイ・モジュール CKB-LCD-02 (別売) ● CKB-LCD-02 ボード本体 (タッチパネル付き LCD ボード) ● 接続ケーブル 作業用パソコン (ユーザ様にてご用意ください) 仕様に関しては「1.6 動作環境」を参照してください。 VMware Player (ユーザ様にてご用意ください) VMware Player 5.0.2 推奨。無償版を使用可能です。 Linux 開発環境(Linux ホスト)を動作させるために、作業用パソコンにインストールします。 ホスト・パソコンがインターネットに接続できない場合は、あらかじめ入手しておいてください。 Ubuntu 12.04 LTS (ユーザ様にてご用意ください) CKB-RZ/A1H の Linux 開発環境として”Ubuntu 12.04 LTS”を使用します。 このマニュアルでは、Windows ホスト・パソコンの VMware Player 上で動作させます。 インターネットに接続できない場合は、開発に必要なパッケージとともにあらかじめ入手しておいてください。 その他、有線 LAN を使用するための HUB や、無線 LAN を使用するための無線 LAN アクセス・ポイントはお客様でご用意 ください。 Note buildroot をコンパイルするホスト OS が、「Ubuntu 12.04 LTS」以外の場合は、buildroot でコンパイル・エラーとなる 場合があります。 CKB-RZ/A1H 組み込み 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-RZ/A1H の Linux 開発環境です。VMware Player 上で動作するようにインストールします。 以降の説明では、Linux ホストと記述します。 CKB Linux SDK V2.01.01 Linux ホストにインストールして開発環境を構築します。 必要なソフトウェアのインストールと環境構築の詳細については「CKB Linux オプション 2.1 導入ガイド」を参照してください。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 1 章 はじめに 7 第2章 メモリ・マップ 2.1 はじめに この章では、CKB-RZ/A1H に実装されたデバイスのメモリ・マップについて記述します。 2.2 メモリ・デバイス RZ/A1H に接続されるメモリ・デバイスのアドレスを下表に記述します。 RZ/A1H アドレス デバイス サイズ 0x08000000 - 0x0800003F(/CS2) 外部拡張 8 ビット・データバス(EXT_CN1) 信号:A2-5, D0-7, /CS2, /RD, /WE0 0x0C000000 - 0x0DFFFFFF(/CS3) SDRAM 32M バイト 0x18000000 - 0x18FFFFFF(SPI0) SPI フラッシュ・メモリ 16M バイト 0x20000000 - 0x209FFFFF 内蔵 RAM 10M バイト 2.2.1 SPI フラッシュ・メモリ SPI フラッシュ・メモリにはブートローダ、OS や各種データを格納しています。 CPU のアドレスと SPI フラッシュのアドレス、Linux ターゲットから見たブロック・デバイスを以下の表に記述します。 RZ/A1H (CPU) MX25L12835FZNI-10G (SPI-Flash) Address Address 18000000 1807FFFF 000000 07FFFF ブートローダ格納用 u-boot.bin /dev/mtdblock0 512K バイト 18080000 180DFFFF 080000 0DFFFF LCD 起動画像用(*1) /dev/mtdblock1 384K バイト 180E0000 180FFFFF 0E0000 0FFFFF U-Boot 変数格納用 /dev/mtdblock2 128K バイト 18100000 18EFFFFF 100000 EFFFFF Linux バイナリ・イメージ格納用(*2) uImage.bin /dev/mtdblock3 14M バイト /dev/mtdblock4 1M バイト 用途 18F00000 F00000 予備(保存データなどに使用可能) 18FFFFFF FFFFFF *1 :LCD オプションを使用しない場合は不要です。 *2 :SD/MMC カード上の uImage.bin を実行する場合は不要です。 Linux ブロック・デバイス サイズ Note SPI フラッシュを書き換えるプログラムは RAM で実行します。SPI フラッシュで実行しないでください。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 2 章 メモリ・マップ 8 予備の領域を使用する場合 デフォルトでの SPI フラッシュ・メモリは最後のブロックを予備として空けています。 電源断やリセットしても保持したいデータをこの領域に保存することができます。 予備領域(mtdblock4)をフォーマット mtdblock4 を ext2 でフォーマットします。 CKB# mkfs.ext2 /dev/mtdblock4 予備領域(mtdblock4)にデータを保存する例を以下に記述します。 /etc 以下にある保存したいファイルを mtdblock4 に保存して Linux 起動時に上書き設定する例を記述します。 /etc フォルダ以下のファイルを保存したい場合の例 CKB# mkdir -p /mnt/save_settings CKB# mount /dev/mtdblock4 /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/mtdblock4 /mnt/save_settings CKB# cp -rfp /mnt/save_settings/etc/* /etc/ CKB# umount /mnt/save_settings CKB# rm -r /mnt/save_settings MTD ブロックの配置を変更する場合 以下のソースに記述された変数の値を変更することで MTD ブロックのサイズや配置を変更できます。 変更箇所 Linux ソース・パス buildroot-{日付}/output/build/linux-3.8.13/arch/arm/mach-ckbrza1h/board-ckbrza1h.c 変数 static struct mtd_partition spibsc0_flash_partitions[] 2.2.2 SDRAM メモリ CKB-RZ/A1H 上で動作する組み込み Linux では SDRAM を使用します。 ここでは、Linux が使用する SDRAM について記述します。 Linux 使用メモリ(仮想アドレス) アドレス 0xC0000100 - 0xC0007FFF 0xC0008000 - 0xC07FFFFF 0xC0800000 - 0xC1FFFFFF 0x20200000 – 0x209FFFFF 用途 Linux Parameter Linux Kernel initrd & free memory LCD Framebuffer CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 サイズ 31.75KByte 7.97MByte 24MByte 8MByte 第 2 章 メモリ・マップ 9 2.2.3 EEPROM EEPROM の仕様は下表のとおりです。 メーカー名 ST マイクロ 品名 M24C01-RMN6 I2C アドレス 0x51 容量 1Kbit(128x8) 出荷時に当社ベンダ ID を使った有線 LAN の MAC アドレスが書き込まれています。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 2 章 メモリ・マップ 10 2.3 microSD カード CKB-RZ/A1H では microSD カードを Linux のファイル・システムとして使用できます。 CKB-RZ/A1H では SPI フラッシュ・メモリと SDRAM だけで Linux が起動するようになっており、基本ファイル・システムは、 uImage.bin にリンクされた initrd を RAM ディスクに展開して実行するようになっています。 /usr フォルダには必要最低限のファイルのみコピーして initrd を作成するようになっていますが、より大きなファイル・サイズの アプリケーションやデータを扱う場合は、microSD カードに配置して起動時にマウントするように変更してください。 2.3.1 microSD カードを/usr フォルダとして使用する場合 microSD カードを/usr フォルダとして使用する場合は以下のようにしてください。 Linux ホストから見た microSD のデバイスが、/dev/sde1 で、/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 フォルダのファイルをコピーします。 コマンドでマウントする方法を記載していますが、一旦 microSD カードを抜き差しして自動的にマウントしても構いません。 LINUXPC$ sudo mkdir /media/mmc_usr 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-RZ/A1H の Linux で起動時に上記で作成した microSD をマウントするには、以下の設定をしてください。 ~/buildroot-{日付}/board/ckb/ckb-rz/fs/etc/fstab # /etc/fstab: static file system information. # # <file system> <mount pt> <type> <options> <dump> <pass> ext2 ro,relatime,errors=continue 0 0 ; ; /dev/mmcblk0p1 /usr <=== この行を追加 options に rw を設定すると書き込み可能になりますが、書き込み中に電源断するとファイルが失われる可能性があります。ファ イルの破壊を防ぐには ro(リードオンリー)でマウントしてください。 書き込む必要のある時にのみ、rw フラグで remount することで microSD の破壊を最小限にしてください。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 2 章 メモリ・マップ 11 第3章 ブート仕様 3.1 はじめに CKB-RZ/A1H で動作する Linux のブート手順を記述します。 3.2 CPU ブート・モード CKB-RZ/A1H では、RZ/A1H の SPI フラッシュ・ブート・モードと SD ブート・モードがディップ・スイッチで切り替え可能です。 ブート・モード SPI フラッシュ・ブート eSD ブート ディップ・スイッチ(SW1-1) OFF ON 出荷時は、SPI フラッシュ・ブート・モードに設定されています。 3.3 イメージ・ファイル CKB-RZ/A1H で Linux を実行するためには、以下のバイナリ・ファイルが必要です。 buildroot-{日付}/output/images フォルダに作成されます。 ファイル名 種類 ファイルサイズ制限 u-boot.bin ブートローダ 512K バイト以内 title_image.bin 起動時のタイトル画像 384K バイト以内 uImage.bin Linux カーネル initrd(RAM ディスク)を含みます。 14M バイト以内 CKB-RZ/A1H では、カーネルと initrd を含む uImage.bin のサイズを 14MB 以内になるように作成してください。なお、initrd に入りきらないアプリケーションやデータなどは microSD カードや USB マスストレージにファイル・システムを構築してください。 また、本ボードに搭載される SDRAM は 32M バイトです。カーネル、ファイル・システム、アプリケーションが使用するメモリが 32M バイトを超えないようにしてください。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 3 章 ブート仕様 12 3.4 ブート手順 CPU がリセットまたは、電源 ON すると、まず CPU 内蔵 ROM のプログラムが実行され、Boot ピンに応じた動作が行われます。 ここでは、SPI ブート・モードによる組み込み Linux が起動するまでの手順を記述します。 まず、u-boot のスタートアップルーチンの先頭で u-boot 自身を内蔵 RAM にコピーします。 順 プログラム 説明 1 CPU 内蔵 ROM プログラム 0xFFFF0000 番地から実行 (システム ROM、書換不可) Boot ピンから SPI-Flash ブートと判断、SPI-Flash の先頭にジャンプ 2 3 u-boot.bin(SPI-Flash:0x18000000 番地)を内蔵 RAM(0x20020000 番地)にコピー コピーされた内蔵 RAM の u-boot のアドレスにジャンプ ブートローダ(U-Boot)では、CPU やメモリの初期化などを行い U-Boot の環境設定により指定されたデバイスからカーネルを 読み込んで実行します。 順 プログラム 説明 4 u-boot.bin(ブートローダ) 0x20020000 番地 SDRAM、MMU、キャッシュの初期化 5 6 1. 起動時のタイトル画像(title_image.bin)を SPI-Flash(0x18080000 番地)から、 FlameBuffer にコピーして LCD に表示 u-boot-env の情報により以下のいずれかに分岐 1.SPI-Flash にある Linux を実行 2.USB メモリにある Linux を実行 SPI-Flash にある Linux を実行 U-Boot 環境変数の設定例: U-BOOT> setenv bootcmd 'fread_kernel 0x0C007FC0;bootm 0x0C007FC0' 順 プログラム 説明 7 u-boot.bin の続き uImage.bin の先頭にあるヘッダに書かれたサイズを SPI-Flash(0x18100000 番地)から サイズ分 SDRAM にコピー 8 9 2. カーネルの先頭(SDRAM 0x0C007FC0 番地)にジャンプ uImage.bin 0x0C007FC0 番地から実行 Linux カーネルとファイル・システムがブートします USB メモリの/uImage.bin)にある Linux を実行 U-Boot 環境変数の設定例: U-BOOT> setenv bootcmd 'usb start;fatload usb 0 0x0C007FC0 /uImage.bin;bootm 0x0C007FC0 順 プログラム 説明 7 u-boot.bin の続き USB メモリ(fat 形式)の先頭パーティションに書かれた/uImage.bin ファイルを SDRAM にコピー 8 9 コピーされたプログラムの先頭(SDRAM 0x0C007FC0 番地)にジャンプ uImage.bin 0x0C007FC0 番地から実行 Linux カーネルがブートします。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 3 章 ブート仕様 13 第4章 SPI フラッシュ・メモリへの書き込み 4.1 はじめに この章では Linux のイメージ・ファイルを SPI フラッシュに書き込む方法について説明します。 4.2 イメージ・ファイルの書き込み 4.2.1 eSD ブート・モードを使って Linux ホストから書き込む場合 Windows ホスト・パソコンにインストールされた VMware Player で動作する Linux ホストから eSD ブート・モードを使って SPI フ ラッシュを書き換えることができます。 microSD カードに書かれたモニタ・プログラム「init_CKB-RZA1H.bin」が eSD ブートにより実行され、そのモニタ・プログラムと 「uartflasher_CKB」が UART 通信によりバイナリ・ファイルを転送し、SPI フラッシュに書き込みます。 そのため、モニタ・プログラム「init_CKB-RZA1H.bin」をあらかじめ dd コマンドで microSD カードに書いておく必要があります。 まず、Windows ホスト・パソコンに microSD カードを挿入し、パーティション情報より microSD のデバイス名を特定します。 入力としてモニタ・プログラムのバイナリ・ファイルを指定し、出力先として microSD のデバイスを指定します。 LINUXPC$ cd SPI-Flash-images/ckb-rza1h LINUXPC$ cat /proc/partitions major minor #blocks name 11 0 1048575 sr0 8 0 41943040 sda 8 1 40893440 sda1 8 2 1 8 80 3858432 sdb sda2 8 81 3857408 sdb1 ← sdb が microSD microSD にパーティションがある場合は、sdb1、sdb2…等のデバイスがあります。 この場合は、パーティションを全て削除して からモニタ・プログラムを書き込んでください。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 4 章 SPI フラッシュ・メモリへの書き込み 14 パーティションを削除する場合は、fdisk コマンドで行います。 $ sudo fdisk /dev/sdb コマンド (m でヘルプ): p ← p コマンドで確認 ディスク /dev/sdb: 3951 MB, 3951034368 バイト ヘッド 26, セクタ 34, シリンダ 8729, 合計 7716864 セクタ Units = セクタ数 of 1 * 512 = 512 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスク識別子: 0xffffffff デバイス ブート /dev/sdb1 始点 2048 終点 7716863 ブロック Id システム 3857408 b W95 FAT32 コマンド (m でヘルプ): d ← d コマンドで削除 選択したパーティション 1 ← 削除するパーティション番号を指定 コマンド (m でヘルプ): w ← w コマンドで変更を保存 パーティションテーブルは変更されました! ioctl() を呼び出してパーティションテーブルを再読込みします。 ディスクを同期しています。 モニタ・プログラムの microSD への書き込みは dd コマンドで行います。 LINUXPC$ sudo dd if=init_CKB-RZA1H.bin of=/dev/sdb 57+0 レコード入力 57+0 レコード出力 29184 バイト (29 kB) コピーされました、 0.34774 秒、 83.9 kB/秒 準備が整いましたら以下の手順で uartflasher_CKB により SPI フラッシュを書き換えます。 1. CKB ボードにモニタ・プログラムが書き込まれた microSD カードが挿入されていることを確認して、CKB ボードのディップ・ スイッチ(SW1-1)を ON にし、eSD ブートに変更します。 2. Windows ホスト・パソコンと CKB-RZ/A1H を RS-232C ケーブルで接続します。 3. VMware Player の「取り外し可能デバイス」の「Future Devices FT232R USB UART」を有効にしてください。 Linux ホストからは、/dev/ttyUSB0 で USB シリアル・コンバータを使った転送ができます。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 4 章 SPI フラッシュ・メモリへの書き込み 15 4. 以下のコマンドで書き換えたいバイナリ・ファイルをロードします。 LINUXPC$ cd buildroot-{日付}/output/images LINUXPC$ sudo ./uartflasher_CKB -flashimages -p /dev/ttyUSB0 -d CKB-RZ/A1H -u u-boot.bin -k uImage.bin -t title_image.bin 書き換えるバイナリのオプションとファイル名を以下の表に記述します。(同時に複数指定が可能です) 種類 ブートローダ Linux イメージ・ファイル 起動時の LCD 画像 オプション -u -k -t ファイル名 u-boot.bin uImage.bin 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 target... (power on or reset target now)」と表示されたら、CKB ボードの電源を ON または、リセット・ボタンを 押すと転送と書き込みを開始します。 6. 必要なバイナリ・ファイルをすべて書き込んだら CKB-RZ/A1H のディップ・スイッチ(SW1-1)を OFF にし、SPI ブートに変更 してリセットします。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 4 章 SPI フラッシュ・メモリへの書き込み 16 4.2.2 シリアル・ケーブルを使って書き込む場合 Windows ホスト・パソコンからシリアル・ケーブルを使って SPI フラッシュを書き換えることができます。 詳細は、「CKB Linux オプション 2.1 導入ガイド」の「フラッシュ・メモリへの書き込み」の章を参照してください。 4.2.3 PALMiCE3 を使って書き込む場合 CSIDE for PALMiCE3 ARM を使って SPI フラッシュにデータを書き込む方法を以下に記述します。 1. buildroot をコンパイルしておきます。 2. CKB Linux SDK DVD-ROM にある CSIDE プロジェクトファイル (PALMiCE3-ckb-rza1h.cpf)を使って PALMiCE3 ARM を 起動します。 3. CSIDE メニュー[ファイル]-[ロード]を選択するとファイル・サーバのダイアログが開きます。 4. この中から、以下のファイルを選択(ファイル名のチェックボックスを ON)してから[ダウンロード]ボタンを押してください。 ファイル名 ファイルの種類 ロード環境 ロード・アドレス buildroot-{日付}\output\images\title_image.bin バイナリ(*.bin) オブジェクトのみ 20100000 buildroot-{日付}\output\images\uImage.bin バイナリ(*.bin) オブジェクトのみ 0c007fc0 buildroot-{日付}\output\build\uboot-2013.04\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 title_image.bin U-BOOT> flash_titleimage 20100000 uImage U-BOOT> flash_kernel 0c007fc0 8. U-Boot の環境変数で以下のように設定して変更できます。 NOR フラッシュ U-BOOT> setenv bootcmd 'fread_kernel 0c007FC0; bootm 0c007FC0' USB メモリ U-BOOT> setenv bootcmd 'usb start;fatload usb 0 0c007fc0 /uImage.bin; bootm 0c007FC0' 9. saveenv コマンドにて U-Boot 環境変数を NOR フラッシュにセーブしてください。 環境変数の保存 U-BOOT> saveenv CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 4 章 SPI フラッシュ・メモリへの書き込み 17 4.2.4 USB メモリから uImage.bin を書き換える場合 U-Boot コマンドを使って USB メモリのバイナリを SPI フラッシュに書き込む U-Boot が既に SPI フラッシュに書き込まれている場合は、USB メモリを使って SPI フラッシュを書き換えることができます。 1. USB メモリを FAT でフォーマットしておきます。 2. 書き換える uImage.bin ファイルを USB メモリのルート(/)フォルダに書き込みます。 なお、Windows ホスト・パソコンで書き込む場合は、USB メモリが X ドライブであれば以下のように配置します。 X:\uImage.bin 3. CKB-RZ/A1H ボードの USB ホスト(下段)に USB メモリを挿入して電源を入れます。 4. U-Boot が、autoboot に設定されている場合はカーネルが起動する前になんらかのキーを押して U-Boot のコマンド・プロ ンプトに移行してください。 5. 以下のコマンドで USB メモリからカーネルを SPI フラッシュに書き換えます。 U-BOOT> usb start U-BOOT> fatload usb 0 0x0C007FC0 /uImage.bin U-BOOT> sf probe U-BOOT> sf erase 100000 +800000 ; +{サイズ} uImage.bin ファイルのサイズ以上を指定 U-BOOT> sf write 0x0C007FC0 100000 800000 ; {サイズ} uImage.bin ファイルのサイズ以上を指定 ext2 形式でフォーマットされた USB メモリを使用する場合は、上記の fatload コマンドを ext2load コマンドに置き換えて行うこと も可能です。 Linux から USB メモリを使って書き換える Linux が起動した状態で SPI フラッシュを書き換えるには以下のように行います。 システム・イメージや、ブートローダなどの製品自体のアップデートを行いたい場合に、この方法を推奨します。 1. USB メモリの第 1 パーティションにあらかじめ uImage.bin をコピーしておきます。 2. 以下のコマンドで USB メモリをマウントします。 CKB# mount /dev/sda1 /mnt 3. 以下のコマンドでシリアルフラッシュの/dev/mtdblock3 に uImage.bin を書き込みます。 CKB# dd if=/mnt/uImage.bin of=/dev/mtdblock3 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 4 章 SPI フラッシュ・メモリへの書き込み 18 4.3 U-Boot の設定 U-Boot はコマンドや環境変数を使用することで様々な設定や機能を使うことができます。 CKB-RZ/A1H で動作する U-Boot について記述します。 4.3.1 U-Boot 環境変数の確認と設定 U-Boot の環境変数は、"printenv"コマンドで確認できます。 U-BOOT> printenv baudrate=115200 bootargs=console=ttyS1,115200n8 bootcmd=bootm 0x0C007FC0 bootdelay=3 bootfile="uImage.bin" usbboot=usb start;fatload usb 0 0x0C007FC0 /uImage.bin;bootm 0x0C007FC0 spiboot=fread_kernel 0x0C007FC0;bootm 0x0C007FC0 stderr=serial stdin=serial stdout=serial ver=U-Boot 2011.03 (May 24 2013 - 15:12:44) Environment size: 367/2044 bytes U-Boot の環境変数の設定を変更する場合は、"setenv"と”saveenv”コマンドで設定を変更できます。 以下の例は、SPI フラッシュメモリに書かれたカーネルを実行します。 U-BOOT> setenv bootcmd ‘fread_kernel 0x0C007FC0;bootm 0x0C007FC0’ 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 フラッシュ・メモリに保存された U-Boot 環境変数をクリアしたい場合には以下のコマンドでクリアできます。 U-BOOT> sf erase 0xe0000 +0x20000 U-Boot 環境変数に設定された内容を実行するには、run コマンドで実行できます。 以下のコマンドでは、usbboot 環境変数に設定されたコマンドが実行されます。 U-BOOT> run usbboot CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 4 章 SPI フラッシュ・メモリへの書き込み 19 第5章 サンプル・プログラム 5.1 はじめに CKB Linux SDK では、デフォルトで、HTTP サーバと C 言語を使った CGI プログラムを簡単なサンプル・プログラムと拡張バ ス(EX_CN)を使用する場合のサンプル・プログラムを用意しています。 HTTP サーバ&CGI サンプル LED アプリケーション 有線 LAN(eth0)サンプル 無線 LAN(wlan0)サンプル (CM-J100 オプションが必要) タッチパネル・サンプル(CKB-LCD-02 オプションが必要) 拡張コネクタ用サンプル で構成されています。 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 20 5.2 HTTP サーバ&CGI サンプル 5.2.1 概要 Web ブラウザ経由で CKB-RZ/A1H ボード上の LED 制御をしたり、有線 LAN、無線 LAN の設定を変更、保存できます。 5.2.2 ソース・ファイル 本 Web アプリケーションの CGI プログラムは C 言語で記述されています。 httpd 関連ファイル: buildroot-{日付}/board/ckb/ckb-rz/fs/root/www/ index.html httpd サーバのメインのホーム・ページです。 style.css HTML のスタイルを設定したファイルです。 [cgi-bin] 生成された CGI(バイナリ)が格納されます。 [images] サンプル・プログラムで使用する画像ファイルが格納されています。 CGI ソース・ファイル: buildroot-{日付}/board/ckb/ckb-rz/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 サーバを設定するアプリケーション save_settings_main.c 設定をフラッシュ・メモリの/dev/mtdblock5 に保存するアプリケーション reboot_main.c CKB-RZ/A1H を再起動するアプリケーション licenses_main.c ライセンス・ファイルを表示するアプリケーション CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 21 5.2.3 コンパイル CGI サンプル・プログラムをコンパイルするには、作業ディレクトリへ移動して make コマンドを使用します。 作業ディレクトリ: buildroot-{日付}/board/ckb/ckb-rz/cgi-bin LINUXPC$ make デバッグするにはデバッグ情報を出力しておく必要があります。デバッグ情報を出力するには、コンパイラの引数に"-ggdb"を 指定します。 コンパイル操作に変更が必要な場合は Makefile を編集してください。 5.2.4 Web サーバの起動 Web アプリケーションを動作させるためには、Web サーバが必要になります。 本サンプルでは Web サーバに httpd を使用しています。 CKB-RZ/A1H ボード起動時に httpd を動作させるには下記のファイルを使用します。(デフォルトで起動します。) httpd 実行制御ソース・ファイル: buildroot-{日付}/board/ckb/ckb-rz/fs/etc/ httpd.conf httpd 設定ファイル [init.d] +--- S80httpd httpd 初期化シェル CKB-RZ/A1H の有線 LAN(eth)は、出荷時の設定で DHCP クライアントとして設定されています。 DHCP サーバから割り当てられた IP アドレスを確認して、CKB-RA/A1H と同一ネットワークにある Windows ホスト・パソコンのブ ラウザ(Google Chrome または、Firefox を推奨)で CKB-RZ/A1H の 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-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 22 5.2.5 各操作の説明 CKB-RZ/A1H と LAN で接続された Windows ホスト・パソコンからブラウザで CKB-RZ/A1H の IP アドレスを URL として入力 してください。 Firefox または、Google Chrome を推奨します。Internet Explorer では、stylesheet が適用されない部分があるので一部のスタ イルが文字でのみ表示されます。 LED 制御 概要 LED のアイコンをクリックすると LED の状態が反転します。 CGI プログラム led_main.cgi ソース・ファイル led_main.c ブラウザの操作ナビから、「LED 制御」を選択すると、LED のアイコンが表示されます。 LED のアイコンをクリックすると LED の状態が反転します。アイコンの状態と CKB-RZ/A1H ボード上の LED の状態が同じで あることを確認してください。 有線 LAN(eth0)の設定 概要 有線 LAN の IP アドレスを変更します。 CGI プログラム ethernet_form_main.cgi ソース・ファイル ethernet_form_main.c ブラウザの操作ナビから、「有線 LAN(eth0)の設定」を選択すると、IP アドレスを設定する項目が表示されます。 設定項目を入力して「上記変更を有効にします」をクリックすると有線 LAN の IP アドレスが変更されます。 IP アドレスを DHCP サーバから取得するか、固定 IP を指定することができます。 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 23 無線 LAN(wlan0)の設定 概要 無線 LAN の設定を行います。 CGI プログラム wireless_form_main.cgi ソース・ファイル wireless_form_main.c 動作モード、セキュリティ方式、SSID およびパスフレーズ(パスワード)を設定します。無線の動作モードで「アクセス・ポイント・ モード」にすると CKB ボード自身をアクセス・ポイントとして動作させます。このとき、固定 IP アドレスを指定して、DHCP サーバを 起動するかどうかを選択します。変更を実際の動作に反映するには、「上記変更を有効にします」をクリックしてください。 無線の動作モードで「インフラストラクチャ・モード」にすると指定されたアクセス・ポイントに接続します。IP アドレスを DHCP サ ーバから取得するか、固定 IP を指定することができます。変更を実際の動作に反映するには、「上記変更を有効にします」をクリ ックしてください。 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 24 設定内容をフラッシュ・メモリに保存 概要 IP アドレスの設定および無線 LAN セキュリティの設定の内容をフラッシュ・メモリに保存します。 CGI プログラム save_settings_main.cgi ソース・ファイル save_settings_main.c [書き込み]ボタンを押すと、IP アドレスの設定および無線 LAN セキュリティの設定の内容をフラッシュ・メモリに保存します。再 起動すると、保存内容を読み出して実際の動作に反映します。 CKB-RZ/A1H 再起動 概要 CKB-RZ/A1H ボードを再起動します。 CGI プログラム reboot_main.cgi ソース・ファイル reboot_main.c [再起動]ボタンをクリックすると、CKB-RZ/A1H ボードを再起動します。 なお、PALMiCE3 でデバッグ中の場合はデバッグを継続できなくなります。 ライセンス 概要 ライセンス・ファイルを表示します。 CGI プログラム licenses_main.cgi ソース・ファイル licenses_main.c buildroot で使用されているソフトウェアのライセンス情報を表示します。 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 25 5.3 LCD、タッチパネル、LED 用サンプル LCD ボード CKB-LCD-02 に付属するタッチパネルを使った GUI アプリケーションや、LED を制御するアプリケーションを付 属しています。 アプリケーションのソースは以下にあります。 アプリケーション ソースファイル 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/input/touchscreen0 タッチパネル用のデバイス・ファイルです。 /sys/class/leds/led1/brightness LED1 を点灯、消灯するシステム・ファイルです。 /sys/class/leds/led2/brightness LED2 を点灯、消灯するシステム・ファイルです。 LCD のカーネル・ドライバは、以下のソースで制御しています。 buildroot ディレクトリの output/build/linux-3.8.13/以下のソースを参照してください。 カーネル・コンフィギュレーション System Type ---> [*] Support LCD ---> Select LCD board ---> (X) CKB LCD-02 ( ) Visionx KTM050AL02 フラグ CONFIG_CKB_LCD_02 または、CONFIG_VISIONX_KTM050AL02 ソース arch/arm/mach-shmobile/board-ckbrza1h.c arch/arm/mach-shmobile/rskrza1-vdc5fb.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 ソース drivers/leds/led-class.c drivers/leds/led-gpio.c CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 26 5.4 拡張コネクタ(EXT1_CN)用サンプル CKB-RZ/A1H の EXT1_CN に拡張ボードを接続してアクセスする場合のアプリケーションサンプルを付属しています。 5.4.1 拡張コネクタのマルチプレクス設定 CKB-RZ/A1H の拡張コネクタ(EX_CN)では、ピンのマルチプレクスを変更して各種機能に使用する事が出来ます。 buildroot から、make linux-menuconfig にて、以下の設定で拡張コネクタのピンの設定が行えます。 カーネル・コンフィギュレーション System Type ---> ; EXT1_CN devices/ pin multiplex options ---> EXT2_CN devices/ pin multiplex options ---> WLAN_CN multiplex options ---> ; 5.4.2 メモリバス(/CS2 空間)アクセスサンプル(8 ビット) EXT1_CN のメモリバス(/CS2 空間 : 0x08000000 番地)をメモリ・マップしてデータを R/W するアプリケーションです。 EXT1_CN をメモリバス(/CS2)として使用するピンです。 8 ビットアクセスの場合は EXT1_CN の下記のピンを使用します。 No 3 5 7 9 11 13 15 信号名 P6_1 / D1 / LCD1_DATA9 / RLIN30TX / IRQ4 / TIOC1B / SSIDATA4 / TXD3 / DV0_DATA17 P6_3 / D3 / LCD1_DATA11 / RLIN31TX / IRQ2 / CTS5 / TIOC2B / TXD2 / DV0_DATA19 P6_5 / D5 / LCD1_DATA13 / CAN2TX / SCK5 / SSL10 / DV0_DATA21 P6_7 / D7 / LCD1_DATA15 / LCD0_TCON6 / RXD5 / MISO1 / DV0_DATA23 P5_8 / LCD0_EXTCLK / IRQ0 / DV1_CLK / DV0_CLK / CS2 P7_6 / WE0 / DQMLL / DV0_DATA22 / ET_TXD2 / CTS7 / SSIWS2 / TIOC2A P7_8 / RD / SSISCK3 / AVB_COMP_MATCH / CAN0RX / TIOC3A / IRQ1 No 4 6 8 10 信号名 P6_0 / D0 / LCD1_DATA8 / RLIN30RX / DV0_CLK / TIOC1A / IRQ5 / RXD3 / DV0_DATA16 P6_2 / D2 / LCD1_DATA10 / RLIN31RX / IRQ7 / TCLKA / TIOC2A / RXD2 / DV0_DATA18 P6_4 / D4 / LCD1_DATA12 / CAN2RX / IRQ3 / RTS5 / RSPCK1 / DV0_DATA20 P6_6 / D6 / LCD1_DATA14 / LCD0_TCON5 / TXD5 / MOSI1 / DV0_DATA22 12 P7_10 / A2 / SSIRXD3 / ET_RXD1 / CAN1TX / TIOC3C / IRQ2 14 P7_11 / A3 / SSITXD3 / ET_RXD2 / CAN1RX / TIOC3D / IRQ3 16 P7_12 / A4 / SSISCK4 / ET_RXD3 / TIOC4A / IRQ4 18 P7_13 / A5 / SSIWS4 / ET_MDIO / TIOC4B / IRQ5 アプリケーションのソースは以下にあります。 ソース・ファイル buildroot-{日付}/board/ckb/ckb-rz/samples/ex1_cn_mem/ 8 ビットアクセス用サンプル buildroot-{日付}/board/ckb/ckb-rz/samples/ex1_16bit_cn_mem/ 16 ビットアクセス用サンプル ドライバのソースは以下にあります。 メモリのタイプによりアクセスタイミングの変更を行う場合は、このファイルをカスタムしてください。 ソース・ファイル buildroot-{日付}/output/build/linux-3.8.13/drivers/mtd/chips/ckb_bsc_cs2.c CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 27 アプリケーションを実行します。CS2 空間の指定されたアドレスのデータをリードまたは、ライトします。 CPU の A0, A1 は未接続なので、RW 可能なアドレスは4バイトバウンダリでアクセスします。 書式 1(リード): ex1_cn_mem –r [番地 0,4,8,c,10,…] 書式 2(ライト): ex1_cn_mem –w [番地 0,4,8,c,10,…] [データ] CKB# ex1_cn_mem –r 4 /CS2 空間 4 番地を 8 ビットアクセスでリードします。 Data at 0x08000004 = 0x73 CKB# ex1_cn_mem –w 1c 55 /CS2 空間 1c 番地に 8 ビットアクセスで 55 をライトします。 Wrote 0x55 at 0x0800001c 書式 3(リード): ex1_16bit_cn_mem –r [番地 0,4,8,c,10,…] 書式 4(ライト): ex1_16bit_cn_mem –w [番地 0,4,8,c,10,…] [データ] CKB# ex1_cn_mem –r 4 /CS2 空間 4 番地を 16 ビットアクセスでリードします。 Data at 0x08000004 = 0x7312 CKB# ex1_cn_mem –w 1c 55aa /CS2 空間 1c 番地に 16 ビットアクセスで 55aa をライトします。 Wrote 0x55aa at 0x0800001c CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 28 5.4.3 GPIO クラス GPIO をアクセスする為の GPIO クラスについて説明します。 GPIO 番号表 GPIO クラスを使用して GPIO をアクセスするには、以下の番号を使ってアクセスします。 ポート 番号 ポート 番号 ポート 番号 ポート 番号 ポート 番号 ポート 番号 P0_0 0 P1_0 6 P2_0 22 P3_0 38 P4_0 54 P5_0 70 P0_1 1 P1_1 7 P2_1 23 P3_1 39 P4_1 55 P5_1 71 P0_2 2 P1_2 8 P2_2 24 P3_2 40 P4_2 56 P5_2 72 P0_3 3 P1_3 9 P2_3 25 P3_3 41 P4_3 57 P5_3 73 P0_4 4 P1_4 10 P2_4 26 P3_4 42 P4_4 58 P5_4 74 P0_5 5 P1_5 11 P2_5 27 P3_5 43 P4_5 59 P5_5 75 P1_6 12 P2_6 28 P3_6 44 P4_6 60 P5_6 76 P1_7 13 P2_7 29 P3_7 45 P4_7 61 P5_7 77 P1_8 14 P2_8 30 P3_8 46 P4_8 62 P5_8 78 P1_9 15 P2_9 31 P3_9 47 P4_9 63 P5_9 79 P1_10 16 P2_10 32 P3_10 48 P4_10 64 P5_10 80 P1_11 17 P2_11 33 P3_11 49 P4_11 65 P1_12 18 P2_12 34 P3_12 50 P4_12 66 P1_13 19 P2_13 35 P3_13 51 P4_13 67 P1_14 20 P2_14 36 P3_14 52 P4_14 68 P1_15 21 P2_15 37 P3_15 53 P4_15 69 ポート 番号 ポート 番号 ポート 番号 ポート 番号 ポート 番号 ポート 番号 P6_0 81 P7_0 97 P8_0 113 P9_0 129 P10_0 137 P11_0 153 P6_1 82 P7_1 98 P8_1 114 P9_1 130 P10_1 138 P11_1 154 P6_2 83 P7_2 99 P8_2 115 P9_2 131 P10_2 139 P11_2 155 P6_3 84 P7_3 100 P8_3 116 P9_3 132 P10_3 140 P11_3 156 P6_4 85 P7_4 101 P8_4 117 P9_4 133 P10_4 141 P11_4 157 P6_5 86 P7_5 102 P8_5 118 P9_5 134 P10_5 142 P11_5 158 P6_6 87 P7_6 103 P8_6 119 P9_6 135 P10_6 143 P11_6 159 P6_7 88 P7_7 104 P8_7 120 P9_7 136 P10_7 144 P11_7 160 P6_8 89 P7_8 105 P8_8 121 P10_8 145 P11_8 161 P6_9 90 P7_9 106 P8_9 122 P10_9 146 P11_9 162 P6_10 91 P7_10 107 P8_10 123 P10_10 147 P11_10 163 P6_11 92 P7_11 108 P8_11 124 P10_11 148 P11_11 164 P6_12 93 P7_12 109 P8_12 125 P10_12 149 P11_12 165 P6_13 94 P7_13 110 P8_13 126 P10_13 150 P11_13 166 P6_14 95 P7_14 111 P8_14 127 P10_14 151 P11_14 167 P6_15 96 P7_15 112 P8_15 128 P10_15 152 P11_15 168 マルチプレクスで GPIO 以外の機能にしている場合はポートとして使用できません。 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 29 EXT1_CN 信号表 EXT1_CN の GPIO 番号は以下の通りです。 No 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 信号名 +5V (VCC50) P6_1 / D1 / LCD1_DATA9 / RLIN30TX / IRQ4 / TIOC1B / SSIDATA4 / TXD3 / DV0_DATA17 P6_3 / D3 / LCD1_DATA11 / RLIN31TX / IRQ2 / CTS5 / TIOC2B / TXD2 / DV0_DATA19 P6_5 / D5 / LCD1_DATA13 / CAN2TX / SCK5 / SSL10 / DV0_DATA21 P6_7 / D7 / LCD1_DATA15 / LCD0_TCON6 / RXD5 / MISO1 / DV0_DATA23 P5_8 / LCD0_EXTCLK / IRQ0 / DV1_CLK / DV0_CLK / CS2 P7_6 / WE0 / DQMLL / DV0_DATA22 / ET_TXD2 / CTS7 / SSIWS2 / TIOC2A P7_8 / RD / SSISCK3 / AVB_COMP_MATCH / CAN0RX / TIOC3A / IRQ1 P8_12 / A20 / SPBCLK_1 / TIOC3C / SCK5 / PWM1E / SGOUT_2 / SSISCK4 P2_12 / D28 / RSPCK0 / DV0_DATA12 / SPBIO01_0 / CAN3RX / IRQ6 / LCD1_DATA12 / TIOC1B P2_11 / D27 / ET_RXD3 / DV0_DATA11 / SSITXD0 / TIOC1A / LCD1_DATA11 / VIO_D11 / MISO4 P2_10 / D26 / ET_RXD2 / DV0_DATA10 / SSIRXD0 / RLIN30TX / LCD1_DATA10 / VIO_D10 / MOSI4 GPIO 番号 No 2 信号名 +3.3V (VCC33) 82 4 P6_0 / D0 / LCD1_DATA8 / RLIN30RX / DV0_CLK / TIOC1A / IRQ5 / RXD3 / DV0_DATA16 81 84 6 P6_2 / D2 / LCD1_DATA10 / RLIN31RX / IRQ7 / TCLKA / TIOC2A / RXD2 / DV0_DATA18 83 86 8 88 10 78 12 103 14 105 16 125 18 34 20 GND 33 22 +3.3V (VCC33) 32 24 P3_1 / LCD0_TCON0 / ET_TXER / IRQ6 / TXD2 / SCI_TXD1 / AUDIO_CLK / PWM2B / SSL30 12 26 13 28 P1_6 / RIIC3SCL / DV1_VSYNC / IERXD / IRQ6 / VIO_D12 / DV0_DATA12 P1_7 / RIIC3SDA / DV1_HSYNC / RLIN30RX / IRQ7 / VIO_D13 / DV0_DATA13 GND 30 P6_4 / D4 / LCD1_DATA12 / CAN2RX / IRQ3 / RTS5 / RSPCK1 / DV0_DATA20 P6_6 / D6 / LCD1_DATA14 / LCD0_TCON5 / TXD5 / MOSI1 / DV0_DATA22 P7_10 / A2 / SSIRXD3 / ET_RXD1 / CAN1TX / TIOC3C / IRQ2 P7_11 / A3 / SSITXD3 / ET_RXD2 / CAN1RX / TIOC3D / IRQ3 P7_12 / A4 / SSISCK4 / ET_RXD3 / TIOC4A / IRQ4 P7_13 / A5 / SSIWS4 / ET_MDIO / TIOC4B / IRQ5 P2_8 / D24 / ET_RXD0 / DV0_DATA8 / SSISCK0 / LCD0_TCON6 / LCD1_DATA8 / VIO_D8 / RSPCK4 P2_9 / D25 / ET_RXD1 / DV0_DATA9 / SSIWS0 / RLIN30RX / LCD1_DATA9 / VIO_D9 / SSL40 RES GPIO 番号 85 87 107 108 109 110 39 30 31 CKB-RZ/A1H の拡張コネクタ(EX_CN)で、ピンのマルチプレクスを変更して各種機能に使用する事が出来ます。 buildroot から、make linux-menuconfig にて、以下の設定で拡張コネクタのピンの設定が行えます。 カーネル・コンフィギュレーション System Type ---> ; EXT1_CN devices/ pin multiplex options ---> EXT2_CN devices/ pin multiplex options ---> WLAN_CN multiplex options ---> ; GPOI として使用する場合は、各ピンのモードを上記メニューの指定のコネクタの使用するピンを GPIO に切り替える必要があ ります。 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 30 Linux の GPIO クラスを使って EXT1_CN の GPIO ピンを操作する Linux の GPIO クラスを使って GPIO 信号を High/Low する方法を記述します。 EXT1_CN コネクタの 17pin(P8_12)を出力ポートにして信号を High/Low する手順を以下に記述します。 ① /sys/class/gpio/export ファイルに操作したい GPIO 番号を設定します。 P8_12 は、GPIO 番号表から、“125”になります。 コマンド書式 : # echo 125 > /sys/class/gpio/export ② GPIO のディレクションを出力に設定します。 コマンド書式 : # echo out > /sys/class/gpio/P8_12/direction ③ GP8_12 に High レベルを出力します。 コマンド書式 : # echo 1 > /sys/class/gpio/P8_12/value ④ GP8_12 に Low レベルを出力します。 コマンド書式 : # echo 0 > /sys/class/gpio/P8_12/value ⑤ 制御が終わったら gpio47 を閉じます。 コマンド書式 : # echo 125 > /sys/class/gpio/unexport GPIO クラスを使ったアプリケーション例 アプリケーションのソースは以下にあります。 アプリケーション ソース・ファイル gpio_int buildroot-{日付}/board/ckb/common/samples/gpio_int/ 書式と仕様は以下のとおりです。指定 GPIO の立ち上がり、立下りの両エッジの割り込みを許可し変化を監視します。 [書式] # gpio_int <gpio-pin> gpio-pin = GPIO 番号 ここでは、EXT1_CN の 17 ピンの P8_12 を指定する例を示します。 アプリケーションを実行すると、P8_12 が Low もしくは、High に変化する度にメッセージを表示します。 何かキーが押されるとアプリケーションを終了します。 CKB# gpio_int 125 Press any key to terminate the application Current val=1 ...... poll() GPIO 8 interrupt occurred poll() GPIO 8 interrupt occurred poll() GPIO 8 interrupt occurred poll() GPIO 8 interrupt occurred Current val=0 ...... CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 31 5.4.4 ADC コンバータ ADC コンバータを使用する方法について説明します。 EXT2_CN 信号表 RZ/A1H の ADC 用のピンは、EXT2_CN コネクタに接続されています。 EXT2_CN の GPIO 番号は以下の通りです。 ピン番号 3 5 6 7 11 信号名 AN0 AN1 AN2 AN3 AN5 デバイス・ファイル ADC(oneshot モード)で使用するデバイス・ファイルは、以下のファイルです。 CKB# echo 0 > /sys/bus/iio/devices/iio\:device0/buffer/enable バッファを禁止 CKB# cat /sys/bus/iio/devices/iio\:device0/in_voltage5_raw AN5 の値をリード ADC(continuous モード)で使用するデバイス・ファイルは、以下のファイルです。 CKB# echo 0 > /sys/bus/iio/devices/iio\:device0/buffer/enable バッファを禁止 CKB# CKB# CKB# CKB# CKB# AN0 を使用許可 AN1 を使用許可 AN2 を使用許可 AN3 を使用許可 Timestamp を許可 echo 1 > echo 1 > echo 1 > echo 1 > echo 1 > /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 /sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage3_en /sys/bus/iio/devices/iio\:device0/scan_elements/in_timestamp_en CKB# echo 125 > /sys/bus/iio/devices/iio\:device0/in_voltage_sampling_frequency サンプリング周波数 (1-125Hz) 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 0000000 07b6 07a5 0794 07a6 11af 2dd2 df0c 137a 許可した ADC(AN0-AN3)とタ イムスタンプ値をリード /dev/iio:device0 を読み出すことで、設定したバッファ分の ADC データが許可した ADC の順に 16 ビット単位で取得できます。 一度に設定できるのは 4 つまでの AN になります。 /dev/iio:device0 のデータ・フォーマット 種類 ビット長 AN0 値 16bit AN1 値 16bit AN2 値 16bit AN3 値 16bit タイムスタンプ 64bit アプリケーションから、ADC をアクセスする場合は、これらデバイス・ファイルを使用してください。 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 32 5.4.5 SPI2 EXT2_CN の SPI2 を使用する方法について説明します。 EXT2_CN 信号表 RZ/A1H の SPI2 用のピンは、EXT2_CN コネクタに接続されています。 EXT2_CN ピン番号 4 6 8 10 信号名 RSPCK2 SSL20 MOSI2 MISO2 デバイス・ファイル 使用するデバイス・ファイルは、以下のファイルです。 /dev/spidev2.0 SPI2 デバイス・ファイル サンプル・ソース spidev_test は、SPI 通信を行うアプリケーションのサンプルです。 ドライバのソースは以下にあります。 ソース・ファイル buildroot-{日付}/output/build/linux-3.8.13/drivers/spi/ アプリケーションのソースは以下にあります。 ソース・ファイル buildroot-{日付}/board/ckb/common/samples/spidev_test/ spidev_test 使用例 CKB# # spidev_test -D /dev/spidev2.0 -b 8 -s 100000 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 SPI2 を 8bit、100KHz で通信する実行例です 第 5 章 サンプル・プログラム 33 5.4.6 RIIC3(I2C) EXT1_CN の RIIC3 を I2C マスターモードで使用する方法について説明します。 EXT1_CN 信号表 RZ/A1H の RIIC3 用のピンは、EXT1_CN コネクタに接続されています。 No 25 27 信号名 P1_6 / RIIC3SCL / DV1_VSYNC / IERXD / IRQ6 / VIO_D12 / DV0_DATA12 P1_7 / RIIC3SDA / DV1_HSYNC / RLIN30RX / IRQ7 / VIO_D13 / DV0_DATA13 GPIO 番号 12 13 ドライバのソースは以下にあります。 ソース・ファイル buildroot-{日付}/output/build/linux-3.8.13/drivers/i2c/busses/i2c-riic.c アプリケーションは、i2c-tools を使用します。ソースは以下にあります。 ソース・ファイル buildroot-{日付}/output/build/i2c-tools-3.1.0/tools/ i2c-tools 使用例 CKB# i2cdetect –r –y 2 /dev/i2c-2 で検出された応答のあるデバイスを表示します。 CKB# i2cget -f -y 2 0x51 0x03 b /dev/i2c-2 に接続された 0x51 アドレスを持つ I2C デバイスの 0x03 番地をリ ードします。 CKB# i2cget –f –y 2 0x51 0x12 0x55 b /dev/i2c-2 に接続された 0x51 アドレスを持つ I2C デバイスの 0x12 番地に 0x55 をライトします。 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 5 章 サンプル・プログラム 34 第6章 使用例 6.1 はじめに この章では、CKB-RZ/A1H 組み込み 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-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 6 章 使用例 35 6.2.2 USB メモリ/USB ハードディスクのマウント CKB-RZ/A1H の USB ホストコネクタは 2 つあります。 コネクタの上段は USB 2.0 Full-Speed 対応のホスト、下段は USB2.0 High-Speed 対応のホストです。 USB メモリやハードディスクを CKB-RZ/A1H の 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-RZ/A1H の電源を切ったり、リセットする場合は、リード/ライトでマウントされたマスストレージはアンマウントしてくださ い。 CKB# umount /dev/sda1 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 6 章 使用例 36 6.2.4 microSD カードのフォーマット microSD カードをフォーマットする例を記述します。尚、フォーマットする場合はアンマウントしてから行ってください。 vFAT でフォーマットする CKB# mkfs.vfat /dev/mmcblk0p1 ext2 でフォーマットする CKB# mkfs.ext2 /dev/mmcblk0p2 6.2.5 microSD カードのマウント microSD カードを CKB-RZ/A1H の 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-RZ/A1H の電源を切ったり、リセットする場合は、リード/ライトでマウントされたマスストレージはアンマウントしてくださ い。 CKB# umount /dev/mmcblk0p1 CKB# umount /dev/mmcblk0p2 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 6 章 使用例 37 6.3 Linux ホストのディレクトリをマウントする(NFS) 以下のようにマウントする例を記述します。 Linux ホスト IP アドレス 192.168.0.11 Linux ホスト ディレクトリ・パス /home/ubuntu/CKB/buildroot-{日付}/output/target/usr CKB-RZ/A1H ターゲット ディレクトリ・パス /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-RZ/A1H 側でマウントする mount コマンドを使ってマウントする CKB-RZ/A1H の 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-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 6 章 使用例 38 6.4 CM-J100 による無線 LAN を使う CKB-RZ/A1H では、オプションの 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.4.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 Implementations ---> Select WLAN daughter board (CM-J100) ---> (X) CM-J100 CKB-RZ/A1H ではデフォルトで有効になっています。 デバイス・ドライバのソースは、以下のフォルダにあります。 buildroot-{日付}/board/ckb/common/cmj100-module buildroot-{日付}/output/build/linux-3.8.13/drivers/net/wireless/cm-j100 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 6 章 使用例 39 6.4.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"によって起動時 に作成します。デフォルトでは以下のシェルで、CKB ボード自身をアクセス・ポイントとして起動します。 /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-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 6 章 使用例 40 6.5 ネットワークの設定方法 CKB-RZ/A1H では、起動時のネットワークの設定を以下のファイルで行っています。 /etc/network/interfaces.lo 設定ファイル /etc/network/interfaces.eth0 /etc/network/interfaces.wlan0 /etc/init.d/S40network ネットワーク・インターフェースの設定は、"/etc/init.d/S40network"が起動時にインターフェース毎の設定ファイルから "/etc/network/interfaces"ファイルを出力することで設定します。 実際に ifup コマンドで設定されるファイルは、この"/etc/network/interfaces"ファイルになります。 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 6 章 使用例 41 6.5.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-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 6 章 使用例 42 ループバック・デバイスの設定 /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 デフォルトでは有線 LAN が DHCP クライアント、無線 LAN がスタティック IP で設定されています。 6.5.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-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 6 章 使用例 43 6.5.3 タイムサーバから時刻を設定する 以下のコマンドでネットワークにあるタイムサーバ(ntp サーバ)から時刻を設定します。 CKB# ntpdate {ntp-server IP} 6.5.4 システム時刻を RTC に設定する 以下のコマンドでネットワークにあるシステム時刻を RTC に設定します。 CKB# hwclock –u –w RTC に設定された時刻は Linux 起動時にシステム時刻にロードされます。 CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 6 章 使用例 44 第7章 CKB-RZ/A1H に含まれるソフトウェア CKB Linux SDK に含まれるソフトウェアのライセンス、ソース・パッケージのリストについては、「CKB Linux オプション 2.1 導 入ガイド」を参照してください。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 7 章 CKB-RZ/A1H に含まれるソフトウェア 45 第8章 トラブル・シューティング 8.1 最新情報、FAQ など 当社ホーム・ページ( http://www.computex.co.jp/ )に、CKB-RZ/A1H の最新情報や、FAQ を設けます。そちらの方もご参照 ください。 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 第 8 章 トラブル・シューティング 46 CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 変更履歴 日付 2014-08 2015-01 版 1 2 内容 初版 ・CKB Linux SDK のバージョンを V2.01.00 から V2.01.01 に変更 CKB-RZ/A1H 組み込み Linux 技術的なお問い合わせについて CKB-RZ/A1H に関する技術的なお問い合わせについては、当社ホーム・ページ(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-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1 2015 年 1 月 2 版 CM1553(B)1501