## Mtinkd

Az mtinkd egy kis szerver, ami engedi használni az mtink vagy ttink állapotmonitort, amikor nyomtatás folyik.
Az mtinkd csak olyan EPSON nyomtatókkal működik, amelyek támogatják az EPSON-D4 protokollt. Az első készülék, amelyik támogatta ezt a protokollt, talán a Stylus Color 740 és a Stylus Scan 2000/2500.

#### Tartalom:

Syntax
Nyomtatás mtinkd-vel
Az indító szkript konfigurációja
ttink hívása
mtink hívása
mtinkd indítása rendszerindításkor
Műveletelmélet
Hibák
Lásd még

#### Syntax:

mtink [start|stop|status] -dev <device file> [-nodaemon] [-model <model name>] [-name <modelname] [-usbbase <path and device file base>]

Speciális opciók a SYS V start / stop szkripthez
start |  | A szerver indulni fog. Az indítást ki lehet hagyni.
stop |  | Egy működő szerver leáll.
status |  | Ez engedi a lekérdezést, ha a szerver működik.
Normál opciók
-dev | eszköz fájl | Ez az opció kötelező és megfelelően használva megadja az állapotot, vagy leállít egy futó szervert. Az eszközfájl az eszköz jellegének megfelelően, amelyiken a nyomtató csatlakoztatva van (/dev/lp0, /dev/usb/lp0, /dev/ecpp0, ...)
-nodaemon |  | Ezt az opciót teszteléshez terveztem, enélkül az mtink a háttérben indul.
-model | modell neve | Ha a nyomtató nem ad vissza azonosítót, bejelölheti, milyen nyomtatót csatlakoztatott. A név a hivatalos névből van nyerve, a szóköz karakter helyett "_ " karakter van alkalmazva. Így lesz a Stylus Scan 2500 esetében (modell név Scan_2500). Ez az opció szintén hasznos lehet az olyan többfunkciós eszközhöz, mint a Stylus Photo 895 Linux alatt. Ha a nyomtató ki van kapcsolva, majd utána be, az usb kernel nem fogja detektálni helyesen a nyomtatót, és az mtinkd-t legalább leállítani és újraindítani kell.
-name | név | A nevezett cső nevét fogja beállítani ennek a névnek megfelelően. Ha a -model opció nincs megadva, az mtinkd le fog állni, ha az azonosítás visszatérve nem egyezik az engedélyezett névvel.
-usbbase | elérési útvonal és eszköz fájl bázis | CSAK LINUXHOZ Ez az opció egy speciális rendszerhívást igényel, amit csak az újabb kernelek tudnak végrehajtani. A -type <név> opció követelmény ! Elérési útvonal és fájlbázis lehet az /usr/usblp vagy /usr/usl/lp. Minden eszközfájl egyezése az engedélyezett névvel kutatva lesz a keresett nyomtatóhoz, az eszköz fájlt később fogja használni. Ha a kernel nem támogatja a speciális hívást, hibát fog keresni és ha a -dev <device file> opció adott, a megadott eszköz fájl nevet fogja azután használni.

#### Nyomtatás mtinkd-vel

Az usb vagy párhuzamos portot nem tudja egyidejűleg egynél több folyamatra használni. Az mtink ezért tartalmaz egy csövet, és újra konfigurálhatja a nyomtatási szolgáltatást ennek megfelelően.
A nevezett cső a /var/mtink könyvtár alatt van telepítve. A fájl neve az eszköz fájl névből és elérési útvonalból van eredeztetve.

| Például a fájl neve |
Eszközfájl | Named pipe name | Remark
/dev/lp0 | /var/mtink/lp0 |
/dev/usb/lp0 | /var/mtink/usb_lp0 | The "/" is replaced by a "_"
/dev/printer/0 | /var/mtink/printer_0 |
Név hozzáadása -type-pal |  |
Photo 890 | /var/mtink/Photo_890 | The " " are replaced by "_" characters
Ha a saját nyomtatási rendszerét konfigurálja, válassza a /var/mtink/xxx fájlt. Ha nem használ cups-ot, győződjék meg róla, hogy a nyomtatási rendszert ne írja át egyidejűleg a nevezett csövön! A ttink hívása Rendes körülmények között a ttink-et például a -d /dev/lp0 opcióval hívhatja. Ha az mtinkd szervert használja, a ttink-et a -d /var/mtink/lp0 opcióval kell indítani. #### Az mtink hívása Az mtink-et a szokásos módon hívhatja. Ha a kiválasztott eszköz zárolt, az mtink engedi a /var/mtink/* fájlok kiválasztását.. #### Műveletelmélet Mtinkd és mtink / ttink osztott memórián át kommunikálnak. Az osztott memória létrejön a szerver folyamatnál és ennek a memóriának van egy kulcsa, ami a /var/mtink/<name> fájlból van kalkulálva. A nyomtatási munkák a /var/mtink/<name> fájlhoz vannak küldve. Ha az adatokat felismeri az mtinkd ebben a fájlban, ezek az adatok a D4 protokollba vannak csomagolva és a nyomtatóhoz egy adatcsatornán át küldi. A lekérdezések vagy parancsok az mtink / ttink-ből az osztott memóriába iródnak és a D4 vezérlőcsatornán át vannak küldve. Mindkét adatvezérlő csatorna egymástól független, így tud információt szerezni, amikor egy nyomtatási munka fut. A problémák megelőzése érdekében, csak egy felhasználói felületet (mtink vagy ttink) tud az mtinkd szerverhez kapcsolni. Linux sajátosság: A nyomtató ki/be kapcsolását rendes körülmények között az mtinkd végzi, azonban az usb meghajtó azonosítási problémák okozója lehet, a csatlakoztatott eszköz egynél több eszközt tart vissza, mint nyomtatót és tárolót. Ebben az esetben állítsa le a démont és indítsa újra azt. Ha ez nem segít, törölje a nyomtató modult és illessze be ismét. #### Az mtinkd indítása bootolásnál A démon integrálását különböző rendszerekbe a start, status és stop opciók mtinkd démonhoz adásával teheti lehetővé könnyedén . Ezt engedi meg a start script drámai leegyszerűsítése. Egy példa szkriptet tartalmaz a forrás etc alkönyvtár:
    # define the device file, adapt this
    #DEV_FILE=/dev/usb/lp0
    # Special options, adapt this
    SPEC="-name $NAME -usbbase /dev/usb/lp"
    # where the program is located
    PROG=/usr/local/sbin/mtinkd
    case $1 in
        start|stop|status)
            names=""
            if [ -f /etc/mtinkd.conf ]
            then
               while read opt1 name opt2 dev; do
                  if [ $opt1 = -name ]
                  then
                      echo -n "$1 `basename $0` for $name "
                      if $PROG $1 $opt1 $name $opt2 $dev
                      then
                         echo RUN
                      else
                         echo STOP
                     fi
                  fi
               done < /etc/mtinkd.conf
            else
               for f in /dev/usb/lp* /dev/lp; do
                   name=`askPrinter $f | grep '[:,]D4[,;]' | sed -n '/Stylus/s/.*:EPSON Stylus \(.*\);/\1/pg' | tr ' ' '_'`
                   if [ ! -z $name ]; then
                       echo -n "$1 `basename $0` for $name "
                       if echo $f | grep usb > /dev/null; then
                          $PROG $1 -name $name -usbbase /dev/usb/lp
                       else
                          $PROG $1 -name $name -dev $f
                       fi
                       if [ $? -eq 0 ]
                       then
                          echo RUN
                       else
                          echo STOP
                       fi
                   fi
               done
            fi
            RETVAL=$?;;
       restart)
            $0 stop
            sleep 2
            $0 start
            RETVAL=$?;;
       *)
            echo "Syntax `basename $0` start|stop|status|restart"
            RETVAL=1;;
    esac

Kérem, vegye figyelembe, hogy szükséges lesz egy szerver minden EPSON nyomtatóhoz, ha olyan szerencséje van, hogy több ilyen készüléke van.
Ebben az esetben gondoskodjon a start/stop szkriptekről különböző nevekkel, például mtink.lp0 mtink.usblp0 és javítsa ki a DEV_FILE=/dev/usb/lp0 sort a szkriptben.

#### Figyelmeztetés

A szerver nem engedi más gyártóktól származó nyomtatók detektálását, és a szerver használata egy nem támogatott nyomtatóval meghibásodást okozhat.

#### Az indító szkript konfigurációja:

Linux alatt a szkript /usr/sbin/mtink-installInitScript generál minden szükséges linket a /etc/rc.d/* könyvtárakban és az /etc/mtinkd.conf konfigurációs fájlt. A nyomtatónak a számítógépre csatlakoztatva és bekapcsolva kell lennie az mtink-installInitScript indításakor.

#### Hibák

Valószínűleg sok.

#### Lásd még

mtink
mtinkc
ttink
gimp-installInitScript

#### Szerző:

Jean-Jacques Sarton
jj.sarton@t-online.de
http://xwtools.automatix.de