SuSE 8で私のデバイスに対応するデバイスノードをどのように見つけますか?

SuSE 8で私のデバイスに対応するデバイスノードをどのように見つけますか?

SuSE 8を実行している複数のPOSシステムに閉じ込められています。それは私の顧客のコンピュータです。システム全体をSLE 11にアップグレードするまで、これらのレガシーシステムに取り組んできました。

問題: システムには、ttyUSB* 文字デバイス・ノードと競合する 2 つのデバイスがあります。ベンダーIDと製品IDが異なります。 SuSE 8にはudevがなく、devfsがあります。

デバイスのベンダーIDと製品ID、およびそのデバイスを担当するカーネルモジュール(ipaqカーネルモジュール)を知っていれば、どの文字デバイスノードに割り当てられているかをどうやって知ることができますか? POSIXシェルスクリプト文字列(例:$ DeviceNode)?

今私はシェルスクリプトで非常に愚かな方法でこれを行います。

DeviceNode=$(dmesg | tac | grep "PocketPC PDA converter now attached to" | set -n 's/.*now attached to \([[:alnum:]]\{1,\}\).*/\1/p')

だから私は

> echo $DeviceNode
ttyUSB1
>

もちろん、問題の1つは、デバイスのプラグが抜けている可能性があり、この簡単な方法ではわからないことです。

もっと良い方法がありますか?

編集:だから見つけましたこの記事今朝。 /proc/tty/driver/usbserialで2行目から始めて、各行の最初の番号がttyUSBxの1つのマイナー番号であると仮定できますか?

編集2:代替(おそらくより良い)ソリューションは、継続的なノード接続を取得することです(たとえば、常にttyUSB1に関連付けられている既知のベンダーIDと既知の製品IDを持つデバイスを取得します)。 devfsでこれは可能ですか?

ベストアンサー1

おすすめ記事