KiNOKO-DAQ 関連情報 掲示板

このスレッドに記事を投稿する
前のスレッド | 次のスレッド | 掲示版ホーム

Kernel 2.6.13(Fedora 3)でのトラベル
2005 年 10 月 21 日 14 時 20 分
投稿者: 呉仕強(台湾中央研究院)

こんにちは、何時も世話になってる台湾の呉です
今週はFedora3のKernelを最新ヴァージョン「2.6.13」に更新したあと、元々は正常に作動できるドライバーがコンパイル出来なくなってしまい、所謂エラー発生しました。そのエラーは「Unresolved Simble」です。その後OSのを元の「2.6.9」に戻したら正常に作動できるようになったが、この点について榎本さんにコマンドを頂きたいと思ってますが、宜しくお願いします。



2005 年 10 月 21 日 15 時 41 分
投稿者: 榎本 三四郎

おそらく古い vmedrv (ver 0.5.1) を使っていたのだと思うのですが,昨日,新しいカーネルに対応した ver 1.0.0 を公開しましたので,こちらでもう一度試してみてください.なお,ver 1.0.0 でもまだエラーが出る場合には,全てのエラーメッセージを添付してもらえると早く対応できると思いますので,よろしくお願いします.


Kernel 2.6.13(Fedora 3)でのトラベル
2005 年 11 月 1 日 17 時 49 分
投稿者: 呉仕強(台湾中央研究院)

こんにちは、ご返事ありがとうございました。昨日vmedrv-1.0.0.tar.gzを試しましたが、makeは順調に済みましたが make installの時に次のようなエラーメッセージが出て来ました:「insmod: error inserting 'vmedrv.ko': -1 Unknown symbol in module」。今使ってるOSは:Fedora 3で Kernel は「2.6.9」です。このエラーについて解決方法をお願い致します。



2005 年 11 月 1 日 17 時 59 分
投稿者: 榎本 三四郎

kernel 2.6.9 は手元にないため,こちらでテストできません.make をしたときと make install をしたときの画面の表示を全てファイルに保存してもう一度この掲示板に投稿してもらえないでしょうか? 2.6.5 と 2.6.11 の両方でちゃんとコンパイルできているので,2.6.9 対応はたぶん簡単だと思います.


Fedora3で
2005 年 11 月 2 日 14 時 14 分
投稿者: 葛西


Fedora3で
2005 年 11 月 2 日 14 時 21 分
投稿者: 葛西 和夫

FedoraCore3でvmedrvをmakeしたところ"remap_pfn_range" [/home/iwatsu/TOUHOKUDAI/vmedrv/Linux2.6_Bit3_617/vmedrv.ko] undefined!
とwarningが出たため、調べてみるとremap_pfn_rangeはvmedrv-FC2.hにdefineされていたためvmedrv-FC2.hをvmedrv.cにincludeしたところmakeもinstallも順調に行きました。何か動作上の問題が無いか今調べています。



2005 年 11 月 2 日 15 時 18 分
投稿者: 葛西 和夫

Fedora3にFedora2のヘッダをincludeすると、どうも調子があまり好くないようです。
添附ファイルのソースを作り、0-8191をモジュールに書き込んだところPIO転送ではintで1023を超える部分は消えてしまいました。ところが、データを全て8000に固定するときちんと書き込まれています。不思議に思い、DMA転送で書き込むと全て上手く行きます。なおFedoraCoreは2.6.9-1.667 gcc version 3.4.2 20041017(Red Hat 3.4.2-6.fc3) を使用しています。

添付ファイル: test1.c (2.0 kb)



2005 年 11 月 2 日 17 時 51 分
投稿者: 呉仕強(台湾中央研究院)

ご説明ありがとうございました。今日先ずはkernelを2.6.12までupgradeしてmakeとmake installしたがトラベルに遭いました:パソコンcrash してしまった。下記はmakeするとき全部のメッセージです:
[root@hep34 Linux2.6_Bit3_617]# make
make -C /lib/modules/2.6.12-1.1378_FC3/build SUBDIRS=/root/vmedrv/Linux2.6_Bit3_617 modules
make[1]: Entering directory `/lib/modules/2.6.12-1.1378_FC3/build'
CC [M] /root/vmedrv/Linux2.6_Bit3_617/vmedrv.o
Building modules, stage 2.
MODPOST
CC /root/vmedrv/Linux2.6_Bit3_617/vmedrv.mod.o
LD [M] /root/vmedrv/Linux2.6_Bit3_617/vmedrv.ko
make[1]: Leaving directory `/lib/modules/2.6.12-1.1378_FC3/build'
cp vmedrv.h ..
[root@hep34 Linux2.6_Bit3_617]#
その後make installしたらパソコンのスクリーンは留まったまま、 crashしました(マウスやキーボーは全然反応なし)。これについて榎本さんと葛西さんに解決方法を宜しくお願いいたします。



2005 年 11 月 2 日 22 時 9 分
投稿者: 榎本三四郎

Fedra Core 3 (以下FC3)上でのコンパイルで remap_pfn_range() のエラーがでることをこちらのセットアップでも確認しました.FC2やFC4 でのコンパイルでソースをいじっているうちに,FC3 でうまくいっていた部分を書き換えてしまったようです.すいません.

read() / write() の読み書きテストで,0x1000 以上がおかしい問題ですが,これもこちらで確認しました.原因は,完全に vmedrv のバグで,PIO の write() において,1024 byte を越えるサイズを書き込んだとき,データは 0 から 1023 までの間のものが繰り返し使われてしまうというものです.vmedrv の初期バージョンから存在するバグなのですが,大きいデータサイズの write() をあまり使わないのと,使っても DMA にしてしまうのとで,発見が遅れてしまいました.御迷惑をおかけしてすいません.また,ご指摘いただき,ありがとうございます.

これらの不具合を修正したバージョンを公開しておきましたので,ご確認ください.

2.6.12 で生じるクラッシュについては,こちらの 2.6.11 (FC4) を使ったシステムでは再現できませんでした.おそらくカーネル設定の詳細に依存しているのではないかと思いますが,それをこちらで再現するのは難しいと思います.FC4 のデフォルトの設定で動作することは確認しているので,もし可能なら,FC4 (あるいは FC3, FC2でも) のデフォルトに戻すのが,簡単な解決方法ではないかと思います.



2005 年 11 月 2 日 23 時 47 分
投稿者: 葛西 和夫

vmedrv-1.0.1を早速ためしてみました。全て順調でした。本当にありがとうございます。
ところで、余談ですがアドレスモデファイアを最高速の0x0fにしたい場合は
vmedrv_params.hで、
regADDRESS_MODIFIER = 0x0d,

regADDRESS_MODIFIER = 0x0f,
に変更するだけで大丈夫でしょうか。もしよろしければ、お考えをお聞かせ下さい。



2005 年 11 月 3 日 4 時 13 分
投稿者: 榎本 三四郎

vmedrv_params.h の
regADDRESS_MODIFIER = 0x0d
の行は,AM を設定するレジスタのアドレスなので,変更する場所はここではありません.

AM の値は,転送モードごとに指定してあって,それは vmedrv_config.h に書かれています.ブロックモードの転送と普通の転送では,AM以外のレジスタの設定も異なることに注意してください.現在の A32D32 DMA 用の値は,amA32BLOCK で,これは vmedrv_params.h の中で 0x0b と定義されています.

これら vmedrv_config.h または vmedrv_params.h の値を変えることによって実際に使われる AM の値を変えることはできます.ただし,現在の 0x0b (32bitアドレス非特権ブロック転送) を 0x0f (32bitアドレス特権ブロックアクセス)に変えても,それで転送速度が変わるかは分かりません.間違っているかもしれませんが、私の理解では、特権でも非特権でもVMEバスのタイミングは同じだからです。



2005 年 11 月 3 日 21 時 57 分
投稿者: 葛西 和夫

本当にいろいろとありがとうございます。
ご指摘の処に注意しいろいろやってみたいと思います。なんか楽しそうです。


このスレッドに記事を投稿する