A FreeBSD lapolvasókhoz a SANE (Scanner Access Now Easy) elnevezésű API (alkalmazásfejlesztői felület) segítségével képes hozzáférni, amelyet a Portgyűjteményben találhatunk meg. A lapolvasást végző hardvereszközök használatához a FreeBSD a SANE mellett még néhány eszközmeghajtóra is támaszkodik.
A FreeBSD egyaránt ismeri az SCSI és USB csatlakoztatású lapolvasókat is. Még mielőtt nekikezdenénk a lapolvasó beállításához, bizonyosodjuk meg róla, hogy a SANE támogatja. A SANE által ismert eszközök felsorolásában ellenőrizhetjük a lapolvasónk támogatottságának állapotát. Ezenkívül még a uscanner(4) man oldalon is láthatjuk az ismert USB-s lapolvasók listáját.
A korábbiak értelmében tehát mind a SCSI, mind pedig a USB felületen csatlakozó eszközök támogatottak. A lapolvasónknak megfelelően eltérő eszközmeghajtók szükségesek.
A GENERIC rendszermag alapértelmezés szerint tartalmazza az USB-s lapolvasók használatához szükséges eszközmeghajtókat. Ha valamiért azonban mégis saját rendszermagot akarunk használni, akkor ne felejtsük el ellenőrizni, hogy a rendszermag beállításai között megtalálhatóak a következő sorok:
device usb device uhci device ohci device uscanner
Az alaplapon levő USB chipkészletnek megfelelően a device uhci vagy device ohci sorok közül csak az egyikre lesz szükség, habár az sem okoz különösebben gondot, ha mind a kettőt benne hagyjuk.
Ha nem GENERIC rendszermagunk van, de nem akarjuk újrafordítani, akkor a kldload(8) parancs segítségével a uscanner(4) eszközmeghajtó modulját akár közvetlenül is betöltethetjük:
# kldload uscanner
Ezt a modult a rendszerindítás során úgy tudjuk automatikusan betöltetni, ha a /boot/loader.conf állományhoz hozzávesszük a következő sort:
uscanner_load="YES"
A megfelelően felépített rendszermag elindítása vagy a szükséges modul betöltése után csatlakoztassuk az USB-s lapolvasónkat. Ez sor fog megjelenni a rendszer üzenetpufferében (dmesg(8)):
uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2
Ez az üzenet elárulja nekünk, hogy a lapolvasóhoz mostantól a /dev/uscanner0 eszközleíró tartozik.
Ha a lapolvasónk SCSI felületen csatlakozik, fontos tisztában lennünk azzal, hogy pontosan milyen SCSI-vezérlőn keresztül is érhetjük el, ugyanis a rajta található SCSI chipkészletnek megfelelően kell majd hangolnunk a rendszermag beállításait. A GENERIC rendszermag alapból ismeri a leggyakrabban előforduló SCSI-vezérlőket. Mindenképpen olvassuk át a NOTES nevű állományt és adjuk hozzá a rendszermag beállításaihoz a megfelelő sort. A SCSI-kártya meghajtóján kívül még az alábbi beállításokat is meg kell adnunk a rendszermagunk számára:
device scbus device pass
Ahogy sikerült a rendszermagot sikeresen lefordítani és telepíteni, a rendszer indulása során az üzenetpufferben már láthatjuk is a felismert eszközt:
pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers
Ha a rendszer indulásakor még nem kapcsoltuk volna be a lapolvasónkat, a camcontrol(8) parancs segítségével később külön kérhetjük a SCSI buszon található eszközök újbóli felderítését:
# camcontrol rescan all Re-scan of bus 0 was successful Re-scan of bus 1 was successful Re-scan of bus 2 was successful Re-scan of bus 3 was successful
Ekkor a lapolvasó megjelenik a SCSI eszközök felsorolásában:
# camcontrol devlist <IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) <IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) <AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) <PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)
A SCSI eszközökről további leírásokat a scsi(4) és camcontrol(8) man oldalakon találhatunk.
A SANE rendszere két részre oszlik: a backendekre (graphics/sane-backends) és a frontendekre (graphics/sane-frontends). Ezek közül maguk a backendek szolgáltatják a lapolvasó hozzáférhetőségét. A SANE által ismert eszközeinek listájából kifürkészhetjük, hogy lapolvasónkat melyik backenden keresztül érhetjük el. Az eszköz megfelelő használatához döntő fontosságú megállapítani a hozzátartozó backendet. A frontendek között találjuk meg a lapolvasást felügyelő grafikus felületeket (mint például az xscanimage).
Elsőként telepítsük a graphics/sane-backends portot vagy csomagot. Ezután ellenőrizzük, hogy a SANE felismeri a lapolvasót, és ehhez adjuk ki a sane-find-scanner parancsot:
# sane-find-scanner -q found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3
A kimenetében jelzi a felületet, amin a lapolvasó csatlakozik, valamint a hozzátartozó eszközleírót. A gyártó neve és a termék típusa nem minden esetben jelenik meg, de ez nem is annyira fontos.
Megjegyzés: Némely USB-s lapolvasók esetén még egy firmware-t is be kell töltenünk, amiről bővebben a backendhez tartozó man oldalokon olvashatunk. Ajánlott még elolvasni a sane-find-scanner(1) és sane(7) man oldalakat is.
Most pedig nézzük meg, hogy vajon a frontend is
be tudja-e azonosítani a lapolvasónkat.
Alapértelmezés szerint a
SANE backendjéhez tartozik
még egy scanimage(1) nevű segédprogram
is, aminek segítségével listázni
tudjuk a használható eszközöket
és képeket tudunk beolvasni parancssorból.
Közülük a -L
kapcsoló
listáz:
# scanimage -L device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
Ha ennek eredményeképpen semmi sem jelenik meg, vagy a scanimage(1) látszólag nem talált semmilyen eszközt, akkor a lapolvasó azonosítása nem sikerült. Ilyen esetekben valószínűleg módosítanunk kell a backend beállításait tartalmazó állományt a használni kívánt lapolvasó eszköz szerint. A backendek beállításait a /usr/local/etc/sane.d/ könyvtárban találjuk. Ez a probléma bizonyos USB-s lapolvasók esetében jelentkezik.
Például, ha 7.6.2.1 Szakaszban használt USB-s lapolvasónkra a sane-find-scanner parancs a következőket adja vissza:
# sane-find-scanner -q found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0
Akkor a lapolvasót sikerült megtalálni, és láthatjuk, hogy USB-n keresztül csatlakozik és a /dev/uscanner0 eszközleíró tartozik hozzá. Most már ellenőrizhetjük a lapolvasó helyes beazonosítását is:
# scanimage -L No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages).
Az üzenet fordítása:
Nincs azonosítható lapolvasó. Ha nem erre számítottunk, akkor ellenőrizzük, hogy az eszközt tényleg bekapcsoltuk, csatlakoztattuk és észlelte a sane-find-scanner segédprogram (amennyiben szükséges). Kérjük, olvassa el a szoftverhez tartozó dokumentumtációt (README, FAQ, man oldalak)!
Mivel a lapolvasót nem sikerült azonosítani, át kell írnunk a /usr/local/etc/sane.d/epson.conf állományt. A használt lapolvasó típusa EPSON Perfection® 1650, ezért hozzá az epson backendet fogjuk használni. Ehhez feltétlenül olvassuk el a konfigurációs állományban található megjegyzéseket is. A sorokat igen könnyű átírni: tegyük megjegyzésbe az összes olyat, ahol a lapolvasónk számára nem megfelelő felületek találhatóak (a mi esetünkben tehát megjegyzésbe fogjuk tenni az összes scsi szóval kezdődő sort, hiszen a nekünk USB-s eszközünk van), majd az állomány végére írjuk be a használni kívánt felületet és eszközleírót. Ez ebben a konkrét esetben ennyi lenne:
usb /dev/uscanner0
A megfelelő formátum és a további részletek leírásához ne felejtsük el azonban elolvasni a backend konfigurációs állományában felbukkanó megjegyzéseket és az ide tartozó man oldalt sem. Most már megpróbálkozhatunk újra a lapolvasó azonosításával:
# scanimage -L device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner
Láthatjuk, hogy az USB-s lapolvasónkat sikerült azonosítani. Nem számít, ha esetleg nem egyezne a valósággal a gyártó vagy a típus megjelölése. Itt a valóban lényeges elem az `epson:/dev/uscanner0' mező lesz, melynek a backend és az eszközleíró nevét kell helyesen tartalmaznia.
A beállítást akkor zárhatjuk le, miután a scanimage -L parancs képes észlelni a lapolvasót. A eszköz ekkor már készen áll a beolvasásra.
Míg a scanimage(1) parancssorból teszi lehetővé számunkra a lapolvasást, addig érdemesebb a képek olvasását egy grafikus felületen keresztül végeznünk. A SANE egy egyszerű, ám hatékony grafikus felületet ajánl fel ehhez, ez az xscanimage (graphics/sane-frontends).
Az Xsane (graphics/xsane) egy másik népszerű grafikus frontend. Segítségével speciális lehetőségeket is kihasználhatunk, mint például többféle képolvasási mód (fénymásoló, fax stb.), színkorrekció, kötegelt beolvasás, stb. Mind a két említett alkalmazás elérhető a The GIMP bővítményeként is.
A korábban tárgyalt műveletek mindegyikét root felhasználóként tudjuk csak végrehajtani. Azonban előfordulhat, hogy más felhasználók számára is szeretnénk hozzáférést biztosítani a lapolvasóhoz. Ehhez az érintett felhasználóknak a lapolvasóhoz tartozó eszközleíróhoz olvasási és írás joggal kell rendelkezniük. Például az USB-s lapolvasónk a /dev/uscanner0 eszközleírót használja, amely az operator csoport tulajdonában van. Például a pgj nevű felhasználó úgy fog tudni hozzáférni, ha felvesszük ebbe a csoportba:
# pw groupmod operator -m pgj
A parancs részleteít a pw(8) man oldalán olvashatjuk. Ezenkívül még a /dev/uscanner0 esetén be kell állítanunk a megfelelő írási jogokat is (0660 vagy 0664), mivel az operator csoport alapból csak olvasni tudja. Ezt pedig úgy tehetjük meg, ha az /etc/devfs.rules állományhoz hozzáadjuk a következő sort:
[system=5] add path uscanner0 mode 660
Ezt követően az /etc/rc.conf állományba írjuk be az alábbi sort és utána indítsuk újra a számítógépet:
devfs_system_ruleset="system"
Az itt szereplő sorok pontos jelentéséről a devfs(8) man oldaláról tájékozódhatunk.
Megjegyzés: Természetesen biztonsági megfontolásokból azonban érdemes kétszer is meggondolni, hogy mely felhasználókat vesszük fel a ebbe csoportba, különösen akkor, ha az operator csoportról van szó!
Ha kérdése van a FreeBSD-vel kapcsolatban, a következő
címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése,
kérjük erre a címre írjon: <gabor@FreeBSD.org>.