トップ 最新 追記
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|10|12|
2009|02|03|06|07|10|11|12|
2010|01|02|03|04|07|09|10|11|12|
2011|01|03|04|05|06|07|08|10|
2012|01|06|08|09|10|12|
2013|01|02|03|04|07|09|11|12|
2014|01|03|04|05|06|09|
2015|04|
2016|01|08|
ここは旧えびめもです。えびめも2に移行します(2016/12/1)

2007年05月01日

ぼやき

なんで世の中BigEndianが好きな人がいるのかなぁ。BigEndianの回路追っかけ気持ち悪いよぉ。


2007年05月02日

SH2A-DUAL

http://resource.renesas.com/lib/jpn/sh2a_dual/index.html
SH2A-FPUが2個入ったCPU。内蔵タイマーとか内蔵シリアルとかは一組のようだし、CPU間でどうやって排他制御するのかなと思っていたら
SH-2A DUALのプログラミングモデルは、機能分散型を前提とします。つまり、それぞれのCPUで
別々にOSが動作し、別々の機能を実行するモデルです。従って、応用システム設計時に、機能
(ソフト、扱うハードウェア、メモリ領域)を、あらかじめCPU#0用とCPU#1用に分割しておく
必要があります。 
なんだ。排他制御しないのか。あらかじめ「俺はこっち、お前はそっち」って決めておくのね。それじゃあまり意味無いじゃん。サンプルでITRONが2個別々に動くと書かれているけど、それもたぶんITRONがSMPで動くようにはなっていないので、別々のCPUで別々に競合しないようにRTOSを動かしているんだろう。

片方のCPUコアでLinux、片方はITRONなんて使い方を考えても、それを活用するには両方のOSの移植+保守/開発環境の構築+維持/人材の確保+維持、がそれぞれに必要になって、ソフトウェア開発コストが安くならない。そういうのではなくて、ITRONならITRON、LinuxならLinuxで、単純にスレッドが2個平行に動いて2倍速いぜ〜。なんて気楽に言えるようになるまでは、熾烈なソフトウェア開発コスト競争の中で、高くついてしまう石であると思える。新し物好きな上司が(あるいは担当者本人が)面白がってこの石を使ってみようとか言い出したらすげー苦労しそう。

ただ、今後はどうしてもマルチコアの時代になっていくと思うので先陣を切ってこういう石がでてきたのは組み込みの将来を感じさせる。組み込みソフトウェア屋は今からSMPのしんどいところ(単にスレッドセーフに書くだけでは競合問題を回避できないなど)を習得しておく必要があるだろう。


2007年05月03日

coLinux

coLinux-0.7.1-pre-release を試す。カーネルは 2.6.12 ベース
http://sourceforge.net/project/showfiles.php?group_id=98788
インストールはすんなりうまく出来た。ネットワークI/Fとして今までのpcap,tapに加えて slirp が加わった。README.txtによると
	a. Slirp - The simplest way to use networks in coLinux.  This runs as
	user application on the Windows host and needs no changes on the host
	networks.  Slirp is a good choice for dialup networks and WLAN cards.
	Slirp use all times the current outgoing interface and forwards (NAT)
	networking from linux to the internet world.  Slirp is a virtual
	Gateway for all outgoing TCP and UDP connections (no IMCP, no ping).
	Standard installation works as firewall to your linux.  It means, you
	can not connect from windows side to your linux.  To allow incomings
	from host system to linux, must additional configure 'redirections'.
	Slirp has a DHCP-Server for linux side.  To use slirp, edit your CFG
	file and set "slirp" as first parameter.  Inside linux use DHCP-Client
	to get your network configuration.
 
	b. TAP driver - This method installs a virtual network adapter that can 
	then be either shared or bridged with a physical network connection. 
	Note that this requires Internet Connection Sharing or Bridging 
	(Windows XP or higher) or a 3rd party Internet connection 
	sharing application.  The TAP method autmatically chooses the TAP
	first TAP adapter it finds, if you have multiple TAP WIN32 devices, you 
	can specify the specific adapter by name (for sample "TAP-Colinux").
 
  	c. Bridging - This method allows the Cooperative Linux network 
	interface to directly interoperate with one of your built in networking 
	interfaces.  You'll need to edit the configuration file to reflect
	that type "pcap-bridge" and the 'name' parameter needs to be set to a 
	substring of the network connection name that you will be bridging 
	with (e.g. "Local Area Connection").
 
	You can select all types on installation and use one of these later.
	See the Wiki at the page 'Network' for more information/help.
a. Slirp coLinuxでネットワークを使う最もシンプルな方法。ダイヤルアップや無線LAN環境で使うとよい。NATが組み込まれているので外向けのパケットを通すことが出来るが、coLinuxへの接続はredirectを設定する必要がある。またcoLinuxに対してDHCPサーバを提供することが出来るのでcoLinuxはDHCPクライアントの設定にすればよい。・・・らしい。
b. TAP driver 略
c. Bridging 略

おいらは TAPで実績があるのでTAPを使った。Slirp ではNAT(Firewall)として動いてしまうらしいので、そうするとcoLinuxをNFSサーバにすることが難しくなる。知っての通り NFS を静的NATで穴を開けるのはすごく面倒なのだ(動的ポートがあるので)

それから .xml での設定ファイルは撤廃された。各種設定は colinux-daemon.exe の引数で与えるらしい。私のメモ

 "C:\Program Files\coLinux\colinux-daemon.exe" -t nt kernel=vmlinux
 hda1=fs_debian_sarge\rootfs.bin  hda2=fs_debian_sarge\swapfile.bin
 hdc=\Device\Harddisk1\Partition0  hdc1=\Device\Harddisk1\Partition1
 mem=128  eth0=tuntap,TAP root=/dev/hda1
(改行しない)
coLinuxからWindowsのシリアルポートが使えるようになった。これはうれしい。リモートgdb (via serial)が使える。引数に追加するようだ。
ttys0=COM1,"BAUD=115200 PARITY=n DATA=8 STOP=1 dtr=off rts=off"
それから reboot が正しく出来るようになった。今までWindowsホスト+coLinuxサーバーとして動かしているマシンを遠隔rebootする方法が無かったが、rebootできるようになったのはジミにうれしい。

coLinuxで

coLinuxだけで、外付けUSBメモリーカードへ SiliconLinux i386(電源即断対応 組込みOS) をビルド&インストールできるできるようになった。

外付けUSBメモリーへのMBRへ、colinuxからGRUBの打ち込みができることも確認した。これでネイティブにLinuxインストールされたPCがなくても組み込みlinuxの開発が出来る。

2007年05月04日

coLinux

coLinuxの中のえらい人。cofbのドキュメント/パッチ有り
http://www.henrynestler.com/

2007年05月07日

クルマ

GW中、知り合いのクルマ屋からクルマを買ってくれと泣きつかれた(イロイロと事情はあるが)。今のクルマ、事故車だけど気に入っているもの。3年で5万キロ走ったけどそれも気に入ってるからだもの。手放すのはやだなぁ。。。。
多くの人(特に男性)にとって、過去の思い出とクルマがリンクすると思う。ここ10年くらいの自分の車暦を思い返すと、
今 インプレッサWRX STi GDB-E('04〜)
先代 インプレッサWRX GC8('01〜'04)通称インプレッサ・スパイダー号
先々代 レガシィRS('98〜'01)
見直してみたらここ10年くらいスバル乗ってる。一回スバルに乗るとスバル以外に乗れなくなる(ディーラー下取り以外では条件が悪いから)。これを世間ではスバル地獄という。ちなみに、同類にマツダ地獄、ホンダ地獄もある。

2007年05月12日

sqlite

sqliteイイですね。CATに標準で組み込んでしまいたくなる。


2007年05月13日

debian-sh

cat-usersの方にアナウンスしたのですが、debian-shのリポジトリーDB(パッケージ一覧)が壊れてしまい公開を停止しています。ハード的なクラッシュではなくてソフトウェア的な混乱です。対策を考えていますがどうにも困っています。ここまでOSSの精神どおりボランティアでやっていましたが時間と予算に限りがあり本業の合間の自分のプライベートな時間にしか作業が出来ませんでした。このトラブルでだいぶ萎え気味です。

今後、ひょっとしたら時間/作業/機材/費用をシェアするかたちで協力をお願いするかもしれません。そのときはどうかご理解ください。


2007年05月16日

2007年5月16日〜18日

ESEC 組込みシステム開発技術展 へ出展します。

http://www.si-linux.co.jp/?ESEC2007
新製品
  組み込み向けGUIツールキット『+G』 (プラスG)
  組み込み向けデータベース開発キット『+D』 (プラスD)
Windowsで組み込みlinux開発を行う SWEET 等々
今年もやります、ロゴ入りグッズ進呈!! ご来場をお待ちしています。

2007年05月22日

ESEC終わって

いろいろなブースにお邪魔していろいろな技術を見せていただいた。技術で食っていくことを決めたならば、小手先の技術や商品ではなく、本物を持っていることが何より大事だね。googleは3人だったころに「本物」を持っていた。「本物」を持っていると google になれる(かもしれないね)。

ESEC

ESECで出展している会社同士、雑談が出来ていろいろと面白かった。ある会社と、ある会社と、ある会社と、ある会社と、それからウチの話で共通していたのは、とりあえず受託開発で資金を得てそれを製品開発に投入するんだけど結局なくなっちゃうんだよね。という話。あははウチだけじゃないんだね。負け組みが傷をなめあった感じ。けどね、Tryすることが大事なんですよ。今はいろいろとダメかもしれないけど挑戦しないと成功しないじゃないですか。負け組みったって、たかが3日間の展示会にウン百万を投じるだけの前向きな姿勢のある仲間じゃないですか。ある会社と、ある会社と、ある会社と、ある会社と、それからウチは負けませんよ。どこが先に抜け出すか頑張りましょう。


2007年05月23日

USBホスト

一回のトランザクションの完了条件
・要求バイト数を満たした場合
・wMaxPacketSize以下のデータを受信した場合
(例;最大パケットサイズが8バイトのエンドポイントで0〜7バイトを受信したとき)
・INの結果0バイトを受信したとき
というのは理解しているがLinuxのohciホストの以下の動きがどうにも納得できない。

GET_DISCRIPTION パケットの応答で 8バイト受信したところで完了させて STATUSパケット (ゼロバイトのOUT)を出してる。なぜに8バイトで打ち切ってるんだ? NAKは関係ないとして、0バイトのINを受信して、そこで打ち切るなら話はわかるんだが・・・・ SETUP(0,0)だけ特別に例外扱いしているわけでもなさそうだし。。。

わ〜かった!

そっか、最初は相手のendpoinサイズを知らないから自分と同じと仮定してMaxPacketSizeを自分のendpointサイズにしてあるのか。だから8バイト受信でショートパケットと判断して打ち切るんだ。次に相手のendpointサイズに仕切りなおすのか。な〜るのほど。

これで一ヶ月苦しんじまった。


2007年05月24日

snmpd

snmpd デーモンが動いているかの簡易検査
$ snmpwalk -v 1 -c public 192.168.7.218
-v SNMPバージョン [1,2c,3]  -c コミュニティ名

2007年05月25日

linux起動時のペンギンロゴ変更

ネット上を探したけどあまりドキュメントが無かった。KconfigとMakefileと grepを手探りでやってみたら意外と簡単だった。linux-2.6.15でやってみた。
適当な画像ファイルを .ppm に変換しておく(netpbmとかirfanviewとかで)。logo_ebi.ppm があったとする。
224色パレットに減色するため netpbm を使い、drivers/video/logo に保存する
$ cd drivers/video/logo
$ cat logo_ebi.ppm | ppmquant 224 | pnmnoraw > logo_ebi_clut224.ppm
ファイル名の命名規則として *_clut224.ppm でなければいけない。
あとはカーネルをちょこちょこっと変更する。
+++ drivers/video/logo/Kconfig  2007-05-25 19:02:06.001646685 +0900
@@ -70,5 +70,10 @@
        depends on LOGO && M32R
        default y
 
+config LOGO_EBI_CLUT224
+       bool "EBI LOGO"
+       depends on LOGO
+       default y
+
 endmenu
+++ drivers/video/logo/Makefile 2007-05-25 19:03:33.289033729 +0900
@@ -13,6 +13,8 @@
 obj-$(CONFIG_LOGO_SUPERH_VGA16)                += logo_superh_vga16.o
 obj-$(CONFIG_LOGO_SUPERH_CLUT224)      += logo_superh_clut224.o
 obj-$(CONFIG_LOGO_M32R_CLUT224)                += logo_m32r_clut224.o
+obj-$(CONFIG_LOGO_EBI_CLUT224)                += logo_ebi_clut224.o
+++ drivers/video/logo/logo.c   2007-05-25 20:17:04.612488066 +0900
@@ -34,6 +34,7 @@
 extern const struct linux_logo logo_superh_vga16;
 extern const struct linux_logo logo_superh_clut224;
 extern const struct linux_logo logo_m32r_clut224;
+extern const struct linux_logo logo_ebi_clut224;
 
 const struct linux_logo *fb_find_logo(int depth)
@@ -102,6 +103,10 @@
                /* M32R Linux logo */
                logo = &logo_m32r_clut224;
 #endif
+#ifdef CONFIG_LOGO_EBI_CLUT224
+               /* EBI LOGO */
+               logo = &logo_ebi_clut224;
+#endif
        }
        return logo;
 }
$ make menuconfig
  Device Drivers  --->
    Graphics support  --->
      Logo configuration  --->
        [*] Bootup logo
        [*]   EBI LOGO
  
$ make
新しいカーネルで再起動しておわり。

2007年05月29日

交通マナー:夜間のライト、どちら向き!? 下向き根強く、県警が修正PR

http://headlines.yahoo.co.jp/hl?a=20070524-00000094-mailo-l08
へぇ。知らなかった。茨城では上向きがデフォなのか?