
|


|
Servis |

|

|

|

|
Vaše náměty a připomínky
Máte k Linuxzone.cz nějaké připomínky nebo náměty? Našli jste na stránkách chybu? Dejte nám o tom vědět pomocí
formuláře nebo v diskuzi.
Komentářů: 30 |
|
Podpořte Linuxzone.cz
Chcete podpořit náš server umístěním odkazu nebo zveřejněním backendu? Zde najdete vše potřebné.
|
|
Pište pro Linuxzone.cz
Máte zájem podílet se na obsahu Linuxzone.cz ať už jako redaktoři nebo i jinak? Dejte nám o sobě vědět!
|

|

|

|

|

|
Aktuálně o software |

|

|

|

|
6.12.2005, 19:07 Potřebujete-li pod linuxem rozchodit bezdrát založený na čipsetech Broadcom 43xx, konečně existuje linuxový ovladač. (lz)
|

|
|
6.12.2005, 19:04 Byla uvolněna verze Xen 3.0.0 virtualizační technologie XEN. (lz)
|

|
|
6.12.2005, 18:59 Byla uvolněna verze X11R6.9/X11R7 RC 3 grafickérho rozhraní X Window System. (lz)
|

|
|
3.12.2005, 12:45 Co je nového okolo projektu Amanda (open source zálohovací software)? Více na osnews.com. (lz)
|

|
|
3.12.2005, 12:40 Jak to akuálně v linuxu vypadá s podporou SATA.. (lz)
|

|
další  |

|

|

|

|

|
Aktuálně z IT |

|

|

|

|
3.12.2005, 12:51 Novellu se daří prodej linuxových produktů, oproti loňskému roku se Novell dočkal výrazného nárůstu. (lz)
|

|
|
3.12.2005, 12:48 Třetí verzi licence GPL by měla být publikována během jara 2007. (lz)
|

|
|
23.10.2005, 13:20 V Peru nyní mají zákon, který umožňuje nasazení open source software ve vládní správě. (lz)
|

|
|
23.10.2005, 13:14 Proč se Microsoft bojí Google? (lz)
|

|
|
27.9.2005, 22:01 Peru má zákon podporující free software. (lz)
|

|
další  |

|

|

|

|

|
Linuxzone.cz - server o Linuxu pro programátory, administrátory a fanoušky.
Provozuje společnost Impossible.
ISSN: 1213-8738 |
|

|

|



Skenujeme pod Linuxem: USB skenery Epson
Chystáte se pořídit si ke svému linuxovému desktopu skener? Problematice
skenování jsme se již jednou věnovali, tentokrát se pro změnu podíváme na možnosti
využití USB skenerů - řeč bude konkrétně o skenerech Epson, které jsou pod Linuxem
velmi dobře podporovány.
Úvodem si řekneme pár slov o architektuře rozhraní SANE, potom projdeme postup
zprovoznění USB skeneru s důrazem na skenery Epson a nakonec si představíme některé
aplikace, bez kterých se při skenování neobejdeme, včetně nástroje Image Scan!, který je
určen speciálně pro skenery Epson. Původní článek věnovaný problematice skenování
pod Linuxem, který popisuje zprovoznění SCSI skeneru pod Linuxem najdete
zde.
Rozhraní SANE a TWAIN
Protože výrobci skenerů používají řadu proprietárních protokolů, aplikace obvykle
nepracují se skenery přímo, ale používají standardizované aplikační rozhraní.
Výrobce skeneru pak ke svému produktu obvykle dodává ovladače, které určité
rozhraní podporují. Běžně se setkáme se dvěma API, jedním je TWAIN, které je
běžné v prostředí MS Windows, naopak pod Linuxem se používá téměř výhradně rozhraní
SANE.
SANE (z angl. Scanner Access Now Easy) tedy definuje jednotné aplikační rozhraní
(API), přes které aplikace se skenery (a nejen skenery, také případně také kamerami
apod.) pod Linuxem a řadou dalších (nejen UN*Xových) systémů pracují. Detailní
specifikace rozraní je k dispozici na domovské stránce projektu SANE
(http://www.mostang.com/sane).
Naopak na platformách Microsoft Windows či Apple dominuje rozhraní TWAIN a tato
dvě rozhraní jsou zcela rozdílná. Autoři SANE toto API vytvářeli s tím, aby toto
rozhraní snadno umožňovalo přistupovat k zařízením i přes síť, s čímž architektura
TWAINu nepočítá.
Existují ale projekty WinSANE a SaneTWAIN, které skenery připojené
k Linuxovým systémům zpřístupňují na počítačích s Microsoft Windows (WinSANE či
SaneTWAIN pak vystupuje jako TWAIN kompatibilní ovladač a i na počítačích
s Microsoft Windows je pak možné používat obvyklé TWAIN kompatibilní aplikace;
nemohu se zde ale vyjádřit ke kvalitě těchto nástrojů, protože s těmito platformami
nepracuji - pokud máte někdo zkušenosti, můžete je napsat do diskuse pod článkem.)
Architektura SANE
SANE rozlišuje mezi "frontendem" a "backendem". Frontend nebo klient je jakákoliv
aplikace, které prostřednictvím SANE API přistupuje ke skeneru. Součástí distribuce
SANE je např. utilita scanimage (určená pro příkazovou řádku) nebo
xsane (grafický klient pro X Window System), ale také démon
saned, který zpřístupňuje skener po síti.
SANE backend je ovladač, který komunikuje na jedné straně s aplikací (frontendem
či klientem), na straně druhé přímo ovládá dané zařízení a stará se o přenos a
konverzi dat. Backend (ovladač) obvykle obsahuje podporu pro více příbuzných
modelů, např. SCSI skenery UMAX jsou podporovány ovladačem sane-umax,
většina skenerů Epson (SCSI, USB i s paralelním rozhraním) je podporována ovladačem
sane-epson apod. Některé ovladače (backendy) nekomunikují se vstupními
zařízení přímo - např. sane-v4l může komunikovat prostřednictvím
rozhraní Video4Linux s kamerou, ovladač sane-net umožňuje přistupovat
prostřednictvím sítě ke skenerům připojeným k okolním počítačům (na kterých běží
saned). Jak to může vypadat, ukazuje následující schéma:
počítač 1 počítač 2
+--------------------------------+ +----------------------------+
| | | |
| xsane (SANE klient) | | xsane (SANE klient) |
| | | | | |
| | | síť | | |
| sane-epson ------- saned <----------> sane-net (libsane-net.so)|
| (libsane-epson.so) | | SANE backend |
| SANE backend | | |
| | | | |
+--------|-----------------------+ +----------------------------+
|
skener
Podporované skenery
Pod Linuxem lze provozovat skenery s rozhraním SCSI (toto rozhraní je rychlé,
nicméně od SCSI rozhraní se upouští a dnes jsou v SCSI provedení dostupné pouze
dražší modely skenerů), skenery komunikující přes paralelní port (také od něj se
upouští, navíc nevýhodou je pomalost rozhraní) nebo rozhraním USB (většina dnes
dostupných skenerů), ale také třeba s rozhraním IEEE-1394 (FireWire):
Přehledné seznamy skenerů podporovaných pod Linuxem jsou k dispozici rovněž
na stránkách projektu SANE (viz také odkazy v závěru článku):
Před koupí skeneru bychom se rozhodně měli ujistit, že skener je skutečně pod
Linuxem podporován (je uveden na seznamu podporovaných skenerů, pozor - typ
skeneru musí doslovně souhlasit!) a případně dohledat konkrétní zkušenosti
uživatelů v diskusních listech týkajících se SANE nebo i jinde (groups.google.com).
Bohužel rozšíření Linuxu na desktopu stále jěště není velké, a tak zde uživatelé
často narážejí na nezájem výrobců hardwaru podpořit nebo alespoň umožnit vývoj
potřebných ovladačů pro SANE, což ve svém důsledku významně redukuje možnost
uživatelova výběru. To ovšem neznamená, že by se dnes nedal vybrat skener dle
vašich představ a požadavků na kvalitu nebo i cenu, jenom je potřeba věnovat
výběru skeneru větší pozoronost.
Skenery Epson
Pokud předchozí odstavec vyzníval poněkud pesimisticky, mohu vás ujistit, že
jsou mezi výrobci skenerů i takoví, kteří v dostatečné míře umožňují nebo dokonce
vývoj ovladačů pro Linux podporují a snad nejlépe je na tom v tomto směru právě
Epson.
Jak je to tedy s podporou běžně dostupných USB skenerů Epson (detailní informace
najdete na seznamech podporovaných skenerů, viz také odkazy výše):
-
většina USB skenerů Epson (např. modely Perfection 1240U/Photo, 1640SU, 1650/Photo,
1660/Photo, 2400/Photo, 2450/Photo) jsou podporovány backendem sane-epson.
-
modely Perfection 1250/Photo a 1260/Photo - jsou podporovány backendem pro skenery
Plustek
a také nástrojem
Image Scan!
-
Perfection 660 - tento model obsahuje čipovou sadu LM9832 a je podporován v rámci
projektu
Snapscan.
Zprovoznění USB skeneru
Předpokladem je samozřejmě podpora USB v kernelu, což už v dnešní době je
samozřejmostí, takže se tím nebudeme detailně zabývat (viz také dokumentace na
www.linux-usb.org).
Dále budeme potřebovat soubor reprezentující zařízení, přes který budeme
ke skeneru přistupovat. Jedná se o znakové zařízení s hlavním (major) číslem
180 a vedlejším (minor) číslem 48, obvykle je umístěn v /dev/usbscanner0
nebo v /dev/usb/scanner0. Ve většině současných distribucí bychom
jej měli mít, pokud ne, tak jej pomocí mknod vytvoříme a nastavíme
přístupová práva:
mknod /dev/usbscanner0 c 180 48
chmod 666 /dev/usbscanner0
Dále se musíme postarat o inicializaci USB, tedy zajistit natažení příslušných
modulů do jádra (pokud již nejsou nataženy, viz např. výpis lsmod). V každém případě
se jedná o modul usbcore a pak podle toho, jaký hardware máme
(OHCI nebo UHCI) buď modul usb-ohci anebo moduly usb-uhci a
uhci. Dále připojíme pseudosoborový systém usbdevfs,
abychom měli v /proc/bus/usb k dispozici informace o připojených
zařízeních.
modprobe usbcore
modprobe usb-ohci
mount -t usbdevfs none /proc/bus/usb
Nyní můžeme připojit náš USB skener a ten by se měl objevit v seznamu připojených
USB zařízení v souboru /proc/bus/usb/devices (tento soubor není na
první pohled dvakrát přehledný, seznam připojených USB zařízení si také můžeme
komfortněji prohlédnout třeba pomocí utility usbview.
Nyní zbývá natáhnout modul scanner
(příkazem modprobe scanner),
který obsahuje obecnou podporu pro USB skenery. V případě, že modul náš skener
nerozpozná automaticky (zejména novější modely), je potřeba zadat id zařízení
předáním parametrů modulu - např. pro skener Perfection 2400 Photo takto:
modprobe scanner vendor=0x04b8 product=0x011b
Potřebné parametry (vendor a product id) získáme nahlédnutím do /proc/bus/usb/devices,
nebo třeba pomocí utility usbview (viz zvýrazněný text na obrázku výše), seznam ID
zařízení je také uveden na stránkách
těchto.
Do budoucna si můžeme ušetřit práci zadáním parametrů do
/etc/modules.conf:
options scanner vendor=0x04b8 product=0x011b
Pokud vše funguje tak, jak má, uvidíme v systémovém logu podobné hlášení:
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
usb-ohci.c: USB OHCI at membase 0xe0974000, IRQ 19
usb-ohci.c: usb-02:00.0, Advanced Micro Devices [AMD] AMD-768 [Opus] USB
usb.c: new USB bus registered, assigned bus number 1
hub.c: USB hub found
hub.c: 4 ports detected
usb.c: registered new driver usbscanner
scanner.c: 0.4.6:USB Scanner Driver
hub.c: USB new device connect on bus1/4, assigned device number 2
scanner.c: probe_scanner: User specified USB scanner \
-- Vendor:Product - 4b8:11b
Pokud narazíte při zprovozňování USB zařízení na problémy, dobrým zdrojem
informací je již zmiňovaná dokumentace na stránkách
www.linux-usb.org.
Nyní je tedy skener systémem rozpoznán a zbývá ještě instalovat / nakonfigurovat sane.
V Linuxových distribucích obvykle najdeme balíček sane, případně balíčky dva - sane-backends a sane-fronteds. Pokud se rozhodneme sane sestavit ze zdrojových kódů, budeme u některých novějších verzí backendů potřebovat ještě balíček libusb.
Konfigurace SANE je uložena v adresáři /etc/sane.d/. Soubor
dll.conf obsahuje seznam ovladačů, které jsou k dispozici.
Adresář dále obsahuje konfigurační soubory jednotlivých ovladačů - nás bude
zajímat soubor epson.conf, který obsahuje konfiguraci ovladače
sane-epson. Nám postačí pouze přidat řádek:
usb /dev/usb/scanner0
Funkčnost sane si z příkazové řádky ověříme pomocí nástroje
scanimage:
$ scanimage -L
device `epson:/dev/usb/scanner0' is a Epson GT-9300 flatbed scanner
Aplikace
scanimage - nástroj pro příkazovou řádku
Součástí distribuce sane je utilita scanimage. Jedná se o nástroj pro příkazovou
řádku, který ale zpřístupňuje všechny funkce a nastavení, které ovladače jednotlivých
typů skenerů nabízejí a samozřejmě také umí přistupovat k skenerů přes síť, pokud to
konfigurace umožňuje. Spustíme-li jej s parametrem --help, získáme
nápovědu a pokud spolu s --help zadáme volbou -d zařízení,
vypíše také všechna možná nastavení pro daný typ skeneru. Skenovaný obrázek
pak scanimage posílá na standardní výstup. Podporuje výstup ve
formátech PNM a TIFF.
$ scanimage -d net:vanvancito:epson:/dev/usb/scanner0 \
-x 100mm -y 100mm --resolution 600 --format tiff --mode color \
--depth 8 --verbose > test.tiff
scanimage: scanning image of size 2360x2362 pixels at 24 bits/pixel
scanimage: acquiring RGB frame
Pro ilustraci tento příkaz oskenuje v barvě čtvercový výřez rozměru 10 x 10 cm z pravého
horního rohu v rozlišení 600 dpi a to přes síť ze skeneru připojeného k hostiteli
"vanvancito" a uloží obrázek ve formátu tiff do souboru test.tiff:
xsane
Toto je nejvíce používaný GUI nástroj pro skenování pod Linuxem. Můžeme jej používat
jako samostatnou aplikaci, ale (pokud jej přeložíme s volbou --with-gimp),
bude fungovat i jako zásuvný modul pro Gimp. (Pak se v menu "Soubor" objeví položka
"Získat", přes kterou xsane plugin spustíme. Xsane obsahuje vše, co bychom od
takového software očekávali: získání náhledu, možnost manipulace s řadou parametrů
(jas, kontrast, gamma korekce atd.), obrázky ukládá ve formátech jpeg, png,
pnm, ps, raw a tiff. Pokud máme k počítači připojenou tiskárnu, můžeme xsane použít
v režimu kopírování nebo také jako fax, máme-li fax modem. Ovládání je poměrně snadné.
xsane - GUI klient SANE
xscanimage
Jednoduchý GUI nástroj pro X, je přímo součástí distribuce sane. Nenabízí moc komfortu
a v novějších linuxových distribucích se s ním již nemusíme setkat. Funguje
také jako zásuvný modul do Gimpu. (Screenshot viz původní článek věnovaný
problematice skenování pod Linuxem). V podstatě již není důvod jej používat,
protože xsane nabízí mnohem širší funkčnost.
Image Scan! - software pro skenery Epson
Pro skenery Epson je také k dispozici software přímo od výrobce. Image Scan!
(z příkazové řádky spouštěn jako iscan) je GUI nástroj s poměrně
jednoduchým rozhraním, nicméně je vysoce funkční. Uživatele zejména potěší to,
že je vystavěn na obdobných algoritmech jako obslužný software dodávaný pro
platformu Microsoft Windows a i když na první pohled nenabízí tolik možností
jako xsane, je stabilní a také díky přednastavení parametrů výrobcem pro jednotlivé
modely skenerů dává velmi dobré výsledky. Může fungovat také jako zásuvný modul
Gimpu (obdobně jako v případě xsane stačí doplnit symbolický odkaz do adresáře
s pluginy Gimpu). Obrázky umí ukládat ve formátech PNM a PNG, pokud máte tiskárnu Epson,
můžete také využít linuxový software pro tyto tiskárny rovněž z dílny Epsonu -
Photo Image Print System pro kvalitní tisk ve foto kvalitě.
Image Scan! - alternativa xsane přímo z dílny Epsonu
Skenování z negativu
Pokud jde o skenování z negativu / pozitivu, můžeme použít jak xsane, tak Image Scan!.
Skenování je ale mnohem snazší s Image Scanem. Xsane sice obsahuje přednastavené
parametry pro některé druhy filmů, ale bez dalších úprav naskenovaných obrázků v Gimpu
se většinou neobejdeme. Naproti tomu autokorekční algoritmy iscanu dávají velmi slušné
výsledky alespoň pokud jsem měl možnost posoudit jak při skenování z negativu
na filmech Agfa, Kodak a Konica, tak i při skenování z pozitivu.
Image Scan! - skenování z negativu
Skener v síti
Sdílení skenerů je jednoduché. Na straně serveru, ke kterému je připojen skener je
potřeba nakonfigurovat démon saned. Nejprve založíme uživatele a skupinu
saned, pod kterou saned poběží (z bezp. důvodů není rozumné nechat
saned běžet pod uživatelem root) a upravíme přístupová práva ke skeneru
tak, aby jej uživatel saned směl používat. Saned používá konfigurační soubor
saned.conf, který obsahuje seznam strojů, ze kterých bude akceptovat
spojení. Protože je ale spouštěn prostřednictvím démona xinetd a
Linuxové distribuce zpravidla obsahují tcp_wrapper, postačí do souboru
saned.conf zapsat jediný znak "+" - což znamená, že saned bude akceptovat
spojení odevšad. Vlastní kontrolu přístupu k skeneru pak na serveru upravíme
v souborech /etc/hosts.deny a /etc/hosts.allow, které
nabízejí mocnější syntaxi (viz dokumentace tcp_wrapper, např. manová stránka
hosts.allow a tcpd). Dále pak musíme upravit konfiguraci
xinetd a definovat zde službu sane:
# soubor /etc/xinetd.d/sane
#
# default: on
# description: saned scanner service
service sane
{
flags = REUSE
socket_type = stream
wait = no
user = saned.saned
server = /usr/sbin/saned
log_on_failure += USERID
disable = no
}
Na obou počítačích pak musíme službu zanést do souboru /etc/services,
který obsahuje seznam běžně používaných síťových služeb a jim přiřazených čísel
portů. Do /etc/services přidáme následující řádek:
sane 6566/tcp # SANE network scanner daemon
Na klientském počítači se ještě ujistíme, že je v konfiguračním souboru sane
dll.conf povoleno použití síťového ovladače (řádek obsahující slovo
"net" musí být odkomentován). Pokud jsme vše správně nakonfigurovali, můžeme
na klientském počítači spustit scanimage s nám již známou vobou
-L a ve výpisu dostupných zařízení by se měl skener připojený
k serveru objevit:
$ scanimage -L
device 'net:vanvancito:epson:/dev/usb/scanner0' \
is a Epson GT-9300 flatbed scanner
Když už jsme u toho síťování, existuje také projekt sane-cgi,
který poskytuje webové rozhraní k SANE (viz odkazy níže).
Závěrem...
Většina dnes běžně dostupných skenerů je dodávána s rozhraním USB, ovšem
ne všechny USB skenery je možné provozovat pod Linuxem. Skenery EPSON patří mezi
ty dobře podporované (i když i tady je vhodné si toto před koupí skeneru ověřit) -
což je výsledkem solidního přístupu výrobce k linuxové komunitě. Velkým plusem
je v případě skenerů Epson dostupnost software Image Scan!, který umožňuje
zcela bezproblémové a rychlé skenování i z transparentních předloh. Software jsem testoval na
skeneru Epson Perfection 2400 Photo a výsledný dojem z tohoto skeneru je velmi dobrý.
Odkazy
Rozhraní SANE, TWAIN:
Podporované skenery:
Obslužný software podporující SANE:
Diskusní skupiny, další dokumentace:
Projekty stojící mimo SANE:
Software zajišťující kompatibilitu mezi SANE - TWAIN:
původní článek "Skenujeme pod Linuxem"
|

|
Přispějte nám |

|

|

|

Líbil se Vám tento článek? Můžete ho ocenit zavoláním na tel. číslo 906 460 134. Cena hovoru za 1 minutu je 46 Kč.

|

|

|

|

|
Hodnocení článku |

|

|

|

Článek hodnotím jako: [1] výborný [2] dobrý [3] průměr [4] špatný [5] hrůza

|

|

|

|

|

|

|