Problem IP kamera...

Započeo maxogm, 07.04.2008, 12:09

prethodna tema - sledeća tema

maxogm

Pozdrav, imam jedan problem.
Na jednom računaru hoću da omogućim da preko web-a korisnici mogu da upravljaju uređajem koji je prikačen na paralelni port. Elektronika i program koji vrše upravljanje istim već postoje, problem je u tome što korisnici nemaju pravo da koriste paralelni port. Računar radi pod CentOS 5 operativnim sistemom.  ;D

holodoc

Citat: maxogm  07.04.2008, 12:09
Pozdrav, imam jedan problem.
Na jednom računaru hoću da omogućim da preko web-a korisnici mogu da upravljaju uređajem koji je prikačen na paralelni port. Elektronika i program koji vrše upravljanje istim već postoje, problem je u tome što korisnici nemaju pravo da koriste paralelni port. Računar radi pod CentOS 5 operativnim sistemom.  ;D
Jesi li probao da dodeliš pravo korisniku apache da koristi tty grupu? Ne znam šta bi još drugo moglo da bude u pitanju. U svakom slučaju Google je tvoj prijatelj :) Ako naletim na nešto napisaću :)
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

Siniša Ranđić

Ovaj problem je postojao i kada je sistem razvijan, ali je rešen dozvoljavanjem upisa na neki direktorijum (?). Morao bih da se podsetim, jer sam ja tada našao rešenje.

Marko Аcović

Poz Maxo,

ja sam svojevremno uspeo da resim taj problem kad sam razvijao program za upravljanje web kamerom u javi. Problem je isto bio pristup paralelnom portu. Zbog javine virtuelne masine i WinXP (kod starijih Windows-a to nije problem, samo kod Nt baziranih) nisam uspeo da pristupim portu. Pretrazivajuci po netu, nasao sam neki programcic (mislim da je pisan u c ili c++) koji usera prebacuje iz obicnog korisnickog moda u privilegovan mode. Posle toga sam lako pristupio portu. Mislim da imam jos taj programcic ali bih morao da pogledam. Znam da nije najsrecnije resenje ali meni je radilo. ;)

holodoc

07.04.2008, 21:20 #4 Poslednja Izmena: 07.04.2008, 21:24 od holodoc
Citat: marko_gm  07.04.2008, 21:04
Poz Maxo,

ja sam svojevremno uspeo da resim taj problem kad sam razvijao program za upravljanje web kamerom u javi. Problem je isto bio pristup paralelnom portu. Zbog javine virtuelne masine i WinXP (kod starijih Windows-a to nije problem, samo kod Nt baziranih) nisam uspeo da pristupim portu. Pretrazivajuci po netu, nasao sam neki programcic (mislim da je pisan u c ili c++) koji usera prebacuje iz obicnog korisnickog moda u privilegovan mode. Posle toga sam lako pristupio portu. Mislim da imam jos taj programcic ali bih morao da pogledam. Znam da nije najsrecnije resenje ali meni je radilo. ;)
Čekaj... Šta podrazumevaš pod prelaskom u kernel režim rada  ??? Pitam zato što po meni problem leži u dozvolama za pristup. Dakle apsolutno je nemoguće da ako ja postavim sve dozvole (čak i SetUID root-a nad apache korisnikom) da ja ne mogu da pokrenem najobičniji program.
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

Marko Аcović

Problem je u tome sto NT Windows-i ima ju to ogranicenje da ne dozvoljavaju olak pristup portovima racunara, sto je bio slucaj sa ranijim verzijama. Imas u osnovi dva rezima rada: korisnicki i privilegovani. Po default-u si u korisnickom rezimu. E,sad, ja sam na netu nasao neki programcic kako da zaobidjem problem. Naime, taj programcic prebacuje iz korisnickog u privilegovani rezim i omogucava mi pristup paralelnom portu. Evo ti programcic sa uputstvom u attach-u pa vidi da li ti odgovara.

Pozz :)

holodoc

Zaboravih da pomenem  ;D

Nije...

nego...

<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

Marko Аcović

Ok. Znaci Linux. ;) Kazite mi u cemu programirate kad vas ne pusta da pristupite LPT-u?

maxogm

08.04.2008, 19:58 #8 Poslednja Izmena: 08.04.2008, 20:00 od maxogm
Ma imamo napisan gotov program u C-u (ono sto je Uros radio za diplomski), problem je do privilegija korisnika u Operativnom sistemu. Kad program pokrenes kao root korisnik sve radi OK.

Marko Аcović

Probaj, ako vec nisi, da vidis kako se pod linuxom prelazi iz klasicnog user moda u privilegovani.

maxogm

Ma nemogu da idem u privilegovani, sa neta kad se pristupa radis kao korisnik apache. Znaci samo na neki nacin treba korisniku apache da dozvolim da koristi paralelni port.

Marko Аcović

Malo sam ti potrazio po netu i nasao sam nesto. To je neka biblioteka za programiranje LPT-a pod Linuxom. Evo linka:
http://parapin.sourceforge.net/
Pored njega, pogledaj jos i http://parashell.sourceforge.net/

Nadam se da ce biti od koristi.

Pozz 8)

holodoc

Citat: marko_gm  09.04.2008, 19:58
Malo sam ti potrazio po netu i nasao sam nesto. To je neka biblioteka za programiranje LPT-a pod Linuxom. Evo linka:
http://parapin.sourceforge.net/
Pored njega, pogledaj jos i http://parashell.sourceforge.net/

Nadam se da ce biti od koristi.

Pozz 8)

Do malopre sam pokušavao sa raznim test primerima da zaobiđem problem sa ozvolama i jednostavno šta god da uradim dobijam zabranu pristupa aresi 0x378. U suštini ne postoji problem sa prenošenjem klasičnih dozvola sve dok kod ne dođe do ioparam-a koji traži jednostavno root dozvole. Ni setuid-ovanje ne pomaže. E sad... I ja sam naleteo na pomenutu skriptu ali iskreno već mi se smučilo do sada da eksperimentišem ali ću sutra sigurno probati da kompajliram   i taj parashell a nakon toga ću da probam na Fedori da vidim da li ona pravi probleme slične vrste ili se to samo CentOS samo malo šali sa nama :)
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

holodoc

Sad sam upravo pogledao kod ovog parashell-a. Nažalost skoro potpuno isti algoritam...

ioperm -> outb...  :(
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

Siniša Ranđić

Našao sam ovaj link možda može da pomogne
http://community.freepascal.org:10000/bboards/message?message_id=115604&forum_id=24083