2009-12-01 2 views
0

En cas de "bogue" dans le pilote de port, l'utilisation du verrouillage n'est pas acceptable.comment empêcher l'ouverture du port série sur Linux par une application étrangère?

+0

Est-ce une question de programmation? Ecrivez-vous le pilote série? Que voulez-vous dire par "étranger"? – unwind

+0

Oui, c'est une question de programmation. Non, j'écris une application pour un appareil connecté via un port série avec un pilote buggé. Étranger - démarré à partir d'autres binaires. –

+0

Voir: [Quelle est la meilleure pratique pour verrouiller les ports série et autres périphériques sous Linux?] (Http://stackoverflow.com/questions/30316722/what-is-the-best-practice-for-locking-serial-ports -and-other-devices-in-linux) –

Répondre

1

Vous avez donc besoin de verrouiller d'autres processus d'ouverture d'un fichier de périphérique, mais le verrouillage des fichiers est inacceptable ...

Eh bien, vous pouvez renommer le fichier de périphérique à quelque chose non standard, donc tout ce qui tente d'ouvrir/dev/ttyS0 ne marchera pas sur vos orteils.

+0

* REMERCIE *. C'est une idée intéressante. –

1

En supposant que vous vous prémunissez contre erroné ouvre par des binaires "étrangers": dans la méthode open() de votre pilote, correspond au nom du binaire d'ouverture (current-> comm). Et autoriser ne s'ouvre que pour votre binaire.

Cela peut, bien sûr, être facilement contournée (en renommant un fichier binaire étranger.)

+0

* MERCI * Ça m'intéresse mais pas pour moi. –

0

Ou vous pouvez modifier les propriétés du fichier dev correspondant, ne donnant accès à un groupe personnalisé vous êtes membre. Si vous voulez que le port série soit accessible à tout utilisateur, cela peut ne pas fonctionner.