% k não retorna o número do kernel na regra do udev

1

Esta página (revisada dezenas de vezes ao longo de alguns anos. Incrível!) que fornece de-a-z udev diz:

%k evaluates to the kernel name for the device, e.g. "sda3" for a device that would (by default) appear at /dev/sda3. %n evaluates to the kernel number for the device (the partition number for storage devices), e.g. "3" for /dev/sda3.

Mas para mim, %k retorna sda no exemplo acima para o meu dongle.

Parte da regra udev que estou afetando (acho que é instalada via este deb de esta página , e requer proprietário dongle btw):

LABEL="codemeter_mount"
IMPORT{program}="/sbin/blkid -o udev -p %N"
ENV{ID_FS_UUID}!="", ENV{dir_name}="%E{ID_FS_UUID}"  
#ENV{ID_FS_UUID}=="", ENV{dir_name}="cm-%k"
ENV{ID_FS_UUID}=="", ENV{dir_name}="cm-pickone"                                     # Use static path. Multiple dongles are not intended to be used, so this should be ok.
RUN+="/bin/mkdir -p /media/CodeMeter/%E{dir_name}"
RUN+="/bin/mount /dev/%k /media/CodeMeter/%E{dir_name} -o umask=0000,uid=1,gid=1"

A regra acima espera ser montada em, e. /dev/sdb1 mas por causa do problema mencionado, /dev/%k se torna um caminho para o disco, e não partição, portanto mount falha (um hack rápido que descobri é usar %k%n ).

Estou entendendo mal alguma coisa?

Como abaixo, estou no Ubuntu Xenial, mas vejo o mesmo em Trusty.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial
$ apt-cache policy udev
udev:
  Installed: 229-4ubuntu21
  Candidate: 229-4ubuntu21
  Version table:
 *** 229-4ubuntu21 500
        500 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     229-4ubuntu10 500
        500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
     229-4ubuntu4 500
        500 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
    
por IsaacS 25.01.2018 / 03:10

0 respostas

Tags