17:【技術情報】組込みLinux & Java


[1] 17:【技術情報】組込みLinux & Java 投稿者:Mirai くん (2002/04/02(火) 22:57)

1.コーナー開設の背景
 組込み用Linux(RT Linux、Silicon Linux含む) 及び、Java を組み合わせての
 システム開発という情報は専門書でも、ネット上でもあまり見かけません。

 というわけで、ここでは、このシステム開発での技術資料や Tips について
 整理しておこうと思っています。

2.本コーナーで扱うテーマ
 ・組込み用Linux、RT Linux、Silicon Linux 関連の技術・書籍などの紹介
 ・Java ON Linux (実装方法)の紹介
 ・Linux を実装可能な組込み用CPUボードの紹介

 などを主とします。

 みなさんからの質問・ご意見なども大歓迎ですので、よろしくお願いします。


[2] プロローグ 投稿者:Mirai くん (2002/04/02(火) 22:58)

まず、最初の課題は
「Linux どのディストリビューションにするか?」
ですよね?

単にパソコン用のLinux ということなら
・Red Hat Linux
・Turbo Linux
・Vine Linux
・LASER5 Linux
などなどいろいろありますね。

また、組込み用Linux としても、世間では
・Hard Hat Linux
・Red Hat 組込み版
・A&A Linux
・Embedix
・Blue Cat Linux
などなど、こちらもいろいろ。

で、結局 Mirai くん が選んだのは
「Debian GNU/Linux」
です。

・マニアックである
・インストールがややこしい
・参考書がすくない

など、あまりいい噂を聞かないですが・・

なんで、Debian なの? という理由については
おいおい書いてゆくことにして、
とりあえず、これまでの経過を記載しておきます。


[3] 開発環境の構築 投稿者:Mirai くん (2002/04/02(火) 22:59)

実作業の手順として考えたこと。

(1) 基本システムのインストール
(2) 基本設定
   カーネルと、基本的なハードの認識、ドライバの組込み

(3) XFree86 関連のインストール・設定
   パソコンのクロス開発では、あった方が便利なので構築。
   XFree86 のほか、WindowManager(qvwm)、GNOME などのインストールと設定

(4) 日本語環境の構築
   日本語FEPの組込み、設定

(5) ネットワーク環境の構築
  ・FTP、Telnet、NFS、Webサーバ、Samba の組込み、設定

(6) インターネット接続環境の構築
  ・モデムの接続
  ・Air H" の接続
  ・PPXP、Netscape の組込み、設定

(7) Java 実行/開発環境の構築
  ・Sun 提供のJDK の組込み、設定

(8) プログラム開発環境の構築
  ・DOS/V 組込みボード用クロス開発環境の組込み、設定
  ・SH3  組込みボード用クロス開発環境の組込み、設定


で、3月末の時点で完了しているのは
(1) 基本システムのインストール 〜 (4) 日本語環境の構築 までです。

引き続き、(5)〜(8)を早急に構築しようと思っています。


[4] 関連書籍の紹介 投稿者:Mirai くん (2002/05/26(日) 19:18)

ここで環境構築作業をちょっと一休みして
例によって、参考書を整理しておきます。

(1) Debian GNU/Linux 全般、インストール関連
  ・改定版 Debian GNU/Linux 徹底入門(Potato対応)
   武藤健志 著
   翔泳社 発行
   ISBN4-88135-949-5
   \4,500.- + 税

  ・今日から Debian GNU/Linux
   芳尾桂 著
   オーム社開発局 発行
   ISBN4-274-06365-8
   \3,200.- + 税

  ・Linux 怒涛のQ&A
   ぱぱんだ 著
   エーアイ出版(株) 発行
   ISBN4-87193-735-6
   \2,800.- + 税

(2) ネットワーク関連
  ・Linux ネットワークカード設定【虎の巻】
   伊藤隆延 著
   エーアイ出版(株) 発行
   ISBN4-87193-728-3
   \3,200.- + 税

  ・エーアイムック226 挑戦Linux![ネットワーク基礎編]
   あだちあきひと 他 著
   エーアイ出版(株) 発行
   ISBN4-87193-682-1
   \2,300.- + 税

  ・Linux版 個人で立てるWebサーバ Apache 入門
   榊原大輔、吉川敦 共著
   (株)ディー・アート 発行
   ISBN4-88648-633-9
   \2,000.- + 税

(3) 環境、パッケージ管理、カーネル、バージョンアップ関連
  ・ラブラブLinux2 Windows と使いたいひとのための混在環境ガイド
   西村めぐみ 著
   ソシム株式会社 発行
   ISBN4-88337-160-3
   \2,460.- + 税

  ・ラブラブLinux3 「もっと知りたい」人のための パッケージ管理&構築入門
   西村めぐみ 著
   ソシム株式会社 発行
   ISBN4-88337-191-3
   \2,600.- + 税

 ★・Linux magazine books 01
   PC UNIX の日本語処理と設定
   富樫秀昭 著
   (株)アスキー 発行
   ISBN-4-7561-3450-5
   \1,700.- + 税

 ★・Linux 2.4 インターナル
   Moshe Bar 著
   NTT コムウェア(株) 訳・監修
   (株)翔泳社 発行
   ISBN4-7981-0105-2
   \3,200.- + 税

(4) 組込み対応関連
  ・組み込み型Linux 導入・開発ガイド
   藤広哲也 編著
   (株)すばる社 発行
   ISBN4-88399-181-4
   \2,800.- + 税

  ・RTLinux リアルタイム処理プログラミングハンドブック
   木村新、岡本教佳 監修
   森友一朗、薬師輝久、馬場秀忠 著
   (株)秀和システム 発行
   ISBN4-7980-0056-6
   \4,800.- + 税

  ・TECHI Vol.5 技術者のためのUNIX系OS入門
   CQ出版(株) 発行
   ISBN4-7898-3316-X
   \2,095.- + 税

★(5) マルチウィンドウ/ウィンドウマネージャ関連
  ・Linux のための XFree86入門
   Aron Hsiao 著
   (株)コスモ・プラネット 訳
   (株)アスキー 発行
   ISBN4-7561-3487-4
   \3,800.- + 税

  ・ウィンドウマネージャ徹底解説
   fvwm -fvwm2/fvwm95-
   矢吹道郎 監修
   江面敦 著
   (株)テクノプレス
   ISBN4-924998-34-6
   \4,900.- + 税

  ・Window Manager 完全攻略 for Linux
   大畠祐一、丸山国明、吉澤匡 共著
   (株)翔泳社 発行
   ISBN4-88135-693-3
   \3,200.- + 税

★(6) プログラミング関連
  ・GNU C++ プログラミング
   Linux をはじめとする UNIX 系 OS における開発手法のすべて
   トム・スワン 著
   日向俊二 監訳
   (株)翔泳社 発行
   ISBN4-88135-956-8
   \6,800.- + 税

  ・プログラミング Linux
   Linux Application Development
   Michael K. Jhonson、 Erik W. Troan 共著
   (株)クイック 訳
   (株)アスキー 発行
   ISBN4-7561-2044-X
   \5,800.- + 税

  ・Linux システムコール
   塚越一雄 著
   (株)技術評論社 発行
   ISBN4-7741-1031-0
   \2,480.- + 税

  ・Software Design Linux Issue
   すみからすみまで Linux テクニカル編
   (株)技術評論社 発行
   ISBN4-7741-1109-0
   \1,880.- + 税

 ★・Linux デバイスドライバ(第2版)
   Alessandro Rubini(アレッサンドロ・ルビーニ)
   Jonathan Corbet(ジョナサン・コルベット)共著
   山崎 康宏、山崎 邦子、長原 宏治、長原 陽子 訳
   (株)オライリー・ジャパン 発行
   (株)オーム社 発売
   ISBN4-87311-081-5
   \5,500.- + 税

--------------------------------------------------------------------------------
本発言のオリジナルは、2002年 4月 3日(水)22:01 ですが、
その後、随時、書籍などを追加しています。

(★印:後日追加した分 )
(2002/04/10(水):(5)-1,2)
(2002/04/15(月):(3)-3)
(2002/04/25(木):(3)-4)
(2002/05/09(木):(5)-3)
(2002/05/09(木):(6)-1,2,3,4)
(2002/05/26(日):(6)-5)


[5] 開発環境の構築作業(その後) 投稿者:Mirai くん (2002/04/10(水) 18:57)

>(5) ネットワーク環境の構築
>  ・FTP、Telnet、NFS、Webサーバ、Samba(swat) の組込み、設定

 4月 7日、8日、10日の 3日間でネットワーク関係の環境構築を完了。

 このあたり、Debian (私の買った「徹底本」のCD)では、OSインストール時には
 自動的にインストールされていません。
 そのため、ネットワークの各機能に対応したパッケージをインストールして
 設定ファイルを vi で編集するという作業を繰り返しています。


[6] 開発環境の構築作業(その後:つづき1) 投稿者:Mirai くん (2002/04/11(木) 12:35)

>(6) インターネット接続環境の構築
>  ・モデムの接続
>  ・Air H" の接続
>  ・PPXP、Netscape の組込み、設定

 Air H" 以外が完了。
 Air H" については、最新技術なんで、2ch-net あたりで
 情報を集めています。
 (カーネル自体のバージョンアップが必要みたいなんで、
  構築を延期するかも・・(^^ゞ)

 あるいは、Air H" で接続しているVAIO でプロキシ設定するか
 IP マスカレード という方法をとるかもしれません。


[7] Re:Air H" で接続 投稿者:しがとも (2002/04/12(金) 00:09)

 あきらめて フレッツISDNにしましょう・・・(爆)

それとも、
フレッツADSL 1.5M + 固定IP8個 1万5千円/月
おおっと ・・・ 家庭内戦が始まる・・・・(以下自粛)


[8] Re[7] :Air H" で接続 投稿者:Mirai くん (2002/04/14(日) 18:58)

あきらめて、フレッツISDN・・じゃなくて、結局延期するすることにしました。

とりあえずは、VAIO ←→ Linux PC 間では、NFS でも、 ftp でも使えるんで、
Linux 最新カーネルなんかは、VAIO のAir H" でGET することにしよう・・
(そういえば、びわこインターネットから、ADSL 対応開始予定というメールが来ていました
 追加料金なしのようなので、ちょっと誘惑されてしまいそう・・)


[9] 開発環境の構築作業(その後2) 投稿者:Mirai くん (2002/04/14(日) 19:01)

>(7) Java 実行/開発環境の構築
>  ・Sun 提供のJDK の組込み、設定

 雑誌/専門書 などで、CD-ROM の付いたやつを探したのですが、
 やはり Linux 版 というのは無いですね〜。

 ということで、
 Sun や、国内のミラーサイトから、ダウンロード中です。
 (約 40MB のファイルを、5〜6本)

>(8) プログラム開発環境の構築
>  ・DOS/V 組込みボード用クロス開発環境の組込み、設定
>  ・SH3  組込みボード用クロス開発環境の組込み、設定

 DOS/V 組込みボード用(x86 CPU 用)の環境(gcc、gdb なんか)は
 どうしたわけか、標準でインストールされていました
 (ちょっと、(@_@) ですが・・ナンデダロ)

 で、4月 13日、14日の 2日間で、SH3 用のクロス開発環境の構築を完了。
 (例題の、 SH3 版 hello world をコンパイル・リンクできたんで、
  まず OK でしょう・・)
 なんで2日間もかかったかというと、
 SH3 組込みボードに付属していた CD-R メディア がうまく読み取れなかったのと、
 例によって、ボードの取り扱い説明書に記載漏れがあり
 メーカのメーリングリストの過去ログを読んでいたためです。

 あとは、(7) の Java 環境ですが、
 これも、組込みボードでの Linux 起動を行ってからにしようと思っています
 (つまり、これも延期)

 というわけで、環境構築の作業を一旦中断して、
 いよいよ、SH3 ボードでの Linux 起動 といきたいところですが
 この作業も一旦中断。

 で、何をするかというと・・・
 21日(日)の「情報処理試験」の受験勉強です (^^ゞ
 (今度こそ、合格しないと、罰ゲームですから・・)

 しばらくは、BBS への書込みも自粛するかも??


[10] 【祝】SH3搭載ボードでLinux起動成功! 投稿者:Mirai くん (2002/04/28(日) 01:26)

約2週間、中断していた組込みLinux ですが、
昨夜から作業を再開し、SH3搭載ボードでのLinux起動に成功しました。
といっても、自分でカーネルを構築したのではなく、
メーカ提供のお試し版カーネルをコンパクトフラッシュに焼いて起動してみただけのこと。

起動時のメッセージはこんな感じです。
(portmap が既に動いているので、設定さえすれば、NFSもすぐに使えそう)

--------------------------------------------------------------------------------

SH IPL+g version 0.10, Copyright (C) 2001 Free Software Foundation, Inc.

This software comes with ABSOLUTELY NO WARRANTY; for details type `w'.
This is free software, and you are welcome to redistribute it under
certain conditions; type `l' for details.

> b
Disk drive detected: SanDisk SDCFB-96 vde 1.10 291008C1403
Set Transfer Mode result: 51
Initialize Device Parameters result: 50
IDLE result: 50
LILO boot: first-image
Loading linux...........done.
Linux version 2.4.5 (ebihara@boss) (gcc version 3.1 20010308 (experimental)) #3 Sun Jun 3 17:15:38 JST 2001
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: mem=32M sh_mv=CAT-68701 console=ttySC0,115200
CPU clock: 98.32MHz
Bus clock: 49.16MHz
Module clock: 32.77MHz
Interval = 81935
Calibrating delay loop... 65.33 BogoMIPS
Memory: 31152k/32768k available (879k kernel code, 1616k reserved, 26k data, 28k init)
Dentry-cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode-cache hash table entries: 2048 (order: 2, 16384 bytes)
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
CPU: SH7707/SH7708/SH7709
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Starting kswapd v1.8
pty: 256 Unix98 ptys configured
SuperH SCI(F) driver initialized
ttySC0 at 0xfffffe80 is a SCI
Real Time Clock Driver v1.10d
block: queued sectors max/low 20648kB/6882kB, 64 slots per queue
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx
hda: SanDisk SDCFB-96, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: 187904 sectors (96 MB) w/1KiB Cache, CHS=734/8/32
Partition check:
hda: hda1
cs89x0:cs89x0_probe(0x0)
PP_addr=0x3000
cs89x0.c: v2.4.3-pre1 Russell Nelson <nelson@crynwr.com>, Andrew Morton <andrewm@uow.edu.au>
eth0: cs8900 rev J found at 0x300 [Cirrus EEPROM]
cs89x0 media RJ-45, IRQ 10, programmed I/O, MAC 00:03:82:01:00:8b
cs89x0_probe1() successful
Registered physmem device from 262144Kb to 262656Kb
Mapped from 0xb0000000 to 0xb0080000
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 2048 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
hda: hda1
hda: hda1
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 28k freed

INIT: version 2.78 booting

Activating swap...
Checking root file system...
Parallelizing fsck version 1.19 (13-Jul-2000)
/dev/hda1: clean, 6162/23520 files, 45215/93936 blocks
Calculating module dependencies... done.
Loading modules:
Checking all file systems...
Parallelizing fsck version 1.19 (13-Jul-2000)
Setting kernel variables.
Mounting local filesystems...
not mounted anything
Cleaning: /etc/network/ifstate.
Setting up IP spoofing protection: FAILED
Configuring network interfaces: eth0: 10Base-T (RJ-45) has no cable
eth0: no network cable attached to configured media
SIOCSIFFLAGS: Resource temporarily unavailable
eth0: 10Base-T (RJ-45) has no cable
eth0: no network cable attached to configured media
SIOCSIFFLAGS: Resource temporarily unavailable
done.
Starting portmap daemon: portmap.

Setting the System Clock using the Hardware Clock as reference...
System Clock set. Local time: Sun Apr 28 09:33:39 JST 2002

Cleaning: /tmp /var/lock /var/run.
Initializing random number generator... done.

INIT: Entering runlevel: 2

Starting system log daemon: syslogd.
Starting internet superserver: inetd.
Starting deferred execution scheduler: atd.
Starting periodic command scheduler: cron.

Debian GNU/Linux testing/unstable nazoneko ttySC0

nazoneko login: root
Password:
Last login: Sun Jun 3 17:50:06 2001 on ttySC0
Linux nazoneko 2.4.5 #3 Sun Jun 3 17:15:38 JST 2001 sh3 unknown

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.
2 failures since last login. Last was 09:34:03 on ttySC0.
root@nazoneko:~# shutdown -h now

Broadcast message from root (ttySC0) Sun Apr 28 09:34:33 2002...


The system is going down for system halt NOW !!


INIT: Switching to runlevel: 0


INIT: Sending processes the TERM signal

root@nazoneko:~#
INIT: Sending processes the KILL sStopping periodic command scheduler: cron.
Stopping internet superserver: inetd.
Saving the System Clock time to the Hardware Clock...
Hardware Clock updated to Sun Apr 28 09:34:41 JST 2002.
Stopping deferred execution scheduler: atd.
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: SIOCDELRT: No such process
done.
Deactivating swap... done.
Unmounting local filesystems... done.
Power down.


[11] Re:【祝】SH3搭載ボードでLinux起動成功! 投稿者:しがとも (2002/04/30(火) 17:08)

 起動と、shutdown 成功おめでとう御座います。
 ひとつ疑問が・・・このLOGって、どうやって取ったんですか?


[12] Re [11]: LOG の保存方法 投稿者:Mirai くん (2002/04/30(火) 18:50)

[SH3 ボード]〜RS232Cケーブル〜[パソコン]

と接続し、パソコン側は毎度おなじみのハイパーターミナルでございます。
ハイパーターミナルでは、[転送]−[テキストのキャプチャ]で
保存ファイルを指定すると(最初は改行だけの空らのテキストファイルを用意しておくとかして)
ターミナルの画面に表示された内容が(キー入力内容も含めて)指定したファイルに
ダンプされます。

組込みボードなんでビデオチップなどという、大それたものは
搭載していません。外部接続したパソコンでやりたい放題です (^^ゞ


[13] Re:Re [11]: LOG の保存方法 投稿者:しがとも (2002/05/01(水) 06:43)

さっそくの御返事ありがとうございます。
きっとメーカーのサポートより早いなー(笑)

>LILO boot: first-image
 LILOのメッセージが出ていたんで、悩んでいたんですよ。

>外部接続したパソコンでやりたい放題です (^^ゞ
 完全に、232Cで、ボードが1台コントロールできるんですよね。
 自動Loginや、シャットダウン、自動実行は shからでも・・・


[14] クロス開発環境完成 投稿者:Mirai くん (2002/05/02(木) 21:45)

[パソコン]〜 RS232C ケーブル 〜[SH3ボード]〜 LAN ケーブル 〜 [クロス開発パソコン]
(コンソール端末)

と接続し、[クロス開発パソコン]側での NFS サーバの設定を完了。

開発パソコン側で、ソース作成、コンパイル・リンクしておいて
SH3ボードから開発パソコンのフォルダをマウントして
実行するということが簡単にできてとても便利、便利 !(^^)!

実行させると、こんな感じ。

-----------------------------------------------------------------------

Debian GNU/Linux testing/unstable nazoneko ttySC0

nazoneko login: mirai954                 ←← とりあえず一般ユーザでログイン
Password:
Last login: Fri May 3 02:34:21 2002 on ttySC0
Linux nazoneko 2.4.5 #3 Sun Jun 3 17:15:38 JST 2001 sh3 unknown

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.
mirai954@nazoneko:~$ su ←← スーパーユーザになって
Password:
root@nazoneko:/home/mirai954# mount debian01:/home /mnt   ←← 開発パソコンの/home をマウント
root@nazoneko:/home/mirai954# exit

mirai954@nazoneko:~$ df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda1 90959 75262 11001 88% /
debian01:/home 11875352 451928 10820188 5% /mnt

mirai954@nazoneko:~$ cd /mnt                ←← 開発パソコンの/home に侵入する
mirai954@nazoneko:/mnt$ ls -l
total 44
drwxrwxrwx 6 mirai954 staff 4096 Apr 17 20:46 CAT_ftp
drwxrwsrwx 2 root root 4096 Apr 8 23:26 Webroot
drwxrwsrwx 3 root staff 4096 Apr 18 19:34 data
drwxrwxrwx 6 root root 4096 Apr 7 21:54 ftp
drwxrwxrwx 2 root root 16384 Dec 27 03:45 lost+found
drwxrwsrwx 7 mirai954 mirai954 4096 Apr 17 19:04 mirai954
drwxrwsrwx 2 root staff 4096 Apr 18 09:00 tmp0
drwxr-sr-x 2 root staff 4096 May 2 19:07 tmp1

mirai954@nazoneko:/mnt$ cd tmp1
mirai954@nazoneko:/mnt/tmp1$ ls -l
total 12
-rwxr-xr-x 1 root staff 4871 May 2 19:07 hello
-rw-r--r-- 1 root staff 52 May 2 19:06 hello.c

mirai954@nazoneko:/mnt/tmp1$ cat hello.c          ←← ソースを表示させてみる
int main() {
printf("hello SuperH world!-2\n");
}

mirai954@nazoneko:/mnt/tmp1$ ./hello            ←← 開発マシンでクロスコンパイルしたファイルを実行
hello SuperH world!-2

--------------------------------------------------------------------------------

といったところ。
当然 SH3 用のgdbもあるんで、デバッグも楽ですね。
何といっても、デバッガがLANを介して使えるので
Mirai くんが今まで経験してきたシリアル接続のに比べて
デバッガへの転送での待ち時間がゼロというのがありがたいです。


[15] 【祝】DOS/V 互換 SBC での Linux 起動成功 投稿者:Mirai くん (2002/05/06(月) 18:57)

この「ごーるでんうぃーく」中のもうひとつの課題としていた
DOS/V 互換 ボードでの Linux 起動に成功しました。

ただし、現状ではまだ環境構築の途中です。というのも

・2.5" HDD からの起動である(最終的にはディスクレス==コンパクトフラッシュROMからの起動)
・ほとんど基本システムのみ(ネットワーク設定などを行なっていない)

起動メッセージはこんな感じ
(今回は、cosole がLCD Display なんで
 root で login 後に dmesg で再表示させたものです)

--------------------------------------------------------------------------------
Linux version 2.2.17 (herbert@arnor) (gcc version 2.95.2 20000313 (Debian GNU/Linux)) #1 Sun Jun 25 09:24:41 EST 2000
Working around Cyrix MediaGX virtual DMA bug.
Console: colour VGA+ 80x25
Calibrating delay loop... 51.30 BogoMIPS
Memory: 122872k/126976k available (1732k kernel code, 416k reserved, 1816k data, 140k init)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Dentry hash table entries: 16384 (order 5, 128k)
Buffer cache hash table entries: 131072 (order 7, 512k)
Page cache hash table entries: 32768 (order 5, 128k)
VFS: Diskquotas version dquot_6.4.0 initialized
Working around Cyrix MediaGX virtual DMA bug.
CPU: Cyrix Geode(TM) Integrated Processor by National Semi stepping 02
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
Checking for popad bug... OK.
POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.10 entry at 0xfada0
PCI: Using configuration type 1
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
TCP: Hash tables configured (ehash 131072 bhash 65536)
Starting kswapd v 1.5
Detected PS/2 Mouse Port.
pty: 256 Unix98 ptys configured
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.13)
apm: disabled on user request.
Real Time Clock Driver v1.09
RAM disk driver initialized: 16 RAM disks of 4096K size
loop: registered device at major 7
CS5530: IDE controller on PCI bus 00 dev 92
CS5530: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio
hda: IC25N030ATDA04-0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: IC25N030ATDA04-0, 28615MB w/1806kB Cache, CHS=3648/255/63
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
md driver 0.36.6 MAX_MD_DEV=4, MAX_REAL=8
scsi: <fdomain> Detection failed (no card)
NCR53c406a: no available ports found
sym53c416.c: Version 1.0.0
Failed initialization of WD-7000 SCSI card!
IBM MCA SCSI: No Microchannel-bus support present -> Aborting.
megaraid: v107 (December 22, 1999)
aec671x_detect:
3w-xxxx: tw_findcards(): No cards found.
scsi : 0 hosts.
scsi : detected total.
Partition check:
hda: hda1 hda2 < hda5 hda6 hda7 hda8 hda9 hda10 > hda3
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 140k freed
NET4: Unix domain sockets 1.0 for Linux NET4.0.
Adding Swap: 979924k swap-space (priority -1)
Serial driver version 4.27 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Linux PCMCIA Card Services 3.1.8
kernel build: 2.2.17 unknown
options: [pci] [cardbus] [apm]
Intel PCIC probe:
Vadem VG-468 ISA-to-PCMCIA at port 0x3e0 ofs 0x00, 2 sockets
host opts [0]: none
host opts [1]: none
ISA irqs (scanned) = 3,4,7,9,11 polling interval = 1000 ms
cs: IO port probe 0x1000-0x17ff: excluding 0x1218-0x121f
cs: IO port probe 0x0100-0x04ff: excluding 0x220-0x22f 0x378-0x37f 0x388-0x38f 0x440-0x447 0x480-0x48f 0x4d0-0x4d7
cs: IO port probe 0x0a00-0x0aff: clean.

---------------------------------------------------------------------------------

ご覧のとおり、PCMCIA アダプターを搭載していますので、
Air H" を使えるようになったら
かなり面白いシステムを作れるのではないかと、いろいろと妄想しております (^^ゞ


[16] 妄想の実現に向けて突撃中?? 投稿者:Mirai くん (2002/05/07(火) 10:19)

DOS/V 互換 ボードコンピュータの設定作業を続け
・ネットワーク関連の設定
・PCMCIA カードサービスの設定 → 認識成功
・Air H" (MC-P300)の設定 → 認識成功

を完了し、Air H" による @nifty への接続に成功しました。
今回のメッセージなどは、こんな感じ

----------------------------------------------------------------------------------------------------

1. 起動メッセージ

 Linux version 2.2.17 (herbert@arnor) (gcc version 2.95.2 20000313 (Debian GNU/Linux)) #1 Sun Jun 25 09:24:41 EST 2000
 Working around Cyrix MediaGX virtual DMA bug.
 Console: colour VGA+ 80x25
 Calibrating delay loop... 60.62 BogoMIPS
 Memory: 122872k/126976k available (1732k kernel code, 416k reserved, 1816k data, 140k init)
 Checking if this processor honours the WP bit even in supervisor mode... Ok.
 Dentry hash table entries: 16384 (order 5, 128k)
 Buffer cache hash table entries: 131072 (order 7, 512k)
 Page cache hash table entries: 32768 (order 5, 128k)
 VFS: Diskquotas version dquot_6.4.0 initialized
 Working around Cyrix MediaGX virtual DMA bug.
 CPU: Cyrix Geode(TM) Integrated Processor by National Semi stepping 02
 Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
 Checking 'hlt' instruction... OK.
 Checking for popad bug... OK.
 POSIX conformance testing by UNIFIX
 PCI: PCI BIOS revision 2.10 entry at 0xfada0
 PCI: Using configuration type 1
 PCI: Probing PCI hardware
 Linux NET4.0 for Linux 2.2
 Based upon Swansea University Computer Society NET3.039
 NET4: Linux TCP/IP 1.0 for NET4.0
 IP Protocols: ICMP, UDP, TCP, IGMP
 TCP: Hash tables configured (ehash 131072 bhash 65536)
 Starting kswapd v 1.5
 Detected PS/2 Mouse Port.
 pty: 256 Unix98 ptys configured
 apm: BIOS version 1.2 Flags 0x03 (Driver version 1.13)
 apm: disabled on user request.
 Real Time Clock Driver v1.09
 RAM disk driver initialized: 16 RAM disks of 4096K size
 loop: registered device at major 7
 CS5530: IDE controller on PCI bus 00 dev 92
 CS5530: not 100% native mode: will probe irqs later
  ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio
 hda: IC25N030ATDA04-0, ATA DISK drive
 ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
 hda: IC25N030ATDA04-0, 28615MB w/1806kB Cache, CHS=3648/255/63
 Floppy drive(s): fd0 is 1.44M
 FDC 0 is a post-1991 82077
 md driver 0.36.6 MAX_MD_DEV=4, MAX_REAL=8
 scsi: <fdomain> Detection failed (no card)
 NCR53c406a: no available ports found
 sym53c416.c: Version 1.0.0
 Failed initialization of WD-7000 SCSI card!
 IBM MCA SCSI: No Microchannel-bus support present -> Aborting.
 megaraid: v107 (December 22, 1999)
 aec671x_detect:
 3w-xxxx: tw_findcards(): No cards found.
 scsi : 0 hosts.
 scsi : detected total.
 Partition check:
  hda: hda1 hda2 < hda5 hda6 hda7 hda8 hda9 hda10 > hda3
 VFS: Mounted root (ext2 filesystem) readonly.
 Freeing unused kernel memory: 140k freed
 NET4: Unix domain sockets 1.0 for Linux NET4.0.
 Adding Swap: 979924k swap-space (priority -1)
 rtl8139.c:v1.07 5/6/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/rtl8139.html
 eth0: RealTek RTL8139 Fast Ethernet at 0xe000, IRQ 10, 00:d0:c9:49:65:68.
 Network Kernel/User communications module 0.04
 Serial driver version 4.27 with no serial options enabled
 ttyS00 at 0x03f8 (irq = 4) is a 16550A
 ttyS01 at 0x02f8 (irq = 3) is a 16550A
 Linux PCMCIA Card Services 3.1.8
  kernel build: 2.2.17 unknown
options: [pci] [cardbus] [apm]
 Intel PCIC probe:
  Vadem VG-468 ISA-to-PCMCIA at port 0x3e0 ofs 0x00, 2 sockets
  host opts [0]: none
  host opts [1]: none
  ISA irqs (scanned) = 3,4,7,9,11 polling interval = 1000 ms
 cs: IO port probe 0x1000-0x17ff: excluding 0x1218-0x121f
 cs: IO port probe 0x0100-0x04ff: excluding 0x220-0x22f 0x378-0x37f 0x388-0x38f 0x440-0x447 0x480-0x48f 0x4d0-0x4d7
 cs: IO port probe 0x0a00-0x0aff: clean.
 cs: memory probe 0x0d0000-0x0dffff: clean.
 tty03 at 0x12f8 (irq = 9) is a 16550A

2. ドライバの組込み状況(/var/log/syslog の抜粋)

 May 7 09:22:15 debian11 kernel: Linux PCMCIA Card Services 3.1.8
 May 7 09:22:15 debian11 kernel: kernel build: 2.2.17 unknown
 May 7 09:22:15 debian11 kernel: options: [pci] [cardbus] [apm]
 May 7 09:22:15 debian11 kernel: Intel PCIC probe:
 May 7 09:22:15 debian11 kernel: Vadem VG-468 ISA-to-PCMCIA at port 0x3e0 ofs 0x00, 2 sockets
 May 7 09:22:15 debian11 kernel: host opts [0]: none
 May 7 09:22:15 debian11 kernel: host opts [1]: none
 May 7 09:22:15 debian11 kernel: ISA irqs (scanned) = 3,4,7,9,11 polling interval = 1000 ms
 May 7 09:22:15 debian11 kernel: cs: IO port probe 0x1000-0x17ff: excluding 0x1218-0x121f
 May 7 09:22:15 debian11 kernel: cs: IO port probe 0x0100-0x04ff: excluding 0x220-0x22f 0x378-0x37f 0x388-0x38f 0x440-0x447 0x480-0x48f 0x4d0-0x4d7
 May 7 09:22:15 debian11 kernel: cs: IO port probe 0x0a00-0x0aff: clean.
 May 7 09:22:15 debian11 cardmgr[145]: initializing socket 1
 May 7 09:22:15 debian11 cardmgr[145]: socket 1: Serial or Modem
 May 7 09:22:15 debian11 kernel: cs: memory probe 0x0d0000-0x0dffff: clean.
 May 7 09:22:15 debian11 cardmgr[145]: executing: 'insmod /lib/modules/2.2.17/pcmcia/serial_cs.o'
 May 7 09:22:16 debian11 kernel: tty03 at 0x12f8 (irq = 9) is a 16550A
 May 7 09:22:16 debian11 cardmgr[145]: executing: './serial start ttyS3'
 

3. Air H" の認識状況

 debian11:/home/mirai954# cardctl status
 Socket 0:
  no card
 Socket 1:
  5V 16-bit PC Card
  function 0: [ready], [bat dead], [bat low]

 ---------------------------------------------
 debian11:/home/mirai954# cardctl config
 Socket 0:
  not configured
 Socket 1:
  Vcc 5.0V Vpp1 0.0V Vpp2 0.0V
  interface type is "memory and I/O"
  irq 9 [exclusive] [level]
Speaker output is enabled
  function 0:
  config base 0x0200
  option 0x45 status 0x08 pin 0x00
  io 0x12f8-0x12ff [8bit]

 ---------------------------------------------
 debian11:/home/mirai954# cardctl ident
 Socket 0:
  no product info available
 Socket 1:
  product info: "SII", "MC-P300"
  manfid: 0xc01e, 0x0000
  function: 2 (serial)
 
4. Air H" での @nifty への接続
 
 Debian GNU/Linux 2.2 debian11 ttyS0
  
 debian11 login: mirai954            ←←← とりあえず、一般ユーザでログインして
 Password:
 Last login: Tue May 7 09:02:50 2002 on ttyS0
 Linux debian11 2.2.17 #1 Sun Jun 25 09:24:41 EST 2000 i586 unknown
 
 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/doc/*/copyright
  
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 permitted by applicable law.
 mirai954@debian11:~$ su             ←←← スーパユーザになって
 Password:
 
 debian11:/home/mirai954# ppxp nifty_airH     ←←← @nifty に接続
 PPxP version 0.99120923
 interface: tap0
 ppxp>
 ppxp> connect
 ppxp>
 dial>
  115200
  
 ~}#タ!PP+p>
 PP+p>
 PPXp>
 PPXp>
 PPXP> ping www3.biwako.ne.jp         ←←← ping でちゃんと応答が返ってきています
PING www3.biwako.ne.jp (210.154.121.20): 56 data bytes
 64 bytes from 210.154.121.20: icmp_seq=0 ttl=47 time=498.5 ms
 64 bytes from 210.154.121.20: icmp_seq=1 ttl=47 time=620.6 ms
 64 bytes from 210.154.121.20: icmp_seq=2 ttl=47 time=550.1 ms
 64 bytes from 210.154.121.20: icmp_seq=3 ttl=47 time=440.4 ms
 64 bytes from 210.154.121.20: icmp_seq=4 ttl=47 time=420.3 ms
 64 bytes from 210.154.121.20: icmp_seq=5 ttl=47 time=390.0 ms
 64 bytes from 210.154.121.20: icmp_seq=6 ttl=47 time=430.0 ms
 64 bytes from 210.154.121.20: icmp_seq=7 ttl=47 time=450.7 ms
 64 bytes from 210.154.121.20: icmp_seq=8 ttl=47 time=440.6 ms
 64 bytes from 210.154.121.20: icmp_seq=9 ttl=47 time=450.4 ms
 64 bytes from 210.154.121.20: icmp_seq=10 ttl=47 time=420.1 ms
 SIGINT: ping www3.biwako.ne.jp
 
 --- www3.biwako.ne.jp ping statistics ---
 11 packets transmitted, 11 packets received, 0% packet loss
 round-trip min/avg/max = 390.0/464.7/620.6 ms

 PPXP> disconnect                 ←←← 接続を切って
 PPXP>
 PPXp>
 ppxp> quit
 
 debian11:/home/mirai954# cardctl reset      ←←← 一旦、MC-P300 をリセットしておく
 debian11:/home/mirai954# exit
 mirai954@debian11:~$ logout

 Debian GNU/Linux 2.2 debian11 ttyS0
 
 debian11 login:  
  
--------------------------------------------------------------------------------

残作業としては
・Java の開発環境の搭載
・フラッシュROM化

を行えば、Java による I/O 制御ができるようになるでしょう
(いよいよ妄想が現実へと近づいてきました・・)


[17] 突撃は続く?? 投稿者:Mirai くん (2002/05/07(火) 16:45)

DOS/V 互換 ボードコンピュータでの次の課題だった
Java 開発環境の構築を完了しました。
(binary 版のパッケージがあったので、意外と導入は簡単でした)

さっそく、毎度おなじみの「Hello World」で動作確認
実行結果はこんな感じ。

--------------------------------------------------------------------------------

1. コンパイル・実行状況

mirai954@debian11:~$ ls -l
total 7
-rw-r--r-- 1 mirai954 mirai954 129 May 7 15:56 jappli_test1.java

mirai954@debian11:~$ cat jappli_test1.java    ←←← ソースプログラムです
public class jappli_test1 {
public static void main(String args[]) {
System.out.println("Hello Java on Linux world\n");
}
}

mirai954@debian11:~$ javac jappli_test1.java    ←←← コンパイル。DOS(Windows)版と同様の操作です

mirai954@debian11:~$ ls -l
total 8
-rw-r--r-- 1 mirai954 mirai954 444 May 7 15:57 jappli_test1.class
-rw-r--r-- 1 mirai954 mirai954 129 May 7 15:56 jappli_test1.java


mirai954@debian11:~$ java jappli_test1    ←←← 実行させてみた。これも DOS(Windows)版と同様の操作です

Hello Java on Linux world

--------------------------------------------------------------------------------

2. Java関連のパッケージ

 こんなものです(関係ないものは削除してあります)
 (Java のインストール時に、なぜか X 関連のパッケージのインストールも行われました)
 (Netscape での アプレット対応用かな??)

mirai954@debian11:~$ dpkg -l

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
ii j2sdk1.3 1.3.1-1 Blackdown Java(TM) 2 SDK, Standard Edition
ii java-common 0.2 Base of all Java packages

ii xbase-clients 3.3.6-11potato miscellaneous X clients
ii xfree86-common 3.3.6-11potato X Window System (XFree86) infrastructure
ii xlib6g 3.3.6-11potato shared libraries required by X clients
ii xviddetect 0.3-2.1 XFree86 installation helper



---------------------------------------------------------------------------------

3. javac、 Java のオプションなど

mirai954@debian11:~$ javac
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-O Optimize; may hinder debugging or enlarge class file
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath <path> Specify where to find user class files
-sourcepath <path> Specify where to find input source files
-bootclasspath <path> Override location of bootstrap class files
-extdirs <dirs> Override location of installed extensions
-d <directory> Specify where to place generated class files
-encoding <encoding> Specify character encoding used by source files
-target <release> Generate class files for specific VM version

mirai954@debian11:~$ java
Usage: java [-options] class [args...]
(to execute a class)
or java -jar [-options] jarfile [args...]
(to execute a jar file)

where options include:
-client to select the "client" VM
-server to select the "server" VM
-classic to select the "classic" VM
If present, the option to select the VM must be first.
The default VM is -client.

-cp -classpath <directories and zip/jar files separated by :>
set search path for application classes and resources
-D<name>=<value>
set a system property
-verbose[:class|gc|jni]
enable verbose output
-version print product version and exit
-showversion print product version and continue
-? -help print this help message
-X print help on non-standard options

--------------------------------------------------------------------------------

さて、次はいよいよ Java で I/O 制御だ〜 とおもったけど
Linux だから、デバイスドライバを新規に作成しないといけないんですよね
(Windows 版とごっちゃになっていました (^^ゞ )

参考書の
>(4) 組込み対応関連

>  ・TECHI Vol.5 技術者のためのUNIX系OS入門
>   CQ出版(株) 発行

を勉強します。


[18] Linux のデバイスドライバについて勉強してみて・・・ 投稿者:Mirai くん (2002/05/16(木) 18:13)

疲れてしまいました・・ってのは冗談で

本を読めば読むほどに、本当にドライバって必要なのかな?って思ってきました。
単に、RS232C や、プリンタポートへの信号を出力したいだけなのに。
ということで、ちょっとマシンを使って、いろいろと実験。

(1) RS232C 出力

  debian11:/home/mirai954# tty
  /dev/ttyS0                ←←← 今、作業をしている端末は、/dev/ttyS0


  debian11:/home/mirai954# echo A  ←←← 自分の端末へのエコーバック
  A

  debian11:/home/mirai954# echo A > /dev/ttyS0 ←←← 上のはこれと同じ意味ですね
  A

  debian11:/home/mirai954# echo A > /dev/tty0 ←←← ならば、コンソール端末にだって出力できるはず(結果はそのとおり。表示されます)

  ちなみに
  debian11:/home/mirai954# echo A > "hoge.txt"

  とすると、hoge.txt の内容が、"A" となりますね。

  何を今さら、bash の使い方の解説をしているの? と
  おっしゃるかたもおられるかも知れませんが、これらの実験には
  実は、深〜〜い、意味があります。

  つまり、シェルで、/dev/tty**** にリダイレクトして
  データを出力できるということは、プログラムを組めば
  自由に/dev/tty**** にデータ出力できるということですよね。

  というわけで、実際に組んでみると確かに出力できました。
  プログラムはこんな感じ。

  "jiotest2.java"

  import java.io.*;
  public class jiotest2 {
  ・・・・public static void main(String args[]) {
  ・・・・・・・int outdata = 0x41; // "A" の文字コード
  ・・・・・・・try {
  ・・・・・・・・・・・・・・FileOutputStream fos = new FileOutputStream("/dev/ttyS0");
  ・・・・・・・・・・・・・・fos.write((byte)outdata);
  ・・・・・・・・}
  ・・・・・・・・catch (Exception e) {
  ・・・・・・・・・・・・・・System.err.println("Error : " + e);
  ・・・・・・・・・・・・・・System.exit(-1);
  ・・・・・・・・}
  ・・・・}
  }

 (上記の「・・・」は空白、またはタブです。BBSではタブが効かないもので・・(^^ゞ)

  つまり、RS232C のポートには、自由にデータ出力が行えるということです。

  但し、このままでは、Mirai くんの実験には使えません。
  というのも、Mirai くんのI/O 制御実験(RS232C版)では
  データ出力(TXD) ではなく制御線信号(DTR/RTS)を使うからです。
  Linux(UNIX でも)での端末は基本的にはフロー制御を行っていませんので
  プログラムから制御線信号の制御はできないのでした・・残念


(2) プリンタポート出力

  (1) を読まれて、勘のいいかたなら気づかれたと思いますが

   debian11:/home/mirai954# echo A > /dev/ttyS0

  ができるのなら

   debian11:/home/mirai954# echo A > /dev/lp0

  ってやれば、めでたく、プリンタポートに信号が出力されるのでは?
  と想像しているアナタ・・、半分正解です。

  つまり、Linux 起動直後の1回だけなら確かに出力可能ですが、
  上記のコマンドを実行すると、応答が返ってきません(次のプロンプトが表示されない)ので
  コントロール+Cでシェルの実行を強制終了させることになります。

  なぜかというと、「> /dev/lp0」というのは、プリンタドライバへの出力依頼ですから
  ドライバは1バイト("A")を出力後
  プリンタが READY 状態になるのを待つことになりますが
  プリンタが接続されていないのですから、永久に READY にはなりっこありません。

  じゃ、やはりプリンタポートは使えないの? ということですが
  執念深い Mirai くんは、ネット上や本屋へ通った結果
  できる方法(プログラム)を見つけました。

  プログラムと実行結果はこんな感じ。

  プログラム[1]

  mirai954@debian11:~$ cat outp.c

  /* Paralell Port Output Test Program */
  #include <stdio.h>
  #include <unistd.h>
  #include <asm/io.h>

  int main() {
  ・・・・int port = 0x378;
  ・・・・int size = 8;
  ・・・・int data = 0x55;
  ・・・・int icnt;

  ・・・・/* io port の使用権限を得る */
  ・・・・if (ioperm(port, size, 1)) {
  ・・・・・・・・perror("ioperm error");
  ・・・・・・・・exit(1);
  ・・・・}

  ・・・・/* 1 秒毎にデータを反転して出力 */
  ・・・・for (icnt=0; icnt<10; icnt++) {
  ・・・・・・・・outb(data, port);
  ・・・・・・・・printf("data = %02x \n", data);
  ・・・・・・・・data = (data ^ 0xFF) & 0xFF;
  ・・・・・・・・sleep(1);
  ・・・・}

  ・・・・/* io port を使用禁止に戻す */
  ・・・・if (ioperm(port, size, 0)) {
  ・・・・・・・・perror("ioperm error");
  ・・・・・・・・exit(1);
  ・・・・}
  ・・・・exit(0);
  }
  
  実行結果[1]
  debian11:/home/mirai954# ./outp
  data = 55
  data = AA
  data = 55
  data = AA
  data = 55
  data = AA
  data = 55
  data = AA
  data = 55
  data = AA
  
  ----------------------------------------------------------------------

  プログラム[2]

  mirai954@debian11:~$ cat outp2.c

  #include <sys/types.h>
  #include <sys/stat.h>
  #include <fcntl.h>
  #include <unistd.h>

  int main(void) {
  ・・・・unsigned char command;
  ・・・・int fd;

  ・・・・fd = open("/dev/port", O_WRONLY, 0);

  ・・・・command = 0x01;
  ・・・・lseek(fd, 0x378, SEEK_SET);
  ・・・・write(fd, &command, 1);

  ・・・・sleep(1);

  ・・・・command = 0x00;
  ・・・・lseek(fd, 0x378, SEEK_SET);
  ・・・・write(fd, &command, 1);
  ・・・・return 0;
  }
  
  ----------------------------------------------------------------------
  [1][2]の何れのプログラムでも
  見事、プリンタポートに接続した I/O 制御実験用の例の怪しげな回路で
  リレーがカチカチと切り換わるのを確認しました。

  但し、[1]、[2]ともに、Java ではなくて、C言語で組んでいます。
  Java と連携させるためには、例によって、JNI 技術で無理やり
  リンクさせる必要がありそうですね。

  以上、Linux デバイスドライバの調査報告の途中経過でした。
  (実は、デバイスドライバを組むのが、面倒になってきていたりして・・)

--------------------------------------------------------------------------------

*** 本発言のオリジナルは(2002/05/10(金) 17:16)付けですが ***
*** 気になる箇所があったため、後日、一部手直ししています。 ***


[19] 突撃はまだまだ続く・・けど、一旦お休み 投稿者:Mirai くん (2002/05/11(土) 18:43)

昨日まで調べていたデバイスドライバ無しの方法で
毎度おなじみ、おもちゃの扇風機を回すことに成功しました。
詳細は、「Java ON Linux のお勉強室」ってのを新設して
記載しようと思っています。

DOS/V 互換 ボードコンピュータでの残る課題は
・ディスクレス(= Flash ROM )化
・バッテリー駆動(単一電池3本×2段くらい?)

ですが、ここでまた、一旦、作業を中断させようと思っています。
「電話工事担任者(デジタル第1種)」(5月19日実施)に向けての
「お受験モード」に入ります。


[20] 挑戦者求む!! 投稿者:Mirai くん (2002/05/11(土) 16:51)

久しぶりに、「Mirai くんの 挑戦者求む!!」のコーナーです。

今回の「お題」は、組込み用ボードコンピュータに関する問題。

ずばり、Mirai くん の使っている

(1) DOS/V 互換 ボードコンピュータ
(2) SH3 搭載 組み込みボードコンピュータ

の2種類のボードのメーカ、商品名を当ててみてください。

ヒント1:
 このお部屋の過去ログのうち、各々のボードでの Linux の起動メッセージの中に
 商品名(または主要な仕様)に係わるヒントが隠されていますよ
 DOS/V : 発言[15] 【祝】DOS/V 互換 SBC での Linux 起動成功
 SH3  : 発言[10] 【祝】SH3搭載ボードでLinux起動成功!

ヒント2:
 SH3 搭載ボードのほうは、ずばり「SH-2000」ではありません。
 他の商品名を挙げてください。

正解の発表は5月19日(日)の試験終了後とします。
では、頑張って、推理してみてください。


[21] 「Java ON Linux のお勉強室」を開設しました。 投稿者:Mirai くん (2002/05/11(土) 23:00)

予定どおり、お勉強室を開設しました
(といっても、内容のほとんどは、以前のものの流用です。
 新たに作成したのは、写真と、ソースリストくらい)

それにしても、root じゃないと、ポート出力できないのことを
すっかり忘れていました(例によって、ケアレスミスもいいところ・・)

退職時の目標であった、「Linux で Java」という目標の一つを
ようやく達成できました。

まだまだ残課題は多いのですが、ほっと一息の Mirai くん です。


[22] ソースをこっそり手直し・・(^^ゞ 投稿者:Mirai くん (2002/05/13(月) 02:28)

まだ、どなたも見ておられないようなので、
jiotest4.java を綺麗に(?)書き直しました。

でも、Linux 版だと、なぜかスレッド処理が動いてくれません。
(↑ sleep() 関数を使えないということ)

苦肉の策のダミーの for ループ。
できれば、これも直してしまいたいんだけどな・・


[23] Linux でのシリアル出力 投稿者:Mirai くん (2002/05/13(月) 02:47)

発言[18] 「Linux のデバイスドライバについて勉強してみて・・・」を
読み直して、ふと気が付いた。
垂れ流しでもシリアル出力が簡単にできるってことは、
例の、クロッサム2+(リモコン)をつなげば
TVの ON/OFF なんかができるってことですよね。
(試験済んだら、試してみよう〜っと (^^) )


[24] 【祝】Silicon-Linux 起動 投稿者:Mirai くん (2002/05/13(月) 13:08)

試験勉強ばかりでは退屈なんで、ちょっと息ぬきを (^^ゞ。

今回は、DOS/V 互換ボードコンピュータで
ディスクレスでの Linux の起動実験です。

といっても、例によって、メーカ提供のお試しカーネルでの起動。

・起動メッセージ
・デフォルトでの起動プロセス
・Compact Flash Memory 使用量

などはこんな感じ

--------------------------------------------------------------------------------

《 起動メッセージ 》

Linux version 2.2.17-rtl2.2 (silinux@boss) (gcc version 2.95.2 20000220 (Debian GNU/Linux)) ←←← Silicon-Linux、RT-Linux の記述あり
  #1 Fri Nov 24 22:24:29 JST 2000
Working around Cyrix MediaGX virtual DMA bug.
Detected 234696 kHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 460.39 BogoMIPS
Memory: 124008k/126976k available (928k kernel code, 408k reserved, 1588k data, 44k init)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Dentry hash table entries: 16384 (order 5, 128k)
Buffer cache hash table entries: 131072 (order 7, 512k)
Page cache hash table entries: 32768 (order 5, 128k)
VFS: Diskquotas version dquot_6.4.0 initialized
Working around Cyrix MediaGX virtual DMA bug.
CPU: Cyrix Geode(TM) Integrated Processor by National Semi stepping 02
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
RTL started
PCI: PCI BIOS revision 2.10 entry at 0xfada0
PCI: Using configuration type 1
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
TCP: Hash tables configured (ehash 131072 bhash 65536)
Starting kswapd v 1.5
Detected PS/2 Mouse Port.
Serial driver version 4.27 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
pty: 256 Unix98 ptys configured
Real Time Clock Driver v1.09
RAM disk driver initialized: 16 RAM disks of 4096K size
CS5530: IDE controller on PCI bus 00 dev 92
CS5530: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio
hda: IRQ probe failed (0)
hda: IRQ probe failed (0)
hdb: IRQ probe failed (0)
hdb: IRQ probe failed (0)
hdc: SanDisk SDCFB-16, ATA DISK drive           ←←← ATA HDD として認識されています
ide1 at 0x170-0x177,0x376 on irq 15
hdc: SanDisk SDCFB-16, 15MB w/1kB Cache, CHS=490/2/32
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
rtl8139.c:v1.07 5/6/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/rtl8139.html
eth0: RealTek RTL8139 Fast Ethernet at 0xe000, IRQ 5, 00:d0:c9:49:65:68.
Partition check:
hdc: hdc1
VFS: Disk change detected on device ide1(22,1)
hdc: hdc1
hdc: drive_cmd: status=0x51 { DriveReady SeekComplete Error }
hdc: drive_cmd: error=0x04 { DriveStatusError }
VFS: Disk change detected on device ide1(22,1)
hdc: hdc1
e2compr 0.4.38 (2000-06-22) loading.        ←←← 圧縮用のユーティリティを使用しているようです
VFS: Mounted root (ext2 filesystem) readonly.   ←←← Silicon-Linux のため、書き込みできないようにしています
Freeing unused kernel memory: 44k freed


《 デフォルトの起動プロセス 》
・inetd、getty、portmap などしか動いていません。
 アプリケーションなどは NFS 経由で起動しろということなのでしょうね

mirai954@silinux:~$ ps -ale

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 0 1 0 3 60 0 - 255 12f94c ? 00:00:13 init
040 S 0 2 1 0 60 0 - 0 128d14 ? 00:00:00 kflushd
040 S 0 3 1 0 60 0 - 0 128d7c ? 00:00:00 kupdate
040 S 0 4 1 0 60 0 - 0 11f123 ? 00:00:00 kpiod
040 S 0 5 1 0 60 0 - 0 1224b2 ? 00:00:00 kswapd
140 S 1 80 1 0 60 0 - 282 12f94c ? 00:00:00 portmap
040 S 0 126 1 0 60 0 - 338 12f94c ? 00:00:00 syslogd
140 S 0 128 1 0 60 0 - 263 1143fa ? 00:00:00 klogd
140 S 33 137 1 0 60 0 - 313 12f94c ? 00:00:00 boa
140 S 0 142 1 0 60 0 - 325 12f94c ? 00:00:00 inetd
040 S 1 148 1 0 60 0 - 285 112dd2 ? 00:00:00 atd
040 S 0 151 1 0 60 0 - 295 112dd2 ? 00:00:00 cron
000 S 0 153 1 0 60 0 - 251 1aeb9d tty1 00:00:00 getty
000 S 0 154 1 0 60 0 - 251 1aeb9d tty2 00:00:00 getty
000 S 0 155 1 0 60 0 - 251 1aeb9d tty3 00:00:00 getty
000 S 0 156 1 0 60 0 - 251 1aeb9d tty4 00:00:00 getty
000 S 0 157 1 0 60 0 - 251 1aeb9d tty5 00:00:00 getty
000 S 0 158 1 0 60 0 - 251 1aeb9d tty6 00:00:00 getty
100 S 1001 163 1 0 67 0 - 484 1184d7 ttyS0 00:00:00 bash
000 R 1001 166 163 0 75 0 - 594 - ttyS0 00:00:00 ps



《 メモリ使用量 》
・16MBの古いデジカメ用のメモリを使用しました。
 圧縮機能を用いているとはいえ、9MB に収まっているというのはすごいですね

mirai954@silinux:~$ df -m

Filesystem 1M-blocks Used Available Use% Mounted on
/dev/root 15 9 5 63% /
/dev/ram0 4 0 4 3% /var
/dev/ram1 4 0 4 0% /tmp

--------------------------------------------------------------------------------

以上、かなり期待大といったところ。
試験後には、いろんなことを試してみようと思っています。


[25] Linux のバージョンアップ 投稿者:Mirai くん (2002/05/14(火) 22:42)

試験勉強後の息抜き・・

本日は、クロス開発機の Debian を最新版にバージョンアップしてみました。
先日、本屋で雑誌 Linux World の最新号で Woody の特集記事(CD-ROM付き)を発見し
即購入していたものを利用しました。

Debian GNU/Linux 2.2 (Potato) → 3.0 (Woody)

カーネルは
kernel-image-2.2.17 → 2.2.20 → 2.4.18
(といっても、上書きインストールではなく
 新しい HDD への kernel 2.2.20 からの新規インストールです)


ちなみに、この雑誌付録のCD-ROM、インストールすると
最新(2.4.18 )ではなく、2.2.20のカーネルとなります。
私も一瞬、(@_@) 状態になったのですが
ネット上で調べてみると、本家(debian)のML でも
質問しているひとがいました。
(どうも、発言のしかたが・・・でしたので、
 ベテランさんたちから、すごいレスの集中砲火? です)

 URL: http://lists.debian.or.jp/debian-users/200205/msg00048.html

とりあえず、レスを参考にして、無事、最新の 2.4.18 へのアップを完了。


気になった点:
・画面がいろいろと派手になりました。

  URL: http://www3.biwako.ne.jp/~mirai954/kankyou/debian.htm

・正式に USB が使えるようになっているはずなので、
 スリッパを介して、Air H" を利用できるのでは? と思っています。
 (例によって、2ch-net あたりを調べてみようと思っています)

・USBのキーボードを自動認識してくれない(kernel 2.2.20 では OK)
・スレーブ接続の Flash Memory も認識してくれない(kernel 2.2.20 では OK)

など、まだまだちょっとやばそうですが、そこそこ使えそうですね。

起動メッセージはこんな感じ

--------------------------------------------------------------------------------

【kernel 2.2.20時】

Linux version 2.2.20 (herbert@gondolin) (gcc version 2.7.2.3)
#1 Mon Dec 31 07:05:08 EST 2001
BIOS-provided physical RAM map:
BIOS-e820: 0009f000 @ 00000000 (usable)
BIOS-e820: 0bee8000 @ 00100000 (usable)
Detected 400917 kHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 799.53 BogoMIPS
Memory: 191880k/196512k available (1756k kernel code, 412k reserved, 2312k data, 152k init)
Dentry hash table entries: 32768 (order 6, 256k)
Buffer cache hash table entries: 262144 (order 8, 1024k)
Page cache hash table entries: 65536 (order 6, 256k)
VFS: Diskquotas version dquot_6.4.0 initialized
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
128K L2 cache (4 way)
CPU: L2 Cache: 128K
CPU: Intel Celeron (Mendocino) stepping 05
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
Checking for popad bug... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.35a (19990819) Richard Gooch (rgooch@atnf.csiro.au)
PCI: PCI BIOS revision 2.10 entry at 0xf0220
PCI: Using configuration type 1
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
TCP: Hash tables configured (ehash 262144 bhash 65536)
Starting kswapd v 1.5
Serial driver version 4.27 with HUB-6 MANY_PORTS MULTIPORT SHARE_IRQ enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
pty: 256 Unix98 ptys configured
Real Time Clock Driver v1.09
RAM disk driver initialized: 16 RAM disks of 4096K size
loop: registered device at major 7
PIIX4: IDE controller on PCI bus 00 dev 39
PIIX4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x9040-0x9047, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0x9048-0x904f, BIOS settings: hdc:DMA, hdd:pio
hda: ST340016A, ATA DISK drive
hdc: TOSHIBA CD-ROM XM-1902B, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: ST340016A, 38166MB w/2048kB Cache, CHS=4865/255/63
hdc: ATAPI 24X CD-ROM drive, 128kB Cache
Uniform CD-ROM driver Revision: 3.11
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
md driver 0.36.6 MAX_MD_DEV=4, MAX_REAL=8
scsi: <fdomain> Detection failed (no card)
NCR53c406a: no available ports found
sym53c416.c: Version 1.0.0
sym53c8xx: at PCI bus 0, device 20, function 0
sym53c8xx: setting PCI_COMMAND_PARITY...(fix-up)
sym53c8xx: 53c875 detected with Symbios NVRAM
sym53c875-0: rev 0x4 on pci bus 0 device 20 function 0 irq 11
sym53c875-0: Symbios format NVRAM, ID 7, Fast-20, Parity Checking
ncr53c8xx: at PCI bus 0, device 20, function 0
ncr53c8xx: IO region 0x7000[0..127] is in use
Failed initialization of WD-7000 SCSI card!
IBM MCA SCSI: Version 3.2
IBM MCA SCSI: No Microchannel-bus present --> Aborting.
This machine does not have any IBM MCA-bus
or the MCA-Kernel-support is not enabled!
megaraid: v1.11 (Aug 23, 2000)
aec671x_detect:
3ware Storage Controller device driver for Linux v1.02.00.008.
3w-xxxx: tw_findcards(): No cards found.
scsi0 : sym53c8xx-1.7.1-20000726
scsi : 1 host.
scsi : detected total.
Partition check:
hda: hda1 hda2 < hda5 hda6 hda7 hda8 hda9 hda10 > hda3
apm: BIOS version 1.2 Flags 0x07 (Driver version 1.13)
apm: disabled on user request.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 152k freed
NET4: Unix domain sockets 1.0 for Linux NET4.0.
Adding Swap: 979924k swap-space (priority -1)

--------------------------------------------------------------------------------
【kernel 2.4.18時】

Linux version 2.4.18-bf2.4 (root@zombie) (gcc version 2.95.4 20011002 (Debian prerelease))
#1 Sam M舐 23 18:45:17 CET 2002
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000000bfe8000 (usable)
BIOS-e820: 000000000bfe8000 - 000000000bff0000 (reserved)
BIOS-e820: 000000000bff0000 - 000000000bff8000 (ACPI data)
BIOS-e820: 000000000bff8000 - 000000000c000000 (ACPI NVS)
On node 0 totalpages: 49128
zone(0): 4096 pages.
zone(1): 45032 pages.
zone(2): 0 pages.
Kernel command line: BOOT_IMAGE=Linux ro root=306 apm=on
Initializing CPU#0
Detected 400.915 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 799.53 BogoMIPS
Memory: 190140k/196512k available (1788k kernel code, 5984k reserved, 541k data, 264k init, 0k highmem)
Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
CPU: Before vendor init, caps: 0183f9ff 00000000 00000000, vendor = 0
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 128K
CPU: After vendor init, caps: 0183f9ff 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: After generic, caps: 0183f9ff 00000000 00000000 00000000
CPU: Common caps: 0183f9ff 00000000 00000000 00000000
CPU: Intel Celeron (Mendocino) stepping 05
Enabling fast FPU save and restore... done.
Checking 'hlt' instruction... OK.
Checking for popad bug... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.40 (20010327) Richard Gooch (rgooch@atnf.csiro.au)
mtrr: detected mtrr type: Intel
PCI: PCI BIOS revision 2.10 entry at 0xf0220, last bus=1
PCI: Using configuration type 1
PCI: Probing PCI hardware
Unknown bridge resource 2: assuming transparent
PCI: Using IRQ router PIIX [8086/7110] at 00:07.0
Limiting direct PCI/PCI transfers.
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
VFS: Diskquotas version dquot_6.4.0 initialized
Journalled Block Device driver loaded
vga16fb: initializing
vga16fb: mapped to 0xc00a0000
Console: switching to colour frame buffer device 80x30
fb0: VGA16 VGA frame buffer device
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
Real Time Clock Driver v1.10e
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
PIIX4: IDE controller on PCI bus 00 dev 39
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x9040-0x9047, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0x9048-0x904f, BIOS settings: hdc:DMA, hdd:pio
hda: ST340016A, ATA DISK drive
hdc: TOSHIBA CD-ROM XM-1902B, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: 78165360 sectors (40021 MB) w/2048KiB Cache, CHS=4865/255/63
hdc: ATAPI 24X CD-ROM drive, 128kB Cache
Uniform CD-ROM driver Revision: 3.12
ide-floppy driver 0.97.sv
Partition check:
hda: hda1 hda2 < hda5 hda6 hda7 hda8 hda9 hda10 > hda3
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: loaded (max 8 devices)
Compaq CISS Driver (v 2.4.5)
8139cp 10/100 PCI Ethernet driver v0.0.6 (Nov 19, 2001)
8139cp: pci dev 00:12.0 (id 10ec:8139 rev 10) is not an 8139C+ compatible chip
8139cp: Try the "8139too" driver instead.
8139too Fast Ethernet driver 0.9.24
PCI: Found IRQ 10 for device 00:12.0
eth0: RealTek RTL8139 Fast Ethernet at 0xcc81a400, 00:90:99:7f:aa:d2, IRQ 10
eth0: Identified 8139 chip type 'RTL-8139C'
atp.c:v1.09 8/9/2000 Donald Becker <becker@scyld.com>
http://www.scyld.com/network/atp.html
HDLC support module revision 1.02 for Linux 2.4
Cronyx Ltd, Synchronous PPP and CISCO HDLC (c) 1994
Linux port (c) 1998 Building Number Three Ltd & Jan "Yenya" Kasprzak.
ide-floppy driver 0.97.sv
Promise Fasttrak(tm) Softwareraid driver 0.03beta: No raid array found
Highpoint HPT370 Softwareraid driver for linux version 0.01
No raid array found
SCSI subsystem driver Revision: 1.00
Red Hat/Adaptec aacraid driver, Mar 23 2002
PCI: Found IRQ 11 for device 00:14.0
sym53c8xx: at PCI bus 0, device 20, function 0
sym53c8xx: setting PCI_COMMAND_PARITY...(fix-up)
sym53c8xx: 53c875 detected with Symbios NVRAM
sym53c875-0: rev 0x4 on pci bus 0 device 20 function 0 irq 11
sym53c875-0: Symbios format NVRAM, ID 7, Fast-20, Parity Checking
scsi0 : sym53c8xx-1.7.3c-20010512
DC390: 0 adapters found
3ware Storage Controller device driver for Linux v1.02.00.016.
3w-xxxx: No cards with valid units found.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 16384 bind 16384)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 264k freed
Adding Swap: 979924k swap-space (priority -1)


[26] Linux デバイスドライバの専門書 投稿者:Mirai くん (2002/05/16(木) 18:03)

先週 Linux デバイスドライバの専門者を大きな書店で探していたのですが
結局、どこにも置いてありませんでした。

不思議に思って、出版社の HP で検索してみたところ
改定版が、この5月下旬に発売されるとのこと。

ちなみに、その本とは

「Linuxデバイスドライバ 第2版」

 Alessandro Rubini(アレッサンドロ・ルビーニ)
 Jonathan Corbet(ジョナサン・コルベット)著
 山崎 康宏、山崎 邦子、長原 宏治、長原 陽子 訳
 オライリージャパン 発行
 ISBN4-87311-081-5
 本体価格5,500円 + 税

 URL: http://www.oreilly.co.jp/

 オライリージャパン TOP PAGE の下のほう
 <<<2002年5月新刊案内>>>
 のところに書かれていました・・(^^ゞ

この本、「トラ技」「インターフェース」などでの
Linux ハード関連技術の特集号で
参考文献として、必ずといってもいいほど挙げられている本です。
改定版では、カーネル 2.4 対応ということなので
初版本を探して買うよりも、待っていたほうがよさそう。


[27] Re:26 LINUXデバイスドライバー 投稿者:しがとも (2002/05/17(金) 11:53)

あれーーって、探したら、初版本持っていました(爆)
発売元 オーム社 で、4800円
ISBN4-900900-73-7

 2年ほど前に、とある開発で、DOS、Linux、Winの検討を
したときに、もしLinuxでするなら必要と思いよく解らない
まま買い込んだようです。
 結局 その時は、DIOすら、ドライバーを自前で
準備しなければならないLinuxは「まだだ・・・」と判断して。
Win NT4.0になりましたね。
 


[28] 本棚をよく見ると・・ 投稿者:Mirai くん (2002/05/17(金) 13:07)

確かに、なんでこんな本があるんやろ(@_@) ってことはよくありますね
(↑ 私だけじゃなかったみたいで、ひと安心??)

私なんか、会社員してたころは、どうしたわけか
同じ月の雑誌(トラ技、とか、インターフェースとか)が2冊あったりして
「なんでやねん」ってことがよくありました。
(↑ さすがに、こんなのは私だけだろう・・・ って、自慢することじゃない (^^ゞ)

今回、本棚を整理して、かなりの本を処分することにしました。
でも、十数年前に仕事で使用していたUNIX本(shのコマンドリファレンス)なんかは
Linux でも使えるので、取り出しやすい位置に配置替え。
(そういう意味でも、UNIX 〜 Linux というのは、かなりの歴史なんですね)

ただ、VAIO で DOS 窓を開いて、コマンド打ちをすると、
どうしても、Linux とごっちゃになってしまう。

Linux ←→ VAIO(Win2k)
ls ・・・ dir
cat・・・ type
pwd・・・ cd

なんかは、自分で間違えておいて、いらいらしてしまう・・
(どちらかを alias して、統一してしまえばいいんだけど・・)

viの操作なんかも、ようやくいろいろと思い出してきましたが、
プログラムソースの入力なんかは、
ずぼらして VAIO のほうで「秀丸」を使って入力してから
ファイル転送しています。

専門書は、長い間本棚に置いといても、また使えるもの
すぐに使えなくなるもの、いろいろあって面白いですよね。


[29] つんどくの薦め 投稿者:しがとも (2002/05/17(金) 16:18)

全部を読んでしまって手元に無い本より、ほとんど読んだことが
無いけれど、手元に持っている本のほうが役にたつって
いいますよね。

 「積読」って書くんですよね。


[30] 申し訳ありませんが・・・・ 投稿者:Mirai くん (2002/05/17(金) 23:49)

一般的な「本」に関する話題の続きは
「2:【ゲストブック代わり】 フリート−ク(なんでもありよ〜)」のほうでお願いします > Mirai くん & 「しがとも」さん
(実は、Mirai くんは、もう少しこの話題で話したかったりして・・(^^ゞ)


[31] 乾電池駆動・・成功&失敗 投稿者:Mirai くん (2002/05/23(木) 19:28)

約1週間ぶりに本格的な実験を再開。 最初に挑んだのが、乾電池駆動。
で、結果はというと・・

SH3 搭載ボード: 見事に、駆動成功

DOS/V 互換ボード: あえなく、駆動失敗

SH3 ボードのほうは、ネット上のどこかで
単三電池3本で数十分(〜数時間)稼動可能という情報を
みていたため安心していたのですが。

DOS/V ボードのほうは、新品の電池時には
BIOSの起動音(ピッツ)ってするのですが
すぐに電圧が4V近くまで下がってしまいます。

ちなみに、手持ちのACアダプター(DC5V 3A出力)でも動作せず。
なんか、この DOS/V ボード、電気食いすぎ・・

バイク用の小型バッテリーかなんかから、DC−DCコンバータで
5Vを作る方法を考えなきゃと思っているところ。
(とりあえず、駆動時の電流を測ってみるかな・・)


[32] 電源の確保方法 投稿者:しがとも (2002/05/24(金) 10:30)

 電池駆動できる機器の電源って、悩みますよね。

1:鉛蓄電池や、車のバッテリーを元にして5V作る。
 6V(12V)−>5V(任意)にしたりするキット利用
  −>売ってるところ アマチュア無線機屋さん
    滋賀県守山市にある、パーツ屋さん
2:車の中なら 12V−>100Vのコンセント
  −>売ってるところ 大工センター
3:ノートPCからUSB経由で電気拝借
4:VTRのライト用バッテリィー
5:UPS(停電対策のバックアップ電源)利用
6:乾電池(単一の乾電池並列に並べて電流に耐える)
7:太陽電池(1mx1m)で、(1KW あるとか・・・ないとか)
8:大容量コンデンサー
9:発電機で、100V確保 100V−>5V
  大げさ?
a:空気電池/燃料電池

 2番の、車に積むACコンセントは、欲しいおもちゃのひとつです。


[33] Re [32]: 電源の確保方法 投稿者:Mirai くん (2002/05/24(金) 19:46)

「しがとも」さん、いろいろと情報ありがとうございます。

我が家のテスターではDC電流がMAX500mAまでしか
測れないやつだったんで、正確にはわかっていないんですが

ACアダプターの並列接続で試してみたところ
3.0A+2.3A=5.3Aで正常駆動しました。
ということは、消費電流はだいたい3.0A〜5.0A程度ということのようです。
(スイッチング電源程度のものが必要になりそう・・)

「しがとも」さん Wrote:
>1:鉛蓄電池や、車のバッテリーを元にして5V作る。
> 6V(12V)−>5V(任意)にしたりするキット利用
>  −>売ってるところ アマチュア無線機屋さん

 予想外の大容量でしたので、やはりこの方法かな〜と思っています。
 とりあえず、明日にでも日本橋へ出てみようと思っています。

 探すもの
 《日本橋にて》
 ・DC電圧変換キット(か、より本格的なDC−DCコンバータ)
 ・テスター(DCの大電流を測れるやつ)
 ・ついでに、SH−2000も見てこよう・・

 《アヤハ●●にて》
 ・バイク用のバッテリ(6V、or 12V)
 ・専用の充電器


[34] SH3 搭載 組込みボード Kernel Panic 投稿者:Mirai くん (2002/05/24(金) 19:47)

昨日、乾電池駆動の実験をしていたときには
正常に起動していたのですが
今日、ACアダプターで起動してみたところ Kernel Panic が発生。
とりあえず、再度、お試しカーネルをインストールして
「しがとも」さんとのオフ会には間に合わせましたが・・(^^ゞ
(どっかの会社へのプレゼンとかでなくてよかった・・)

乾電池駆動での電圧が 4.2V〜4.5V と若干低めだったせいでしょうか。
電流値としては大丈夫でも、電圧が不安定だと
コンパクトフラッシュへの書込みが不安定になりそうですね。

やっぱ、SH3 搭載ボードのためにも、安定したバッテリ電源が
必要になりそうです。

それと、いざというときのために、コンパクトフラッシュに作り込んだ
システム全体のバックアップをクロス開発マシンに保存しておく必要性を
痛感しました。


[35] Re [33]: 電源の確保方法 投稿者:Mirai くん (2002/05/24(金) 22:30)

自己レスです。
> とりあえず、明日にでも日本橋へ出てみようと思っています。
> ・ついでに、SH−2000も見てこよう・・

 トラ技の広告を見たら、日本橋の代理店さんは
 第2・4土曜日、日曜は定休日とのこと。

 とりあえず、明日は京都の寺町で、電源関係のパーツを探してくるつもり。


[36] Re:[34] SH3 搭載 組込みボード Kernel Panic 投稿者:しがとも (2002/05/24(金) 22:39)

本日は、昼食抜きでパニック回避、ありがとうございました。
土壇場でのパニックでも冷静に対処されるMirai くん の姿を
ひさしぶり見せていただきました。

>> それと、いざというときのために、コンパクトフラッシュに
>>作り込んだシステム全体のバックアップをクロス開発マシンに
>>保存しておく必要性を
 今日はしっかり別のコンパクトフラッシュで、動作を見せていただきました。コンパクトフラッシュのBACKUPだと、 DriveImage等の
ツールで、CDに取るのもいいかも知れませんね。

 うまく行けば ノートPCで、CD->CFに復元できると思います。


[37] カーネル & 「Mirai くん」パニック の真相暴露 編 投稿者:Mirai くん (2002/05/24(金) 23:43)

「しがとも」さん Wrote:
>土壇場でのパニックでも冷静に対処されるMirai くん の姿を
>ひさしぶり見せていただきました。

 実は、カーネルのパニックは PM2:00 前頃にはおさまっていて
 login: 表示までできていました。

 が、なぜか、root で login できない・・
 とりあえず、bin と、nobody のパスワードを削除して
 login できるようにしたものの、root のパスワードを削除しても
 su になれない・・ で、Mirai くん、パニックモードへ状態遷移。
 (bin で login できても root になれないと、shutdown でけへんし、格好わるいな〜)
 (silicon-Linux だから、ぶち切り OK って、ごまかすかな?)
 (でも、再度電源入れたら、fschk 実行されて、ファイル壊れてるのバレバレやな〜)
  ↑ などと、Mirai くんの頭の中で、悪魔がささやく・・

 とりあえず、この状態での ROM は非常用として置いといて
 時間を気にしつつも、もう1枚の ROM をフォーマットからやり直し。
 が、結局こちらの ROM も同じ症状。

 結局、ボードの取説をじっくり読み直してようやく判明。
 ハマッタ原因は
 /etc/securetty に root での login を許す端末を設定するのを忘れていたこと。

 とりあえず、これで、root で無事 login して、ネットワークの設定だけして
 ping ができるくらいのところまでは復旧したというのが真相でございます。
 (あとは、こっそり先にレストランに入っておけば
  「席を確保するために、先に入って食べてました・・」ってごまかせるぞ〜
  と、思ってたんですが、見つかってしまいましたね〜 (^^ゞ)

 カーネルパニックが起きていなかったら、
 Apache でも入れて、VAIO から、LAN経由で SH3 ボード上の HP でも表示させて
 見ようと思ってたんですが(と、言い訳しておこう・・)


[38] Re:「Mirai くん」、パニックモードへ状態遷移。 投稿者:しがとも (2002/05/25(土) 06:01)

>結局、ボードの取説をじっくり読み直してようやく判明。
 パニック状態でも、冷静に取設を、読むとはさすが・・・。
私の場合、パニックになると、頭が白紙になるので、「ぴぽー」って音がして、
すべて振り出しに戻ります。

>Apache でも入れて、VAIO から、LAN経由で SH3 ボード上の HP でも表示させて
>見ようと思ってたんですが(と、言い訳しておこう・・)
 ファンレスの丈夫なWWWサーバーとしていいですよね。
 ファンレスCPU + スイッチング電源5V 代替も準備しやすいし・・・

 パソコンで、壊れる順番(頻度)と、対策って。
 1:Windowsの不調 / 再インストール
 2:HDDの不調   / HDD交換 + 再インストール
 3:電源FANの故障 / 電源ユニット交換
 を、よく経験してます。
 なぜか、CPU‐FANの故障経験は、ないですね。
 (理由は、FANが付く早いCPUは、あまり使ってないだけ・・・(^^; )


[39] 5V 電源を捜し求めて・・ 投稿者:Mirai くん (2002/05/26(日) 10:06)

結局、日本橋まで行ってきました・・ (^^ゞ

京都の寺町では適当なものがなし。
大阪駅前のヨドバシカメラでも、車載用のものはいくつかあるものの
5Vのは1Aを超えるものが無い。

で、結局日本橋へ。
・シリコンハウス共立で、DC−DCコンバータと3端子レギュレータを購入
・ニノミヤエレホビーで、SANWAのDMM(DC大電流測定可能)を購入

ちなみに、ニノミヤエレホビーには
DC12V → AC100V のコンバータが各種ありました
(30W、150W、300W など)
値段は\6,000.- 〜 \13,000.- くらい。

(300W タイプのを、めいっぱい使ったら普通乗用車のバッテリは
 上がってしまいそうですね。多分、こいつは入力12V/24V
 自動切替え機能付でしたので、トラックなkっかで使うやつ?)

帰りに、ダメモトでと SH-2000 の代理店へ。 ・・と、幸運にも営業中。
店員(何やら、防犯カメラの制御基板?を修理中の技術者さん?)に聞くと
「このお店で作ってますが、納期は1週間くらいかかります」とのこと。
(受注生産ってこと・・? (@_@))

とりあえず、そのまま帰ってきました。
(お店に在庫があれば、衝動買いをしてたかもしれない Mirai くんです)


明日にでも、DOS/V 互換ボードの消費電流を正確に測定して
電源回路を自作するつもり。
(バイク用のバッテリ/充電器も購入してこなければ・・)


[40] Linux Japan 廃刊 投稿者:Mirai くん (2002/05/26(日) 23:46)

Linux 関連雑誌のうち、「Linux Japan」誌が
現在発売中の7月号で廃刊になるとのこと。

日本橋の「シリコンハウス共立」で見かけたのですが、
ちょっとヨレヨレの状態でしたので、「おっきな本屋で買えばいいか」と
購入しなかったところ、本屋さんでは見当たらない (@_@)

今までの主要記事がPDF ファイルとして2枚組みのCD-ROM の付録付。
ひょっとしたら、かなりのレア物かもしれません。


[41] Re:[40] Linux Japan 廃刊 投稿者:しがとも (2002/05/27(月) 14:35)

これは、一大事と、昼休みに、本屋さんに行きました。
ところが・・・お金がなかった・・・(¥_¥;
 会社の人に1000円借りて、とにかく確保しました。
1380円でした。 


[42] Re[41] :Linux Japan 休刊(←廃刊、改め) 投稿者:Mirai くん (2002/05/27(月) 22:02)

雑誌では、「廃刊」とは言わず「休刊」だそうです。

私も、今日、京都のパソコンショップで購入。
CD 2枚のうち、1枚は Vine Linux 最新版ですから
記事のデータ(PDF ファイル)は1枚だけのようですね。
(それでも、いろんな情報を検索できるようになって便利、便利)

ざっと、記事一覧や紙面で紹介されている内容を読むと
意外とハード絡み(I/O 制御関連)のものもあって面白そうです。


[43] DOS/V 互換ボードの消費電流調査結果 投稿者:Mirai くん (2002/05/28(火) 17:30)

新規導入した DMM にて測定。 (@_@)な結果が得られました。
(DOS/V 互換ボードにパソコンのAT電源から 5V のみを供給して測定)


負荷内容: 5V消費電流(A)
--------:----------------------------------------------
 1.ボード単体 : 1.1 A
 (CPUボード+PCMCIAアダプター)

 2. ボード+HDD : 1.3A 〜 1.7A
 3. ボード+HDD + Air H"(MC-P300) : 1.5A 〜 1.9A

意外と少なかったので驚いています。
ならば、先日行った、ACアダプター並列運転時の
消費電流はというと、1. のボード単体時で
 0.5A+0.6A=1.1A

で、2台使用してようやく必要量ということでした。
ちなみに、乾電池を接続した場合も 0.6A しか流れていませんでした。

従って、
結論: AC アダプターがショボかっただけで、
    DOS/V 互換ボードが電気バカ食いしていたわけではなさそう。

バッテリ駆動用の部品については
今日、「しがとも」さんおすすめの(?)「アヤハ●●」で
バイク用のバッテリと充電器を入手。

明日にでも、DC-DCコンバータの半田付けをして
バッテリ駆動の実験を行うつもり。


[44] 【祝】DOS/V 互換ボード バッテリ駆動成功 投稿者:Mirai くん (2002/05/28(火) 23:03)

課題のひとつだった DOS/V 互換ボードのバッテリ駆動に成功しました。

システム全景はこんな感じ ↓

 http://www3.biwako.ne.jp/~mirai954/battery/dos_v.htm

消費電流は、
バイク用バッテリ(12V)側:12.7V 0.3 〜 0.8A
5V 側:5.06V 1.1A

HDD も AT電源もないので、稼動中でも全くの無音です(あたりまえ・・)
DC-DC コンバータも、ケースがほんのりと暖かくなっている程度でヒートシンクも不要。
(DOS/V ノートパソコンのように使っても面白そう・・)

念のため、HDD、Air H" を接続した状態でも動作確認してみましたが、
問題なく正常動作していました。


[45] Re:[44] 【祝】DOS/V 互換ボード バッテリ駆動成功 投稿者:しがとも (2002/05/29(水) 09:12)

 おめでとうございます。
これで、ますます機動性が、発揮できますよね。

耐久時間って、どう計算するんでしょうか?
12時間くらい動くんでしょうか?


[46] ニッケル水素電池だと!? 投稿者:しがとも (2002/05/29(水) 09:29)


http://www.akizuki.ne.jp/ashop/nihm.htm
>品番:B-00009 商品名 ニッケル水素電池 単3型1.2V 1700mAh
>価 格 1個 \200  4個 \760  6個 \1,100  10個 \1,800 

 1.2Vx1.7Ax1H = 2.04whでいいのかな?
5Vの2Aだと、10w

 単三型 5本(1.2Vx5=6.0Vで、動く?)で、1時間程度は、
うごくのかな? 
 電池が、ものすごく発熱しそうな気もしますね。


[47] バイク用バッテリでの耐久時間 投稿者:Mirai くん (2002/05/29(水) 16:59)

私もあまり詳しくはないのですが・・
バイク用バッテリには、公称容量として 2.5Ah と記載されてましたので

現状での消費電流:0.3 〜 0.8A → 平均 0.5A くらいとすると

2.5Ah / 0.5A = 5hくらい? と思っています。
実際にどれくらい持つかは、一度試してみようと思っています。
(NFS で接続したクロス開発機に一定時間毎のアクセスの
 タイムスタンプを残すとかして・・)


[48] Re[46] :ニッケル水素電池だと!? 投稿者:Mirai くん (2002/05/29(水) 17:10)

Mirai くんのDOS/V 互換ボードだと 5V 単一電源なんで
直接供給するなら、単三型 4本(4.8V)でしょうね。

ただ、確かに発熱が怖いんで、できるだけ電池での電圧は上げて
DC-DC コンバータで下げたほうが、電池側の電流は少なくできそうです。
(VAIO のAC アダプタは、DC 19V で供給してるけど、
 バッテリーは何ボルトを供給してるのだろう??
 10本直列の12Vくらいかな??)


[49] 書籍「Linux デバイスドライバ(第2版) 投稿者:Mirai くん (2002/05/29(水) 23:12)

「しがとも」さんから、初版本をお借りしているのですが
土曜日、日本橋の帰りに「ジュンク堂書店(大阪店)」にて第2版を見つけて購入しました。

初版 → 第2版 で見比べてみると
・総ページ数おおはば増(450ページ → 599ページ)
・章だてはほぼ同じ。カーネルの機構強化により、解説の項目が増えている箇所がある
・最終章(第17章)がなくなった
・参照しているカーネルソースのバージョンが、2.0 → 2.4.1

というように、かなり細かな項目で改訂されています。

どっちを読もうかと、(@_@) な Mirai くんです。
(現状での開発環境は、バージョン 2.2.17 ですから、初版なんでしょうが
 もうすぐ、Debian は、「Woody」がリリースされて、バージョン 2.4.** へと
 移行するはずなんで、やはり第2版でしょうか・・??)


[50] Re:[47] バイク用バッテリでの耐久時間 投稿者:しがとも (2002/05/30(木) 11:36)

 鉛電池って、完全放電すると、駄目になりませんでしたか?
蓄電池って、完全放電したほうがいいのと、完全放電したら
それで終わりの2種類あるんですよね?

 


管理フォーム  
(入力しない場合、修正/削除ができません)

じょじょBBS ver.7.00
created by じょじょのWeb工房