Linux を利用した小規模組込みシステムの事例研究
島本 裕介
組込みシステムの要素技術は幅広い分野の産業を支える重要な技術である。Linux は高機能なオープンソースソフトウェアであり、組込みシステムにも利用可能である。本研究では、組込み Linux システムの開発手順および開発環境構築方法について調査を行い、ターゲットボード上の LED を制御するプログラムを試作した。

キーワード：組込み Linux、オープンソースソフトウェア、CGIまで、幅広く応用されている。

1. はじめにLinux はソースコードが入手可能でロイヤリティー
組込みシステムとは産業機器や家電製品などに内蔵フリー、またデバイスドライバ、ネットワークプロトされ、特定の機能を実現するためのコンピュータシスコルスタック等のミドルウェアが豊富で動作が安定しテムのことをいう。その要素技術は自動車、家電、工ていることなどの特徴がある。最近、スマートフォン作機械など、幅広い分野の産業を支える極めて重要なに搭載され、話題となっている Android も Linux をベ技術となっている。

ースにしており、組込みシステムの OS としても可能性を秘めていることから注目を集めている。

オープンソースソフトウェアとは、ソフトウェアの設計図にあたるソースコードを、インターネットなど

3. 開発環境を通じて公開し、誰でもその改良、再配布が行うことができるようなソフトウェアをいう。
本研究ではオープンソースソフトウェアを組込みシ

一般的に組込み Linux システムの開発では、プログステムに利用することを目的に、組込み Linux システラムを開発する環境（以下、ホストと呼ぶ）と動作さムの開発手順及び開発環境構築方法について調査をおせる環境（以下、ターゲットと呼ぶ）が異なっており、こない、Linux を搭載したターゲットボード上の LED作成したプログラムをホスト側からターゲット側へ転を制御するプログラムを試作した。以下、これらにつ送して実行する、いわゆるクロス開発という手法が用いて報告する。

いられる。
今回使用した開発環境のターゲットを表 1 、ホストを表 2 に示す。また、開発環境の概要を図 1 に示す。
2. 組込み LinuxLinux とは、一般的には Unix のようなコンピュータ

表 1 ターゲット

ー用オペレーティングシステムの一群を指し、厳密にターゲットボード（ターゲット）はその内の OS カーネルのことをいう。現在ではパーµST-SH2（株式会社 ALPHA PROJECT）

ソナルコンピュータに限らず、携帯電話のような組込CPU

SH7619みシステムからメインフレームや HPCC（High Per-OSµCLinux

formance Computing Cluster）等のスーパーコンピュータ- 46 -表 2 ホスト

ioctl(fd,LED_IOCSWITCHON,LED1);

開発用 PC（ホスト）

printf("content-type: text/html\n\n");printf("<html><head></head><body>");デスクトップ PC（パソコン工房）

printf("LED1 ON<br>\n");OSWindows XP

Linux 専用エミュレータ

coLinux

printf("<Paling=\"center\"></P>\n");printf("<Ahref=\"../sample_test.html\"></A>\n");printf("<script type=\"text/javascript\">\n");printf("<!--\n");printf("location.href=\"../sample_test.html\";\n");printf("// -->\n");printf("</script>\n");ターゲット

printf("</body></html>\n");RS-232C

return 1;
LED

ホスト}

HUB

図 2 CGI プログラム

NFS サーバ
Ethernet<html><head>

図 1 開発環境の概要<title>shisaku</title><meta
http-equiv="Content-Type"content="text/html;charset=Shift_JIS">

4. 制御プログラム<meta http-equiv="Content-Style-Type"content="text/css"><style type="text/css"></style>

ターゲットボード上の LED を制御するプログラム</head>は C 言語で記述した。これは CGI（Common Gateway<body>

Interface ）プログラムと呼ばれるものである。

<form action="cgi-bin/shi01.cgi"method=get>

CGI とは Web サーバ上でユーザプログラムを動作さ<input style="WIDTH: 200px; HEIGHT: 44px"type=submit size=44
value=" LED1 ON ">せるための仕組みである。LED 点灯を ON にする CGI</form>プログラムを図 2 に示す。

<form action="cgi-bin/shi02.cgi"method=get>

また、ホスト上で LED 制御を行う Web 画面は HTMLで記述した。Web 画面のプログラムを図 3 に示す。

<input style="WIDTH: 200px; HEIGHT: 44px"type=submit size=44
value=" LED1 OFF "></form></body>#include<stdio.h></html>#include<stdlib.h>

図 3 Web 画面のプログラム#include<fcntl.h>#include<sys/ioctl.h>#include<asm/mach/led.h>
int main(void){

試作したプログラムを検証した結果、Web 画面上のint fd;if((fd = open("/dev/led", O_RDWR))==-1){

スイッチボタンで LED の点灯を制御できることを確printf("Content-type:text/html\n\n");認した。また、ネットワーク経由で他の PC からも遠printf("<html><head></head><body>\n");

隔操作ができることを確認した。
他の PC から行う LEDprintf("Decive file open error<br>\n");printf("</body></html>\n");exit(1);制御の概要を図 3、LED 点灯動作のアクセス概要を図4、Web 画面を図 5 に示す。

}

- 47 -

5. おわりに
ターゲット

組込み Linux システムの開発手順および開発環境構
築方法について調査を行い、ターゲットボード付属のLED の制御プログラムを試作、検証した。今後は、温ホスト

湿度計センサをターゲットボードに取り付け、測定しHUB
LEDた温湿度データをネットワークで接続されたパソコン上にグラフを表示するシステムを作成する予定である。

参考文献

他の PC

図 3 他の PC から行う LED 制御の概要（1）岡田賢治、川井義治、宮原徹、佐久間伸夫、Linux標準教科書

Web ブラウザ（2）Michael K.Johnson、Erik W.Troan、アスキー出版
局 プログラミング Linux（3）Web liberty（http://www.web-liberty.net）

Web サーバ（4）RENESAS（http://japan.renesas.com）（5）C 言語で作る CGI 入門（http://www.kinet.or.jp/hiro

CGI プログラム

min/cgi_introduction/index.html）

LED デバイスファイル

LED デバイスドライバ

LED デバイスµST－SH2 ボード

図 4 LED 点灯動作のアクセス概要

図 5 LED を制御する Web 画面- 48 -