Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
dato che mi ero rotto di scrivere tutte le volte una regola specifica per ogni storage usb che dovevo attaccare al pc ho deciso di usare la direttiva PROGRAM di udev così da creare in maniera dinamica il device name persistente associato ad ogni dispositivo. ora però è successo un fatto strano. ho fatto un abbozzo di script ed ho scritto una regola associata per udev. lo script è il seguente:
bash-3.1# udevtest /block/sda
main: looking at device '/block/sda' from subsystem 'block'
run_program: '/home/utente/slack/scripting/rc.udev.ruler sda'
run_program: '/home/utente/slack/scripting/rc.udev.ruler' (stdout) 'LEXAR-JUMPDRIVE'
run_program: '/home/utente/slack/scripting/rc.udev.ruler' returned with status 0
udev_rules_get_name: rule applied, 'sda' becomes 'LEXAR-JUMPDRIVE'
run_program: '/lib/udev/usb_id -x'
run_program: '/lib/udev/usb_id' (stdout) 'ID_VENDOR=LEXAR'
run_program: '/lib/udev/usb_id' (stdout) 'ID_MODEL=JUMPDRIVE_SPORT'
run_program: '/lib/udev/usb_id' (stdout) 'ID_REVISION=3000'
run_program: '/lib/udev/usb_id' (stdout) 'ID_SERIAL=LEXAR_JUMPDRIVE_SPORT_1069A701042634271105'
run_program: '/lib/udev/usb_id' (stdout) 'ID_TYPE=disk'
run_program: '/lib/udev/usb_id' (stdout) 'ID_BUS=usb'
run_program: '/lib/udev/usb_id' returned with status 0
udev_rules_get_name: add symlink 'disk/by-id/usb-LEXAR_JUMPDRIVE_SPORT_1069A701042634271105'
run_program: '/lib/udev/path_id /block/sda'
run_program: '/lib/udev/path_id' (stdout) 'ID_PATH=pci-0000:00:1d.7-usb-0:8:1.0-scsi-0:0:0:0'
run_program: '/lib/udev/path_id' returned with status 0
udev_rules_get_name: add symlink 'disk/by-path/pci-0000:00:1d.7-usb-0:8:1.0-scsi-0:0:0:0'
udev_device_event: device '/block/sda' already in database, validate currently present symlinks
udev_node_add: creating device node '/dev/LEXAR-JUMPDRIVE', major = '8', minor = '0', mode = '0660', uid = '0', gid = '6'
udev_node_add: creating symlink '/dev/disk/by-id/usb-LEXAR_JUMPDRIVE_SPORT_1069A701042634271105' to '../../LEXAR-JUMPDRIVE'
udev_node_add: creating symlink '/dev/disk/by-path/pci-0000:00:1d.7-usb-0:8:1.0-scsi-0:0:0:0' to '../../LEXAR-JUMPDRIVE'
main: run: 'socket:/org/kernel/udev/monitor'
in sostanza secondo udevtest la regola funziona alla perfezione. il fatto è che non viene creato nessun device... e dato che udevtest non mi da errori non so che pesci pigliare.
qualcuno ha mai provato la cosa?
ciao!
meglio tardi che mai, no?
ho avuto il tuo stesso problema. ho capito che PROGRAM sta per un programma vero è proprio (per esempio se monti la macchina fotografica apri the gimp). per gli script usa run:
in realtà PROGRAM è la direttiva per l'esecuzione di un programma PRIMA che sia creato il device, RUN è la direttiva per l'esecuzione di un programma DOPO che è stato creato il device. in particolare io volevo usare PROGRAM per definire il nome del device... in effetti provando con un binario la cosa è andata a buon fine, mentre con uno script no... quello che non capisco è perchè la simulazione però non segnala errori... mah... appena mi ritorna il pc dall'assistenza faccio due prove.