[rešeno] Retrolink Atari to USB

2»

Komentarji

  • Tale skript deluje:

    #!/bin/bash

    #check retrobit driver

    for i in `ls /sys/bus/hid/drivers/atari/`; do echo $i;
    if [[ $i == *1292* ]]
    then
    echo \"še je tle\"
    else
    echo \"ni ga več\"
    fi
    done


    Kako naj ga spravim v "while" zanko, da se bo skript preverjal vsake 5 sekund? Sem poskusil en kup variant, pa je zmer nekaj narobe... Največkrat mi javi "unexpected end of file".
  • while true; do
    naredi pač en stuff
    sleep 5
    done
  • mattithyahu Član
    uredil/-a 19. August, 2014
    Finally!

    Inštalacija driverja:


    sudo apt-get install build-essential

    # cd to driver directory
    cd /home/mattithyahu/.InnexAtari/
    make
    chmod +x installdriver.sh


    Driverja ne prepozna, če je v računalnik priključena USB tipkovnica ali USB miška, zato je potrebno vsakič pognati skript installdriver.sh. Za avtomatično prepoznavanje USB in pogon skript:

    sudoedit /etc/udev/rules.d/100-InnexAtari.rules


    ACTION==\"add\", SUBSYSTEMS==\"usb\", ATTRS{manufacturer}==\"INNEX\", ATTRS{product}==\"ATARI Controller USB\", RUN+=\"/usr/bin/sudo /home/mattithyahu/.InnexAtari/mountdriver.sh\"


    Pravilo bo avtomatično pognalo naslednji skript, ki ga je treba še ustvariti:

    sudoedit /home/mattithyahu/.InnexAtari/mountdriver.sh


    #!/bin/bash
    # Mount INNEX ATARI Controller USB
    if [ ! -d \"/sys/bus/hid/drivers/atari/\" ]
    then
    /home/mattithyahu/.InnexAtari/installdriver.sh
    fi
    done


    chmod +x /home/mattithyahu/.InnexAtari/mountdriver.sh


    installdriver.sh sem nekoliko spremenil:

    #!/bin/bash

    #install retrobit driver

    rmmod /home/mattithyahu/.InnexAtari/hid-atari-retrobit.ko; rmmod usbhid;
    insmod /home/mattithyahu/.InnexAtari/hid-atari-retrobit.ko ; modprobe usbhid;

    #unbind from hid-generic
    usbid=\"\"
    for i in `ls /sys/bus/hid/drivers/hid-generic/`; do echo $i;
    if [[ $i == *1292* ]]
    then
    echo \"Unbinding Retrolink device from hid-generic: $i\";
    usbid=$i
    fi;
    done;

    echo -n $usbid > /sys/bus/hid/drivers/hid-generic/unbind;
    echo -n $usbid > /sys/bus/hid/drivers/atari/bind

    /home/mattithyahu/.InnexAtari/checkdriver.sh
    exit


    Skript checkdriver.sh je namenjen temu, da odstrani driver, ko iztaknemo napravo, sicer je pri ponovnem vtiku ne prepozna, dokler ne reštartamo računalnika. Skript ne obstaja, zato ga ustvarim sam:

    sudoedit /home/mattithyahu/.InnexAtari/removedriver.sh


    #!/bin/bash
    # Check INNEX ATARI Controller USB

    shopt -s nullglob
    IAC=(/sys/bus/hid/drivers/atari/0003:1292:4154*)

    while [ -d \"$IAC\" ]; do
    sleep 5
    done

    rmmod /home/mattithyahu/.InnexAtari/hid-atari-retrobit.ko; rmmod usbhid;
    modprobe usbhid;
    rm -rf /sys/bus/hid/drivers/atari/

    exit


    chmod +x /home/mattithyahu/.InnexAtari/checkdriver.sh


    Operacije potrebujejo privilegije, zato dodam pravilo, da za te skripte ni potreben vpis gesla:

    $ sudo visudo


    #allow user \"mattithyahu\" to use those scripts without asking for password
    administrator ALL=(root) NOPASSWD: /home/mattithyahu/.InnexAtari/installdriver.sh, /home/mattithyahu/.InnexAtari/checkdriver.sh, /home/mattithyahu/.InnexAtari/mountdriver.sh,


    Verjetno bi se dalo zadevo rešiti tudi bolj elegantno in ne tako, da skripti poganjajo druge skripte. Ampak dela.

    Upam, da komu pride prav. Adapter dela lepo in tekoče, za male pare se ga da dobiti na ebay ali na amazonu in vaši stari joysticki bodo spet pokali pod naporom, ko boste poganjali emulator (FS-UAE je vrhunski) na svoji moderni mašini.

    Hvala vsem za pomoč in prispevek k rešitvi.
Za komentiranje se prijavite ali pa se vpišite.