web-dev-qa-db-fra.com

Comment créer correctement / dev / dvd?

Certains programmes recherchent /dev/dvd par défaut pour rechercher des DVD. Lorsque je démarre mon ordinateur pour la première fois sans DVD inséré, /dev/dvd existe et pointe au bon endroit (/dev/sr0). Cependant, lorsque j'insère un DVD, /dev/dvd disparaît. J'aimerais que cela reste ainsi afin de ne pas avoir à naviguer vers /dev/sr0 dans les programmes qui recherchent des DVD. Comment puis-je m'assurer que le lien symbolique /dev/dvd existe et pointe au bon endroit?

Il semble que je puisse ajouter quelque chose à /etc/udev/rules.d/70-persistent-cd.rules. Ce site donne quelques exemples, mais le fichier 70-persistent-cd.rules indique "ajoutez l'indicateur ENV {GENERATED} = 1 à vos propres règles", qui ne fait pas partie des exemples. La page man 7 udev m'est impénétrable et je ne suis pas convaincue que la page liée donne 100% des informations dont j'ai besoin.

Alors, que puis-je faire sur un système moderne, Ubuntu 12.04 (ou ultérieur) pour que /dev/dvd existe toujours et qu'il pointe vers le bon périphérique?

EDIT: Est-ce aussi simple que d’ajouter ENV{GENERATED}=1 aux règles de la page liée, quelque chose comme ceci:

SUBSYSTEM=="block", KERNEL=="sr0", SYMLINK+="dvd", GROUP="cdrom", ENV{GENERATED}=1

Est-ce la bonne information pour Ubuntu moderne? Que fait ENV{GENERATED} là-bas, quand il n’a pas été généré, mais écrit à la main?

10
chazomaticus

Ce tutoriel explique très bien comment faire ce que vous voulez:

Selon lui, il existe deux approches pour créer des liens symboliques. La première consiste à utiliser le nom du modèle et le numéro de série:

SUBSYSTEM=="block", ENV{ID_MODEL}=="...", ENV{ID_SERIAL}=="...", ENV{GENERATED}="1", SYMLINK+="dvd"

De cette façon, le lien symbolique restera correct même si vous déplacez le lecteur dans différentes positions du bus IDE, mais le lien symbolique /dev/dvd ne sera pas créé si vous remplacez le lecteur.

Le second est basé sur l’emplacement de l’appareil sur le bus:

SUBSYSTEM=="block", ENV{ID_TYPE}=="...", ENV{ID_PATH}=="pci-...", ENV{GENERATED}="1", SYMLINK+="dvd"

De cette façon, le lien symbolique restera correct même si vous remplacez des lecteurs de modèles différents, mais que vous les placez aux mêmes positions sur le bus IDE. La touche ENV{ID_TYPE} permet de s'assurer que le lien symbolique disparaît si vous mettez autre chose qu'un DVD à cette position sur le bus.

Vous pouvez trouver les valeurs pour ID_MODEL, ID_SERIAL, ID_TYPE et ID_PATH à l'aide de la commande suivante (la commande udevtest du tutoriel ne fonctionne plus - plus ? - dans Ubuntu):

udevadm info --query=all --name=sr0

La clé SUBSYSTEM=="block" est nécessaire pour éviter la correspondance de périphériques génériques SCSI. Sans lui, dans le cas d'un DVD SCSI, le lien symbolique pointera parfois vers les périphériques /dev/sr0 corrects, et parfois vers /dev/sg0, ce qui est faux.

La clé ENV{GENERATED}="1" est nécessaire pour empêcher le fichier udev 75-cd-aliases-generator.rules de remplacer vos règles personnalisées.

8
Radu Rădeanu

J'ai trouvé cela sur un forum Fedora peut aider:

Créer un fichier de script shell Dans ce fichier, mettez:

#!/bin/bash
ln -s /dev/sr0 /dev/dvd

Assurez-vous que le fichier est exécutable:

Sudo chmod +x /etc/rc.d/rc.local

Si vous utilisez la route rc.local, vous devez également le faire en tant que root:

systemctl enable rc-local.service

parce que ce n'est pas activé par défaut

source: http://forums.fedoraforum.org/showthread.php? t = 295048

--------- La manière préférée ces jours-ci serait une règle UDev --------------

Sur la base de /lib/udev/rules.d/60-cdrom_id.rules, qui crée le lien symbolique/dev/cdrom, essayez d’ajouter un fichier /etc/udev/rules.d/60-dvd.rules contenant:

KERNEL=="sr0", SYMLINK+="dvd", OPTIONS+="link_priority=-100"
0
Cester Nilap