tiistaina 20. toukokuuta 2008

Linux ja Canon Powershot A95

Valokuvien hallintaan käytössäni on parhaillaan Kubuntu 8.04 ja Canon Powershot A95. Käytän Powershotin lisäksi paljon Nokia N95:n kameraa, mutta siitä kuvien siirto titokoneelle on vaivatonta. -Puhelin näkyy Linuxissa massamuistina josta on helppo kopioida kuvat koneelle.

A95 on toista maata. Se käyttää alkujaan Microsoftin luomaa(?) PTP-protokollaa USB:n yli. Sinällään protokolla ei ole ongelma, koska libgphoto2:ssa on sille hyvä tuki. Ongelma tulee (käsittääkseni) siinä että user modessa pyörivän ohjelman tulee toteuttaa viestintäprotokolla suoraan USB-deviceä vastaan. Ja tässä tapauksessa käyttäjällä ei ollut tarvittavia käyttöoikeuksia devicen lukemiseen ja kirjoittamiseen.

Google-session jäljiljtä olin useaa luettua bugiraporttia viisaampi. Lukemani bugiraportit olivat vanhoja, joten yllättävää että ongelma on edelleen olemassa.

Mikään seuraavista ohjelmista ei saanut kamerasta mitään ulos:
  • Dolphin
  • DigiKam
  • gphotofs
  • gphoto2
  • gthumb.

Gphoto2:n virheilmoituksesta sai eniten irti:

*** Error ***
An error occurred in the io-library ('Could not claim the USB device'): Could not claim interface 0 (Operation not permitted). Make sure no other program or kernel module (such as sdc2xx, stv680, spca50x) is using the device and you have read/write access to the device.
*** Error (-53: 'Could not claim the USB device') ***



Laite oli kuitenkin nähtävissä USB-väylän listauksissa:


20080520-photo% lsusb
Bus 003 Device 010: ID 04a9:30bb Canon, Inc. PowerShot A95
Bus 003 Device 001: ID 1d6b:0001
Bus 001 Device 001: ID 1d6b:0001
Bus 002 Device 001: ID 1d6b:0002


Lopulta löysin ohjeet mitä soveltamalla omaan kameraani sain kuvat siirtymään. Kyse on udev:n konfiguraatioista jotka eivät antaneet tarpeeksi oikeuksia laitteen kanssa kommunikoimiseksi.

lsusb:n outputista näkee kameran vendor ja device id:n 04a9:30bb. Tarvittiin tiedosto jota ei ollut olemassa (/etc/udev/rules.d/45-libgphoto2.rules) jonne syötettiin seuraavaa:


SYSFS{idVendor}=="04a9", SYSFS{idProduct}=="30bb", MODE="0660", GROUP="plugdev"



Tämän jälkeen sammuta kamera, irroita se koneesta ja suorita:


/etc/init.d/udev restart


Kamera päälle ja kiinni koneeseen, jonka jälkeen kaikki edellä mainitut ohjelmat toimivat kuten niiden odottaisi toimivan.

sunnuntaina 4. toukokuuta 2008

Kubuntu 8.04, VMWare server 1.0.5 ja Linux 2.6.25.1

Päivitys Kubuntu 7.10 -> 8.04 ja viimeisin kerneli 2.6.25.1.

Kyllä ne näemmä saa toimimaan keskenään VMWare server 1.0.5:n kanssa. Oli pakko. :)

Aiempien postien ohjeilla Linux 2.6.25.1 asentuu ongelmitta ja verkkokorttikin toimii suoraan.

Tämän jälkeen on toki VMWaren kernelimodulit käännettävä uudestaan. Tämä tulee epäonnistumaan, koska aiemmin on joutunut epämääräisillä pätseillä päivittämään VMWarea jotta se toimisi yhteen Ubuntu-variantin kanssa. No enään nämä ei käänny laisin.

Googletuksen lopputulemana seuraavat linkit osottautuivat arvokkaaksi joilla homma luonnistuu:

Huomaa:
  • Asenna VMWare server uusiksi jotta aiemmat pätsit vmmon ja vmnet ajureihin katoavat.
  • Pätsää ja paketoi em. ajurit ohjeiden mukaan uudelleen
  • Aja vmware-config.pl ja tällä kertaa ajurien buildaus onnistuu.

Tämän jälkeen vmware-server-console ei toiminut, mutta siirtelemällä dynaamiset kirjastot (libpng ja libgcc_s) oikeaan paikkaan homma lähti toimimaan:


GCC kirjastoa varten asensin GCC 3.4 paketin koneelle, mutten tiedä onko tuo vaadittu.