FreeBSD гарын авлага
Өмнөх | Бүлэг 8. Мультимедиа | Дараах

# 8.7. Дүрс скан хийгчид

Бичсэн Марк Фонвил.

## 8.7.1. Танилцуулга

FreeBSD дээр дүрс скан хийгчдэд хандах боломжийг FreeBSD-ийн портын цуглуулгад байдаг SANE (Scanner Access Now Easy буюу Скан хийгчид хандах Хандалт Одоо Амархан гэгдэх) API олгодог. SANE нь FreeBSD-ийн зарим төхөөрөмжийн драйверууд ашиглан скан хийгчийн техник хангамжид ханддаг.

FreeBSD нь SCSI болон USB скан хийгчдийг дэмждэг. Ямар нэг тохиргоо хийхээсээ өмнө таны скан хийгч SANE-ээр дэмжигдсэн эсэхийг шалгаарай. SANE нь скан хийгчийн дэмжлэг болон түүний төлвийн тухай мэдээллээр таныг хангах дэмжигдсэн төхөөрөмжүүдийн жагсаалттай байдаг. FreeBSD�8.X-ээс өмнөх хувилбарууд дээр uscanner(4) гарын авлагын хуудас нь дэмжигдсэн USB скан хийгчдийн жагсаалтыг бас агуулдаг.

## 8.7.2. Цөмийн тохиргоо

Дээр дурдсанаар SCSI болон USB интерфэйсүүд нь дэмжигдсэн байдаг. Таны скан хийгчийн интерфэйсээс болоод өөр өөр төхөөрөмжийн драйверууд шаардагддаг.

### 8.7.2.1. USB интерфэйс

`GENERIC` цөм нь анхдагчаар USB скан хийгчдийг дэмжихэд шаардлагатай төхөөрөмжийн драйверуудыг агуулдаг. Цөмийг өөрөө тохируулан ашиглах бол дараах мөрүүд өөрийн цөмийн тохиргооны файлд байгаа эсэхийг шалгах хэрэгтэй:

    device usb
    device uhci
    device ohci
    device ehci

FreeBSD�8.X-ээс өмнөх системүүдэд дараах мөр бас хэрэгтэй:

    device uscanner

FreeBSD-ийн эдгээр хувилбарууд дээр uscanner(4) төхөөрөмжийн драйвер нь USB скан хийгчдийг дэмждэг. FreeBSD�8.0-с хойш энэ дэмжлэгийг libusb(3) сан шууд хангадаг.

Зөв цөмөөр дахин ачаалсны дараа өөрийн USB скан хийгчийг залгана. Таны скан хийгчийг таньж байгааг үзүүлэх мөр системийн мэдэгдлийн буферт (dmesg(8)) гарч ирэх ёстой:

    ugen0.2: <EPSON> at usbus0

Эсвэл FreeBSD�7.X систем дээр:

    uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2

Бидний ажиллуулж байгаа FreeBSD-ийн хувилбараас хамаарч скан хийгч нь `/dev/ugen0.2` эсвэл `/dev/uscanner0` гэсэн төхөөрөмжийн цэгийг ашиглаглаж байгааг эдгээр мэдэгдлүүд харуулж байна. Энэ жишээний хувьд EPSON Perfection��1650 USB скан хийгчийг ашигласан.

### 8.7.2.2. SCSI интерфэйс

Хэрэв таны скан хийгч SCSI интерфэйстэй ирсэн бол ямар SCSI хянагч хавтанг ашиглахаа мэдэх нь чухал юм. Ашиглагдах SCSI бичил схемээс хамаараад та өөрийн цөмийн тохиргооны файлаа тааруулах хэрэгтэй болно. `GENERIC` цөм нь хамгийн түгээмэл SCSI хянагчуудыг дэмждэг. `NOTES` файлыг уншиж өөрийн цөмийн тохиргооны файлд зөв мөрийг нэмсэн эсэхээ шалгаарай. SCSI хувиргагч драйвераас гадна та өөрийн цөмийн тохиргооны файлдаа дараах мөрүүдтэй байх хэрэгтэй:

    device scbus
    device pass

Таны цөм зөв эмхэтгэгдэж суулгагдсаны дараа ачаалах үед та системийн мэдэгдлийн буферт төхөөрөмжийг харж чадаж байх ёстой:

    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

Таны скан хийгч системийг ачаалах үед асаагүй байсан ч гэсэн гараар camcontrol(8) тушаалын тусламжтай SCSI шугамын хайлтыг хийж илрүүлэх боломжтой байдаг:

    # 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

Дараа нь скан хийгч SCSI төхөөрөмжүүдийн жагсаалтад гарч ирэх болно:

    # 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)

SCSI төхөөрөмжүүдийн тухай дэлгэрэнгүй мэдээлэл scsi(4) болон camcontrol(8) гарын авлагын хуудаснуудад байдаг.

## 8.7.3. SANE тохиргоо

SANE систем нь хоёр хэсэгт хуваагддаг: эдгээр нь арын хэсэг (`graphics/sane-backends`) болон урд хэсэг (`graphics/sane-frontends`) юм. Арын хэсэг нь скан хийгчид өөрт нь хандах хандалтыг олгодог. SANE-ий дэмжигдсэн төхөөрөмжүүдийн жагсаалт таны дүрс скан хийгчийг ямар арын хэсэг дэмжихийг заадаг. Та өөрийн төхөөрөмжийг ашиглаж чаддаг байхын тулд өөрийн скан хийгчийн хувьд зөв арын хэсгийг тодорхойлох нь зайлшгүй шаардлагатай юм. Урд хэсэг нь график хайлт хийх интерфэйсийн боломжийг олгодог (xscanimage).

Эхний алхам нь `graphics/sane-backends` порт юм уу эсвэл багцыг суулгах явдал юм. Дараа нь `sane-find-scanner` тушаал ашиглан SANE системээр скан хийгчийн илрүүлэлтийг шалгана:

    # sane-find-scanner -q
    found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3

Гаралт нь скан хийгчийн интерфэйсийн төрөл болон системд скан хийгчийг залгахад хэрэглэгдсэн төхөөрөмжийн цэгийг үзүүлэх болно. Үйлдвэрлэгч болон бүтээгдэхүүний загвар гарч ирэхгүй байж болох бөгөөд энэ нь тийм чухал биш юм.

> Тэмдэглэл: Зарим USB скан хийгчид нь танаас firmware дуудаж ачаалахыг шаарддаг бөгөөд энэ нь арын хэсгийн гарын авлагын хуудсанд тайлбарлагдсан байгаа. Та sane-find-scanner(1) болон sane(7) гарын авлагын хуудаснуудыг бас унших хэрэгтэй юм.

Одоо бид скан хийгчийг скан хийх урд хэсгээр танигдах эсэхийг нь шалгах хэрэгтэй. Анхдагчаар SANE арын хэсгүүд нь scanimage(1) гэгддэг тушаалын мөрийн хэрэгсэлтэй ирдэг. Энэ тушаал нь танд төхөөрөмжүүдийг жагсааж тушаалын мөрөөс дүрс эзэмшилтийг хийхийг зөвшөөрдөг. `-L` тохируулга нь скан хийгчийн төхөөрөмжүүдийг жагсаахад хэрэглэгддэг:

    # scanimage -L
    device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner

Эсвэл жишээ нь Хэсэг 8.7.2.1-д ашиглагдсан USB скан хийгчтэй бол:

    # scanimage -L
    device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner

Энэ гаралт нь FreeBSD�8.X системийн хувьд бөгөөд `'epson2:libusb:/dev/usb:/dev/ugen0.2'` нь бидэнд скан хийгчийн ашиглаж байгаа арын нэр (`epson2`) ба төхөөрөмжийн цэгийг (`/dev/ugen0.2`) олгож байна.

> Тэмдэглэл: Гаралт байхгүй юм уу эсвэл скан хийгч танигдсангүй гэсэн мэдэгдэл нь scanimage(1) нь скан хийгчийг таньж чадаагүйг харуулна. Хэрэв ингэсэн бол та арын хэсгийн тохиргооны файлыг засварлаж ашиглагдах скан хийгч төхөөрөмжийг тодорхойлох хэрэгтэй. `/usr/local/etc/sane.d/` сан бүх арын хэсгийн тохиргооны файлуудыг агуулдаг. Энэ танилтын асуудал зарим нэг USB скан хийгчдийн хувьд тохиолддог.

> Жишээ нь Хэсэг 8.7.2.1-д хэрэглэгдсэн USB скан хийгчтэй байхад FreeBSD�8.X дээр скан хийгч нь ямар ч асуудалгүйгээр олдож ажиллаж байгаа боловч FreeBSD-ийн өмнөх (uscanner(4) драйвер хэрэглэгдэж байгаа) хувилбарууд дээр `sane-find-scanner` тушаалыг ажиллуулахад дараах мэдээллийг бидэнд өгөх болно:

>     # sane-find-scanner -q
>     found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0

> Скан хийгч нь зөв олдсон бөгөөд USB интерфэйсийг ашиглан `/dev/uscanner0` төхөөрөмжийн цэгт залгагдсан байна. Одоо бид скан хийгч зөв танигдсан эсэхийг шалгаж болно:

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

> Скан хийгч нь танигдаагүй болохоор бид `/usr/local/etc/sane.d/epson2.conf` файлыг засварлах хэрэгтэй болно. Ашиглагдсан скан хийгчийн загвар нь EPSON Perfection�1650 байсан, тэгэхээр бид `epson2` арын хэсгийг скан хийгчийг ашиглахыг мэдлээ. Арын хэсгүүдийн тохиргооны файлууд дахь туслах тайлбаруудыг уншихаа мартуузай. Мөрийн өөрчлөлтүүд нь их энгийн: таны скан хийгчийн хувьд буруу интерфэйстэй бүх мөрүүдийг тайлбар болгоно (бидний хувьд, бидний скан хийгч USB интерфэйсийг ашигладаг болохоор `scsi` гэсэн үгээс эхэлсэн бүх мөрүүдийг тайлбар болгоно), дараа нь файлын төгсгөлд ашиглагдах интерфэйс болон төхөөрөмжийн цэгийг заасан мөрийг нэмнэ. Энэ тохиолдолд бид дараах мөрийг нэмнэ:

>     usb /dev/uscanner0

> Илүү дэлгэрэнгүй мэдээлэл болон хэрэглээний зөв синтаксын талаар арын хэсгийн тохиргооны файлд байгаа тайлбарууд болон арын хэсгийн гарын авлагын хуудаснаас уншихаа мартуузай. Бид одоо скан хийгч танигдсан эсэхийг шалгаж болно:

>     # scanimage -L
>     device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner

> Бидний USB скан хийгч танигдлаа. Үйлдвэрлэгч болон загвар нь скан хийгчийнхтэй таарахгүй байвал энэ нь тийм чухал биш юм. Бодолцож үзэх гол түлхүүр зүйл нь бидэнд зөв арын хэсгийн нэр болон зөв төхөөрөмжийн цэгийг өгдөг ``epson:/dev/uscanner0'` талбар юм.

`scanimage -L` тушаал скан хийгчийг харж чаддаг болсны дараа тохиргоо дуусна. Төхөөрөмж нь одоо скан хийхэд бэлэн болсон байна.

scanimage(1) нь дүрс эзэмшилтийг тушаалын мөрөөс хийхийг бидэнд зөвшөөрдөг боловч дүрс скан хийхдээ график хэрэглэгчийн интерфэйс ашиглахыг эрхэмлэх нь зүйтэй юм. SANE нь хялбар боловч үр ашигтай график интерфэйсийг санал болгодог: энэ нь xscanimage (`graphics/sane-frontends`) юм.

Xsane (`graphics/xsane`) нь өөр нэг алдартай график скан хийгч урд хэсэг юм. Энэ урд хэсэг нь төрөл бүрийн скан хийгч горим (фото хуулбар хийх, факс, гэх мэт), өнгөний засвар, бөөнөөр скан хийх гэх мэт дэвшилтэт боломжуудыг санал болгодог. Эдгээр програмууд нь GIMP залгаас болж ашиглагдах боломжтой байдаг.

## 8.7.4. Бусад хэрэглэгчдэд скан хийгчид хандах боломжийг өгөх

Өмнөх бүх үйлдлүүдийг `root` зөвшөөрлүүдээр хийсэн билээ. Гэхдээ өөр хэрэглэгчдэд скан хийгчид хандах боломжийг өгөх хэрэг танд байж болох юм. Скан хийгчийн ашигладаг төхөөрөмжийн цэгт хандахад унших болон бичих зөвшөөрлүүд хэрэглэгчид хэрэгтэй болно. Жишээ нь бидний USB скан хийгч `operator` бүлгийн эзэмшдэг `/dev/usb/0.2.0` гэсэн төхөөрөмжийн жинхэнэ цэг рүү симболын холбоос хийгдсэн `/dev/ugen0.2` төхөөрөмжийн цэгийг ашиглаж байна (`/dev` сангийн агуулгыг харахад үүнийг батлах болно). Симболын холбоос болон төхөөрөмжийн цэгийг `wheel` ба `operator` бүлэг тус тус эзэмшдэг. ``joe`` хэрэглэгчийг эдгээр бүлэгт нэмснээр түүнд скан хийгчийг ашиглах боломжийг бүрдүүлэх боловч аюулгүй байдлын шалтгаанаас болоод та хэрэглэгчийг аль ч бүлэгт ялангуяа `wheel` бүлэгт нэмэхээсээ өмнө дахин бодох хэрэгтэй. USB төхөөрөмжүүдийг ашиглахад зориулж тусгай бүлэг үүсгэж энэ бүлгийн гишүүдийг скан хийгчид хандах боломжтой болгох нь илүү сайн шийдэл болдог.

Тиймээс бид жишээ нь ``usb`` бүлгийг ашиглах болно. Эхний алхам нь энэ бүлгийг pw(8) тушаалын тусламжтай үүсгэх явдал юм:

    # pw groupadd usb

Дараа нь `/dev/ugen0.2` симболын холбоос хийж `/dev/usb/0.2.0` төхөөрөмжийн цэгийг `usb` бүлгийн хувьд зөв, бичих зөвшөөрлүүдийн (`0660` эсвэл `0664`) тусламжтай хандах боломжтой болгох ёстой. Учир нь эдгээр файлын эзэмшигч нь (`root`) тэдгээрт зөвхөн бичиж чаддаг. `/etc/devfs.rules` файлд дараах мөрүүдийг нэмж энэ бүгдийг хийж болно:

    [system=5]
    add path ugen0.2 mode 0660 group usb
    add path usb/0.2.0 mode 0666 group usb

FreeBSD�7.X хэрэглэгчдэд `/dev/uscanner0` гэсэн зөв төхөөрөмжийн цэг бүхий дараах мөрнүүд хэрэгтэй байдаг:

    [system=5]
    add path uscanner0 mode 660 group usb

Дараа нь дараах мөрийг `/etc/rc.conf` файлд нэмж машиныг дахин ачаална:

    devfs_system_ruleset="system"

Эдгээр мөрнүүдийн тухай дэлгэрэнгүй мэдээллийг devfs(8) гарын авлагын хуудаснаас олж болно.

Одоо скан хийгчид хандах хандалтыг зөвшөөрөхийн тулд хэрэглэгчдийг ``usb`` бүлэгт нэмэх л үлдлээ:

    # pw groupmod usb -m joe

Дэлгэрэнгүйг pw(8) гарын авлагын хуудаснаас үзнэ үү.

Өмнөх | Эхлэл | Дараах
MythTV | Дээш | FreeBSD цөмийг тохируулах нь

Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.

FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал <admin@mnbsd.org> хаягаар цахим захидал явуулна уу.