FreeBSD kézikönyv
Előző | Fejezet 7. Multimédia | Következő

# 7.6. Lapolvasók

Írta: Marc Fonvieille.

## 7.6.1. Bevezetés

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.

## 7.6.2. A rendszermag beállítása

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.

### 7.6.2.1. Beállítás USB felületen

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.

### 7.6.2.2. Beállítás SCSI felületen

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.

## 7.6.3. A SANE beállítása

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.

## 7.6.4. A lapolvasó használatának engedélyezése más felhasználók számára

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ó!

Előző | Tartalom | Következő
TV kártyák beállítása | Fel | A FreeBSD rendszermag testreszabása

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>.