2016-06-21 1 views
0

私は/ devデバイスに関する情報を得るためにコマンドudevadmを使用するスクリプトを持っています。特定の製品を表すtty'sデバイスをフィルタリングしたいのでスクリプトに必要な情報はID_SERIALの値ですUSBポートに接続します。問題は、環境に存在するudevmのudevadmバージョンが128であり、このバージョンがudevadmであり、クエリpropertyが使用できないということです。 USBポートに接続されたデバイスを別の方法でフィルタリングするにはどうすればよいですか?udevadmコマンドの代わりに

EDIT 1 Command.sh

#!/bin/bash 

for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev);do 
    (syspath="${sysdevpath%/dev}"; 
    echo "syspath = $syspath"; 
    devname="$(udevadm info -q name -p $syspath)"; 
    [[ "$devname" == "bus/"* ]]&& continue; 
    echo "Passou"; 
    eval "$(udevadm info -q property --export -p $syspath)"; 
    [[ -z "$ID_SERIAL" ]] && continue; 
    temporario=${ID_SERIAL,,}; 
    if [[ $temporario == *"ManufacturerName"* ]]; 
    then 
     echo "/dev/$devname"; 
    fi); 
done; 
+0

あなたの環境でudevを更新できないと思いますか? –

+0

もし 'udevadm'があなたの望むように正確にフィルタすることができないなら、' grep'、 'sed'、' awk'などのツールを使って 'udevadm'の出力をさらにフィルタリングすることができます。 –

+0

環境を更新できません。 – JulianOliveira

答えて

0

それが簡単dmesgの出力を使用することはありませんか?私は自分のシリアルポートに接続すると、私はこの出力を得る:

[332144.226566] usb 1-2.1.2: new full-speed USB device number 6 using ehci-pci 
[332144.302766] usb 1-2.1.2: New USB device found, idVendor=067b, idProduct=2303 
[332144.302770] usb 1-2.1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0 
[332144.512664] usbcore: registered new interface driver usbserial 
[332144.512679] usbcore: registered new interface driver usbserial_generic 
[332144.512691] usbserial: USB Serial support registered for generic 
[332144.522042] usbcore: registered new interface driver pl2303 
[332144.522060] usbserial: USB Serial support registered for pl2303 
[332144.522090] pl2303 1-2.1.2:1.0: pl2303 converter detected 
[332144.523681] usb 1-2.1.2: pl2303 converter now attached to ttyUSB0 

最後の行はttyUSB0に言及し、あなたも削除イベントを特定したい場合は、1-2.1.2にこれを関連付けることができます。

[332342.342682] usb 1-2.1.2: USB disconnect, device number 6 
[332342.342891] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0 
[332342.342903] pl2303 1-2.1.2:1.0: device disconnected 

inotifyシステムを使用して、ドライブが接続されたときに通知を受け取る可能性があります。this article on how to use the systemをチェックしてください。

関連する問題