Simulovana mys,klavesnica

Sekcia: Konfigurácia 06.09.2010 | 21:02
M4t0   Návštevník
Caute,
chcel by som sa opytat ci je mozna takato vec:
Mam 2 PC, na jednom bezi Windows a na druhom Linux a chcem aby PC s Linuxom bol schopny ovladat mysku a klavesnicu pocitaca od windowsu. Ale nechcem to urobit nejak tak ze na windowse sa spusti program ktory bude prijimat data a podla toho pohne myskou/klavesnicou. Chcem aby bol PC s Linuxom pre windows viditelny ako normalna myska/klavesnica. Ze napr.: pojdu 2kable z PC-Linux do 2 USB Portov PC-Windows a windows ich rozpozna ako obycajnu mys s klavesnicou. Cize windows-pc je normlany PC nema sajnu ci ho ovlada stoj abo clovek, a Linux-PC je nieco ako ludska nahrada...

Bolo by nieco taketo mozne? Ak ano, viete mi povedat ako to urobit ? Aky konnektor by sa nato najvaic hodil - na windows-pc to musi byt USB, ale na linux-pc to moze byt aj daco ine.

P.S.: Idealne by bolo aby sa ta myska/klavesnica dala ovladat nezavysle na platforme beziacej na "windows-pc"
    • Re: Simulovana mys,klavesnica 06.09.2010 | 22:38
      Avatar michael93 Dáke buntu  Používateľ
      Čauko
      našiel som len Hardwarové riešenie pre tvoj problém.
      Je to KVM prepínač Micronet KVM 2PORT switch SP212D
      Ide o to, že do KVM napojíš klávesnicu+myš a z KVM napojíš tie 2 PC. Na KVM si vyberieš medzi Linux-Windows.
      Ten prepínač maju aj na Agemi.sk
      • Re: Simulovana mys,klavesnica 07.09.2010 | 00:35
        m4t0   Návštevník
        dik michael93 ale asi si nepochopil co som sa pytal :( ja potrebujem aby jeden PC sa spraval ako myska + klavesnica pre ten druhy, nie zdielanie medzi 2ma masinami
    • Re: Simulovana mys,klavesnica 06.09.2010 | 22:57
      WlaSaTy   Návštevník
      Áno, možné to je. Linux vie emulovať rôzne typy zariadení. Od najznámejšieho blokového zariadenia ktoré sa tvári ako harddisk, cez niekoľko typov sieťových kariet, zvláda aj napríklad sériový port pre emuláciu prepojenia modemu, emuláciu tlačiarne alebo aj klávesnicu, myš, joystick, ...

      Pozri sa na voľbu CONFIG_USB_G_HID a do Documentation/usb/gadget_hid.txt.

      Ale neviem či by nebolo vhodnejšie použiť nejaký user space program v Linuxe ktorý to zvládne cez BlueTooth bez káblov.

      PS.: Nočné prenosy? Nechcel by som vidieť čo to urobí ak nastane nejaká chybová udalosť ktorú je treba riešiť operátorom.
      • Re: Simulovana mys,klavesnica 07.09.2010 | 00:06
        m4t0   Návštevník
        Noo vyzera to byt presne to co potrebujem, ale google mi toho moc nevyplul, ten Documentation/usb/gadget_hid.txt obsahuje program co som skompiloval a mi to vypisovalo do terminalu poziciu mysky, ak by to slo obratene (ze ja posielam tei suradnice a myska beha tak to by bolo presne ono) no neviem najst nic viac, nepoznas k tomu nejaky tutorial ?

        oo a robim nieco zaujimavejsie, bude to projekt na univerzitu na odbor kybernetiky a umelej inteligencie, cem urobit pocitac, ktory bude schopny ovladat iny pocitac cize napr bude vediet na prikaz vyhladat nieco v Googli, pozuzivat rozne programy(a sam sa ucit nove veci). Toto simulovanie mysky a klavesnice mi treba len preto aby bola komunikacia pocitacov obojstranna (idealne by boli roboticke ruky ale som orientovany na SW nie HW cize toto zanedbavam...).Preto bluetooth neprichadza do uvahy lebo neviem ako sa to bude spravat napriklad na prihalsovacej obrazovke...
        • Re: Simulovana mys,klavesnica 07.09.2010 | 00:47
          WlaSaTy   Návštevník
          Neviem ako si to spúšťal a či si mal prepojené tie dva počítače aj s natiahnutým modulom, ale tá ukážka má emulovať klávesnicu, myš a joystick na Linuxovomm počítači ktorý sa potom chová ako klávesnica, myš alebo joystick.

          Ak sa Ti neobjavilo nové zariadenie v tom Windows-e, tak skontroluj kábel alebo či chipset USB radičov podporuje prácu v obidvoch módoch. Na takéto hračky pri USB to musí byť schopné pracovať aj ako Master a aj ako Slave. Bluetooth (imho vecička ktorá nahradzuje káble) je na toto vhodnejší nakoľko táto limitácia ostala mimo hry.

          PS.: odkiaľ máš ten príklad? Ja som totižto k mojmu jadru naśiel len taký čo číta z klávesnice a podľa toho potom zasiela dáta na virtuálny ovládač ktorý to potom zasiela po USB ďalšiemu počítaču. Nepozeráš náhodou zdrojáky windows?
          • Re: Simulovana mys,klavesnica 07.09.2010 | 02:19
            m4t0   Návštevník
            Ja som prepojenie este neskusal, nemam totiz doma vhodny kabel, vlastne som nikdy este USB-USB neskusal ale toto by malo stacit ku kablu od tlaciarne nie ?

            Ano ten priklad je najskor na posielanie(co ja nemozem zatial vyskusat) mam to z tejto stranky. Skompiloval som posledny priklad (toto dlhe co az do konca ide) a spustil som to takto : './hid /dev/input/mice mouse' co mi posiela udaje o mojej vlastnej myske ked nou hybem. A ten priklad pocita s tym ze uz mam napisany driver, co ja este nemam a vyzera to na dlhsie citanie :)
            • Re: Simulovana mys,klavesnica 07.09.2010 | 04:55
              Avatar Grawp   Používateľ
              Dúfam, že to tu vyriešite. Fakt by ma zaujímalo, či sa vobec dajú prepnúť USB controllery v dnešných PC do slave módu.

              Lebo potom zostáva už len bit-banged USB. A kedže dnešné PC už nemajú GPIO konektory tak vezmeš napr. AVR atmega8a, pichneš tam VUSB software a použiješ nejaký HID example klávesnice, ktorý upravíš tak, aby posielal to, čo pošleš do AVR cez UART. Následne napíšeš bash skript ktorý pustí ten program ./hid, jeho výstup (teda súradnice potkana alebo len ich zmenu a klávesy klávesnice) upraví do vhodného tvaru napr cez sed a pošle na UART (RS232). (Jediná práca spočíva v tom, že nejaký example ktorý napr. cez USB pošle klávesu A upravíš, aby po príchode roznych príkazov na UART posielala správnu klávesu. (btw, stačí cez UART posielať jeden byte.. zmestia sa doňho všetky klávesy aj s pohybmi krysy a ešte zostane miesta takže možeš použiť XON/XOFF).

              Mimochodom, čo sa týka toho usb gadget API: Many Linux systems will not be able to use it, since they only have PC-style USB Host (master) hardware in a PC, workstation, or server. But when you're putting together embedded Linux systems, a USB peripheral controller option is routine; it's often integrated into processors... čiže to čo som napísal hore. Potrebuješ USB slave zariadenie a najlacnejší je nejaký MCU a nemusí mať vobec USB slave, stačia I/O piny.

              Keby s tým chceš pomocť..............
              • Re: Simulovana mys,klavesnica 07.09.2010 | 12:58
                WlaSaTy   Návštevník
                Otázkou je či do toho MCU napchá kód na ovládanie alebo ho zneužije len ako redukciu zo sériáku alebo paralelného portu (ktoré už IMHO miznú z dosiek).

                Inak, v dnešnej dobe už nie je nemožné zohnať dosku ktorá má možnosť prepnúť sa do slave módu. Obvykle sa jedná o x86/64 dosky určené ako Home Media Server alebo rovno o ARM/MIPS architektúru určenú ako HDD prehrávače alebo PDA či tablety. Jediný problém je v tom, že USB protokol takéto niečo vylučoval a tým pádom sa to riešilo špeciálnou úpravou USB radiča ktorú tam rovno pichli inžinieri od výrobcu. Teda v prípade x86/64 dosky ju zabudli zrušiť.

                Inak, tá redukcia by na to mala stačiť. Nemyslím že je veľký problém za to vyhodiť jeden drink a vyskúšať to. Len by som silne odporučil mať oba počítače na jednej fáze v elektrike nech to nezhorí. Cena za dosku je vyššia ako cena za redukciu k USB káblu.

                • Re: Simulovana mys,klavesnica 07.09.2010 | 21:59
                  m4t0   Návštevník
                  a ja som si myslel ze to bude hracka :)))

                  Cize, ak som pochopil spravne fungovanie USB, slave je to co zacne komunikaciu a master(PC cast) je to co caka kym sa pripoji slave a moze s nim komunikovat...

                  Neviem ci vyskusam tu redukciu, doma mam len 2 drahe masiny co mi nestoja za ziaden incident.
                  Dalej som sa docital ze ak aj ma dany stroj moznost prepnut USB do slave modu, prepnu sa vsetkych USB porty do slave modu, co je nepripustne - potrebujem aj nejake master...
                  Takze z toho celeho mi vypliva len to riesenie s atmega8, mam ich zopar aj doma... Cize filozofia je : jednen PC posiela z nejakeho portu data(akoze z mysky/klavesnice) do atmega MCU, ta nacita data a posle ich druhemu PC na USB port(samozrejme nie priamo).

                  Napadlo ma, neda sa pouzit ethernet port ako vystup z prveho PC ? pretoze potrebujem nato typ portu ktory je dost bezny (napr na mojom ntoebooku teraz mam okrem USB a VGA uz len HDMI a eSATA, ktore dost vela PC nema(aspon som ja nevidel)). A nebude problem ak na jeden USB port na druhom PC budem posielat zaroven data z mysky aj klavesnice ? ci to sa vyriesi nejakym softverovym USB hubom
                  • Re: Simulovana mys,klavesnica 07.09.2010 | 22:27
                    m4t0   Návštevník
                    Zamyslel som sa este nad tou Bluetooth moznostou, nikdy som s tym nerobil ale posielanie by nemal byt problem. Co ma vsak napadlo je, ze ak kupim ten bluetooth do PC co sa pripaja cez USB port, tak by som mal byt schopny vytvorit "bezdratovu" mysku nie ? Neviem vsak ci taketo bluetooth riesenie bude fungovat aj na prihalsovacih obrazovkach, ale podla mna by malo...
                    • Re: Simulovana mys,klavesnica 07.09.2010 | 23:55
                      WlaSaTy   Návštevník
                      Ten BT vyzerá najschodnejšie, ovšem za predpokladu že BT je na oboch kompoch. Toto je obvykle splnené na notebookoch, pri PC bude asi treba zakúpiť BT lízatko (alebo zaslepovák). Program jednoducho vyemuluje klávesnicu alebo myš. Nejaké také programy som už videl, ale fungovalo to ako remote touchpad alebo malá klávesnička ktorou sa stalo PDA. Iná vec by bola nahrať TCP Stack do jednočipáku a prepojiť to, ale to je už schodnejšie použiť nelaké Linuxové PDA ktoré má na to už uspôsobenú podporu.

                      Ohľadne ethernet portu, tak sieťovka obvykle pustí len sieťovú prevádzku. Takže by si nahodil v konečnom dôsledku niečo na spôsob VNC. Ale odpadla by Ti potreba web kamerky služiacej ako oko. Teda predpokladám, že to oko bude mať a neskončí to cez WinAPI funkciu shell execute ktorej predáš parameter URI google aj s hľadátkom.

                      Mimochodom, softwérový USB HUB, tým myslíš čo?

                      Inak, ja som skúšal podobné veci pod USB, ale jednalo sa len o tunelovanie sieťovky a blokového zariadenia (disku). Pričom partnerské zariadenie bolo PDA ktoré s týmto nemá najmenší problém. Síce to nemalo viac ako jeden USB port (nezmestil sa na krabičku), ale to v tomto prípade nehralo žiadnu rolu. Teda bežné hry s systémovou rekonfiguráciou firmware PDA. Fungovalo to ako obvykle bez problémov. Na iné hry som sauž vykašlal, na klávesnicu je PDA malé, touchpad je tam málo citlivý a nakoniec som si kúpil WiFi router. Ten má pre mňa reálne využitie, nie len ako hračka.
                  • Re: Simulovana mys,klavesnica 07.09.2010 | 23:34
                    Avatar Grawp   Používateľ
                    USB<->RS232 (akurát len +-5V miesto 12V) adapter sa dá kúpiť aj pod 10 €. Pomocou neho možeš komunikovať s atmegou. Je to všetko transparenté. V Linuxe pribudne nový sériový port /dev/ttyUSB0.. Pracuješ s ním ako by to bol normálny RS232. (Ako si inak doteraz programoval atmegy?)

                    Použitie ethernet portu by vyšlo ovela drahšie a musel by mať k tomu relatívne zložitý soft na PC aj v atmega a neviem, či by sa tam vobec zmestil do atmegy spolu aj s USB softom. Oproti posielaniu printf "lala" > /dev/tty0 (ttyUSB0) a čítaniu cat /dev/ttyS0 blablablabala, je to práca na celé hodiny aj keby sa to obmedzilo na surové ethernet frames len s MAC (myslím že tie su už implementované v príjmacom chipe čo by si mohol pripojiť k atmege.)
                    • Re: Simulovana mys,klavesnica 08.09.2010 | 01:02
                      m4t0   Návštevník
                      jj suhlasim s vami sietovka je blby napad...

                      Neviem ci sa nakoniec nerozhodnem pre docastne riesenie a tym bude komunikacia cez sockety. Oba PC budu mat na 100% internet, napisem jendoduchy program ktory posle po LANke prikazy pre mysku/klavesnicu a druhy program ktory spracuje tie prikazy a pohne myskou/klavesnicou.
                      Koniec koncov hlavny program urobim nezavisly na sposobe akym budu data poslane cize to mozem kedykolvek zmeni na bluetooth alebo kabel, a nepotrebujem k tomu teraz kupovat ziadne suciastky ani vyrabat plosaky :) -- urcite este pozriem najprv na bluetooth mozno to pojde lahsie ako sockety a minimalna investicia ma nezabije ;)

                      Softwerovym USB HUBom som myslel program ktory by rozlisoval mysku od klavesnice, nemozem predsa OS posielat data o myske aj klavesnici na jeden USB port ako a kedy sa mi zachce on si predsa pamata aky tip zariadenia je pripojeny, ci nepamata ?

                      WinApi nepozuijem, na spracovanie bude cisto len kamera.

                      PS - Lutujem Grawp ale kabel tu asi nevyriesime, vyzera to byt najzdlavejsia metoda....