Archiv pro měsíc: Listopad 2012

Raspberry Pi

Právě dorazila další Linuxová krabička, nové Raspberry Pi s 512 MB RAM, ještě nemám ani Raspbian na SD kartě, jelikož jsem nečekal, že přijde dva dny po objednání od českého prostředníka britského Farnell, http://www.rothsware.cz/, u kterého je možné zakoupit na dobírku. Už bude dokončený torent s Raspbianem a pak skusím připojit RPi k televizi, k síti, nahradí notebook pro mojí USB časomíru a další. Transmission právě cinklo, jde se na věc…

OpenWRT a SANE

Dnes jsem se pustil do souboje se SANE a all-in-one HP Officejet G55. Tisk je už rozběhaný, ale skenování je občas také třeba. sane-find-scanner tvrdošíjně odmítá cokoliv přiznat, s parametrem -v jsem zjistil, že prohledává /dev/usb/scannerX, jenže moje zařízení se nachází pod /dev/2-1.2, nevím proč, ale nic s tím nenadělám, snad jedině symlink do oněch prohledávaných míst. Pak sice přizná, že něco nalezl, ale neví co. Mezitím jsem já nalezl několikerý překlep v /etc/sane.d/dll.conf. Já mám hplip, takže do souboru připíši na novou řádku hpaio a zkouším scanimage -L, který je nyní naprosto precizní a scanner funguje, přesto že sane-find-scanner stále hlásí, že neví co našel. scanimage -T vše stvrzuje a teď je třeba vypropagovat skener do sítě.

Za tímto účelem musí být jak na straně klienta, tak serveru odkomentovaný řádek net v souboru dll.conf a navíc na straně klienta přidat do backendu net (net.conf) přidat adresu serveru, buďto v podobě hostname, či běžné IP adresy. No a v Ubuntu spustíme jednoduché skenování a jedeme. Na Windows jsem našel povedený program SaneTwain (http://sanetwain.ozuzo.net/).

I own HP OfficeJet G55 which is all-in-one device. My problem is that it’s not situated neither in /dev/lp0 nor /dev/usb or whatever, but in /dev/2-1.2. Since sane-find-scanner seek the scanner in /dev/usb/scannerX, I did:

mkdir /dev/usb

and

 ln -s /dev/2-1.2 /dev/usb/scanner

and also

chmod 666 /dev/usb/scanner

Since then sane-find-scanner find something unrecognzed.

To /etc/sane.d/dll.conf put new row:

hpaio

if you use hplip.

After that scanimage -L and also scanimage -T should work. Then make scanner useable through network you need xinetd configured:

To /etc/xinetd.d/saned put:

service saned
  {
        disable        = no
        socket_type    = stream
        wait           = no
        user           = root
        group          = root
        server         = /usr/sbin/saned
        port           = 6566
        protocol       = tcp
  }

To /etc/services put new row:
sane 6566/tcp #sane port

To /etc/sane.d/saned.conf add new row:
192.168.1.0/24

or another according to your network setup that allowes computers from local network to connect.

In /etc/sane.d/dll.conf let the row with net uncomented both on server and client side. On client side add to net backend /etc/sane.d/net.conf hostname or IP address of server. That should be all. Now find some sane frontend, in Ubuntu default Easy Scan works well, on Windows I use very good SaneTwain (http://sanetwain.ozuzo.net/).

CRON a Suspend

Čas od času si sestavuji offline mapu ČR do telefonu a protože mám v počítači jen 4 GB RAM, musím celou operaci provádět nad pomalým notebookovým diskem. Celá záležitost pak trvá ke třem hodinám a je na snadě ji spustit po půlnoci, kdy mám navíc zrychlenou přípojku do internetu, pro stažení téměř 300 MB zdrojového souboru. Na nedávno rozjetém Openwrt je mimo jiné i CRON, který jsem původně využíval k vypínání rádií, nicméně lze přes něho probudit notebook po síti. Až se ten zapne, jeho CRON zase spustí skript na sestavení mé offline mapy. Ale co s těmi hodinami, kdy počítač běží na volnoběh. Nalezl jsem ideální příkaz na uspání, který nepožadoval práva roota:
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Ten fungoval v dobách, kdy jsem skript spouštěl ručně z příkazové řádky, během chvíle, kdy jsem na počítači nepotřeboval pracovat. Pokud ten samý skript spustím přes CRON, nic se nestane. Na internetu jsem našel několik důvodů, proč tomu tak je. Nejsou podstatné, neboť ani jeden příklad, který měl funkčnost vrátit nakonec nefungoval. Nezbývá než šikovný příkaz nahradit ve skriptu příkazem:
sudo /usr/sbin/pm-suspend

a do /etc/sudoers, možno změnit též příkazem sudo visudo přidat následující:
yourusername pchostname=NOPASSWD:/usr/sbin/pm-suspend

to by mělo dostatečně omezit takto vytvořenou bezpečnostní mezeru (jak vznosný název).