Folosind scanerul usb în linux

Un computer cu o versiune modernă a Linux poate fi folosit nu numai ca server Internet, ci și ca stație de lucru pentru lucrări grafice (de exemplu, folosind Gimp). Pentru aceasta, în special, trebuie să puteți primi imagini utilizând un scanner (nu veți cumpăra un computer separat și nu puneți MS Windows pe el decât pentru scanare?).







Acum înțelegi cum eram torturat, alegând un scaner? Din fericire, totul este mult mai simplu - consultați lista scanerelor cu interfață USB și comparați cu lista scanerelor moderne vândute la magazinul local. La intersecția listelor vor fi doar câteva modele. Opțiuni suplimentare pot fi făcute pe baza preferințelor personale și a revizuirilor din reviste.

Seiko Epson Perfection 1650 Fotografie (GT-8200UF):
  • Producătorul: Seiko Epson (site de suport, site-ul rusesc al companiei Seiko Epson, site-ul de suport rusesc).
  • Preț: aproximativ 250 USD.
  • Aria de scanare: A4 (216x297mm).
  • Senzor: CCD (2 linii pe culoare).
  • Tabletă cu capac detașabil, 4 butoane.
  • Adaptor pasiv încorporat (EU-54) pentru scanarea filmelor de 35 mm (lampă amplasată vertical cu sticlă mată). Zona de scanare este de 48,26x231,1mm (? 36x226mm). Filmul trebuie să fie strălucitor. Două puncte de focalizare: pe sticlă și 2 mm deasupra acestuia (film în suport).
  • Hardware Interfata: USB 1.1, soclu de tip B (adâncime, astfel încât opritor de adâncime cablu USB nu a abordat), modul Full Speed ​​(12 Mbit / sec), conectat la hub-ul rădăcină sau hub-ul de la primul nivel, cu o sursă de alimentare. Acesta oferă următoarele informații despre (ar fi necesar să se adauge în modules.usbmap, în kernel 2.4.18 - RH 8.0 - este deja acolo):
    • descriere șir: producător: "EPSON", produs: "Scaner EPSON"
    • Clasa de dispozitive: ff
    • Device Subclase: ff
    • Protocolul dispozitivului: ff
    • Codul vânzătorului: 0x04b8
    • Id de produs: 0x0110
    • Numărul reviziei: 1.10
  • Drivere pentru Linux:
    • pagina de pe site-ul Epson despre driverele de scanare pentru Linux
    • Scanare imagine! pentru Linux de la Epson Kowa
    • SANE EPSON Backend
    • SANE EPSON Backend (oglindă)
  • Rezoluție optică: 13600 de elemente (1600 dpi). Rezoluție mecanică: 3200 dpi (nu este utilă pentru scanare cu o rezoluție de 3200 dpi).
  • Adâncimea de culoare: 16 biți pentru culoarea internă și externă (se pare că cele mai mici 8 biți sunt inventate de firmware).
  • Gama de densități optice: 3.2 D (în unele texte - 3.0 D, pentru auto-testare se dovedește 2.4 D, partea liniară - până la 1.7 D).
  • Viteză (zonă de scanare completă: 215,9mm x 297,18mm):
    • previzualizare 8 biți - 10 secunde
    • previzualizare 16 biți - 15 secunde
    • scanimage - mod Color - adâncime 8 - soluție 50 (10,5 secunde)
    • scanimage - mod Color - lungime 16 - rezolutie 50 (10,5 secunde)
    • scanimage - mod Color - adâncime 8 - rezoluție 100 (10,5 secunde)
    • scanimage - mod Color - devreme 16 - rezolvare 100 (13.5 secunde)
    • scanimage - mod Color - adâncime 8 - rezoluție 200 (21 secunde)
    • scanimage - mod Color - lungime 16 - rezolutie 200 (37.5 secunde)
    • scanimage - mod Color - adâncime 8 - soluție 400 (71 secunde)
    • scanimage - mod Culoare - adâncime 16 - soluție 400 (159 secunde)
    • scanimage - mod Culoare - adâncime 8 - rezoluție 600 (150 secunde)
    • scanimage - mod Color - lungime 16 - rezolutie 600 (300 secunde)
    • scanimage - mod Color - adâncime 8 - rezoluție 800 (293 secunde)
    • scanimage - mod Color - devreme 16 - rezoluție 800-x 172,7 (413 secunde, PNM este creată cu o eroare și în TIFF nu există nici o linie ultima)
    • scanimage - mod Culoare - adâncime 8 - rezoluție 1600 -x 172,7 (833 secunde)
  • Caracteristici suplimentare:
    • nivel de comandă: ESC / I-B8, FS
    • 7 niveluri de luminozitate (implementate în mod programatic, mai degrabă decât creșterea luminozității lămpii)
    • line art: prag fix, tehnologie de îmbunătățire a textului
    • polifonare: segmentarea automată a zonei, 3 moduri de difuzare a erorilor, 4 template-uri, 2 șabloane descarcate (bi-nivel și quad-level)
    • gama de corecție: 2 tipuri pentru CRT, 3 tipuri pentru imprimare, 1 descărcabilă
    • corecție de culoare: 1 pentru CRT, 3 pentru imprimantă, 1 pentru descărcare
    • Sursă de alimentare: DC 24V, 0.8A (15W / 6W)

Folosesc Red Hat 7.2 cu kernelul 2.4.9-13. Controler USB: UHCI (chipset Intel BX).

Deoarece kernelul 2.4.9 nu știe nimic despre Epson Perfection 1650 (în 2.4.18 este în regulă), trebuie să adăugați linia în /etc/modules.conf:

Este posibil să existe o problemă cu prea puțin timp de așteptare pentru a fi confirmată de șofer. Timpul standard (în /usr/src/linux/drivers/usb/scanner.h) este de 10 secunde. Pentru Epson acest lucru nu este suficient, mai ales în modul TPU și la rezoluții mai mari. În vechiul kernel, a trebuit să schimbăm scanner.h și să reconstruim kernelul. Apoi, modulul scannerului avea un parametru read_timeout (numai acesta ar trebui să fie setat în câteva secunde, așa cum este scris în documentație și în căpușe - 1/100 secunde). Acum, driverul de scaner mărește automat acest parametru la 40 de secunde pentru scanerele Epson. În noua versiune a conducătorului auto, de asemenea, eliminat efectul de "frânare" - aplicația nu a putut fi eliminat în timpul acelorași 40 de secunde.







Când scanerul este conectat la syslog, mesajele din kernel provin:

Hopa! Kernelul 2.4.9 (în 2.4.18 totul este în ordine) nu știe nimic despre acest dispozitiv. Luăm o linie adecvată din /etc/hotplug/usb.distmap de la un alt scanner Epson:

Copiați-l la /etc/hotplug/usb.handmap (nu este necesar în /lib/modules/2.4.9-13/modules.usbmap, deoarece se formează la fiecare încărcare) prin înlocuirea identificatorul dispozitivului la 0x110. Reconectați scanerul - acum hotplug este fericit (lsmod arată modulul scanerului descărcat):

Același lucru se poate face manual:

Rămâne să vă asigurați că drepturile asupra dispozitivului / dev / usb / scanner0 sunt suficiente pentru utilizatorul care va fi scanat.

Dacă scanerul nu este folosit mult timp, acesta este dezactivat și modulul este descărcat din memorie. Ca urmare, căutarea automată a dispozitivelor nu funcționează. Puteți să distorsionați dispozitivul, să reporniți manual driverul sau să specificați în mod explicit numele dispozitivului.

După ce vă asigurați că modulul de scanare este încărcat automat când scanerul este conectat, treceți la pasul următor. Faptul este că driverul USB Linux oferă doar stratul de transport al protocolului, adică el poate transfera / accepta octeți, dar nu înțelege sensul lor. Pentru a lucra cu un model specific al scanerului (sau o serie de scanere, dacă folosesc un limbaj comun de comandă), este necesar un program care să poată comunica cu acest model de scaner special. Cel mai popular set de astfel de programe este SANE.

SANE este un API care oferă acces la echipamentele de scanare într-un mod standardizat și o bibliotecă de module pentru anumite modele de scanere. Nu sunt acceptate numai scanere USB, ci scanere SCSI, dispozitive conectate la portul paralel, camere digitale din kitul gphoto2 și alte dispozitive. Este furnizată o rețea (nu am încercat).

În plus față de bibliotecă (backends), pachetul include programe pentru scanare (frontends): scanimage, xcam, xscanimage. scanimage este un program de console și îl puteți folosi, dar este incomod. xcam și xscanimage sunt slabe și buggy, deci este mai bine să folosiți xsane.

Puteți obține SANE
  • împreună cu Red Hat 7.2: sane-frontends-1.0.5, sane-backends-1.0.5 și sane-backends-devel-1.0.5
  • reinstalarea (rpm -Uvh) a versiunilor noi (1.0.6) cu RawHide (se trag libusb-0.1.4-1.i386.rpm)
  • după ce le-au colectat în mod independent (după ce au eliminat versiunea anterioară și pachetele care depind de acestea):
    • ./ configure
    • face
    • face instalare
    • Adăugați /etc/ld.so.conf directorul / usr / local / lib, / usr / local / lib / sane și rulați / sbin / ldconfig (ca auto-asamblare SANE (instalate în / usr / local, în loc de / usr )

Editați lista de dispozitive din fișierul /etc/sane.d/dll.conf (/usr/local/etc/sane.d/dll.conf, dacă se colectează în mod independent SANE): toate dispozitivele trebuie să comentați extra - avtoproba driver greșit poate provoca dispozitivul sau întregul sistem într-o stare inoperabilă.

În /etc/sane.d/epson.conf adăugați:

Testează lista de dispozitive disponibile:

Printre dispozitivele recunoscute ar trebui să fie:

Testăm capacitatea de lucru a sistemului rezultat (foarte superficial):

Să vedem ce caracteristici ale scanerului sunt disponibile cu SANE:

Se pare că versiunea 1.0.6 extrage din hardware tot ceea ce este posibil:
  • --Mod Binar | Gri | Culoare
  • --adâncime 8 | 16
  • --halftoning (tot ce este promis de echipament)
  • --abandonat Nici unul | Roșu | Verde | Albastru
  • --luminozitate -4 ... 3 (nu este compatibil cu corecția gamma)
  • --claritate -2 ... 2
  • --gamma corecție corecție gamma, incl. se pot descărca curbele pentru fiecare culoare separat
  • --corecție de culoare (acești parametri nu pot fi setați manual;)
  • --Rezoluția 50 | 60 | 72 | 75 | 80 | 90 | 100 | 120 | 133 | 144 | 150 | 160 | 175 | 180 | 200 | 216 | 240 | 266 | 300 | 320 | 350 | 360 | 400 | 480 | 600 | 720 | 800 | 900 | 1200 | 1600 | 1800 | 2400 | 3200
  • --pragul 0..255
  • --oglindă [= (da | nu)]
  • --viteză [= (da | nu)]
  • --segmentare auto-zonă [= (da | nu)] (imagini halftonate, text invers)
  • --zoom 50..200
  • --așteptare-pentru-buton (1.0.8)
  • --previzualizare [= (da | nu)]
  • --previzualizare [= (da | nu)]
  • geometrie: -l, -t, -x, -y (mm)
  • --sursă platformă | Unitate de transparență
  • --Film pozitiv de tip film | Film negativ
  • --focalizare-focalizare Focalizare pe sticlă | Focus pe 2,5 mm deasupra sticlei

Prin setarea variabilei de mediu SANE_DEBUG_EPSON (de la 1 la 128), puteți obține printarea de depanare în caz de dificultăți. Iată ce spune dispozitivul despre el însuși:

Apropo, există un modul pentru captarea imaginilor de la video4linux (de exemplu, v4l: / dev / video0), care funcționează cu AverMedia TVPhone98.

Puteți obține xsane
  • împreună cu Red Hat 7.2: pachete xsane-0.77-4 și xsane-gimp-0.77-4 (dar aceasta este o versiune foarte veche cu multe erori, de exemplu, în unele moduri PNG este salvată cu erori)
  • reinstalarea (rpm -Uvh) a versiunilor noi (0.82-3) cu RawHide (din anumite motive nu există meniuri rusești)
  • (prin ștergerea versiunii vechi și a pachetelor care depind de ea, nu uitați de pluginul pentru GIMP:
/.gimp-1.2/pluginrc) !:
  • ./ configure (uneori trebuie să dați --disable-sanetest)
  • face
    • în RH 7.1 GCC-2.96-81 eroare atunci când compilarea xsane.c: 4501 (xsane_mail_dialog), avertisment ca echitabil la xsane.INSTALL (silenok se pare că nu este suficient pentru a compila 260KB cu -O2). Reducerea nivelului de optimizare vă permite să finalizați asamblarea.
    • în RH 7,2 a fost necesar să se instaleze pachetul libusb-devel în plus față de libusb, care a fost cerut de actualizarea
  • face instalare
    • / usr / local / share / sane / xsane
    • / usr / local / share / locale
    • / usr / local / om / om1
    • / usr / local / share / sane

Asta-i tot: rulați comanda xsane sau xsane epson: / dev / usb / scanner0. dacă recunoașterea automată nu funcționează. După aceasta, trebuie să includeți afișarea tuturor ferestrelor și să parcurgeți configurația.

Corecția gama este similară numai în software-ul xsane-0.82.

Înlocuiește libsane-epson.so în / usr / lib / sane libsane-epsonkw.so sale de punere în aplicare (o modificare a unei versiuni anterioare a libsane-epson). Singura diferență pe care am observat-o a fost Gamma Correction - 1.8. Biblioteca libesmod.so este instalată în / usr / lib și GUI pentru SANE este iscan. Acesta poate fi, de asemenea, folosit ca un plugin pentru gimp.

Interfața este mai simplă decât xsane. Gama de curbe de corecție a culorilor a apărut, dar nu există posibilitatea de a controla funcțiile hardware, puncte alb și negru, histogramă, culori de 16 biți, ca în xsane. În general, nu am înțeles de ce este necesar acest lucru.

Limita de dimensiune a liniei de scanare de 32 KB rămâne :(

Scanarea este de 3200 dpi. În mod evident, imaginea bandă - sau cineva confundă linii paralele și paralele, sau CCD nu are timp să "se odihnească" pentru o jumătate de pas.

Incercarea de scanare multiple de o imagine (c idee suplimentară omogenizare folosind conversia -depth 16 -average) și comparația ulterioară a acestora (-depth compozit 16 diferență -compose) sugerează că mai mici de 8 biți pe numere aleatoare generate de senzor de culoare (și la interfața lumină și întuneric - toate 10;).







Articole similare

Trimiteți-le prietenilor: