KiNOKO-DAQ 関連情報 掲示板

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

vmedrvでのトラブル
2006 年 3 月 29 日 18 時 1 分
投稿者: 武多

現在FC4でvmedrvを使おうとしています。
カーネルのバージョンは2.6.11-1.1369_FC、
モジュールはSBS-model 618です。

make,make installは
問題無かったのですが、
./vmeread を行うとセグメンテーションエラーとなり、
dmesgで

vmedrv: SBS(Bit3) Model 618/620 VME-PCI Bus Adapter is detected at ioport 0x1000 on irq 255.
I/O Mapped Node at 0x1000.
Memory Mapped Node at 0x52010000.
Mapping Register at 0x52000000.
Remote Memory at 0x50000000.
vmedrv: successfully installed at 0x1000 on irq 255 (major = 254).
allocation failed: out of vmalloc space - use vmalloc=<size> to increase size.
------------[ cut here ]------------
kernel BUG at lib/iomap.c:67!
invalid operand: 0000 [#11]
Modules linked in: vmedrv(U) parport_pc lp parport autofs4 rfcomm l2cap bluetooth sunrpc ipt_REJECT ipt_state ip_conntrack iptable_filter ip_tables video button battery ac md5 ipv6 ohci1394 ieee1394 uhci_hcd ehci_hcd hw_random i2c_i801 i2c_core snd_hda_intel snd_hda_codec snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore snd_page_alloc e1000 floppy dm_snapshot dm_zero dm_mirror ext3 jbd dm_mod ata_piix libata sd_mod scsi_mod
CPU: 0
EIP: 0060:[<c0213aea>] Not tainted VLI
EFLAGS: 00010287 (2.6.11-1.1369_FC4)
EIP is at ioread32+0x1e/0x28
eax: 00000000 ebx: 000000fc ecx: 01000250 edx: 000000fc
esi: 00000000 edi: 00000004 ebp: 00000000 esp: e5a6df3c
ds: 007b es: 007b ss: 0068
Process vmeread (pid: 4492, threadinfo=e5a6d000 task=eaa36000)
Stack: f8c4bbe3 00000250 08049bc0 e31cb280 00000000 e5833000 00000004 010000fc
08049bc0 e31cb280 f8c4b23f 00000004 f6bed780 00000000 f6bed780 f8c4b1db
00000004 08049bc0 c017b6c8 e5a6dfa4 f6bed780 fffffff7 080488d8 e5a6d000
Call Trace:
[<f8c4bbe3>] pio_read+0x126/0x154 [vmedrv]
[<f8c4b23f>] vmedrv_read+0x64/0x9d [vmedrv]
[<f8c4b1db>] vmedrv_read+0x0/0x9d [vmedrv]
[<c017b6c8>] vfs_read+0x9c/0x10e
[<c017b977>] sys_read+0x41/0x6a
[<c0103a51>] syscall_call+0x7/0xb
Code: b7 c0 c3 0f 0b 3f 00 95 18 39 c0 eb ea 89 c2 3d ff ff 03 00 76 03 8b 00 c3 66 31 c0 3d 00 00 01 00 75 08 81 e2 ff ff 00 00 ed c3 <0f> 0b 43 00 95 18 39 c0 eb ee 89 c2 3d ff ff 03 00 76 05 8b 00


と出力されました。
もしかするとvmedrvの問題ではなく、
こちらのPCの問題かもしれませんが、
今のところ両者を切り分けるための情報が不足している状態です。

どなたかの御知恵がお借りできましたら幸いです。



2006 年 4 月 3 日 17 時 3 分
投稿者: 榎本 三四郎

返信が遅くなってしまい,申し訳ありません.
先週末まで海外出張で不在にしていました.

この問題は,vmedrv ver 1.0.0 および ver 1.0.1 で発現し,ver 1.0.2 で修正したつもりのものです.もう一度,お使いの vmedrv のバージョンを確認してもらえないでしょうか.

ご迷惑をおかけしてすいません.



2006 年 4 月 12 日 3 時 2 分
投稿者: 武多

vmedrvのバージョンは1.0.2です。
カーネルツリーの構築の仕方に問題があるのかもしれません。

若干この掲示板の趣旨と外れてしまいますが、
OSインストール直後のまっさらな状態のPCがあるとして、
推奨するカーネルツリー構築の方法を教えていただけませんか?
それともカーネル2.6ではカーネルツリー構築は必要ありませんか?



2006 年 4 月 13 日 23 時 2 分
投稿者: 榎本 三四郎

この問題を引き起こしそうな vmedrv のバグをもうひとつ発見しました.
修正したのは,insmod/rmmod を繰り返したとき,VME アクセスで上記のクラッシュが起こる(かもしれない)問題です.

修正したものを,vmedrv-1.0.3 として,下記の場所においておきましたので,お試しください.

http://www.awa.tohoku.ac.jp/~sanshiro/kinoko/vmedrv/vmedrv-1.0.3.tar.gz

実はまだ十分なテストをしていないので,正式公開とはしていません(5月まで出張なので,すぐにはできなさそうです).
ただ,vmedrv-1.0.2 からの変更はとても少ないので,多分大丈夫だと思っています.

エラーメッセージを見る限り,おそらく問題はカーネルの構成などではなく,vmedrv だと思います.
これでもまだ問題が出る場合は,もう少し調べてみますので,もう一度お知らせください.ご迷惑をおかけして申し訳ありません.

カーネルツリー構築の方法ですが,私がドライバを書くときは,標準的なディストリビューションをインストールしてそのまま使えるようにしています.正直のところ,自分でカーネル再構築をしたことはほとんどありません.カーネルソースを入れてそれに合わせてドライバを書き直すことはありますが...
役に立たないコメントですいません.



2006 年 4 月 18 日 1 時 43 分
投稿者: 武多

>insmod/rmmod を繰り返したとき,VME アクセスで上記のクラッシュが起こる(かもしれない)

おっしゃるとおりです。
ver-1.0.2だとリブートの後、
1度インストールに成功するのですが、
アンインスト−ルの後で再度インストールを
行うとクラッシュが起こります。

ver-1.0.3では上記の現象は起こりませんでした。
どうも有り難うございました。

また、チェックした関数は
vmeread,vmewrite,
vmedmaread,vmedmawriteです。
これから割り込み関連のチェックを行う予定です。


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