SOFTWARE USER’S GUIDE DMG-ZSH01 CPZ-SH03 Linux開発キット ■ 安全にお使い頂くために 安全にご利用頂くために、本製品をご使用になる前に必ず取扱い上のご注意を最後 までお読みください。 本製品は機能追加、品質向上のため予告なく仕様を変更する場合があります。 継続的にご利用頂く場合でも、必ずSOFTWARE USER’S GUIDEをお読みください。本製品 のご使用には、ハードウェア,ソフトウェアの専門知識が必要です。 各図記号は以下のような意味を表しています。 ! ! 警告 この表示を無視して誤った取扱いをすると、使用者が死亡または重傷 を負う可能性があると思われる事項があることを示しています。 注意 この表示を無視して誤った取扱いをすると、人が傷害を負うことが想 定される内容および物的損害の発生が想定される事項があることを示 しています。 禁止 分解禁止 行ってはならない禁止事項があることを示しています。指示内容 をよく読み、禁止されている事項は絶対に行わないでください。 接触禁止 静電気注意 静電気により、製品破損の恐れがありますのでご注意ください。 注意 注意すべき点を示しています。 は、インタフェース社の登録商標です。(申請中) 本書に掲載されている会社名,製品名はそれぞれ各社の商標または登録商標です。 © 2006 Interface Corporation 株式会社インタフェースの許可なく複製,改変等を行うことはできません。 DMG-ZSH01 製品ドキュメントのご紹介 本製品に関する情報を下記の通りご用意しております。 必要に応じて、適切なものをご利用ください。 マニュアル 内容 ソフトウェアユーザーズ 無償 CPZ-SH03用Linux開発キットソフトウェア(DMG-ZSH01) ガイド ユーザーズガイドです。 ・クロスコンパイル方法 ・ドライバの自動組み込み、アプリケーションの自動実行 ・ネットワーク接続手順説明 ・OS,開発キットのリカバリ手順 無償:弊社Web site (www.interface.co.jp)からのダウンロードは無料です。 有償:ドキュメント類の冊子(印刷物)およびソフトウェアのCD-ROMでの提供は有料販売となりま す。 -1- Interface Corporation DMG-ZSH01 目 次 製品ドキュメントのご紹介 1 第1章 4 1.1 1.2 1.3 1.4 1.5 1.6 第2章 製品説明 製品構成 ......................................................................................................................................... 4 本書の表記について..................................................................................................................... 5 概要 ................................................................................................................................................. 5 機能と特長 ..................................................................................................................................... 5 動作環境 ......................................................................................................................................... 6 関連製品の機能比較..................................................................................................................... 6 製品の使用方法 7 2.1 動かしてみよう............................................................................................................................. 7 2.1.1 ターミナルエミュレータの準備をする.......................................................................... 7 ■minicomの初期設定 ............................................................................................................ 7 ■minicomのインストール .................................................................................................... 9 2.1.2 クロスのシリアルケーブルで接続する場合................................................................ 10 ■停止方法............................................................................................................................. 13 2.1.3 telnetで接続する場合 ....................................................................................................... 14 ■CPZ-SH03 内蔵CF内の/etcディレクトリの出荷時設定 .............................................. 14 ■telnetで接続........................................................................................................................ 15 ■停止方法............................................................................................................................. 16 2.2 クロス開発 ................................................................................................................................... 17 2.2.1 クロス開発環境の構築 .................................................................................................... 17 ■Debianの場合 ..................................................................................................................... 17 (1) クロスツールチェーンのインストール ..................................................................... 17 (2) アプリケーションのコンパイル ................................................................................. 18 (3) 動作確認 .......................................................................................................................... 18 ■Red Hatの場合 ................................................................................................................... 20 (1) クロスツールチェーンのインストール ..................................................................... 20 2.3 弊社ドライバソフトウェアを使用する .................................................................................. 21 2.3.1 ダウンロード .................................................................................................................... 21 2.3.2 インストール .................................................................................................................... 21 2.3.3 共通モジュール,ドライバモジュールの組み込み ...................................................... 22 2.3.4 起動時に、ドライバを組み込む方法............................................................................ 23 ■ /etc/modulesに、ドライバモジュール名を登録する ................................................. 23 ■ /etc/init.dディレクトリに、自動組み込みスクリプトを追加する .......................... 24 2.3.5 サンプルプログラムをコンパイルする........................................................................ 25 Interface Corporation -2- DMG-ZSH01 2.4 第3章 CFのリカバリ手順 ...................................................................................................................... 29 2.4.1 USB接続のCFリーダ/ライタを使う場合...................................................................... 29 2.4.2 ネットワークを使用する場合........................................................................................ 34 ■ホストマシンの準備(Debian編) ...................................................................................... 34 ■ホストマシンの準備(Red Hat編) .................................................................................... 38 ■ネットワーク経由でCPZ-SH03 を起動 ......................................................................... 42 2.4.3 CFへの書き込み ............................................................................................................... 43 各機能の設定方法 46 3.1 アプリケーションの自動実行................................................................................................... 46 3.1.1 設定方法 ............................................................................................................................ 46 3.1.2 設定例 ................................................................................................................................ 47 3.2 リードオンリCF .......................................................................................................................... 49 3.2.1 リードオンリにする方法................................................................................................ 49 3.2.2 リードオンリを解除する方法........................................................................................ 50 3.2.3 リードオンリ設定ファイルの変更内容........................................................................ 51 3.3 Wake On LAN .............................................................................................................................. 53 3.3.1 CPZ-SH03 のMACアドレス確認方法............................................................................ 54 3.4 パッケージの追加....................................................................................................................... 55 3.4.1 apt-getコマンドを使う方法............................................................................................. 55 3.4.2 パッケージを手動でインストールする方法................................................................ 56 第4章 カーネル構築 58 4.1 kernel v2.4.17................................................................................................................................ 58 4.1.1 カーネルコンフィグレーション.................................................................................... 58 4.1.2 カーネルコンパイル ........................................................................................................ 60 4.2 kernel v2.6.11................................................................................................................................ 61 4.2.1 カーネルコンフィグレーション.................................................................................... 61 4.2.2 カーネルコンパイル ........................................................................................................ 62 4.2.3 割り込み応答性能のチューニング................................................................................ 62 ■HZの値と割り込み応答性の関係................................................................................... 63 ■HZの変更方法 ................................................................................................................... 65 4.3 カーネルの入れ替え................................................................................................................... 66 4.3.1 USB接続のCFリーダ/ライタを使う場合...................................................................... 66 4.3.2 ネットワークを使用する場合........................................................................................ 67 第5章 5.1 5.2 情報サービス 70 情報の入手方法........................................................................................................................... 70 製品使用登録............................................................................................................................... 70 付録 71 インストールパッケージ一覧............................................................................................................ 71 -3- Interface Corporation DMG-ZSH01 第1章 製品説明 1.1 製品構成 DMG-ZSH01(以降、開発キットCD)には、本書で解説する内容を実行するために必要となるファイ ルが格納されています。 開発キットCDに含まれるファイル一覧は、以下の通りです。 ディレクトリ cpz-auto cpz-base cpz-cross-tool cpz-kernel cpz-netboot cpz-readonly cpz-usbcf rr_moved 内容 アプリケーションを自動実行させる時に使用するファイルと、使用例のファイル があります。 Linuxベースパッケージのtar.gzファイルです。CFをリカバリする際に使用しま す。 クロス開発環境の構築時に使用するホストマシン用のパッケージです。rpmと debに分かれて収録しています。 CPZ-SH03用のカーネルソースコードです。 OSの再インストール時に使用するファイルです。ホストマシン上にコピーしま す。 CPZ-SH03内蔵のCFを、リードオンリーにする時に使用するファイルです。 USB接続のCFリーダ/ライタを使用して、OSを再インストールする時に使用する ファイルです。 CD作成時に作られたディレクトリです。本書の内容とは関連しません。 本書では、断りがない限り、上記ファイルを/optディレクトリにコピーしたものとして説明してい ます。 開発キットCDに含まれるソフトウェアは、GNU GENERAL PUBLIC LICENSE(GPL)等に従い、配布 されています。 ライセンス条項に関しては、(http://www.opensource.jp/gpl/gpl.ja.html)等を参照してください。 CPZ-SH03内蔵CF,開発キットCDに含まれるソフトウェアは、GPLに従い、一切のソフトウェアは完 全無保証です。 Interface Corporation -4- DMG-ZSH01 1.2 本書の表記について 本書はkernel v2.4.17とkernel v.2.6.11共通のドキュメントです。 カーネルバージョンに依存する内容は下記の記号にて解説しています。 i SH-Linux kernel ver. 2.4.17 i SH-Linux kernel ver. 2.6.11 1.3 概要 本書は、CPZ-SH03用Linux開発キットソフトウェアDMG-ZSH01(開発キットCD)の ソフトウェアユーザーズガイドです。 開発キットCDは、CPZ-SH03で動作するGNU/Linux用のクロスコンパイル環境、OSリカバリ機能を 提供するソフトウェアです。 また、開発キットCDからCFリカバリ機能だけを抜き出したBRG-0101をご使用の際にも、本書の 『29ページ 2.4 CFのリカバリ手順』を参照してください。 CPZ-SH03にはキーボードやディスプレイは接続できません。そのため、X Windowシステムはイン ストールされていません。 コマンドラインシェルとしてはbashが利用できます。 コマンドはファイル操作やシステム起動に必要な、基本的なものが提供されています。 (インストールされているパッケージ一覧は付録『71ページ インストールパッケージ一覧』を 参照してください。) 1.4 機能と特長 ●Linux OSイメージ CPZ-SH03のCFからLinuxを起動するために必要な、システムファイルを提供しています。 ホストマシンからCPZ-SH03にネットワーク接続し、操作することができます。 ●アプリケーション開発環境 CPZ-SH03上で動作させるアプリケーションの開発環境として、クロスコンパイル環境を提供 します。 ●ネットワークブート,OSリカバリ機能 ネットワークブート環境を提供することにより、CPZ-SH03内蔵のCFを書き換えたり、出荷時 の状態に戻すことができます。 ●カーネル再構築 CPZ-SH03を使用し、v2.4.17,v2.6.11のカーネル構築の手順を解説しています。 -5- Interface Corporation DMG-ZSH01 1.5 動作環境 開発キットは動作させるCPZ-SH03本体、およびクロスコンパイル環境となるホストマシンが必要 です。 クロスコンパイル環境は以下のLinuxディストリビューションで動作することを確認しております。 ディストリビューション Debian GNU/Linux3.1 Red Hat Enterprise Linux v.4 Red Hat Linux 9 カーネルバージョン 2.6.8 2.4.31 2.6.9 2.4.20 1.6 関連製品の機能比較 内容 DMG-ZSH01 ○ ○ ○ ○ ○ ○ ¥29,800 リカバリファイル ネットワークブート用Linux kernelソース SH-4クロスコンパイラ CF リードオンリ設定ファイル アプリケーション自動起動設定ファイル 定価 Interface Corporation -6- BRG-0101 ○ ○ × × × × ¥3,000 DMG-ZSH01 第2章 製品の使用方法 2.1 動かしてみよう 2.1.1 ターミナルエミュレータの準備をする CPZ-SH03にシリアルポート経由でログインする際に必要なターミナルエミュレータソフトとして、 minicomの使用手順を説明します。 ■minicomの初期設定 1. minicomの起動 コンソールでminicomと入力して、Enterキーを押します。 kitty:~# minicom ※ もし起動しない場合は、『9ページ ■minicomのインストール』を参照して、インストール を行ってください。 2. 設定メニューを開きます。 Ctrl+Aを押してキーを離した後、続けてOキーを押すと「configuration」メニューが開きます。 -7- Interface Corporation DMG-ZSH01 3. シリアルポートの設定メニューを開きます。 カーソルキーで「シリアルポート」を選択して、Enterキーを押します。 シリアルポートのパラメータが、下記画面と同じ設定になるようにします。 a)Aキーを押して、シリアルデバイスを必要に応じて変更します。 CPZ-SH03を接続したホストマシンのCOMポートのデバイス名を指定します。 例)COM1は通常/dev/ttyS0ですので、表示が異なっている場合は変更します。 b)Fキーを押して、ハードウェア流れ制御を「いいえ」に設定します。 c)Eキーを押して、通信パラメータ設定メニューを開きます。 d)キーを押して、速度を「115200bps」に設定します。 e)Qキーを押して、パリティ/データ/ストップビットを8-N-1に設定します。 f)Enterキーを2回押して、最初のメニュー画面に戻ります。 Interface Corporation -8- DMG-ZSH01 4. 設定を保存して、設定メニューを閉じます。 カーソルキーで「“dfl”に設定を保存」を選択して、Enterキーを押します。 設定が保存されますので、カーソルキーで「終了」を選択して、Enterキーを押します。 5. 設定変更を有効にするため、一度minicomを閉じます。 Ctrl+Aを押してキーを離した後、続けてQキーを押すと、「リセットせずに終了しますか?」 の確認メッセージが表示されますので、「はい」を選択してEnterキーを押してください。 以上で初期設定が完了しました。 次回起動時は、この初期設定が適用されます。 ■minicomのインストール <Debian GNU/Linux 3.1> ■apt-getコマンドを使う場合 greenart:~#apt-get install minicom ※ apt-getコマンドについては、後述の『55ページ 3.4 パッケージの追加』を参照してください。 ■apt-getコマンドを使わない場合 Debianのwebサイト(http://www.jp.debian.org/)からminicomのパッケージをダウロードして、 dpkgコマンドでインストールします。 greenart:~# dpkg -i minicom_2.1-9_i386.deb <Red Hat Enterprise Linux V.4の場合> 1)Red Hat Enterprise Linux V.4のDISK2をCDドライブに挿入します。 2)DISK2をマウントします。 greenart:~# mount /dev/cdrom /media/cdrecorderディレクトリにCDがマウントされます。 ※ マウントできない場合は、以下の様にマウントポイントを指定してマウントしてください。 greenart:~# mount /dev/cdrom /mnt 3)minicomパッケージをインストールします。 greenart:~# rpm –ivh /media/cdrecorder/Redhat/RPMS/minicom-2.00.0-19.i386.rpm -9- Interface Corporation DMG-ZSH01 2.1.2 クロスのシリアルケーブルで接続する場合 CPZ-SH03のシリアルポートとホストマシンを、クロスのシリアルケーブルで接続します。その後、 ホストマシン上で、minicomを起動後、CPZ-SH03の電源を入れます。 約25秒後にホストマシン上に以下のメッセージが表示され始めます。 ※ 画面例はkernel v2.4.17です。 Linux version 2.4.17 (root@kitty) (gcc version 3.0.4) #1 Mon Jun 27 15:24:43 JST 2005 On node 0 totalpages: 16384 zone(0): 16384 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: mem=64M sh_mv=SH03 console=ttySC1,115200 Setting GDB trap vector to 0x80000100 CPU clock: 239.94MHz Bus clock: 79.98MHz Module clock: 39.99MHz Interval = 99975 Calibrating delay loop... 239.20 BogoMIPS Memory: 62860k/65536k available (1304k kernel code, 2676k reserved, 44k data, 176k init) Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes) Inode-cache hash table entries: 4096 (order: 3, 32768 bytes) Mount-cache hash table entries: 1024 (order: 1, 8192 bytes) Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes) Page-cache hash table entries: 16384 (order: 4, 65536 bytes) CPU: SH7750/SH7751 POSIX conformance testing by UNIFIX PCI: Using configuration type 1 Unknown bridge resource 0: assuming transparent Unknown bridge resource 1: assuming transparent Unknown bridge resource 2: assuming transparent Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket Starting kswapd Journalled Block Device driver loaded pty: 256 Unix98 ptys configured SuperH SCI(F) driver initialized ttySC0 at 0xffe00000 is a SCI ttySC1 at 0xffe80000 is a SCIF CTP/PCI-SH03 Real Time Clock Driver v0.01 block: 128 slots per queue, batch=32 RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize Uniform Multi-Platform E-IDE driver Revision: 6.31 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx hda: TOSHIBA THNCF256MBA, ATA DISK drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 8 hda: 500736 sectors (256 MB) w/2KiB Cache, CHS=978/16/32 Partition check: hda: hda1 loop: loaded (max 8 devices) 8139cp: 10/100 PCI Ethernet driver v0.3.0 (Sep 29, 2002) eth0: RTL-8139C+ at 0xfd000000, 00:80:62:80:02:c6, IRQ 5 Interface Corporation - 10 - DMG-ZSH01 eth0: PCI cache line size set incorrectly (0 bytes) by BIOS/FW, correcting to 32PCI: Setting latency timer of device Realtek Semiconductor Co., Ltd. RTL-8139 to 64 eth1: RTL-8139C+ at 0xfd000100, 00:80:62:80:02:c7, IRQ 5 eth1: PCI cache line size set incorrectly (0 bytes) by BIOS/FW, correcting to 32PCI: Setting latency timer of device Realtek Semiconductor Co., Ltd. RTL-8139 (#2) to 64 Linux Kernel Card Services 3.1.22 options: [pci] [cardbus] pci_hotplug: PCI Hot Plug PCI Core version: 0.3 NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 4096 bind 8192) NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. ds: no socket drivers loaded! hda: hda1 hda: hda1 kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with ordered data mode. VFS: Mounted root (ext3 filesystem) readonly. Freeing unused kernel memory: 176k freed INIT: version 2.84 booting Activating swap. Checking root file system... fsck 1.30-WIP (30-Sep-2002) /dev/hda1: clean, 9499/62744 files, 108862/250352 blocks EXT3 FS 2.4-0.9.16, 02 Dec 2001 on ide0(3,1), internal journal System time was Fri Jun 30 01:29:58 UTC 1905. Setting the System Clock using the Hardware Clock as reference... System Clock set. System local time is now Thu Jun 30 01:30:02 UTC 2005. Calculating module dependencies... done. Loading modules: Checking all file systems... fsck 1.30-WIP (30-Sep-2002) Setting kernel variables. Mounting local filesystems... nothing was mounted Starting hotplug subsystem: usb. Cleaning: /etc/network/ifstate. Setting up IP spoofing protection: rp_filter. Configuring network interfaces: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 done. Starting portmap daemon: portmap. Setting the System Clock using the Hardware Clock as reference... System Clock set. Local time: Thu Jun 30 10:30:11 JST 2005 Cleaning: /tmp /var/lock /var/run. Initializing random number generator... done. Recovering nvi editor sessions... done. INIT: Entering runlevel: 2 Starting system log daemon: syslogd. Starting hotplug subsystem: usb. Starting kernel log daemon: klogd. Starting internet superserver: inetd. Starting deferred execution scheduler: atd. Starting periodic command scheduler: cron. Debian GNU/Linux testing/unstable greenart ttySC1 greenart login: - 11 - Interface Corporation DMG-ZSH01 loginプロンプトが出ますので、rootでログインします。 greenart login: root Last login: Thu Jun 30 10:28:48 2005 on ttySC1 Linux greenart 2.4.17 #1 Mon Jun 27 15:24:43 JST 2005 sh4 unknown unknown GNU/Linux Most of the programs included with the Debian GNU/Linux system are freely redistributable; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. greenart:~# 試しに、lsコマンドで/ディレクトリの内容を表示します。 greenart:~# ls / bin cdrom etc boot dev floppy greenart:~# Interface Corporation home lib initrd lost+found opt mnt proc sbin usr root tmp var - 12 - DMG-ZSH01 ■停止方法 CPZ-SH03をシャットダウンする場合は、rootでログインした状態で、shutdownコマンドを実行しま す。 greenart:~# shutdown -h now Broadcast message from root (ttySC1) (Thu Jun 30 10:43:10 2005): The system is going down for system halt NOW! INIT: Switching to runlevel: 0 INIT: Sending processes the TERM signal INIT: Sending processes the KILL signal Stopping periodic command scheduler: cron. Stopping internet superserver: inetd. Saving the System Clock time to the Hardware Clock... Hardware Clock updated to Thu Jun 30 10:43:19 JST 2005. Stopping deferred execution scheduler: atd. Stopping hotplug subsystem: usb. Stopping kernel log daemon: klogd. Stopping system log daemon: syslogd. Stopping portmap daemon: portmap. Sending all processes the TERM signal... done. Sending all processes the KILL signal... done. Saving random seed... done. Unmounting remote filesystems... done. Deconfiguring network interfaces: done. Deactivating swap... done. Unmounting local filesystems... done. Power down. しばらくすると、CPZ-SH03がシャットダウンされ、電源が切れます。 - 13 - Interface Corporation DMG-ZSH01 2.1.3 telnetで接続する場合 CPZ-SH03は、telnetを使用してログインすることができます。ここでは、CPZ-SH03内蔵CFの /etcディレクトリの内、ネットワークに関連する設定内容を示した後、telnet接続,ログイン,終了の 実行例を示します。 ■CPZ-SH03内蔵CF内の/etcディレクトリの出荷時設定 CPZ-SH03内の/etcディレクトリの内、ネットワーク関係の出荷時設定は、以下の様になっています。 最初にtelnetでCPZ-SH03と接続する場合は、ホストマシンの設定をCPZ-SH03の設定に合わせてくだ さい。 なお、CPZ-SH03のホスト名は「greenart」,ホストマシンのホスト名は「kitty」となっております。 (『29ページ 2.4 CFのリカバリ手順』を参考にしてください。) ・ /etc/hostname greenart ・ /etc/hosts 127.0.0.1 localhost 192.168.1.100 kitty 192.168.1.110 greenart # The following lines are desirable for IPv6 capable hosts # (added automatically by netbase upgrade) ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts ・ /etc/resolv.conf nameserver 127.0.0.1 ・ /etc/network/interfaces # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # The loopback interface # automatically added when upgrading auto lo iface lo inet loopback # The first network card - this entry was created during the Debian installation # (network, broadcast and gateway are optional) # automatically added when upgrading auto eth0 iface eth0 inet static address 192.168.1.110 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 Interface Corporation - 14 - DMG-ZSH01 ■telnetで接続 CPZ-SH03のLAN1とホストマシンのLANを接続し、CPZ-SH03の電源を入れます。しばらくして、 ホストマシンからtelnetコマンドでCPZ-SH03と接続します。 (CPZ-SH03は、OSの起動に約1分要します。CPZ-SH03電源投入後、最初のtelnet接続は1分以上経過 後に行ってください。) kitty:~# telnet 192.168.1.110 Trying 192.168.1.110... Connected to 192.168.1.110. Escape character is '^]'. Debian GNU/Linux testing/unstable greenart greenart login: rootでログインします。 greenart login: root Last login: Thu Jun 30 10:42:22 2005 on ttySC1 Linux greenart 2.4.17 #1 Mon Jun 27 15:24:43 JST 2005 sh4 unknown unknown GNU/Linux Most of the programs included with the Debian GNU/Linux system are freely redistributable; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. greenart:~# 試しに、lsコマンドで/ディレクトリの内容を表示します。 greenart:~# ls / bin cdrom etc boot dev floppy greenart:~# home lib initrd lost+found opt mnt proc sbin usr root tmp var logoutでログアウトします。 greenart:~# logout Connection closed by foreign host. kitty:~# お知らせ セキュリティー上、telnetのrootアカウントでのログインを禁止したい場合、エディターで /etc/ /securettyを開いて、以下の行を削除してください。 pts/0 pts/1 - 15 - Interface Corporation DMG-ZSH01 ■停止方法 CPZ-SH03をシャットダウンする場合は、rootでログインした状態で、shutdownコマンドを実行しま す。 greenart:~# shutdown -h now greenart:~# Broadcast message from root (pts/0) (Thu Jun 30 10:46:36 2005): The system is going down for system halt NOW! Connection closed by foreign host. kitty:~# しばらくすると、CPZ-SH03がシャットダウンされ、電源が切れます。 Interface Corporation - 16 - DMG-ZSH01 2.2 クロス開発 2.2.1 クロス開発環境の構築 ■Debianの場合 (1) クロスツールチェーンのインストール クロスツールチェーンのインストールは、以下の手順で行います。 開発キットの/cpz-cross-tool/debディレクトリに収録した以下のファイルをインストールします。 binutils-sh-linux_2.12.90-2_i386.deb gcc-sh-linux_3.0.4-4_i386.deb glibc-sh-linux_2.2.5-4_all.deb glibc-sh4-linux_2.2.5-4_all.deb インストールは、dpkgコマンドで行います。 (ここでは開発キットCDを/cdromディレクトリにマウントしたものとして記載します。) kitty:~# cd /cdrom/cpz-cross-tools/deb kitty:/cdrom/cpz-cross-tools/deb# dpkg kitty:/cdrom/cpz-cross-tools/deb# dpkg kitty:/cdrom/cpz-cross-tools/deb# dpkg kitty:/cdrom/cpz-cross-tools/deb# dpkg –i –i –i –i binutils-sh-linux-2.12.90-2_i386.deb gcc-sh-linux_3.0.4-4_i386.deb glibc-sh-linux_2.2.5-4_all.deb glibc-sh4-linux_2.2.5-4_all.deb 次にtarコマンドで、CPZ-SH03用のカーネルソースを/usr/srcディレクトリに展開します。 i SH-Linux kernel ver. 2.4.17 kitty:/cdrom/cpz-cross-tools/deb# cd /usr/src kitty:/usr/src# tar zxf /cdrom/cpz-kernel/cpz-sh-2.4.17.tar.gz 最後に kitty:/usr/src# cd /usr/sh4-linux kitty:/usr/sh4-linux# ln -s /usr/src/linux-2.4.17/include/asm include/asm kitty:/usr/sh4-linux# ln -s /usr/src/linux-2.4.17/include/linux include/linux として完了です。 i SH-Linux kernel ver. 2.6.11 kitty:/cdrom/cpz-cross-tools/deb# cd /usr/src kitty:/usr/src# tar zxf /cdrom/cpz-kernel/cpz-sh-2.6.11.tar.gz 最後に kitty:/opt/cpz-cross-tools/deb# cd /usr/sh4-linux kitty:/usr/src/linux-2.6.11.12# ln -s /usr/src/cpz-2.6/linux-2.6.11.12/include/asm includ e/asm kitty:/usr/src/linux-2.6.11.12# ln -s /usr/src/cpz-2.6/linux-2.6.11.12/include/linux inclu de/linux として完了です。 - 17 - Interface Corporation DMG-ZSH01 (2) アプリケーションのコンパイル 以下のコードを持つファイルを作成し、/opt/test.cとします。 #include <stdio.h> int main(void) { printf("Hello, World¥n"); return 1; } sh4-linux-gccコマンドを実行し、クロスコンパイルします。 kitty:~# cd /opt kitty:/opt# sh4-linux-gcc -o test test.c fileコマンドで、ファイルタイプを表示し、以下の様に“Hitachi SH”となっていれば、クロスコンパ イルは成功です。 kitty:/opt# file test test: ELF 32-bit LSB executable, Hitachi SH, version 1 (SYSV), for GNU/Linux 2.2.15, dynamically linked (uses shared libs), not stripped (3) 動作確認 rootでログインし、mountコマンドでネットワークドライブをマウント後、testファイルをCPZ-SH03 側にコピーして実行します。実行例を以下に示します。 greenart:~# mount kitty:/opt /mnt greenart:~# cp /mnt/test ./ greenart:~# ./test Hello, World greenart:~# umount /mnt/ ※ 予めホストマシンの/optディレクトリをNFS(Network File System)でアクセスできるように設 定を行ってください。本書ではNFSの設定に関しては割愛いたします。 Interface Corporation - 18 - DMG-ZSH01 デバッグオプション付きでコンパイルし、ソースコードもコピーすると、gdb(デバッガ)も使用でき ます。 greenart:~# mount kitty:/opt /mnt greenart:~# cp /mnt/test.* /mnt/test ./ greenart:~# umount /mnt/ greenart:~# gdb test GNU gdb 20001217 Copyright 2000 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "sh-linux"... (gdb) l warning: Source file is more recent than executable. 1 #include <stdio.h> 2 int main(void) 3 { 4 printf("Hello,Kitty¥n"); 5 return 1; 6 } (gdb) run Starting program: /root/test Hello, World Program exited with code 01. (gdb) q greenart:~# - 19 - Interface Corporation DMG-ZSH01 ■Red Hatの場合 (1) クロスツールチェーンのインストール クロスツールチェーンのインストールは、以下の手順で行います。 開発キットの/cpz-cross-tool/rpmディレクトリに収録した以下のファイルをインストールします。 binutils-sh-linux-2.12.90-1.i386.rpm gcc-sh-linux-3.0.4-3.i386.rpm glibc-sh-linux-2.2.5-3.noarchl.rpm glibc-sh4-linux-2.2.5-3.noarch.rpm インストールは、rpmコマンドで行います。 kitty:~# cd /opt/cpz-cross-tools/rpm kitty:/opt/cpz-cross-tools/rpm# rpm –ivh binutils-sh-linux-2.12.90-1.i386.rpm kitty:/opt/cpz-cross-tools/rpm# rpm –ivh gcc-sh-linux-3.0.4-3.i386.rpm kitty:/opt/cpz-cross-tools/rpm# rpm –ivh glibc-sh-linux-2.2.5-3.noarchl.rpm kitty:/opt/cpz-cross-tools/rpm# rpm –ivh glibc-sh4-linux-2.2.5-3.noarch.rpm 次にtarコマンドで、CPZ-SH03用のカーネルソースを/usr/srcディレクトリに展開します。 i SH-Linux kernel ver. 2.4.17 kitty:/cdrom/cpz-cross-tools/rpm# cd /usr/src kitty:/usr/src# tar zxf /cdrom/cpz-kernel/cpz-sh-2.4.17.tar.gz 最後に kitty:/usr/src# cd /usr/sh4-linux kitty:/usr/sh4-linux# ln –s /usr/src/linux-2.4.17/include/asm include/asm kitty:/usr/sh4-linux# ln –s /usr/src/linux-2.4.17/include/linux include/asm として完了です。 i SH-Linux kernel ver. 2.6.11 kitty:/cdrom/cpz-cross-tools/rpm# cd /usr/src kitty:/usr/src# tar zxf /cdrom/cpz-kernel/cpz-sh-2.6.11.tar.gz 最後に kitty:/opt/cpz-cross-tools/deb# cd /usr/sh4-linux kitty:/usr/sh4-linux# ln -s /usr/src/cpz-2.6/linux-2.6.11.12/include/asm include/asm kitty:/usr/sh4-linux# ln -s /usr/src/cpz-2.6/linux-2.6.11.12/include/linux include/linux として完了です。 使い方は、Debianの場合と同様です。『18ページ (2) アプリケーションのコンパイル』を参照 してください。 Interface Corporation - 20 - DMG-ZSH01 2.3 弊社ドライバソフトウェアを使用する 弊社I/Oモジュールのドライバソフトウェアを組み込む方法は、ドライバソフト付属のreadme.txtに 記載されています。ここでは、一例として、弊社デジタル入出力ボード Linux/RT対応ドライバソ フトウェアGPG-2000の組み込み方法を説明します。弊社ドライバソフトウェアは全型式でほぼ共 通ですので、他の型式のドライバを組み込む場合も参考にして頂けます。詳細は、各ドライバソフ ト内のreadme.txt, チュートリアルを参照してください。 2.3.1 ダウンロード まず、弊社Web site(www.interface.co.jp)のダウンロードのページから、DIOドライバソフトウェア (SH-Linux版 GPG-2000)を、ホストマシン上にダウンロードします。 (以降の説明では、/optディレクトリにダウンロードした物と仮定しています。) 以下の手順で、ホストマシン上のGPG-2000用ドライバをCPZ-SH03側にコピーし、tgzファイルを 展開します。 greenart:~# mount kitty:/opt /mnt/ greenart:~# cp /mnt/gpg2000_sh4_027017.tgz ./ greenart:~# tar zxvf gpg2000_sh4_027017.tgz lgpg2000.sh4.tgz readme.txt install install_ja.txt product.txt sh4.txt common.tgz greenart:~# ※ ホストマシンの/optディレクトリはNFSで共有できるように設定しておいてください。 2.3.2 インストール installスクリプトを使用してインストールを行います。installスクリプト起動後は、画面の指示に従 って行ってください。 greenart:~# ./install - 21 - Interface Corporation DMG-ZSH01 2.3.3 共通モジュール,ドライバモジュールの組み込み DIOボードをCPZ-SH03のシステムに装着します。 以下の方法でドライバの組み込みを行います。 (画面例はkernel v2.4.17ですが、v2.6.11でもコマンドは同じです。) greenart:~# cd /usr/src/interface/gpg2000/sh4/linux/drivers/ greenart:/usr/src/interface/gpg2000/sh4/linux/drivers# ./insdio.sh Using /lib/modules/2.4.17/misc/dpg0100.o Warning: loading /lib/modules/2.4.17/misc/dpg0100.o will taint the kernel: no license See http://www.tux.org/lkml/#export-tainted for information about tainted modules Module dpg0100 loaded, with warnings Using /lib/modules/2.4.17/misc/cp2000.o Warning: loading /lib/modules/2.4.17/misc/cp2000.o will taint the kernel: no license See http://www.tux.org/lkml/#export-tainted for information about tainted modules Module cp2000 loaded, with warnings greenart:/usr/src/interface/gpg2000/sh4/linux/drivers# (ここでのワーニングは、無視してください。) デバイスノードの作成をします。詳細は、GPG-2000オンラインヘルプを参照してください。 greenart:/usr/src/interface/gpg2000/sh4/linux/drivers# ./setup.sh Interface Corporation - 22 - DMG-ZSH01 2.3.4 起動時に、ドライバを組み込む方法 弊社I/Oモジュールのドライバは、/lib/modules/<カーネルバージョン>/miscディレクトリにインスト ールされます。 i SH-Linux kernel ver. 2.4.17 greenart:~# ls /lib/modules/2.4.17/misc/ cp2000.o dpg0100.o dpg0101.o i SH-Linux kernel ver. 2.6.11 greenart:~# ls /lib/modules/2.6.11-sh/misc/ cp2000.ko dpg0100.ko dpg0101.ko 手動でドライバを組み込む場合は、modprobeコマンドで組み込むことができます。 greenart:~# modprobe cp2000 Warning: loading /lib/modules/2.4.17/misc/dpg0100.o will taint the kernel: no license See http://www.tux.org/lkml/#export-tainted for information about tainted modules Module dpg0100 loaded, with warnings Warning: loading /lib/modules/2.4.17/misc/cp2000.o will taint the kernel: no license Module cp2000 loaded, with warnings greenart:~# lsmod Module Size Used by Tainted: P cp2000 425796 0 (unused) dpg0100 6304 0 [cp2000] greenart:~# 以下に、起動時にドライバモジュールを自動で組み込む方法を紹介します。 ■ /etc/modulesに、ドライバモジュール名を登録する vi /etc/modules と実行し、 dpg0100 cp2000 を追加します。 - 23 - Interface Corporation DMG-ZSH01 ■ /etc/init.dディレクトリに、自動組み込みスクリプトを追加する 以下の内容のファイル、/etc/init.d/gpg2000.shを作ります。 #! /bin/sh # PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin NAME=gpg2000 case "$1" in start) echo -n "Install GPG-2000 " (cd /usr/src/interface/gpg2000/sh4/linux/drivers/; ./insdio.sh) echo "." ;; stop) echo -n "Remove GPG-2000 " (cd /usr/src/interface/gpg2000/sh4/linux/drivers/; ./rmdio.sh) echo "." ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop}" >&2 exit 1 ;; esac exit 0 以下の内容のファイル、/etc/init.d/gpg2000.shを作ります。 greenart:~# update-rc.d gpg2000.sh defaults Adding system startup for /etc/init.d/gpg2000.sh ... /etc/rc0.d/K20gpg2000.sh -> ../init.d/gpg2000.sh /etc/rc1.d/K20gpg2000.sh -> ../init.d/gpg2000.sh /etc/rc6.d/K20gpg2000.sh -> ../init.d/gpg2000.sh /etc/rc2.d/S20gpg2000.sh -> ../init.d/gpg2000.sh /etc/rc3.d/S20gpg2000.sh -> ../init.d/gpg2000.sh /etc/rc4.d/S20gpg2000.sh -> ../init.d/gpg2000.sh /etc/rc5.d/S20gpg2000.sh -> ../init.d/gpg2000.sh greenart:~# スタート,ストップのシーケンス番号(S,Kに続く数字)を変更したい場合は、defaultsの変わりに、start, stopを指定してください。詳細は、update-rc.dのmanページを参照してください。 以上で、弊社DIO向けドライバの準備は完了です。 Interface Corporation - 24 - DMG-ZSH01 2.3.5 サンプルプログラムをコンパイルする 弊社I/Oモジュールのドライバソフトウェアのサンプルプログラムをクロス開発環境でコンパイル する手順を説明します。 『17ページ 2.2.1 クロス開発環境の構築』で、クロスコンパイラの設定がされていることを前提 に説明します。 具体例として、弊社デジタル入出力ボード Linux/RT対応ドライバソフトウェアGPG-2000を使用し ます(※ 他のGPGシリーズも基本的に同様です) 。 1. GPG-2000のヘッダーファイルをホストマシンにコピーする。 (1) 弊社Web site(www.interface.co.jp)から、GPG-2000のSHLinux版をダウンロードして、/optディレク トリにコピーします。 ※ Linux版(x86用)をダウンロードしないように、ご注意ください。 (2) ダウンロードしたGPG-2000を/opt/workディレクトリに展開して、ファイル一覧を確認します。 greenart:~# mkdir /opt/work greenart:~# cd /opt/work greenart: /opt/work# tar zxf ../gpg2000_sh4_xxxxxx.tgz (xxxxxx 箇所はバージョンによって異なります) greenart: /opt/work# ls common.tgz install_ja.txt product.txt install lgpg2000.sh4.tgz readme.txt sh4.txt (3) opt/workディレクトリの2本のtgzファイルを展開して、ファイル一覧を確認します。 greenart:/opt/work# tar zxf lgpg2000.sh4.tgz greenart:/opt/work# tar zxf common.tgz greenart:/opt/work# ls common gpg2000 install_ja.txt common.tgz install lgpg2000.sh4.tgz product.txt readme.txt sh4.txt commonとgpg2000ディレクトリが作成されました。 (4) GPG-2000に含まれるヘッダーファイル名を確認します。 greenart:/opt/work# find –name *.h ./gpg2000/sh4/linux/include/fbidio.h ./common/dpg0100/src/dpg0100.h ./common/dpg0101/src/dpg0101.h ./common/dpg0102/src/dpg0102.h ./common/dpg0102/src/dpg0102p.h (5) 上記で確認したヘッダーファイルを、/usr/sh4-linux/includeディレクトリにコピーします。 上記のヘッダーファイルで重要なのは、gpg2000ディレクトリのヘッダーファイルと、common ディレクトリのdpg0100.hです。 greenart:/opt/work# cp –a gpg2000/sh4/linux/include/fbidio.h /usr/sh4-linux/include greenart:/opt/work# cp –a common/dpg0100/src/dpg0100.h /usr/sh4-linux/include - 25 - Interface Corporation DMG-ZSH01 2. GPG-2000 (SHLinux版)のライブラリをホストマシンにコピーする。 (1) SH-4用ライブラリのファイル名を確認します。 greenart:/opt/work#find –name libgpg* ./gpg2000/sh4/linux/lib/libgpg2000t.so.2.4.7 ./gpg2000/sh4/linux/lib/libgpg2000.so.2.4.7 ./common/dpg0101/i386/lib/libgpgconf.so.1.3.4 ./common/dpg0101/sh4/lib/libgpgconf.so.1.3.4 ※ 上から3番目と4番目に同一ファイル名のライブラリがありますが、上から3番目はx86用の ライブラリ(ディレクトリ名で判別可能)なので使用しません。 (2) 上記の手順で確認した3本のライブラリ(x86用は除く)を、/usr/sh4-linux/libディレクトリにコピー します。 greenart:/opt/work# cp –a gpg2000/sh4/linux/lib/libgpg2000t.so.2.4.7 /usr/sh4-linux/lib greenart:/opt/work# cp –a gpg2000/sh4/linux/lib/libgpg2000.so.2.4.7 /usr/sh4-linux/lib greenart:/opt/work# cp –a common/dpg0101/sh4/lib/libgpgconf.so.1.3.4 /usr/sh4-linux/lib (3) コピーしたライブラリにシンボリックリンクを作成します。 greenart:/opt/work# cd /usr/sh4-linux/lib greenart:/usr/sh4-linux/lib# ln –s libgpg2000t.so.2.4.7 libgpg2000t.so.2 greenart:/usr/sh4-linux/lib# ln –s libgpg2000t.so.2 libgpg2000t.so greenart:/usr/sh4-linux/lib# ln –s libgpg2000.so.2.4.7 libgpg2000.so.2 greenart:/usr/sh4-linux/lib# ln –s libgpg2000.so.2 libgpg2000.so greenart:/usr/sh4-linux/lib# ln –s libgpgconf.so.1.3.4 libgpgconf.so.1 greenart:/usr/sh4-linux/lib# ln –s libgpgconf.so.1 libgpgconf.so 3. GPG-2000のサンプルプログラムをクロスコンパイルする。 GPG-2000に含まれるサンプルプログラムinpointをSH-4用にコンパイルしてみます。 サンプルプログラムは前述の作業で展開したディレクトリに含まれています。 (1) サンプルプログラムのディレクトリに移動します。 greenart:/usr/sh4-linux/lib# cd /opt/work/gpg2000/sh4/linux/samples/c/inpoint greenart:/opt/work/gpg2000/sh4/linux/samples/c/inpoint# Interface Corporation - 26 - DMG-ZSH01 (2) Makefileの中身を確認します。 # Makefile for samples INCLUDE = /usr/X11R6/include LIB = /usr/X11R6/lib CC = gcc all: inpoint inpoint: inpoint.o $(CC) inpoint.o -o inpoint -lgpg2000 -lpthread inpoint.o: inpoint.c $(CC) -Wall -c inpoint.c -o inpoint.o clean: rm -f *.o ¥#* *~ inpoint このままだとクロスコンパイルが行えませんので、セルフコンパイルとクロスコンパイルの両方 に使えるように修正します。 (3) Makefileを以下のように作り直します。 # Makefile for sample program CROSS_COMPILE= INCLUDEDIR= LIBDIR= CFLAGS=-Wall EXTRACFLAGS=-lgpg2000 –lgpgconf -pthread CC=$(CROSS_COMPILE)gcc LD=$(CROSS_COMPILE)ld APP = inpoint ifneq ($(INCLUDEDIR),) CFLAGS += -I$(INCLUDEDIR) endif ifneq ($(LIBDIR),) CFLAGS += -L$(LIBDIR) endif all: $(APP) $(APP): $(APP).c $(CC) $(APP).c -o $(APP) $(CFLAGS) $(EXTRACFLAGS) clean: rm -f $(APP) *~ プログラムによって、APPとEXTRACFLAGSを、適宜変更します。 APPがコンパイルするソースファイルおよび、生成される実行ファイル名となります。 上記の例では、ソースファイルがinpoint.cで、作成される実行ファイルがinpointとなります。 EXTRACFLAGSマクロには、コンパイラに追加指定するオプションを書きます。 上記の例では、GPG-2000のライブラリ(gpg2000とgpgconf)とpthreadをリンクする指定になってい ます。リンクするライブラリが不要な場合、EXTRACFLAGS=とだけ記述してください。 - 27 - Interface Corporation DMG-ZSH01 4. クロスコンパイルの実行 (1) makeコマンドでコンパイルを行います。 greenart:/opt/work/gpg2000/sh4/linux/samples/c/inpoint# make ARCH=sh4 CROSS_COMP ILE=sh4-linux- INCLUDEDIR=/usr/sh4-linux/include LIBDIR=/usr/sh4-linux/lib (2) fileコマンドで、ファイルタイプを表示し、以下の様に“Hitachi SH”となっていれば、クロスコン パイルは成功です。 greenart:/opt/work/gpg2000/sh4/linux/samples/c/inpoint# file inpoint 実行結果が以下のようになっていれば成功です。 inpoint: ELF 32-bit LSB executable, Hitachi SH, version 1 (SYSV), for GNU/Linux 2.2.15, dynamically linked (uses shared libs), not stripped 5. 動作確認 rootでログインし、mountコマンドでネットワークドライブをマウント後、実行ファイルをCPZ-SH03 側にコピーして実行します。実行例を以下に示します。 greenart:~# mount kitty:/opt /mnt greenart:~# cp /mnt/work/gpg2000/sh4/linux/samples/c/inpoint ./ greenart:~# umount /mnt/ greenart:~# ./inpoint Enter the device number: ※ ホストマシンの/optディレクトリはNFSで共有できるように設定しておいてください。 Interface Corporation - 28 - DMG-ZSH01 2.4 CFのリカバリ手順 なんらかの原因で、CPZ-SH03が起動しなくなった場合のために、OSを再インストールする方法を説 明しています。 (弊社では、有償でCFの復旧も承ります。お客様相談センタにお問い合わせください。) 2.4.1 USB接続のCFリーダ/ライタを使う場合 CPZ-SH03搭載のCFを、 USB接続のCFリーダ/ライタにセットし、 ホストマシンに接続します。 (以降、 CFを/dev/sdaと認識したものとして説明します。) 1. 開発キットCDから必要なファイルをコピー USB-CD あるいは 内蔵CDドライブに開発キットCDをセットし、マウントします。 (ここでは、/cdromディレクトリにマウントしたものとして記載します。) 以下のように必要なファイルをホストマシンにコピーします。 kitty:~# cp –a /cdrom/cpz-base /opt kitty:~# cp –a /cdrom/cpz-usbcf /opt/ - 29 - Interface Corporation DMG-ZSH01 2. CDへの書き込み (1) パーティションテーブルの作成 fdiskコマンドでパーティションテーブルを作ります。以下は、実行例です。 kitty:~# cd /opt/cpz-usbcf/ kitty:/opt/cpz-usbcf# fdisk /dev/sda Command (m for help): p Disk /dev/sda: 256 MB, 256377344 bytes 16 heads, 32 sectors/track, 978 cylinders Units = cylinders of 512 * 512 = 262144 bytes Device Boot /dev/sda1 * Start 1 End 978 Blocks Id System 250352 83 Linux Command (m for help): d Selected partition 1 Command (m for help): p Disk /dev/sda: 256 MB, 256377344 bytes 16 heads, 32 sectors/track, 978 cylinders Units = cylinders of 512 * 512 = 262144 bytes Device Boot Start End Blocks Id System Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-978, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-978, default 978): Using default value 978 Command (m for help): a Partition number (1-4): 1 Command (m for help): p Disk /dev/sda: 256 MB, 256377344 bytes 16 heads, 32 sectors/track, 978 cylinders Units = cylinders of 512 * 512 = 262144 bytes Device Boot /dev/sda1 * Start 1 End 978 Blocks Id System 250352 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. kitty:/opt/cpz-usbcf# この例では、一旦、現在のパーティションを“d”で削除した後、“n”で新規パーティションを作成し ています。(sda1のパーティションサイズは、先頭から最後までを指定しています。) 次に、“a”で、ブート可能フラグをセットし、最後に“w”でCFに書き込んでいます。 Interface Corporation - 30 - DMG-ZSH01 (2) Ext3ファイルシステムの構築 mkfs.ext3コマンドを使用して、CFの1番目の領域(ここでは/dev/sda1)をext3ファイルシステムに します。 基本手順 kitty:/opt/cpz-usbcf# mkfs.ext3 /dev/sda1 mke2fs 1.35 (28-Feb-2004) Filesystem label= ∼中略∼ 180 days, whichever comes first. kitty:/opt/cpz-usbcf# Use tune2fs -c or -i to override. Red Hat Enterprise Linux v.4の場合 ※ SH-Linux(kernel v2.6.11)のリカバリをRed Hat Enterprise Linux v.4(以降RHEL4)で行う場合、 RHEL4のファイルシステムは拡張されており、そのままリカバリを行うと、SH-Linuxの起動時 にルートパーティションのマウントで失敗します。 下記の反転箇所のオプションを付けて無効にしておく必要があります。 kitty:/opt/cpz-usbcf# mkfs.ext3 –O^resize_inode /dev/sda1 mke2fs 1.35 (28-Feb-2004) Filesystem label= ∼中略∼ 180 days, whichever comes first. kitty:/opt/cpz-usbcf# Use tune2fs -c or -i to override. ※ SH-Linux(kernel2.4.17)のリカバリをRHEL4で行う場合、上記の手順を行っても ルートパーティションのマウントで失敗することが確認されています。 kernel 2.4系のLinuxを使用するか、ネットワークブートを使用したリカバリを行ってください。 (3) システムファイルの書き込み tarコマンドでCPZ-SH03用のシステムファイルをCFに書き込みます。 i SH-Linux kernel ver. 2.4.17 kitty:/opt/cpz-usbcf# mount -t ext3 /dev/sda1 /mnt/ kitty:/opt/cpz-usbcf# cd /mnt/ kitty:/mnt# tar zxf /opt/cpz-base/cpz-base-2.4-20060320.tar.gz kitty:/mnt# i SH-Linux kernel ver. 2.6.11 kitty:/opt/cpz-usbcf# mount -t ext3 /dev/sda1 /mnt/ kitty:/opt/cpz-usbcf# cd /mnt/ kitty:/mnt# tar zxf /opt/cpz-base/cpz-base-2.6-20060320.tar.gz kitty:/mnt# - 31 - Interface Corporation DMG-ZSH01 (4) ブートローダの書き込み tarコマンドで書き込んだ状態は、セルフでliloを実行する状態になっています。 クロスで実行できるように、/mnt/etc/lilo.confと/mnt/boot/boot.bを変更します。 kitty:/mnt# cp -a etc/lilo.conf etc/lilo.conf-orig kitty:/mnt# mv boot/boot.b boot/boot.b-orig kitty:/mnt# gedit etc/lilo.conf kitty:/mnt# cp -a /opt/cpz-usbcf/boot.b-21.4 boot/boot.b kitty:/mnt# /opt/cpz-usbcf/lilo -r /mnt/ Added linux * kitty:/mnt# この例では、/mnt/etc/lilo.confをlilo.conf-origとして、/mnt/boot/boot.bをboot.b-origとして保存していま す。 その後、/mnt/etc/lilo.confを変更します。変更内容は以下の通りです。 boot.bもクロス用のファイルをCFにコピーし、boot.bのバージョンに合ったliloを実行します。 /mnt/etc/lilo.confの変更内容 (変更前) linear compact # Cross LILO # Actually, it's /dev/hda boot = /dev/hda disk = /dev/hda bios=0x80 # delay = 30 ###vga = normal image = /boot/vmlinuz label = linux root = /dev/hda1 read-only (変更後) linear compact # Cross LILO # Actually, it's /dev/hda boot = /dev/sda disk = /dev/sda #boot = /dev/hda #disk = /dev/hda bios=0x80 # delay = 30 ###vga = normal image = /boot/vmlinuz label = linux root = /dev/hda1 read-only boot=とdisk=を、/dev/hdaから/dev/sdaに変更します。 Interface Corporation - 32 - DMG-ZSH01 (5) 終了処理 セルフでliloを実行しても問題ないように、/mnt/etc/lilo.confと/mnt/boot/boot.bを元のファイルに戻し、 アンマウントすれば完了です。 kitty:/mnt# cp etc/lilo.conf-orig etc/lilo.conf kitty:/mnt# cp boot/boot.b-orig boot/boot.b kitty:/mnt# cd kitty:~# umount /mnt/ kitty:~# 以上で、CFのリカバリは完了です。 お知らせ もし、オリジナルの boot.b を上書きしてし まった 場合、 /opt/cpz-usbcfに格納されている boot.b-20.0で上書きしてください。 kitty:/mnt# cp -a /opt/cpz-usbcf/boot.b-20.0 boot/boot.b kitty:/mnt# - 33 - Interface Corporation DMG-ZSH01 2.4.2 ネットワークを使用する場合 ■ホストマシンの準備(Debian編) CPZ-SH03とホストマシンを接続し、ネットワーク経由でCPZ-SH03を起動する準備をします。 (1) ネットワークブートパッケージのインストール ネットワークブートに必要なパッケージがホストマシンにインストールされていることを確認 します。 greenart:~# dpkg -l | grep dhcp3-server ii dhcp3-server greenart:~# dpkg -l | grep atftpd ii atftpd ※ tftpdでは動作しません。atftpdをインストールしてください。パッケージのインストール時に 設定を聞かれますが、デフォルトでインストールした場合で説明しています。 インストールされていない場合は、後述の『55ページ 3.4 パッケージの追加』を参照して、apt-get コマンドでインストールを行います。 (2) 開発キットCDから必要なファイルを展開 USB-CD あるいは 内蔵CDドライブに開発キットCDをセットし、マウントします。 (ここでは、/cdromディレクトリにマウントしたものとして記載します。) 以下のように必要なファイルをホストマシンに展開します。 kitty:~# cd /opt kitty:~# tar zxf /cdrom/cpz-netboot/cpz-netboot-20060301.tar.gz kitty:~# cp -a /cdrom/cpz-base/* /opt/cpz-netboot (3) /opt/cpz-netboot/etcディレクトリの設定 展開した状態では、/opt/cpz-netboot/etcディレクトリのネットワーク関連は、以下の内容になってい ます。ご使用のネットワーク環境に合わせて、変更してください。変更する場合は、ホストマシン の/etcディレクトリも併せて変更してください。 変更箇所は後述します。 ・ /opt/cpz-netboot/etc/fstab # /etc/fstab: static file # # <file system> kitty:/opt/cpz-netboot proc system information. <mount point> <type> <options> / nfs defaults 1 /proc proc defaults 0 ・ /opt/cpz-netboot/etc/hostname greenart Interface Corporation - 34 - <dump><pass> 1 0 DMG-ZSH01 ・ /opt/cpz-netboot/hosts 127.0.0.1 localhost 192.168.1.100 kitty 192.168.1.110 greenart # The following lines are desirable for IPv6 capable hosts # (added automatically by netbase upgrade) ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts ・ /opt/cpz-netboot/etc/resolv.conf nameserver 127.0.0.1 ・ /opt/network/interfaces # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # The loopback interface # automatically added when upgrading auto lo iface lo inet loopback # The first network card - this entry was created during the Debian installation # (network, broadcast and gateway are optional) # automatically added when upgrading auto eth0 iface eth0 inet static address 192.168.1.110 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 - 35 - Interface Corporation DMG-ZSH01 (4) ホストマシン側の/etcディレクトリの設定 ホストマシン側の/etcディレクトリのネットワーク関連は、以下の内容になっています。ご使用の ネットワーク環境に合わせて、変更してください。変更する場合は、前述の/opt/cpz-netboot/etc ディレクトリも併せて変更してください。 ・ /etc/dhcp3/dhcpd.conf use-host-decl-names on; ddns-update-style ad-hoc; default-lease-time 600; max-lease-time 7200; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100; option routers 192.168.1.100; } host greenart { hardware ethernet 00:80:62:xx:xx:xx; fixed-address greenart; filename "/root/cpz-netboot/boot/vmlinuz"; option root-path "/root/cpz-netboot"; } option option-128 code 128 = string; option option-128 "DODES"; option option-129 code 129 = string; option option-129 "ip=:::::eth0:"; hardware ethernet 00:80:62:xx:xx:xx;は、ご使用のCPZ-SH03のMACアドレスを指定してください。 CPZ-SH03のMACアドレスの確認方法は『54ページ 3.3.1 CPZ-SH03のMACアドレス確認方 法』を参照してください。 dhcpパッケージのバージョンが古いと、dhcpd.confファイルのフォーマットが異なることにより option指定の行でエラーなります。 以下のようにoption指定の行を変更します。 option option-128 "DODES"; option option-129 "ip=:::::eth0:"; Interface Corporation - 36 - DMG-ZSH01 ・ /etc/exports # /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). /opt greenart(rw,no_root_squash,insecure,sync) ・ /etc/hostname kitty ・ /etc/hosts 127.0.0.1 localhost.localdomain 192.168.1.100 kitty 192.168.1.110 greenart localhost debian # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts ・ /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 network 192.168.1.0 gateway 192.168.1.1 - 37 - Interface Corporation DMG-ZSH01 ■ホストマシンの準備(Red Hat編) CPZ-SH03とホストマシンを接続し、ネットワーク経由でCPZ-SH03を起動する準備をします。 (1) ネットワークブートパッケージのインストール ネットワークブートに必要なパッケージがホストマシンにインストールされていることを確認し ます。 [root@kitty ~]# rpm -qa | grep dhcp dhcp-x.xxxx [root@kitty ~]# rpm -qa | grep tftp-server tftp-server-x.xxxx インストールされていない場合は、rpmコマンドでインストールを行います。 [root@kitty ~]# rpm -ivh {CD のパス}/RedHat/RPMS/dhcp-x.xxxx [root@kitty ~]# rpm -ivh {CD のパス}/RedHat/RPMS/tftp-server-x.xxxx (2) 開発キットCDから必要なファイルを展開 USB-CD あるいは 内蔵CDドライブに開発キットCDをセットし、マウントします。 (ここでは、/cdromディレクトリにマウントしたものとして記載します。) 以下のように必要なファイルをホストマシンに展開します。 [root@kitty ~]# cd /opt [root@kitty opt]# tar zxf /cdrom/cpz-netboot/cpz-netboot-20060301.tar.gz [root@kitty opt]# cp -a /cdrom/cpz-base/* /opt/cpz-netboot (3) /opt/cpz-netboot/etcディレクトリの設定 展開した状態では、/opt/cpz-netboot/etcディレクトリのネットワーク関連は、以下の内容になってい ます。ご使用のネットワーク環境に合わせて、変更してください。変更する場合は、ホストマシン の/etcディレクトリも併せて変更してください。 変更箇所は後述します。 ・ /opt/cpz-netboot/etc/fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> kitty:/opt/cpz-netboot / nfs defaults 1 proc /proc proc defaults ・ /opt/cpz-netboot/etc/hostname greenart Interface Corporation - 38 - <dump> <pass> 1 0 0 DMG-ZSH01 ・ /opt/cpz-netboot/hosts 127.0.0.1 localhost 192.168.1.100 kitty 192.168.1.110 greenart # The following lines are desirable for IPv6 capable hosts # (added automatically by netbase upgrade) ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts ・ /opt/cpz-netboot/etc/resolv.conf nameserver 127.0.0.1 ・ /opt/network/interfaces # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # The loopback interface # automatically added when upgrading auto lo iface lo inet loopback # The first network card - this entry was created during the Debian installation # (network, broadcast and gateway are optional) # automatically added when upgrading auto eth0 iface eth0 inet static address 192.168.1.110 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 - 39 - Interface Corporation DMG-ZSH01 (4) ホストマシンの/etcディレクトリの設定 ホストマシン側の/etcディレクトリのネットワーク関連は、以下の内容になっています。ご使用の ネットワーク環境に合わせて、変更してください。変更する場合は、前述の/opt/cpz-netboot/etc ディレクトリも併せて変更してください。 ・ /etc/dhcpd.conf # # Sample configuration file for ISC dhcpd for Debian # # $Id: dhcpd.conf,v 1.4.2.2 2002/07/10 03:50:33 peloy Exp $ # use-host-decl-names on; ddns-update-style ad-hoc; default-lease-time 600; max-lease-time 7200; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.110 192.168.1.110; option routers 192.168.1.110; } host greenart { hardware ethernet 00:80:62:xx:xx:xx; fixed-address greenart; filename "/opt/cpz-netboot/boot/vmlinuz"; option root-path "/opt/cpz-netboot"; } option option-128 code 128 = string; option option-128 "DODES"; option option-129 code 129 = string; option option-129 "ip=:::::eth0:"; hardware ethernet 00:80:62:xx:xx:xx;は、ご使用のCPZ-SH03のMACアドレスを指定してください。 CPZ-SH03のMACアドレスの確認方法は『54ページ 3.3.1 CPZ-SH03のMACアドレス確認方 法』を参照してください。 dhcpパッケージのバージョンが古いと、dhcpd.confファイルのフォーマットが異なることにより option指定の行でエラーなります。 以下のようにoption指定の行を変更します。 option option-128 "DODES"; option option-129 "ip=:::::eth0:"; Interface Corporation - 40 - DMG-ZSH01 ・ /etc/exports # /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). /opt greenart(rw,no_root_squash,insecure,sync) ・ /etc/hosts 127.0.0.1 localhost.localdomain localhostdebian 192.168.1.100 kitty 192.168.1.110 greenart ・ /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 ・ /etc/xinet.d/tftp service tftp { socket_type protocol wait user server server_args disable per_source cps flags } = dgram = udp = yes = root = /usr/sbin/in.tftpd = -s /tftpboot = no = 11 = 100 2 = IPv4 ※ 網掛けの箇所にご注意ください。 - 41 - Interface Corporation DMG-ZSH01 ■ネットワーク経由でCPZ-SH03を起動 CPZ-SH03基板上のDSW2の1,2をOFF、3,4をONにします。 CPZ-SH03のLAN1とホストマシンのLAN、および クロスのシリアルで接続し、ホストマシン上で、 ターミナルエミュレーター(minicom)を起動後、CPZ-SH03の電源を入れます。 (ネットワーク経由でCPZ-SH03を起動する場合、ホストマシン上で、nfsサーバ、dhcpdが動いてい る必要があります。動いていない場合、/etc/init.dディレクトリの関連するデーモンをスタートして ください。) 約25秒後、『10ページ 2.1.2 クロスのシリアルケーブルで接続する場合』と同様の起動メッセー ジが表示され始めます。 Linux version 2.4.17 (root@kitty) (gcc version 3.0.4) #1 Mon Jun 27 15:24:43 JST 2005 On node 0 totalpages: 16384 zone(0): 16384 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: mem=64M sh_mv=SH03 console=ttySC1,115200 root=/dev/nfs nfsroot=192.168.1.100:/opt/cpz-netboot ip=192.168.1.110::192.168.1.110:255.255.255.0:greenart::off ip=:::::eth0: Setting GDB trap vector to 0x80000100 ・ ・ ・ Starting internet superserver: inetd. Starting deferred execution scheduler: atd. Starting periodic command scheduler: cron. Debian GNU/Linux testing/unstable greenart ttySC1 greenart login: ここで、“root”と入力し、ログインします。 以上で、ネットワーク経由での起動は完了です。試しに、lsコマンドと実行すると、以下の様な表 示になります。これは、ホストマシン上の/root/cpz-netbootディレクトリと同じ内容です。 greenart:~# ls / bin cpz-base-2.4-20060320.tar.gz etc initrd boot cpz-base-2.6-20060320.tar.gz floppy lib cdrom dev home mnt greenart:~# Interface Corporation - 42 - opt sbin var proc tmp root usr DMG-ZSH01 2.4.3 CFへの書き込み (1) パーティションテーブルの作成 fdiskコマンドでパーティションテーブルを作ります。以下は、実行例です。 greenart:~# fdisk /dev/hda hda: hda1 Command (m for help): p Disk /dev/hda: 16 heads, 32 sectors, 978 cylinders Units = cylinders of 512 * 512 bytes Device Boot /dev/hda1 * Start 1 End 978 Blocks Id System 250352 83 Linux Command (m for help): d Partition number (1-4): 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-978, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-978, default 978): Using default value 978 Command (m for help): a Partition number (1-4): 1 Command (m for help): p Disk /dev/hda: 16 heads, 32 sectors, 978 cylinders Units = cylinders of 512 * 512 bytes Device Boot /dev/hda1 * Start 1 End 978 Blocks Id System 250352 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. hda: hda1 hda: hda1 Syncing disks. greenart:~# この例では、一旦、現在のパーティションを“d”で削除した後、“n”で新規パーティションを作成し ています。(hda1のパーティションサイズは、先頭から最後までを指定しています。) 次に、“a”で、ブート可能フラグをセットし、最後に“w”でCFに書き込んでいます。 - 43 - Interface Corporation DMG-ZSH01 (2) ext3ファイルシステムの構築 mkfs.ext3とtune2fsコマンドを使用し、CFの1番目の領域(/dev/hda1)をext3ファイルシステムにします。 greenart:~# mkfs.ext3 /dev/hda1 mke2fs 1.30-WIP (30-Sep-2002) hda: hda1 hda: hda1 Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 62744 inodes, 250352 blocks 12517 blocks (5.00%) reserved for the super user First data block=1 31 block groups 8192 blocks per group, 8192 fragments per group 2024 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. greenart:~# tune2fs -O ^dir_index /dev/hda1 tune2fs 1.30-WIP (30-Sep-2002) hda: hda1 greenart:~# Interface Corporation - 44 - DMG-ZSH01 (3) システムファイルの書き込み tarコマンドでCPZ-SH03用のシステムファイルをCFに書き込みます。 i SH-Linux kernel ver. 2.4.17 greenart:~# mount -t ext3 /dev/hda1 /mnt/ hda: hda1 hda: hda1 kjournald starting. Commit interval 5 seconds EXT3 FS 2.4-0.9.16, 02 Dec 2001 on ide0(3,1), internal journal EXT3-fs: mounted filesystem with ordered data mode. greenart:~# cd /mnt/ greenart:/mnt# tar zxf /cpz-base-2.4-20060320.tar.gz greenart:/mnt# i SH-Linux kernel ver. 2.6.11 greenart:~# mount -t ext3 /dev/hda1 /mnt/ hda: hda1 hda: hda1 kjournald starting. Commit interval 5 seconds EXT3 FS 2.4-0.9.16, 02 Dec 2001 on ide0(3,1), internal journal EXT3-fs: mounted filesystem with ordered data mode. greenart:~# cd /mnt/ greenart:/mnt# tar zxf /cpz-base-2.6-20060320.tar.gz greenart:/mnt# (4) ブートローダの書き込み liloコマンドでブートローダをCFに書き込みます。 greenart:/mnt# lilo -r /mnt/ Added linux * greenart:/mnt# (5) 終了処理 最後にCFをアンマウントし、シャットダウンします。 greenart:/mnt# cd greenart:~# umount /mnt/ greenart:~# shutdown -h now INIT: Switching to runlevel: 0 INIT: Sending processes the TERM signal Broadcast message from root (ttySC1) (Thu Jun 30 12:50:35 2005): The system is going down for system halt NOW! INIT: Sending processes the KILL signal ・ ・ ・ NOT deconfiguring network interfaces: / is an NFS mount Deactivating swap... done. Unmounting local filesystems... done. RPC: sendmsg returned error 101 nfs: RPC call returned error 101 Power down. RPC: sendmsg returned error 101 nfs: RPC call returned error 101 (Power down表示の前後で、error 101と表示することがありますが、無視してください。) 以上で、CFのリカバリは完了です。 - 45 - Interface Corporation DMG-ZSH01 第3章 各機能の設定方法 3.1 アプリケーションの自動実行 ここでは、作成したアプリケーションをログイン無しで、自動実行させる方法を説明します。 ! 注意 ここで説明する方法を誤ると、OSが起動できなくなります。 必ず、『29ページ 2.4 CFのリカバリ手順』ができることを確認してから行ってください。 3.1.1 設定方法 1. 自動ログイン設定 ログインを無くすため、/etc/inittabの65行目の T0:2345:respawn:/sbin/getty -L ttySC1 115200 vt100 を、 T0:2345:respawn:/bin/su -c /bin/sh - root と変更します。 (開発キットCD内の/cpz-autoディレクトリに変更したinittabがありますので、CPZ-SH03側CFの/etc ディレクトリにコピーすることで変更できます。) 2. /root/.profileへの登録 自動実行したいアプリケーションを、/root/.profileの最後に追加します。 以上で、自動実行の準備は完了です。もし、自動実行を止めたい場合は、/root/.profileの追加行を削 除し、/etc/inittabを元に戻して、rebootしてください。 Interface Corporation - 46 - DMG-ZSH01 3.1.2 設定例 ここでは、ドライバとシェルスクリプトを使用し、CPZ-SH03の電源を入れると、自動的に汎用LED を10回点滅させる例を紹介します。 1. ドライバとシェルスクリプトを、CPZ-SH03側にコピーします。 greenart:~# mount kitty:/opt/ /mnt/ greenart:~# cp -a /mnt/cpz-auto/* ./ greenart:~# ※ ホストマシンの/optディレクトリはNFSで共有できるように設定しておいてください。 2. 自動実行の設定をします。 greenart:~# cp inittab /etc/ greenart:~# vi .profile greenart:~# cat .profile # ~/.profile: executed by Bourne-compatible login shells. if [ -f ~/.bashrc ]; then . ~/.bashrc fi PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11 export PATH mesg n /root/sh03led.sh ← ここに、登録します。 greenart:~# - 47 - Interface Corporation DMG-ZSH01 3. rootのパスワードの設定と、ユーザの追加をします。 自動実行設定を解除するにはroot以外のアカウントでログイン後、suコマンドでrootアカウントに切 り替える必要があります。 (rootアカウントでログインすると自動実行機能が働いてしまいます。) そのためrootアカウントのパスワードと、一般ユーザアカウントの追加を行っておきます。 greenart:~# passwd root Enter new UNIX password: ← root のパスワードを入力します Retype new UNIX password: ← 同じものを入力します passwd: password updated successfully greenart:~# adduser user Adding user user... Adding new group user (1000). Adding new user user (1000) with group user. Enter new UNIX password: ← user のパスワードを入力します Retype new UNIX password: ← 同じものを入力します passwd: password updated successfully Changing the user information for user Enter the new value, or press return for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [y/n] y greenart:~# 4. rebootコマンドで、CPZ-SH03を再起動し、汎用LEDの点灯を確認します。 5. 自動実行の解除方法。 kitty:~# telnet greenart Trying 192.168.1.110... Connected to greenart. Escape character is '^]'. Debian GNU/Linux testing/unstable greenart greenart login: user Password: ← ここで、user のパスワードを入力します user@greenart:~$ su Password: ここで、root のパスワードを入力します greenart:/home/user# cd greenart:~# cp inittab-orig /etc/inittab ← inittab を元に戻します greenart:~# vi .profile greenart:~# cat .profile # ~/.profile: executed by Bourne-compatible login shells. if [ -f ~/.bashrc ]; then . ~/.bashrc fi PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin: /sbin:/bin:/usr/bin/X11 export PATH mesg n ← 追加した行を、削除しています greenart:~# Interface Corporation - 48 - DMG-ZSH01 3.2 リードオンリCF ここでは、CPZ-SH03のCFをリードオンリにする方法を説明します。 ! 注意 ここで説明する方法を誤ると、OSが起動できなくなります。 必ず、『29ページ 2.4 CFのリカバリ手順』ができることを確認してから行ってください。 3.2.1 リードオンリにする方法 CPZ-SH03のCFをリードオンリにするためには、CF内の/etc/fstab,/etc/init.d/rcS,/etc/init.d/modutilsを変 更する必要があります。 開発キットCD内の/cpz-readonlyディレクトリに、変更したファイルがありますので、CPZ-SH03側 CFの/etcディレクトリ,/etc/init.dディレクトリにコピーし、シャットダウンします。 ! 注意 何度も起動・終了を繰り返すと、/var/logディレクトリのファイルサイズが大きくなり、コピーする ための領域が足りず、起動できなくなることがあります。 apt-get cleanを実行し、パッケージのローカル情報を削除します。また、/var/logディレクトリを開 発キットCD内の/cpz-readonly/clean-var-logディレクトリを参考に、ログファイルのサイズを小さ くした後、/etcディレクトリの変更を行ってください。 1. 開発キットCD内のcpz-readonlyディレクトリのetcファイルをCPZ-SH03にコピーします。 最後にシャットダウンします。 greenart:~# mount kitty:/opt/ /mnt/ greenart:~# cd /mnt/cpz-readonly/ greenart:/mnt/cpz-readonly# cp -a fstab /etc/ greenart:/mnt/cpz-readonly# cp -a rcS /etc/init.d/ greenart:/mnt/cpz-readonly# cp -a modutils /etc/init.d/ greenart:/mnt/cpz-readonly# cd greenart:~# umount /mnt/ greenart:~# shutdown -h now INIT: Switching to runlevel: 0 INIT: Sending processes the TERM signal INIT: Sending processes the KILL signal ・ ・ ・ Unmounting remote filesystems... done. Deconfiguring network interfaces: done. Deactivating swap... done. Unmounting local filesystems... done. Power down. 2. CPZ-SH03の電源を入れ、echoで書き込みできないことを確認します。 greenart:~# echo "abc" >xxx.xxx -bash: xxx.xxx: Read-only file system greenart:~# - 49 - Interface Corporation DMG-ZSH01 3.2.2 リードオンリを解除する方法 リードオンリを、元に戻すに場合は、 greenart:~# umount /etc/ greenart:~# mount -wn -o remount / と実行した後、開発キットCD内の./cpz-readonly/内にあるfstab-orig, rcS-orig, modutils-origを、それぞ れ、/etc/fstab,/etc/init.d/rcS,/etc/init.d/modutilsにコピーし、rebootすることで行えます。 1. 開発キットCD内のcpz-readonly/ディレクトリのetcファイル(xxx-orig)をCPZ-SH03にコピーします。 最後にシャットダウンします。 greenart:~# umount /etc/ greenart:~# mount -wn -o remount / EXT3 FS 2.4-0.9.16, 02 Dec 2001 on ide0(3,1), internal journal greenart:~# mount kitty:/opt /mnt/ greenart:~# cd /mnt/cpz-readonly/ greenart:/mnt/cpz-readonly# cp -a fstab-orig /etc/fstab greenart:/mnt/cpz-readonly# cp -a rcS-orig /etc/init.d/rcS greenart:/mnt/cpz-readonly# cp -a modutils-orig /etc/init.d/modutils greenart:/mnt/cpz-readonly# cd greenart:~# umount /mnt/ greenart:~# shutdown -h now Broadcast message from root (ttySC1) (Thu Jun 30 13:27:33 2005): The system is going down for system halt NOW! INIT: Switching to runlevel: 0 INIT: Sending processes the TERM signal INIT: Sending processes the KILL signal ・ ・ ・ Unmounting remote filesystems... done. Deconfiguring network interfaces: done. Deactivating swap... done. Unmounting local filesystems... done. Power down. 2. CPZ-SH03の電源を入れ、echoで書き込みができることを確認します。 greenart:~# echo "abc" >xxx.xxx greenart:~# cat xxx.xxx abc greenart:~# Interface Corporation - 50 - DMG-ZSH01 3.2.3 リードオンリ設定ファイルの変更内容 リードオンリ設定で変更したファイルの変更内容は以下の通りです。 (diffコマンドを実行した差分情報です。) 1. /etc/fstab --- fstab-orig 2005-05-17 10:09:29.000000000 +0900 +++ fstab 2005-05-19 15:05:48.000000000 +0900 @@ -1,5 +1,5 @@ # /etc/fstab: static file system information. # -# <file system> <mount point> <type> <options> <dump> <pass> -/dev/hda1 / ext3 defaults,errors=remount-ro1 1 -proc /proc proc defaults 0 0 +# <file system> <mount point> <type> <options> <dump> <pass> +/dev/hda1 / ext3 ro 0 0 +proc /proc proc defaults 0 0 - 51 - Interface Corporation DMG-ZSH01 2. /etc/init.d/rcS --- rcS-orig 2002-07-09 09:00:00.000000000 +0900 +++ rcS 2005-05-19 13:26:52.000000000 +0900 @@ -12,6 +12,44 @@ umask 022 export PATH runlevel prevlevel +####################################### +##### make RAM-Disk for Read-only ##### +####################################### + +mke2fs -q -i 2048 /dev/ram0; tune2fs -O ^dir_index /dev/ram0 +mount -n -o rw /dev/ram0 /mnt +for i in `ls -1 /var | grep -v "cache" | grep -v "lib"` +do + cp -a /var/$i /mnt/ +done +mkdir /mnt/cache +for i in `ls -1 /var/cache | grep -v "apt"` +do + cp -a /var/cache/$i /mnt/cache/ +done +mkdir /mnt/lib +for i in `ls -1 /var/lib | grep -v "apt" | grep -v "dpkg"` +do + cp -a /var/lib/$i /mnt/lib/ +done +umount -n /mnt +mount -n -o rw /dev/ram0 /var + +mke2fs -q -i 2048 /dev/ram1; tune2fs -O ^dir_index /dev/ram1 +mount -n -o rw /dev/ram1 /mnt +cp -a /etc/* /mnt/ +umount -n /mnt +mount -n -o rw /dev/ram1 /etc + +mke2fs -q -i 2048 /dev/ram2; tune2fs -O ^dir_index /dev/ram2 +mount -n -o rw /dev/ram2 /mnt +cp -a /dev/* /mnt/ +umount -n /mnt +mount -n -o rw /dev/ram2 /dev + +mke2fs -q -i 2048 /dev/ram3; tune2fs -O ^dir_index /dev/ram3 +mount -n -o rw /dev/ram3 /tmp + # #See if system needs to be setup. This is ONLY meant to # be used for the initial setup after a fresh installation! Interface Corporation - 52 - DMG-ZSH01 3. /etc/modutils --- modutils-orig 2002-06-21 09:00:00.000000000 +0900 +++ modutils 2005-05-19 13:38:04.000000000 +0900 @@ -7,9 +7,11 @@ [ -f /proc/modules ] || exit 0 [ -e /sbin/depmod ] || exit 0 -echo -n "Calculating module dependencies... " -depmod -a > /dev/null -echo "done." +####################################################### +#####echo -n "Calculating module dependencies... " +#####depmod -a > /dev/null +#####echo "done." +####################################################### # Loop over every line in /etc/modules. echo -n 'Loading modules: ' 3.3 Wake On LAN CPZ-SH03でWake On LANを可能にするためには、シャットダウンを行う前に、ethtoolコマンドを 実行してWake On LANを有効にする必要があります。 なお、CPZ-SH03にはLANが2ポートのモデルがありますが、Wake On LANに対応したポートはLAN1 のみです。 1. ethtoolコマンドでWake On LANを有効にした後、シャットダウンします。 greenart:~# ethtool -s eth0 wol g greenart:~# shutdown -h now Broadcast message from root (ttySC1) (Thu Jun 30 13:31:13 2005): The system is going down for system halt NOW! INIT: Switching to runlevel: 0 INIT: Sending processes the TERM signal INIT: Sending processes the KILL signal ・ ・ ・ Unmounting remote filesystems... done. Deconfiguring network interfaces: done. Deactivating swap... done. Unmounting local filesystems... done. Power down. 2. ホストマシンから、CPZ-SH03のMACアドレスに対して、etherwakeコマンドでマジックパケット を送信します。(RedHat系は、ether-wakeコマンドです。) kitty:~# etherwake 00:80:62:80:02:c6 (実行例) CPZ-SH03の電源が入り、OSが起動します。 - 53 - Interface Corporation DMG-ZSH01 3.3.1 CPZ-SH03のMACアドレス確認方法 CPZ-SH03のMACアドレスは、基板上のシールで確認できます。また、ソフトウェアにても確認す ることができます。 1. CPZ-SH03上にログインして確認する ifconfigコマンドでCPZ-SH03のMACアドレスを、以下のようにして確認することができます。 HWaddrがMACアドレスとなります。 greenart:~# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:80:62:80:02:C6 inet addr:192.168.1.110 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:5 greenart:~# 2. ホストマシンからarpコマンドで確認する CPZ-SH03が起動しているときに、ホストマシンからarpコマンドを実行することによりCPZ-SH03 のMACアドレスを確認することができます。 kitty:~# ping 192.168.1.110 kitty:~# arp -a 192.168.1.110 greenart (192.168.1.110) at 00:80:62:80:02:C6 [ether] on eth0 kitty:~# Interface Corporation - 54 - DMG-ZSH01 3.4 パッケージの追加 使いたいコマンドやlibが収録されていない場合、インターネット上のWebからパッケージ(deb)を追 加インストールします。 3.4.1 apt-getコマンドを使う方法 インターネットに接続できる環境では、パッケージのインストールは、apt-getコマンドで行います。 ご使用のネットワーク環境に合わせて、/etcディレクトリの設定を変更してください。 apt-getコマンドを実行し、以下の様な表示になれば準備OKです。 greenart:~# apt-get clean greenart:~# apt-get update Hit http://debian.dodes.org sid/main Packages Ign http://debian.dodes.org sid/main Release Hit http://debian.dodes.org sid/non-free Packages Ign http://debian.dodes.org sid/non-free Release Hit http://debian.dodes.org sid/contrib Packages Ign http://debian.dodes.org sid/contrib Release Reading Package Lists... Done Building Dependency Tree... Done 例えば、gccをインストールする場合、以下の様にします。 greenart:~# apt-get install gcc Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: binutils cpp cpp-3.0 gcc-3.0 The following NEW packages will be installed: binutils cpp cpp-3.0 gcc gcc-3.0 0 packages upgraded, 5 newly installed, 0 to remove and 0 not upgraded. Need to get 3627kB of archives. After unpacking 8442kB will be used. Do you want to continue? [Y/n] Y Get:1 http://debian.dodes.org sid/main binutils 2.13.90.0.4-1 [1996kB] Get:2 http://debian.dodes.org sid/main cpp-3.0 1:3.0.4-7.dodes.0 [127kB] Get:3 http://debian.dodes.org sid/main cpp 2:3.0.4-8 [3880B] Get:4 http://debian.dodes.org sid/main gcc-3.0 1:3.0.4-7.dodes.0 [1497kB] Get:5 http://debian.dodes.org sid/main gcc 2:3.0.4-8 [3432B] Fetched 3627kB in 9s (390kB/s) Preconfiguring packages ... : Setting up gcc (3.0.4-8) ... これで、インストール完了です。 パッケージの削除は、apt-getコマンドにremoveオプションをつけて実行します。 greenart:~# apt-get remove gcc Webの指定は、/etc/apt/sources.listで指定します。開発キットのCDからCFを構築した場合、以下の指 定になっています。もし、Webの指定を変更する場合は、この設定を変更してください。 greenart:~# cat /etc/apt/sources.list deb http://debian.dodes.org/debian sid main non-free contrib - 55 - Interface Corporation DMG-ZSH01 3.4.2 パッケージを手動でインストールする方法 インターネットに繋がらない環境ではapt-getコマンドが利用できないため、個々のパッケージを dpkgコマンドでインストールする必要があります。 例ではWindows共有ディレクトリをLinuxマシンから利用できるsmbfsパッケージをインストールし ます。 ※ 個々のパッケージは予めインターネットを使用してダウンロードしておく必要があります。 ※ apt-getコマンドと異なりパッケージの依存解決は自身で解決する必要があります。dpkgコマンド でインストールすると依存関係のあるパッケージがインストールされていない旨のエラー メッセージが出ますので、依存関係のあるパッケージをインストールした後に再度、そのパッ ケージのインストールを行ってください。 下記の例ではsmbfsをインストールするとsamba-commonパッケージがインストールされていな い旨のエラーメッセージが表示されるため、samba-commonが必要だと判ります。 greenart:/mnt/user/samba# dpkg -i smbfs_2.999+3.0.alpha20-1_sh4.deb Selecting previously deselected package smbfs. (Reading database ... 7632 files and directories currently installed.) Unpacking smbfs (from smbfs_2.999+3.0.alpha20-1_sh4.deb) ... dpkg: dependency problems prevent configuration of smbfs: smbfs depends on samba-common (= 2.999+3.0.alpha20-1); however: Package samba-common is not installed. dpkg: error processing smbfs (--install): dependency problems - leaving unconfigured Errors were encountered while processing: smbfs 1. パッケージをダウンロードする SH-LinuxのパッケージはDODES プロジェクト(http://debian.dodes.org)より入手できます。 smbfsとsamba-commonのパッケージをインターネットに接続したコンピュータにてダウンロードし ます。 ・smbfsパッケージ http://debian.dodes.org/debian/dists/sid/main/binary-sh4/net/samba-common_2.999+3.0.alpha 20-1_sh4.deb ・samba-commonパッケージ http://debian.dodes.org/debian/dists/sid/main/binary-sh4/otherosfs/smbfs_2.999+3.0.alpha201_sh4.deb Interface Corporation - 56 - DMG-ZSH01 2. パッケージをインストールする ホストマシンの/optディレクトリにパッケージをコピーします。 CPZ-SH03にrootでログインし、mountコマンドでネットワークドライブをマウント後、パッケージ のインストールを行います。実行例を以下に示します。 greenart:~# mount kitty:/opt /mnt greenart:~# cd /mnt greenart:/mnt# dpkg -i samba-common_2.999+3.0.alpha20-1_sh4.deb Selecting previously deselected package samba-common. (Reading database ... 7528 files and directories currently installed.) Unpacking samba-common (from samba-common_2.999+3.0.alpha20-1_sh4.deb) ... Setting up samba-common (2.999+3.0.alpha20-1) ... ∼中略∼ greenart:/mnt# dpkg -i smbfs_2.999+3.0.alpha20-1_sh4.deb Selecting previously deselected package smbfs. (Reading database ... 7544 files and directories currently installed.) Unpacking smbfs (from smbfs_2.999+3.0.alpha20-1_sh4.deb) ... Setting up smbfs (2.999+3.0.alpha20-1) ... greenart:/mnt# ※ ホストマシンの/optディレクトリはNFSで共有できるように設定しておいてください。 パッケージの削除は、dpkgに“-r”オプションをつけて実行します。 greenart:~# dpkg -r smbfs greenart:~# dpkg -r samba-common - 57 - Interface Corporation DMG-ZSH01 第4章 カーネル構築 ここでは、CPZ-SH03のカーネルを構築する方法を説明します。 カーネルコンパイルは、ホストマシン上で行います。 『17ページ 2.2.1 クロス開発環境の構築』で、クロスコンパイラの設定がされていることを 前提に説明します。 ! 注意 ここで説明する方法を誤ると、OSが起動できなくなります。 必ず、『29ページ 2.4 CFのリカバリ手順』ができることを確認してから行ってください。 4.1 kernel v2.4.17 『17ページ 2.2.1 クロス開発環境の構築』の「kernel v2.4.17」の説明に従って環境の構築を行って ください。 4.1.1 カーネルコンフィグレーション カーネルコンフィグレーションは、カーネルソースのあるディレクトリで、make xconfig, make menuconfigとすることで開始します。また、ARCH=shとすることで、SHアーキテクチャを指 定します。 kitty:~# cd /usr/src/linux-2.4.17 kitty:/usr/src/linux-2.4.17# make ARCH=sh CROSS_COMPILE=sh4-linuxxconfig ここでは、X Window system上で動作するxconfigを指定しています。 実行すると、以下のメニューが表示されます。 Interface Corporation - 58 - DMG-ZSH01 このメニューから、各機能の選択を行います。 例えば、Processor type and featuresを選択すると、以下のサブメニューを表示します。 初期設定は、CPZ-SH03の指定になっています。Main Menuを選択後、Save and Exitを選択すると、 以下のサブメニューが表示されますので、 OKを押すと、xconfigが終了します。 設定した内容は、.configに書き込まれます。 カーネルコンフィグレーションの選択項目は多数ありますが、全てがSH(あるいはCPZ-SH03)で動作 する訳ではありません。新しい機能を追加される場合は、1項目ずつ追加・確認されることをお勧 めします。 お知らせ 設定をデフォルトに戻したい場合、開発キットCDの/cpz-kernelに収録されているconfig-2.4.17 で、/usr/src/linux-2.4.17/.configを上書きしてください。 - 59 - Interface Corporation DMG-ZSH01 4.1.2 カーネルコンパイル カーネルコンパイルは、以下で行います。 kitty:/usr/src/linux-2.4.17# make ARCH=sh CROSS_COMPILE=sh4-linux- clean dep zImage modules エラーにならなければ、コンパイルは成功です。 次に、構築したモジュールを、/usr/src/linux-2.4.17以下のディレクトリにインストールします。以下の 例は、mod-dirというディレクトリを作り、そのディレクトリにインストールしています。 kitty:/usr/src/linux-2.4.17# mkdir mod-dir kitty:/usr/src/linux-sh# make ARCH=sh CROSS_COMPILE=sh4-linux- INSTALL_M OD_PATH=/usr/src/linux-2.4.17/mod-dir/ modules_install この時、以下のdepmodエラーが出ますが、このエラーは無視してかまいません。 depmod: ELF file /usr/src/linux-sh/mod-dir/lib/modules/2.4.17/kernel/drivers/char/pcmcia/seria l_cs.o not for this architecture make: *** [_modinst_post] エラ− 1 モジュールがインストールされたかどうかは、以下で確認できます。 kitty:/usr/src/linux-2.4.17# ls mod-dir/lib/modules/2.4.17/ build modules.generic_string modules.parportmap modules.usbmap kernel modules.ieee1394map modules.pcimap pcmcia modules.dep modules.isapnpmap modules.pnpbiosmap kitty:/usr/src/linux-2.4.17# 以上で、カーネルの構築は完了です。 Interface Corporation - 60 - DMG-ZSH01 4.2 kernel v2.6.11 『17ページ 2.2.1 クロス開発環境の構築』の「kernel v2.6.11」の説明に従って環境の構築を行って ください。 4.2.1 カーネルコンフィグレーション make ARCH=sh xconfigで、カーネルコンフィグレーションの画面を表示し、 カーネルコンフィグレーションの設定を行います。 設定した内容は、.configに書き込まれます。 お知らせ 設定をでフォルトに戻したい場合、開発キットCDの/cpz-kernelに収録されているconfig-2.6.11 で、/usr/src/cpz-2.6/linux-2.6.11.12/.configを上書きしてください。 - 61 - Interface Corporation DMG-ZSH01 make ARCH=sh xconfig実行で、以下のエラーメッセージで異常終了する場合は、apt-get install libqt3-devと実行し、qt関連のパッケージをインストールしてください。 kitty:/usr/src/cpz-2.6/linux-2.6.11.12# make ARCH=sh xconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/basic/split-include HOSTCC scripts/basic/docproc * * Unable to find the QT installation. Please make sure that the * QT development package is correctly installed and the QTDIR * environment variable is set to the correct location. * make[1]: *** [scripts/kconfig/.tmp_qtcheck] エラー 1 make: *** [xconfig] エラー 2 4.2.2 カーネルコンパイル カーネルコンパイルは、make ARCH=sh CROSS_COMPILE=sh4-linux- と実行することで行います。 kitty:/usr/src/cpz-2.6/linux-2.6.11.12# make ARCH=sh CROSS_COMPILE=sh4-linux ・ ・ ・ kitty:/usr/src/linux-2.6.11.12# mkdir mod-dir kitty:/usr/src/linux-2.6.11.12# make ARCH=sh CROSS_COMPILE=sh4-linux- INST ALL_MOD_PATH=/usr/src/linux-2.6.11.12/mod-dir/ modules_install ここでは、コンパイルした後、./mod-dir/にモジュールをインストールしています。 4.2.3 割り込み応答性能のチューニング kernel 2.6の特長として、カーネルレベルプリエンプションの導入によって、優先順位の低いプロセ スの実行中に発生した優先順位の高いプロセスを即座に切り替えて実行できるようになりました。 これにより、kernel 2.4と比較して割り込み応答性の向上が期待できます。 この応答性向上の鍵となるのはCPUクロックの精度を決定するinclude/asm-sh/param.hに定義された HZの値です。 この値が大きくなるほど、タスクスケジューリングの切り替え待ち時間が短くなるため、応答性が 向上します。 但し、この値を大きくすると、割り込み応答性が向上する替わりに、システム全体の負荷が上昇す るため、SH-4のような処理能力の低いCPUでは、影響を考慮する必要があります。 この値は、i386用kernel 2.6(2.6.13以前)では1000になっていますが、kernel 2.6.13以降では250に変更 され、カーネルバージョンで値が異なっています。 SH-Linuxでは100がデフォルトに設定されています。 この値は、必要に応じて適宜変更してご使用ください。 ! 警告 この値の変更は、カーネル内で使用されている起動時からの経過時間を格納するjiffies変数 のカウントアップ周期に影響します。ドライバの動作にも影響する可能性がありますので、 デバイスドライバの再コンパイルを行ってください。 Interface Corporation - 62 - DMG-ZSH01 ■HZの値と割り込み応答性の関係 HZを変更することで、割り込み応答性がどの位変化するかを、以下の環境で測定した結果を示しま す。 1. 環境 項 目 CPU OS 内 容 CPZ-SH03(SH4:240MHz) SHLinux2.4 (カーネルバージョン2.4.17 OSタイマ周期=10ms) SHLinux2.6 (カーネルバージョン2.6.11 OSタイマ周期=10ms) kernel 2.4 kernel 2.6 HZ=100 kernel 2.6 HZ=200 SHLinux2.6改良バージョン (カーネルバージョン2.6.11 OSタイマ周期=5ms) SHLinux2.6改良バージョン (カーネルバージョン2.6.11 OSタイマ周期=2.5ms) SHLinux2.6改良バージョン (カーネルバージョン2.6.11 OSタイマ周期=1ms) SHRTLinux(RTLinux-3.2-pre1) (カーネルバージョン2.4.17) kernel 2.6 HZ=400 kernel 2.6 HZ=1000 RTLinux CPZ-4141(RS-232C×2チャンネル) ボーレート115200bps シリアルプログラムの優先度を-20(最優先)に設定 ペリフェラルボード 通信設定 その他条件 2. 測定内容 シリアルポートでデータの送受信を繰り返し行い、データ受信完了からデータ送信までの時間を、 1万回測定した際の時間のバラつきと平均,標準偏差を求めます。 アプリケーション通知 データ送信開始 受信完了 データ受信 データ送信 この時間を測定 - 63 - Interface Corporation DMG-ZSH01 3. 測定結果 発生回数 10000 RTLinux Linux2.6(HZ=1000) Linux2.6(HZ=400) Linux2.6(HZ=200) Linux2.6(HZ=100) Linux2.4 9000 8000 7000 6000 5000 4000 3000 2000 1000 0 ~1000 ~2000 ~3000 ~4000 ~5000 ~6000 ~7000 ~8000 ~9000 ~10000 遅延時間[µsec] グラフ3−1 遅延時間分布グラフ データ区間(μs) 0∼1000 1000∼2000 2000∼3000 3000∼4000 4000∼5000 5000∼6000 6000∼7000 7000∼8000 8000∼9000 9000∼10000 10000∼ 平均値 最大値 最小値 標準偏差 HZ= 1000 3694 6306 0 0 0 0 0 0 0 0 0 1131.31 1690 637 288.33 Linux2.6 HZ= 400 HZ= 200 HZ= 100 1485 713 376 4014 2025 1007 3995 1987 997 507 1989 997 0 2030 991 0 1257 1003 0 0 1009 0 0 998 0 0 1012 0 0 981 0 0 629 1876.85 3135.91 5620.85 3128 5737 10735 630 634 630 722.51 1443.42 2886.89 Linux2.4 RTLinux 379 1003 998 991 1008 997 1005 994 1012 996 617 5621.63 10621 625 2885.91 10000 0 0 0 0 0 0 0 0 0 0 582.15 681 576 4.43 4. 考察 上記の結果から、デフォルトのLinux2.6(HZ= 100)では、Linux 2.4と変化が無いことが判ります。 HZの値を大きくするほど、遅延時間のバラつきが減少します。 RTLinuxでは、遅延時間は全てのデータで1msec以内に収まります。 Interface Corporation - 64 - DMG-ZSH01 ■HZの変更方法 HZを変更するには、Linuxカーネルのヘッダーファイルを書き換えて、カーネルの再コンパイルが 必要になります。 1. ヘッダーファイルの変更 /usr/src/cpz-2.6/linux-2.6.11.12/include/asm-sh/param.hをテキストエディターで開いて、斜線の箇所を 100∼1000の間で変更します。 #ifndef __ASM_SH_PARAM_H #define __ASM_SH_PARAM_H #ifdef __KERNEL__ # ifdef CONFIG_SH_WDT # define HZ 1000 # else # define HZ 100 # endif # define USER_HZ 100 # define CLOCKS_PER_SEC #endif /* Needed for high-res WOVF */ /* User interfaces are in "ticks" */ (USER_HZ) /* frequency at which times() counts */ 2. カーネルコンパイル まず、make ARCH=sh CROSS_COMPILE=sh4-linux- cleanを実行して、予め中間ファイルを削除しま す。その後、make ARCH=sh CROSS_COMPILE=sh4-linux- と実行することで行います。 kitty:/usr/src/cpz-2.6/linux-2.6.11.12# make ARCH=sh CROSS_COMPILE=sh4-linux - clean : kitty:/usr/src/cpz-2.6/linux-2.6.11.12# make ARCH=sh CROSS_COMPILE=sh4-linux : kitty:/usr/src/linux-2.6.11.12# mkdir mod-dir kitty:/usr/src/linux-2.6.11.12# make ARCH=sh CROSS_COMPILE=sh4-linux- INST ALL_MOD_PATH=/usr/src/linux-2.6.11.12/mod-dir/ modules_install ここでは、コンパイルした後、./mod-dir/にモジュールをインストールしています。 次項の『66ページ 4.3 カーネルの入れ替え』を参照して、カーネルを入れ替えてください。 - 65 - Interface Corporation DMG-ZSH01 4.3 カーネルの入れ替え 4.3.1 USB接続のCFリーダ/ライタを使う場合 CPZ-SH03搭載のCFを、 USB接続のCFリーダ/ライタにセットし、 ホストマシンに接続します。 (以降、 CFを/dev/sdaと認識したものとして説明します。) 1. カーネルとモジュールの書き込み 以下の手順で、構築したカーネルとモジュールを、CFにコピーします。 i SH-Linux kernel ver. 2.4.17 kitty:~# cd /usr/src/linux-2.4.17 kitty:/usr/src/linux-2.4.17# mount -t ext3 /dev/sda1 /mnt/ kitty:/usr/src/linux-2.4.17# cp -a arch/sh/boot/zImage /mnt/boot/vmlinuz kitty:/usr/src/linux-2.4.17# rm -rf /mnt/lib/modules kitty:/usr/src/linux-2.4.17# cp -a mod-dir/lib/modules /mnt/lib/ i SH-Linux kernel ver. 2.6.11 kitty:~# cd /usr/src/cpz-2.6/linux-2.6.11.12 kitty:/usr/src/cpz-2.6/linux-2.6.11.12# mount -t ext3 /dev/sda1 /mnt/ kitty:/usr/src/cpz-2.6/linux-2.6.11.12# cp -a arch/sh/boot/zImage /mnt/boot/vmlinuz kitty:/usr/src/cpz-2.6/linux-2.6.11.12# rm -rf /mnt/lib/modules kitty:/usr/src/cpz-2.6/linux-2.6.11.12# cp -a mod-dir/lib/modules /mnt/lib/ もし、CF内の/lib/modules/以下に、カーネル以外のモジュールを組み込んだ場合は、一旦、別のデ ィレクトリに退避し、カーネルモジュールをコピーした後、再度 元の場所にコピーし直してくだ さい。 2. ブートローダの書き込み クロスで実行できるように、/mnt/etc/lilo.confと/mnt/boot/boot.bを変更します。 kitty:~# cd /mnt kitty:/mnt# cp -a etc/lilo.conf etc/lilo.conf-orig kitty:/mnt# mv boot/boot.b boot/boot.b-orig kitty:/mnt# gedit etc/lilo.conf kitty:/mnt# cp -a /opt/cpz-usbcf/boot.b-21.4 boot/boot.b kitty:/mnt# /opt/cpz-usbcf/lilo -r /mnt/ Added linux * kitty:/mnt# この例では、/mnt/etc/lilo.confをlilo.conf-origとして、/mnt/boot/boot.bをboot.b-origとして保存していま す。 その後、/mnt/etc/lilo.confを変更します。変更内容は、『29ページ 2.4 CFのリカバリ手順』の 『29ページ 2.4.1 USB接続のCFリーダ/ライタを使う場合』を、参照してください。 boot.bもクロス用のファイルをCFにコピーし、boot.bのバージョンに合ったliloを実行します。 Interface Corporation - 66 - DMG-ZSH01 3. 終了処理 セルフでliloを実行しても問題ないように、/mnt/etc/lilo.confと/mnt/boot/boot.bを元のファイルに戻し、 umountすれば完了です。 kitty:/mnt# cp etc/lilo.conf-orig etc/lilo.conf kitty:/mnt# cp boot/boot.b-orig boot/boot.b kitty:/mnt# cd kitty:~# umount /mnt/ kitty:~# 以上で、カーネルの書き込みは完了です。 4.3.2 ネットワークを使用する場合 ここでは、『29ページ 2.4 CFのリカバリ手順』のネットワークを使用する場合で説明したホス トマシンの準備ができているものとして説明します。 なお、ホストマトン上の/etc/exportsの設定で、CPZ-SH03からmountできるディレクトリを/optとして いますので、構築したカーネルとモジュールを、cp -aコマンドで、/opt/tmp/に移動させておきます。 i SH-Linux kernel ver. 2.4.17 kitty:~# cd /opt kitty:/opt# mkdir tmp kitty:/opt/tmp# cp -a /usr/src/linux-2.4.17/arch/sh/boot/zImage ./ kitty:/opt/tmp# cp –a /usr/src/linux-2.4.17/mod-dir ./ kitty:/opt/tmp# cd kitty:~# i SH-Linux kernel ver. 2.6.11 kitty:~# cd /opt kitty:/opt# mkdir tmp kitty:/opt/tmp# cp -a /usr/src/cpz-2.6/linux-2.6.11.12/arch/sh/boot/zImage ./ kitty:/opt/tmp# cp –a /usr/src/cpz-2.6/linux-2.6.11.12/mod-dir ./ kitty:/opt/tmp# cd kitty:~# - 67 - Interface Corporation DMG-ZSH01 1. ネットワーク経由でCPZ-SH03を起動 CPZ-SH03基板上のDSW2の1,2をOFF、3,4をONにします。 CPZ-SH03のLAN1とホストマシンのLAN、およびクロスのシリアルで接続し、ホストマシン上で、 ターミナルエミュレータ(minicom)を起動後、CPZ-SH03の電源を入れます。 (ネットワーク経由でCPZ-SH03を起動する場合、ホストマシン上で、nfsサーバ、dhcpdが動いて いる必要があります。動いていない場合、/etc/init.dディレクトリの関連するデーモンをスタート してください。) 起動メッセージが表示され、loginプロンプト状態になりますので、rootでログインします。 Linux version 2.4.17 (root@kitty) (gcc version 3.0.4) #1 Mon Jun 27 15:24:43 JST 2005 On node 0 totalpages: 16384 On node 0 totalpages: 16384 ・ ・ ・ Starting internet superserver: inetd. Starting deferred execution scheduler: atd. Starting periodic command scheduler: cron. Debian GNU/Linux testing/unstable greenart ttySC1 greenart login: root ・ ・ ・ greenart:~# 2. カーネルとモジュール 以下の手順で、構築したカーネルとモジュールを、CFにコピーします。 greenart:~# mkdir /host greenart:~# mount kitty:/opt /host greenart:~# mount -t ext3 /dev/hda1 /mnt greenart:~# cp -a /host/tmp/zImage /mnt/boot/vmlinuz greenart:~# rm -rf /mnt/lib/modules greenart:~# cp -a /host/tmp/mod-dir/lib/modules /mnt/lib/ greenart:~# umount /host greenart:~# もし、CF内の/lib/modules/以下に、カーネル以外のモジュールを組み込んだ場合は、一旦、別のデ ィレクトリに退避し、カーネルモジュールをコピーした後、再度 元の場所にコピーし直してくだ さい。 3. ブートローダの書き込み liloコマンドでブートローダをCFに書き込みます。 greenart:/mnt# lilo -r /mnt Added linux * greenart:/mnt# Interface Corporation - 68 - DMG-ZSH01 4. 終了処理 最後にCFをアンマウントし、シャットダウンします。 greenart:/mnt# cd greenart:~# umount /mnt/ greenart:~# shutdown -h now Broadcast message from root (ttySC1) (Thu Jun 30 10:43:10 2005): The system is going down for system halt NOW! INIT: Switching to runlevel: 0 INIT: Sending processes the TERM signal INIT: Sending processes the KILL signal ・ ・ ・ Unmounting remote filesystems... done. Deconfiguring network interfaces: done. Deactivating swap... done. Unmounting local filesystems... done. Power down. 以上で、カーネルの書き込みは完了です。 - 69 - Interface Corporation DMG-ZSH01 第5章 情報サービス 5.1 情報の入手方法 弊社Web siteでは様々なサービスを提供しております。 日本: www.interface.co.jp 海外: www.interface-world.com ダウンロードするためには、ユーザID登録が必要になります。 製品情報 サポート 購入方法 ダウンロード 新製品情報,製品の個別仕様,セレクションガイド オンラインQA,製品修理,貸出サービス,FAQ,用語集 販売店一覧,通信販売 マニュアル,ソフトウェア,チュートリアル(入門書) ※ Web siteの内容については、随時更新していますので、上記と異なる場合があります。 5.2 製品使用登録 弊社Web siteより製品使用登録を行うことで、保証期間が最大2年延長になります。 また、製品のバージョンアップ情報を電子メールでお届けします。製品到着後1年以内に登録して ください。 http://www.interface.co.jp/usr_register/prdc_regist.asp 製品の保証期間は、Web siteの製品保証照会システムにて確認できます。 http://www.interface.co.jp/support/warranty/warranty_info.asp Interface Corporation - 70 - DMG-ZSH01 付録 インストールパッケージ一覧 出荷時、OSリカバリ後のパッケージ一覧は以下のとおりです。 なおパッケージの一覧は以下のように、dpkgコマンドで表示することができます。 greenart:~# dpkg -l パッケージ名 adduser apt apt-utils at base-files base-passwd bash bsdmainutils bsdutils cron debconf debianutils dhcp-client diff dpkg dselect e2fsprogs ed ethtool exim fdutils fileutils findutils gcc-3.0-base grep gzip hostname hotplug ifupdown iptables klogd libacl1 libattr1 libc6 libc6-dev libcap1 libdb2 libdb3 libgcc1 libgdbmg1 libident libkrb53 libldap2 liblockfile1 libncurses5 libnewt0 libpam-modules libpam-runtime libpam0g libpcap0 libpcap0.7 libpcre3 バージョン 3.47 0.5.4 0.5.4 3.1.8-11 3.0.4 3.4.2 2.05b-3 5.20020211-7 2.11n-4 3.0pl1-72 1.1.14 1.16.6 2.0pl5-14 2.8.1-1 1.11 1.11 1.29+1.30 0.2-19 2-1 3.36-3 5.4-20020222-3 4.1-10 4.1.7-2 3.0.4-7 2.4.2-3 1.3.2-3 2.09 0.0.20020826-1 0.6.4-4.4 1.2.6a-6 1.4.1-10 2.0.19-1 2.0.11-1 2.2.5-14 2.2.5-14 1.10-12 2.7.7.0-8 3.2.9-17 3.0.4-7 1.7.3-27.1 0.22-2 1.2.5-3 2.0.23-9 1.03 5.2.20020112a 0.50.17-9.6 0.72-35 0.72-35 0.72-35 0.6.2-2 0.7.1-1 3.4-1.1 内容 Add and remove users and groups Advanced front-end for dpkg APT utility programs Delayed job execution and batch processing Debian base system miscellaneous files Debian Base System Password/Group Files The GNU Bourne Again SHell More utilities from FreeBSD Basic utilities from 4.4BSD-Lite management of regular background processing Debian configuration management system Miscellaneous utilities specific to Debian DHCP Client File comparison utilities Package maintenance system for Debian a user tool to manage Debian packages The EXT2 file system utilities and libraries The classic unix line editor Display or change ethernet card settings An MTA (Mail Transport Agent) Linux floppy utilities GNU file management utilities utilities for finding files The GNU Compiler Collection GNU grep, egrep and fgrep The GNU compression utility A utility to set/show the host name Linux Hotplug Scripts configure network interface IP packet filter administration tools Kernel Logging Daemon Access control list shared library Extended attribute shared library GNU C Library: Shared libraries GNU C Library: Development Libraries support for POSIX.1e capabilities The Berkeley database routines Berkeley v3 Database Libraries GCC support library GNU dbm database routines simple RFC1413 client library MIT Kerberos runtime libraries OpenLDAP libraries NFS-safe locking library Shared libraries for terminal handling Not Erik's Windowing Toolkit Pluggable Authentication Modules for PAM Runtime support for the PAM library Pluggable Authentication Modules library System interface for packet capture System interface for packet capture Perl Compatible Regular Expression library - 71 - Interface Corporation DMG-ZSH01 パッケージ名 libperl5.6 libpopt0 libreadline4 libsasl7 libstdc++3 libstdc++3-dev libwrap0 locales login logrotate make makedev mawk modconf module-init-tools mount modutils modutils nano ncurses-base ncurses-bin net-tools netbase netkit-inetd netkit-ping nvi passwd pciutils perl perl-base perl-modules portmap procps sed shellutils slang1 sysklogd sysvinit tar tcpd telnet telnetd textutils util-linux whiptail バージョン 5.6.1-7 1.6.4-2 4.3-4 1.5.27-3 3.0.4-7 3.0.4-7 7.6-ipv6.1-3 2.2.5-14 20000902-12 3.6.5-1 3.79.1-15 2.3.1-58 1.3.3-9 0.2.42 3.2-pre1-2 2.11n-4 2.4.19-3 2.4.26-1.2 1.1.11-1 5.2.20020112a5.2.20020112a1.60-4 4.07 0.10-9 0.10-9 1.79-20 20000902-12 2.1.10-3 5.6.1-7 5.6.1-7 5.6.1-7 5-2 2.0.7-10 3.02-8 2.0.15-2 1.4.5-1 1.4.1-10 2.84-3 1.13.25-3 7.6-ipv6.1-3 0.17-19 0.17-19 2.1-1 2.11n-4 0.50.17-9.6 内容 Shared Perl library lib for parsing cmdline parameters GNU readline and history libraries Authentication abstraction library The GNU stdc++ library version 3 The GNU stdc++ library version 3 Wietse Venema's TCP wrappers library GNU C Library: National Language System login tools Log rotation utility The GNU version of the "make" utility. Creates device files in /dev text processing language Device Driver Configuration tools for managing Linux kernel modules Tools for mounting Linux module utilities Linux module utilities free Pico clone with some new features Descriptions of common terminal types Terminal-related programs and man pages The NET-3 networking toolkit Basic TCP/IP networking system The Internet Superserver The ping utility from netkit 4.4BSD re-implementation of vi Change and administer password data Linux PCI Utilities Practical Extraction and Report language The Pathologically Eclectic Rubbish Lister Core Perl modules The RPC portmapper The /proc file system utilities The GNU sed stream editor The GNU shell programming utilities The S-Lang programming library System Logging Daemon System-V like init GNU tar TCP wrapper utilities The telnet client The telnet server The GNU text file processing utilities Miscellaneous system utilities Displays user-friendly dialog boxes ※2 ※1 ※2 ※1:kernel 2.4のみ ※2:kernel 2.6のみ Interface Corporation - 72 - DMG-ZSH01 改訂履歴 Ver. 1.0 年 月 2006年4月 改 訂 内 容 新規作成 このマニュアルは、製品の改良その他により将来予告なく改訂しますので、予めご了承ください。 - 73 - Interface Corporation 補償について ●本製品(ハードウェア,ソフトウェア)のシステム組み込み,使用、ならびに本製品から得られる結果に関する一切のリスク については、本製品の使用者に帰属するものとします。 ●本製品に含まれるバグ、あるいは本製品の供給(納期遅延),性能、もしくは使用に起因する付帯的損害もしくは間接的損 害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する改良(正常に動作する)、代品交換までとし、 金銭面での賠償の責任は一切負わないものとしますので、予めご了承ください。 ●本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊社は一切責任を負いかね ます。また、弊社は本製品に関し、海外での保守サービスおよび技術サポート等は行っておりません。 ●海外での保守サービスはセンドバックによる交換保守サービスのみとします。技術サポートは、e-mailのみのサポート を基本とします。 保証について ●弊社の保証規定によります。一部の製品および機械的な可動部分のある製品は1年間です。 ソフトウェア,消耗品(バッテリー等)は除きます。 注)保証期間は弊社Web siteでシリアル番号を入力することにより、ご確認できます。 インターネットに接続できない方は、お客様相談センタまでご連絡ください。 ●保証期間内は、原則として無償修理とします。(送料はお客様のご負担を条件とさせて頂きます。) ただし、保証期間内であっても下記の場合は有償修理となります。 ①お客様による輸送,移動時の落下,衝突等、お客様のお取扱いが適正でないために生じた故障,損傷の場合および消耗品 の交換 ②火災,地震,水害等の天災および異常電圧による故障,損傷の場合 ③弊社製品に接続している弊社指定機器以外の機器の故障に起因する故障の場合 ④弊社以外で修理,改造した場合 ⑤弊社製品の説明書に記載された使用方法および注意事項に反するお取扱いによって生じた故障の場合 ●保証は、本製品が日本国内で使用される場合に限り有効です。 ●保証期間を過ぎた場合には、全て有償修理扱いとなります。 再修理の保証は、修理完了後6ヶ月以内で同一部品が故障した場合のみです。(ただし、修理が可能な箇所であることと します。)その場合は、前回の修理報告書を必ず添付してください。添付されていない場合は新規修理の扱いとなります。 輸出する際の注意事項 本製品は、外国ため替および外国貿易法の規定により、戦略物資等輸出規制品に該当します。 従って、日本国外に持ち出す際には、日本国政府の輸出許可申請等必要な手続きをお取りください。 ■サポート体制 本製品についてのお問い合わせは、お客様相談センタで承ります。弊社Web siteのオンラインQA(「サポート」→「お客様 相談センタ」をクリック)、E-mailまたはフリーダイヤルをご利用ください。 ■修理・メンテナンス体制 故障した場合は弊社Web siteのオンライン修理依頼、もしくは修理依頼書を弊社Web siteからダウンロードし必要事項を記 入の上、故障品と一緒に下記までお送りください。※送料はお客様にてご負担願います。 ■お問い合わせ先 0120-708127 FAX 0120-708137 直販お申し込み お問い合わせ TEL お客様相談センタ TEL 0120-447213 FAX 0120-458257 (祝日および弊社休業日を除く月∼金 AM9:00∼PM5:00迄) E-mail support@interface.co.jp 営業支援センタ TEL(082)262-1630 FAX(082)262-1552 (祝日および弊社休業日を除く月∼金 AM9:00∼PM5:00迄) 〒873-0231 大分県国東市安岐町下原1428 株式会社インタフェース 大分事業所 修理受付係 故障品お問い合わせ 故障品の送付 (祝日および弊社休業日を除く月∼金 AM9:00∼PM5:00迄) E-mail direct@interface.co.jp Web site www.interface.co.jp M11-JZSH01 Ver. 1.0 Vol. 1/1
© Copyright 2024 Paperzz