Scanner Epson a openSUSE 10.3

Před časem jsem se v diskusi vyjadřoval o nastavení a správě scanneru Epson - v mém případě jde o typ Perfection V200, tedy model, který je v současné době (podzim 2007) na trhu. V openSUSE 10.2 bylo nutné pro tento scanner instalovat ovladač iscan/epkowa ze stránky firmy Avasys, což je oficiální výrobce linuxových ovladačů pro Epson. V distribuci se totiž také nalézal ovladač iscan, ale pro V200 bohužel nebyl funkční...

Po chvíli čekání, sledování reakcí jiných uživatelů a vcelku zralé úvaze jsem se rozhodl pro upgrade openSUSE na verzi 10.3. Z výzkumných důvodů jsem volil cestu aktualizace, nikoliv tedy čisté instalace. Po ručním vyřešení poměrně velkého množství konfliktů balíčků v YASTu se věc snad podařila a vše - zdá se - funguje. Jediná změna se odehrála se scannerem - popíšu dále.

Dobrá zpráva je, že nativní iscan ve verzi 10.3 už podporuje i Epson Perfection V200, čili není třeba stahovat a instalovat balíčky od Avasysu. Je to ale přesto možné a pokud si oba (iscan a iscan-plugin) přidáte třeba do lokálního adresáře pro Smart, můžete snadno pomocí pár kliknutí experimentovat s různými verzemi iscanu.

Špatná zpráva je to, že po instalaci nefungoval ani iscan, ani xsane - iscan hlásil zprávu "Could not send command to
scanner. Check the scanner's status.
", xsane zase, že nemůže nalézt žádné zařízení. Konfigurace scanneru v YASTu přitom fungovala a test proběhl OK. Zkusil jsem oba programy spustit z konzole jako root - a ejhle, najednou vše běželo, jak má. Tedy práva....

No, hledal jsem dlouho, ale nakonec jsem zvítězil. Vtip je v tom, že jako user v 10.3 zřejmě nemám práva k USB portu (proč ale funguje třeba USB klíčenka, to mi nějak uniká...) a je tedy potřeba to změnit. Neexistuje ovšem skupina pro USB, kam bych se mohl přidat. Vyřešil jsem vše "klikoidně" v root módu Krusaderu - upravil jsem práva /dev/bus/usb a všech vnořených adresářů a odkazů (zařízení), tak, aby i ostatní (tj. nejen root) měli práva zapisovat (pro méně znalé: pravé myšítko na uvedený adresář, tam zvolit "Vlastnosti", nastavit práva na kartě "Oprávnění" a nezapomenout zaškrtnout checkbox "Aplikovat změny na všechny podsložky a jejich obsah". Celý postup se dá udělat i v konzoli pomocí příkazu chmod (to pro masochisty a těm není třeba popisovat syntaxi), případně se dá změna práv omezit jen na určitý USB port (kde je aktuálně připojen scanner) atd.

Uvítám připomínky linuxových guru, co je špatně, co by se mělo/mohlo udělat jinak apod. ;-)

Update:

ručně změněná práva pro /dev/bus/usb/ skutečně podle připomínky kolegy níže vydrží jen do restartu PC... Po diskusi s linuxovými guru níže vyplynula následující možná řešení problému:

1) měnit práva před každým scanováním ručně (no, jako fór dobrý...)

2) přidat příkaz
chmod -R 777 /dev/bus/usb/
do souboru
/etc/init.d/boot.local
čímž se práva ke všem USB zařízením nastavují při každém spouštění PC
Pochopitelně nutno udělat jako root.

3) případně studovat lépe dokumentaci a obsahy jednotlivých souborů. Proč? No, kromě obecné platnosti tohoto pravidla je zde tento konkrétní poznatek: práva okolo USB se dají ovlivnit záležitostí zvanou udev. V adresáři /etc/udev/rules.d se nachází mimo jiné soubor 55-iscan.rules, kde se dá najít i zápis "GROUP="lp"". Selským rozumem jsem z toho a jiných pramenů odvodil, že uživatel iscanu by se měl nalézat ve skupině lp. No a z toho už byl jen krůček do YASTu, správy uživatelů, přidání usera do skupiny lp, pro jistotu restart PC.....a user může vesele scanovat bez výše popsané změny práv /dev/bus/usb/.

Uff....možná jsem to i zahlédl někde na x-té stránce nějakého manuálu, ale spíš ne a mám po pročtení kvanta materiálu jen ten dojem. Prostě tahle záležitost je opravdu děsivě nezdokumentovaná a začátečníka s Linuxem musí spolehlivě odradit.

Taky proto (jinými slovy v zájmu Linuxu) to sem takhle polopaticky a sumárně píšu.

Autor: JirkaZ

Komentáře

JirkaZ odpověděl -

Díky za podnět, nenapadlo mě to od té doby zkusit znovu...

Navrhujete nějaké řešení, kdy by se práva svévolně neměnila zpět? Trochu mi to připomíná děs běs svého času v Mandake/Mandrivě (nevím, jestli to ještě platí), kdy bazmek zvaný msec (Mandrake Security) taky neustále něco přepisoval a měnil nezávisle na vůli administrátora... Nefunguje tady v podobném smyslu Novell AppArmor nebo něco takového?

JirkaZ odpověděl -

To, co je v ~/.bashrc se spouští po přihlášení uživatele? Pokud ano, jak je možné, že je takto userovi umožněno měnit práva k něčemu, co patří jen rootovi (myslím /dev/bus/usb)???

honzaS odpověděl -

Máte pravdu, normální user na toto nebude mít dostatečné oprávnění. V tom případě se musí tento příkaz vložit do souboru /etc/init.d/boot.local

JirkaZ odpověděl -

tady - je to ono? Vyzkouším...

Fakt nechápu, proč se u distribucí určených BFU musí snad donekonečna vyskytovat takovéto čuňárny... BFU prostě zjistí, že mu nejde scanner a tím to pro něj končí, navíc začne Linux pomlouvat. Příčina je přitom (přinejmenším v tomto případě) v odfláknuté práci vývojářů.