2017-05-10 82 views
-1

我试图执行一个脚本,当一个USB自动插入在Fedora 24上。我发现了很多关于如何在旧版本上执行此操作的信息。但是,在Fedora 25中它不起作用。这是我做的:Udev规则不适用于Fedora 24

我已经创建了一个名为60-francisco.rules /etc/udev/rules.d/和旁边内容的文件,但它不工作:

KERNEL ==“SDB1 “,SUBSYSTEM ==”block“,ENV {ID_MODEL} ==”DataTraveler_G3“,ATTRS {idVendor} ==”0951“,ATTRS {idProduct} ==”1643“,RUN + =”/ root/usb_script.sh“

(一切都在一条线上...)

这是udevadm信息--attribute行走--name =的/ dev/SDB命令产生的结果

Udevadm info starts with the device specified by the devpath and then 
walks up the chain of parent devices. It prints for every device 
found, all possible attributes in the udev rules key format. 
A rule to match, can be composed by the attributes of the device 
and the attributes from one single parent device. 

    looking at device '/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host4/target4:0:0/4:0:0:0/block/sdb': 
    KERNEL=="sdb" 
    SUBSYSTEM=="block" 
    DRIVER=="" 
    ATTR{alignment_offset}=="0" 
    ATTR{badblocks}=="" 
    ATTR{capability}=="51" 
    ATTR{discard_alignment}=="0" 
    ATTR{events}=="media_change" 
    ATTR{events_async}=="" 
    ATTR{events_poll_msecs}=="-1" 
    ATTR{ext_range}=="256" 
    ATTR{inflight}=="  0  0" 
    ATTR{range}=="16" 
    ATTR{removable}=="1" 
    ATTR{ro}=="0" 
    ATTR{size}=="15215808" 
    ATTR{stat}==" 1199  8515 16953  1913  0  0  0  0  0  1440  1913" 

    looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host4/target4:0:0/4:0:0:0': 
    KERNELS=="4:0:0:0" 
    SUBSYSTEMS=="scsi" 
    DRIVERS=="sd" 
    ATTRS{device_blocked}=="0" 
    ATTRS{device_busy}=="0" 
    ATTRS{dh_state}=="detached" 
    ATTRS{eh_timeout}=="10" 
    ATTRS{evt_capacity_change_reported}=="0" 
    ATTRS{evt_inquiry_change_reported}=="0" 
    ATTRS{evt_lun_change_reported}=="0" 
    ATTRS{evt_media_change}=="0" 
    ATTRS{evt_mode_parameter_change_reported}=="0" 
    ATTRS{evt_soft_threshold_reached}=="0" 
    ATTRS{inquiry}=="" 
    ATTRS{iocounterbits}=="32" 
    ATTRS{iodone_cnt}=="0x5a8" 
    ATTRS{ioerr_cnt}=="0x2" 
    ATTRS{iorequest_cnt}=="0x5a8" 
    ATTRS{max_sectors}=="240" 
    ATTRS{model}=="DataTraveler G3 " 
    ATTRS{queue_depth}=="1" 
    ATTRS{queue_type}=="none" 
    ATTRS{rev}=="PMAP" 
    ATTRS{scsi_level}=="0" 
    ATTRS{state}=="running" 
    ATTRS{timeout}=="30" 
    ATTRS{type}=="0" 
    ATTRS{vendor}=="Kingston" 

    looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host4/target4:0:0': 
    KERNELS=="target4:0:0" 
    SUBSYSTEMS=="scsi" 
    DRIVERS=="" 

    looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/host4': 
    KERNELS=="host4" 
    SUBSYSTEMS=="scsi" 
    DRIVERS=="" 

    looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0': 
    KERNELS=="3-6:1.0" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="usb-storage" 
    ATTRS{authorized}=="1" 
    ATTRS{bAlternateSetting}==" 0" 
    ATTRS{bInterfaceClass}=="08" 
    ATTRS{bInterfaceNumber}=="00" 
    ATTRS{bInterfaceProtocol}=="50" 
    ATTRS{bInterfaceSubClass}=="06" 
    ATTRS{bNumEndpoints}=="02" 
    ATTRS{supports_autosuspend}=="1" 

    looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-6': 
    KERNELS=="3-6" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="usb" 
    ATTRS{authorized}=="1" 
    ATTRS{avoid_reset_quirk}=="0" 
    ATTRS{bConfigurationValue}=="1" 
    ATTRS{bDeviceClass}=="00" 
    ATTRS{bDeviceProtocol}=="00" 
    ATTRS{bDeviceSubClass}=="00" 
    ATTRS{bMaxPacketSize0}=="64" 
    ATTRS{bMaxPower}=="200mA" 
    ATTRS{bNumConfigurations}=="1" 
    ATTRS{bNumInterfaces}==" 1" 
    ATTRS{bcdDevice}=="0100" 
    ATTRS{bmAttributes}=="80" 
    ATTRS{busnum}=="3" 
    ATTRS{configuration}=="" 
    ATTRS{devnum}=="44" 
    ATTRS{devpath}=="6" 
    ATTRS{idProduct}=="1643" 
    ATTRS{idVendor}=="0951" 
    ATTRS{ltm_capable}=="no" 
    ATTRS{manufacturer}=="Kingston" 
    ATTRS{maxchild}=="0" 
    ATTRS{product}=="DataTraveler G3" 
    ATTRS{quirks}=="0x0" 
    ATTRS{removable}=="removable" 
    ATTRS{serial}=="001CC0EC31EDBB40271A01BA" 
    ATTRS{speed}=="480" 
    ATTRS{urbnum}=="4137" 
    ATTRS{version}==" 2.00" 

    looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3': 
    KERNELS=="usb3" 
    SUBSYSTEMS=="usb" 
    DRIVERS=="usb" 
    ATTRS{authorized}=="1" 
    ATTRS{authorized_default}=="1" 
    ATTRS{avoid_reset_quirk}=="0" 
    ATTRS{bConfigurationValue}=="1" 
    ATTRS{bDeviceClass}=="09" 
    ATTRS{bDeviceProtocol}=="01" 
    ATTRS{bDeviceSubClass}=="00" 
    ATTRS{bMaxPacketSize0}=="64" 
    ATTRS{bMaxPower}=="0mA" 
    ATTRS{bNumConfigurations}=="1" 
    ATTRS{bNumInterfaces}==" 1" 
    ATTRS{bcdDevice}=="0408" 
    ATTRS{bmAttributes}=="e0" 
    ATTRS{busnum}=="3" 
    ATTRS{configuration}=="" 
    ATTRS{devnum}=="1" 
    ATTRS{devpath}=="0" 
    ATTRS{idProduct}=="0002" 
    ATTRS{idVendor}=="1d6b" 
    ATTRS{interface_authorized_default}=="1" 
    ATTRS{ltm_capable}=="no" 
    ATTRS{manufacturer}=="Linux 4.8.16-200.fc24.x86_64 xhci-hcd" 
    ATTRS{maxchild}=="10" 
    ATTRS{product}=="xHCI Host Controller" 
    ATTRS{quirks}=="0x0" 
    ATTRS{removable}=="unknown" 
    ATTRS{serial}=="0000:00:14.0" 
    ATTRS{speed}=="480" 
    ATTRS{urbnum}=="1453" 
    ATTRS{version}==" 2.00" 

    looking at parent device '/devices/pci0000:00/0000:00:14.0': 
    KERNELS=="0000:00:14.0" 
    SUBSYSTEMS=="pci" 
    DRIVERS=="xhci_hcd" 
    ATTRS{broken_parity_status}=="0" 
    ATTRS{class}=="0x0c0330" 
    ATTRS{consistent_dma_mask_bits}=="64" 
    ATTRS{d3cold_allowed}=="1" 
    ATTRS{device}=="0x8c31" 
    ATTRS{dma_mask_bits}=="64" 
    ATTRS{driver_override}=="(null)" 
    ATTRS{enable}=="1" 
    ATTRS{irq}=="26" 
    ATTRS{local_cpulist}=="0-1" 
    ATTRS{local_cpus}=="3" 
    ATTRS{msi_bus}=="1" 
    ATTRS{numa_node}=="-1" 
    ATTRS{subsystem_device}=="0x8534" 
    ATTRS{subsystem_vendor}=="0x1043" 
    ATTRS{vendor}=="0x8086" 

    looking at parent device '/devices/pci0000:00': 
    KERNELS=="pci0000:00" 
    SUBSYSTEMS=="" 
    DRIVERS=="" 

就像你可以看到文件中的信息是好的,所以我不知道它为什么不起作用。我已经尝试过所有的组合,但没有办法..

请问,任何人都可以帮助我吗?

问候,

+0

第一次解密脚本是否正在执行。创建一个触及文件的脚本并检查日期戳以确保脚本正在触发。 –

回答

0

如果替代ATTRS{product}=="DataTraveler G3"ENV{ID_MODEL}=="DataTraveler_G3",你不会依赖于其他的规则被触发施加您的规则之前设置ID_MODEL变量。由于规则文件是按照词汇排序的,因此重新命名规则文件以便稍后排序也可以解决问题。从您的udevadm输出中,可能是ID_MODEL变量丢失。