goo blog サービス終了のお知らせ 

組み込まれたエンジニア

我輩は石である。名前はまだ無い。

OSEK(ToppersATK1) on Linux/Cygwin + COM/CCCA

2012-12-31 09:42:51 | Linux

ToppersATK1のCygwin版を修正し、Linuxで動作させ、かつ、コンパイラバージョン・オプティマイズ依存を低減する変更をしたものに、OSEK通信規格COM/CCCAを追加しました。

IP-ARCHのホームページにダウンロードパッケージを置きました。

http://www.ip-arch.jp/OSEK.tar.bz2

Linuxで動作させるときにはWINEがインストールされている必要があります。

Makefileは、nxtOSEKを参考に、多少手を加えてあります。

OSEK/sampleディレクトリの下に、例題を置いてありますので、ご利用ください。


Linux SuperPageの解説

2006-03-10 23:42:52 | Linux
またまた、SuperPageの解説を求めるメールがきた。
投稿者の名前はアジア系みたいだが、gmail経由で、西海岸発のメールだ。

パッチを読んでいるらしいが、ページディレクトリが二重化されている理由が読んでも分からないということだ。

ACMの記事は読んだのかなぁ?
ページディレクトリのシャドウが必要な理由は、ACMの記事には書いておいたはずなのだが・・

あまり問い合わせが多かったら、情報処理学会の論文へのポインターをホームページにおいておいて、理解したかったら日本語を勉強しろと書いておくか(笑)

XENとVT

2006-02-22 09:34:56 | Linux
YLUGでXENとVTの話を聞いてデモも見せてもらってきた。
最近ドキュメントを読む暇もなかったけれど、
疑問に思ったことを話の途中でどんどん割り込んで聞いて
大体概略は分かった。

でも、やっぱり、PCアーキテクチャで仮想マシンをやるのは
IO処理のアーキテクチャがまずいのでオーバヘッド大きすぎだよなぁ。

懇親会で、ある人と、話をしていたのだが、DomainUのようなのは
マイクロカーネルのUNIXサーバと変わらないので、これなら
ゲストとホストでデバイスドライバが二重に必要な仮想マシンでなく
マイクロカーネル型にすればいいんじゃないの?というのが
素直な疑問である。
(coLinuxも同じだよなぁ)
もしくは、昔あった BSDonWindowsのようなカーネルエミュレーションに
してしまうか・・・
(Cygwinはほぼこれに相当するが、Linux互換性を持ってない)

まぁ、動くのが面白いとか*dowsを動かしたいという向きには
意味ないのだろうけれど・・

インドからのメール

2006-02-19 19:47:30 | Linux
POPFileを導入しても、時々迷惑メールの分類を誤るので、
定期的に迷惑メールフォルダをチェックするのであるが、
今日、危うく見過ごすところだったメールがあった。

それは、私のLinux SuperPageのパッチを見たけれど良く分からないので
詳細な設計ドキュメントが欲しいというメールである。

シグネチャにはPuneと書いてあって、Maharashtra工科アカデミーの人だ。
Puneってどこだ~?
と、検索して調べるとどうやらインドらしい。

設計ドキュメントねぇ、私は自分ではほとんどドキュメントを作ってないが、
唯一ACMのコンピュータアーキテクチャニュースに書いたものが
少しは設計内容が書かれているので、これを紹介しておくか・・・

LinuxのABI変更

2005-09-21 07:22:46 | Linux
Linux標準仕様の最新版「The Linux Standard Base 3.0」が公開 (MYCOM PC WEB) - goo ニュース
によると、LSB3.0ではC++のABIが変更され、従来と互換性がなくなるそうだ。
これは元はといえば、GNUのC++の問題なのだが、ABIがコロコロ変わると
アプリケーションをバイナリで提供できなくなり、商用ソフトウェアの
会社は困るではないか。
(GNUとしては、バイナリで提供すること自体が間違いだといいたいのだろうが)

記事では明らかではないが、CのABIが変わることはまずないので、
商用アプリはCで書くというのが保身のためにも必要だろうね。

DELL sc430 + debian Linux 結構快適

2005-09-18 21:04:47 | Linux
音も静かだし、レスポンスも悪くない。
ただ、X11を使わず、生コンソールにすると、ちょっともたつき気味かな。
ALSAがエラーを返すので、サウンドチップが乗っていないことに気がつく(笑)

サウンドが必要なケースはないから、問題ないね。
とはいっても、家にある他のマシンはかなり騒音を立てるので、これだけ静かだと
DVDを見たりするのもこのマシンで行いたくなるかも?

USBオーディオデバイスを買って、ステレオに接続するのが一番良さそうだけど、
USBオーディオでLinuxに対応したのってあるのかしらん?

SC430にNetBSD for AMD64のインストール

2005-09-18 10:40:56 | Linux
今日は職場に来ているのだが、朝、出かける前にNetBSDをインストールした。
これが以外に苦労する。

何が問題かというと、私はディスプレイとキーボード・マウスを
もう一台のマシン(HP Pavillion 2000)と共用してスイッチで切り替える
のであるが、NetBSDはスイッチで切り替わった後に戻ったらキーボードが
使えなくなるのである。

インストール方法のWEBを見ながらさくっとやればいいやと思っていたら
思わぬところに伏兵がいた。

USBだから一度抜いて差し込めばいいかというと、これまた動かない。
抜けたことは認識されて、画面上にメッセージは出るのだから、
再度刺さったら使えるようにしてくれればいいのに、と思う。

とりあえず、画面のメッセージだけでインストールしたが、
ブートローダは勝手に入れられてしまった。

すでにあるGRUBが使えるわけでなく、Linuxをブートする方法が
不明であったが、Linuxのルートパーティションを指定だけしておく。

結局、NetBSDのOSBSではLinuxはブートされず(設定があるかもしれなけれど
そこまで調べる元気はない 何しろ画面を切り替えると動かなくなるのだから)、
再びDebian AMD64のrescueモードでGRUBを手動インストールした。

NetBSDのエントリ記述方法は時間切れで調べていないが、GRUBであればそれほど
難しいことはないはず。

PS: 帰ってからGRUBの設定を行った。chainloaderを用いることで、簡単に
NetBSDとLinuxのデュアルブートは動作するようになった。
とりあえず一段落ではある。


買ったばかりのDELL SC430がもう値下げ

2005-09-18 00:39:03 | Linux
といっても、特別割引クーポンの割引が増えただけなのだが、
5,000円割引だったのが、10,000円クーポンが適用できるようになっている。
その代わり、不要なキーボードは削れないが、フロッピーが削れて
トータル26,765 円となる。
4,000円ちょっと安くなっている・・・

といっても、一人で使うのに何台もあっても仕方ないしねぇ。

職場で買うといってもさすがに置く場所もないし。

Linuxを自分で入れて、Openoffice.orgあたりで不自由しなければ
このマシン、コストパフォーマンス抜群だよなぁ。

安定稼動したので、Linuxのインストールは終わった気になっていたけれど、
32ビット版のLinuxと64ビット版のNetBSDを入れる予定だった・・
すっかり忘れていた。


DELL SC430へのDebian GNU/Linux(AMD64)インストール

2005-09-17 17:22:13 | Linux
出張中に何度も届けられていたDELLのSC430であるが、本日ようやく受け取れた。
このマシン、OSは入っていないのに、何故かインストールCDなどが付いていて、
Linuxのインストールができそうなことが書いてあったりする。

で、試してみようとセットアップを始める。一台のマシンのキーボードと
マウスを流用すればいいだろうとたかをくくっていた。
ところが、最初からつまずく。なんと、PS/2コネクタが付いていない(笑)

これは、押入にしまいこんでいるUSB日本語キーボードを引っ張り出して対応。

インストールCDROMでLinuxのインストールを試みると
ディスクパーティションを設定して、
これからOSのコピーをすると、まさにインストールが
できるかのようなメッセージが出てくる。

ところが、そこでOSのCDROMを入れろとメッセージを出してくる。
まぁ、当り前といえば当り前だが、Linux位無料で添付してもいいかもねぇ。

それはともかく、自前でDebian GNU/Linux (sarge for AMD64)のインストールにかかる。
まずは、ネットインストールのCDを焼いて、これからブートするのであるが、
SATAのドライバが見付からないと文句を行ってくる。
必要なモジュールはリストにあるのだから、勝手にやってくれればいいのだが、
わずか5MBのCDROMイメージに文句を言ってもしかたがないから、
手動で対応するモジュールを指定する。

インストールが終了し、CDを抜いてリブートすると、カーネルパニックだ。
initrdからVESAフレームバッファを呼出し、フレームバッファでコンソールを
動かそうとして、ドライバがアボートしたところで、コンソールが見付からない。
initrdを書き換えるのは面倒だなぁと考えあぐねていて、ふとコンソールを見ると
インストールCDのカーネルバージョンとブートしたカーネルバージョンは
違うではないか。

これはもしかしたら、バグフィクスしたinitrdが入手できるかも?
と、期待を抱いて、rescueモードでCDブートする。

手持ちのUSBキーボードは思いきりお馬鹿で、OSから設定されるまで
キーのリピート間隔が異様に狭く、一度キーを押すと2~3文字は
入力されてしまうので、rescueの文字を打つのにも大変苦労する。
このあたりは、ファンクションキーに全部割り当ててくれると
楽なのであるが‥

rescueモードでパーティションをマウントし、カーネルの新しいバージョンを
探す。しっかりと新しいバージョンがあるのであるが、AMD64版しかなく、
em64t版にはなっていない。genericであればどちらでも動くはずと
インストールするが、どうもエラーとなってaptitudeが終了しない。

これは、わたしが/procのマウントをすっかり忘れていたのであった。

とまぁ、行きつ戻りつ何とかHDDからのブートに成功。
(もしかしたら、最初からAMD64-genericのカーネルにしたら
カーネルアップデートしなくても動いたのかも?)

次にtaskselでパッケージを選択するのであるが、これがまたエラーで
動かない。Desktopタスクは動かないのでstandardだけをとりあえず
インストールして、後から考えることにする。

taskselを単独で動かすと、どうやらkdegraphicsの依存性が解消されないらしい。
kameraがNGだというのであるが、kdeはもともとあまり使うわけではない。
aptitudeを単独で起動し、Desktopを選択した後、kdeの下に行き、
kdegraphicsの選択を外す。
そのほかLocalizationでJapanese関係のパッケージを追加。
仕事で使うため、verilog, gtkwave, tgifを入れる。
パッケージ化はされていないが、IP ARCHのホームページからsfl2vlを入れる。
ついでにbrickOSを入れようとしたら、これはAMD64版のパッケージはないらしい。

それでも、これだけ動けば、まぁそこそこ使えるだろう。

ファイルをダウンロードしている間に電気屋に行って、
PS/2→USBの変換ケーブルを買ってきた。

ロボコンの参加者用CDROMを焼かなくてはいけないから、CDRラベルを
探したが、ヤマダ電機にはCDRラベルは置かなくなってしまった。
国産プリンタの多くがCDR直接印刷をサポートしているからだろうが、
とても不便である。

で、ふと見るとキャノンのプリンタでCD直接印刷ができるものが
12,000円でポイント10%還元となっている。
これは、今まで見た最安値かも?
ということで、無駄にプリンタまで買い込むことになってしまった(笑)

職場で苦労したK8M800ボードとことなり、VESAドライバは何の問題もなく
きれいに立上り、Xwindowも問題ない。

さて、後の問題は設置場所である。
何しろテーブルには乗せたくない大きさがある。
どうしたものやら‥

退役させる予定のHP pavilion 2000のホームディレクトリを移す作業もこれからである。
ネットワークがつながれば後は時間だけの問題だから、作業は一段落。

これを書いている間に餃子の移動販売などという車が家の前にきた。
こんなのあるんだねぇ。宣伝文句によれば本格餃子らしい。
今日は、餃子でもいいかもねぇ(買わないけど)



XFree86におけるK8M800のオンボードビデオ(解決)

2005-09-05 16:37:41 | Linux
AMD64では、VIAドライバがなく、VESAドライバではスクリーンが見つからないと
利用できていなかったK8M800のオンボードビデオであるが、
ようやく解決方法が見つかった。

実は、Xorgの6.8.2以降を入れればいいらしいのだが、DebianにXorgを
入れるのは、通常の管理と異なることになるので、X11のような基幹には
正式リリースのもの意外は入れにくい事情があって、手段を探していたのである。

結論から言えば、VESAフレームバッファドライバを使うことで利用できたのである。
フレームバッファを有効にするには、Linuxがブートするところで、
vga=xxxとビデオモードに相当する数値をカーネルに渡す必要がある。
(これはsysctlでも出来そうなのであるが・・)

渡す値であるが、望む解像度によって異なり、職場のLCDディスプレイでは
1024x768 24bitモードに相当する792を渡すことで、X11もきれいに対応して
表示されるようになった。

分かってしまえば簡単であるが、ここま来るのには時間がかかった。

VIAのサイトからVIAフレームバッファドライバを入手して、これでいけるかと
思いきや、これが思い切り32ビットコーディングされていて、64ビットでは
動かないのである。わざわざ修正するのもばかばかしいので、一時はあきらめよう
かと思ったけれど、思い直して、調べた結果、投資を無駄にせずにすんだ(笑)

サーバ購入

2005-09-04 01:58:23 | Linux
散々迷っていたが、結局、DELLのSC430オンライン購入の手続きをした。

実は、キャンペーンで5,000円割引とメモリ・HDD容量倍増ということで
EM64T/512MB RAM/160GB SATAのマシンが26,000円程度になって、
送料入れても31,030円と64ビットマシンの最安値ではないかという所まで
値段が下がったのである。(キーボード・マウスはなしにした)

問題は、配送である。自宅に送ったら受け取りが大変なのだが、
職場に送ったら持ち帰りはさらに大変そうだし、持ち出しを
人に説明するのも面倒だ。

どちらも一長一短ではあるが、受け取りは配送会社と連絡することにして
とりあえず配送先は自宅にした。

LinuxとNetBSDを切り替えブート可能にして、色々な実験に使うつもりであるが
それだけの時間が取れるかが大いに疑問なのではある(笑)

職場のK8M800はXサーバにVIAのパッチを入れてをリコンパイル中である。
これでうまく動いてくれればいいけれど・・
ソースからコンパイルするときに、開発パッケージの依存関係も一緒に
解消してくれればいいのであるが、さすがのDebianチームもそこまで
手は回っていないのか、必要を感じていないのか、開発パッケージの
不足はコンパイルをしてみて初めて分かるのだ。
しかも、Xサーバのソースは、コンパイルの依存関係を把握していないので
毎回 clean からやり直す必要があり、とんでもなく時間がかかる。

VIA K8M800のオンボードビデオ

2005-09-02 21:59:26 | Linux
職場のマシンでX11がどうにも動かないというので、色々調べてみたが、
どうやら簡単には動きそうもない。

VIAのホームページからフレームバッファドライバを入手して
試してみたが、これも画面が乱れて使い物にならない。

AGPのビデオを外付けしたほうが快適に使えそうな感じである。

DELLの64ビットマシン500台限定で割引になっている。
う~ん、どうしたものやら・・

昨日の打ち合わせでMac使いのO氏にガレージバンドはいいですよ~
なんて、焚きつけられたから、Macも欲しいし、そんなに場所も
時間も(ついでにお金も)余っているわけではないしなぁ

DELLのEM64Tサーバ

2005-08-31 09:52:20 | Linux
PowerEdge SC430にCeleronD 326を乗せて、4万弱の価格になる。
前から家にAMD64アーキテクチャが欲しいと思っているから、魅力的かも?

価格COMで見ても中々こんな値段のEM64Tマシンはないんだよね。
直販デスクトップにはVSPECの最安値マシンEM64T-CD326 SUPER-KITがあって、
同じような構成なら数千円安いが、キットであることと、SATAでない、
発送まで9日かかるなど微妙な価格設定(笑)

問題は、どちらもかなりデカイ!

今、HPのPavillionをおいてある場所に置き換えで置くしかないのだが、
幅的にはかなり無理がありそうだ。

本当はPavillionのCPUを乗せ替えてEM64Tマシンになれば一番いいのだが、
566MHzの旧型Celeronマシンの筐体では、マザーボードを入れ替えても
電源容量も排熱も不足するだろうなぁ。

などと、ホームページを見て遊んでいる場合ではなく、
本当はこれでも色々忙しかったりするのである(笑)


64bitパソコンが欲しい

2005-08-14 07:50:20 | Linux
IntelやAMDがエントリーレベルのCPUまで64ビットにしてきているので
64ビットパソコンはずいぶん安い値段から手に入るようになってきた。

64ビットになると何が変わるのですかと時々聞かれるのであるが、
32ビットで十分な仕事には32ビットの方がベターでしょうと答えることに
している。

実際、AMD64アーキテクチャでは32ビットPAEを拡張したメモリ構造と
なっているので、PAEの欠点をそのまま引きずっていてあまりスマートな
構成ではない。

その点、最初から64ビットで設計されたAlphaアーキテクチャの方が
ずっときれいな設計である。

何よりいけないのは、PAE系のページテーブルエントリは8バイトになって
キャッシュを余分に必要とする点だ。結果として、大きなメモリを
用いるアプリケーションの性能が落ちることになる。
これでは、何のために64ビット化しているのか全然意味不明である。

そこで、Linux Super Pageがこれらのマシンには是非必要な機能なのであるが、
私の手元に開発環境がない(時間もない・・)ので、開発に着手する気に
ならないのである。

職場には2台の64ビットマシンを置いてあるが、これは私が自由には使えない。

ということで、4万を切る値段になってきた64ビットパソコンを買いたいと
思っているところである。

いつそんなものをやる時間があるんだというのは、永遠の課題ではある・・(笑)

flex-2.5.31でverilatorがコンパイル失敗する件

2005-07-25 20:32:50 | Linux
問題点は大きく二つ
1: yytext_ptrがundefineになる。これは、flex.sklでこのマクロを勝手にundefしてしまっているのが問題。この行をコメントアウトで対応
2: yywrapがundefineになる。こいつもどこかで失敗しているはずだが、flex側を触る時間がなかったので、verilator側で
#define yywrap() 1
として、勝手に定義してしまう。

大きな問題ではないのだが、互換性に問題が生じる変更がパッケージに
あるときには、何かしらバックポートの手段があると便利な気がする。