|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : mars 2002 Messages : 241 ![]() |
Salut,
Je suis en train de porter un programme de régulation de température qui interface une carte de convertion numérique <-> analogique pour des expériences de TP. La carte est accessible via une adresse 700h (enfin, une adresse comprise entre 0x00C0 et 0x30C0) en lisant/envoyant des octets. Truc basique quoi. Pb: Sous MS-Dos, je savais faire avec outportb/inportb, mais sous Linux c'est pas pareil! (ou bien?) Alors comment faire pour accéder à un port particulier sous Linux ? (COM/LPT/la console, c'est facile, mais les autres ?) @+ Haypo |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : mars 2002 Messages : 241 ![]() |
On est jamais aussi bien servi que par soit même ... Comme personne n'a répondu à mes posts, j'ai décidé de lancer un grosse recherche sous Google. En fait, c'est comme d'habitude : il faut trouver les bons mots clés ! "outportb Windows XP" m'a conduit vers mon bonheur. J'ai alors trouvé ça :
Un driver pour les ports sous Windows 9x/NT (Port95nt) : http://www.driverlinx.com/DownLoad/DlPortIO.htm Un autre driver pour les ports sous Windows NT (PrintIO, avec code source ;-) : http://smile.student.utwente.nl/~jur/printio/ Documentation pour programmer les ports sous Linux (Linux IO Port Programming) : http://www.tldp.org/HOWTO/mini/IO-Port-Programming.html --- Il me reste à trouver comment accéder aux ports sous Linux sans être root, car lancer un programme en root ça craint! Merci à moi-même @+ Haypo |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() Assistant aux utilisateurs Inscription : octobre 2002 Messages : 944 ![]() |
Bonjour
Ben voilà qui répond à une question que j'avais posés à propos de l'accès au HP interne sous Linux. Merci. Cordialement
__________________
"Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux." Attribué indistinctement à : Thomas Jefferson Benjamin Franklin Albert Einstein ! |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Assistant aux utilisateurs Inscription : octobre 2002 Messages : 944 ![]() |
Bonjour
Aujourd'hui, j'ai eu la solution : Dans le source : Sauvegarder l'UID de l'utilisateur (getuid()) Passer en UID administrateur (root) afin d'en obtenir les privilèges (=droits) avec setuid(0), sachant que 0 est toujours l'UID de root. Ouvrir les ports avec ioperm(...). Revenir à l'utilisateur de base (setuid(UID_Sauvegardé)) afin de réduire les privilèges. Terminer le programme Après compilation : Changer le bit SUID de l'exécutable chmod u+s nom_du_prgm Changer le propriétaire dudit programme chown root nom_du_prgm L'exécuter sous un compte quelconque. Cordialement
__________________
"Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux." Attribué indistinctement à : Thomas Jefferson Benjamin Franklin Albert Einstein ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com