Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Hardware-hard image-camediac-220

Olympus Camedia C220

Olympus Camedia C220
Rédaction anglaise : Peter Jodda Traduction française : Daniel Cartron
Comment appliquer une rustine à votre module USB-storage pour pouvoir utiliser un Camedia C220 Olympus avec Linux

Utilisation du Camedia C220 avec Linux

Le dernier appareil numérique que j'ai acheté est l'Olympus Camedia C220. Il pose quelqques problèmes lors de l'utilisation sous Linux. Je décris ici une solution possible.

Thomas M. de Berlin a écrit : Bei meiner Olympus D-100 (manchmal auch "C-1" oder "c-you" gennant) funktionierte es auch wie beschrieben. Pour les non-germanophones : Cette rustine devrait marcher également pour l' Olympus D-100 appelé aussi C-1.

J'ai aussi entendu dire que le C220 semble vendu dans d'autres pays sous le nom de D520. Fichier:C220.jpg

L'appareil possède une connexion USB et devrait donc fonctionner comme un periphérique de stockage USB. Donc vous branchez le cable USB d'un côté sur l'ordinateur et de l'autre sur l'appareil et.... BOOM . Au bout de 5 secondes la machine plante. Vous n'avez plus qu'à appuyer sur le bouton reset. Des types futés ont analysé le problème et constaté que l'appareil n'envoie pas de chaîne d'identification USBS, mais une chaîne USBU. Ce USBU perturbe le module USB-storage du noyau, et l'ordinateur plante.

Si l'appareil est votre seul périphérique USB-storage, alors il y a un moyen facile de le faire fonctionner : faire en sorte que le module réagisse à la chaîne USBU au lieu de USBS. Alors vous aures accès à votre appareil mais à aucun autre périphérique USB-storage.

Voici comment faire : une solution propre consiste à changer la chaîne dans les sources du module, et le recompiler. Mais vous avez besoin des sources, et des fichiers d'en-tête. Vous devez savoir quel fichier modifier. Et vous devez savoir compiler et installer les sources du noyau. Si vous n'êtes pas expérimentés vous risquez de passer un week-end là-dessus.

Il y a mieux à faire pendant un week-end. Voici donc une méthode plus pragmatique (et brutale) : appliquer une rustine au module existant. Ok, il faut aussi compiler, mais il y a juste 30 lignes.

ATTENTION
Faites ce qui suit à vos risques. ça a marché sur ma machine, mais ça pourrait ne pas marcher sur la vôtre. Faites une sauvegarde de vos données avant tout!

étape 1 - Téléchargement de la rustine

Téléchargez ce petit programme

#include "stdio.h"

// buffer, must be large enough
#define BUFFER_SIZE 0x100000
char buffer[BUFFER_SIZE];


int main(int argc , char *argv[])
{
int i;
int i_Read ;
int i_Written ;
FILE *in,*out;

in = fopen("usb-storage.o","rb");
i_Read = fread(buffer,1,BUFFER_SIZE,in);
fclose(in);

fprintf(stderr,"Read %d Bytes\n",i_Read);

for(i=0; i< (i_Read -3); i++)
{
if(
buffer[i ] == 'U'
&& buffer[i+1] == 'S'
&& buffer[i+2] == 'B'
&& buffer[i+3] == 'S'
)
{
fprintf(stderr,"found at %d\n",i);
buffer[i+3] = 'U';
}
}

out = fopen("usb-storagex.o","wb");
i_Written = fwrite(buffer,1,i_Read,out);
fclose(out);

fprintf(stderr,"Wrote %d Bytes\n",i_Written);

}

Compilez-le en tapant

make usbp

et vous obtenez un programme nomé usbp. C">

étape 2 - Détermination de la localisation des modules

Tapez :

insmod usb-storage

et l'ancien module est chargé, ce qui a pour effet secondaire d'afficher la localisation des modules. Sur ma machine cela donne :
/lib/modules/2.4.18-64GB-SMP/kernel/drivers/usb/storage/usb-storage.o

donc la localisation est :
/lib/modules/2.4.18-64GB-SMP/kernel/drivers/usb/storage/

Copiez le programme usbp dans ce répertoire et allez-y :

cp usbp /lib/modules/2.4.18-64GB-SMP/kernel/drivers/usb/storage/
cd /lib/modules/2.4.18-64GB-SMP/kernel/drivers/usb/storage/

étape 3 - Appliquer la rustine au module

Lancez le programme en tapant :

usbp

Le programme crée une copie modifiée de l'original. Un affichage typique donne :

Read 61670 Bytes
found at 7775
found at 26381
Wrote 61670 Bytes

à cet instant précis le système utilise encore l'ancien module. Renommez l'ancien module et le module modifié de façon à ce que le système utilise celui qui vous intéresse. Tapez :

rmmod usb-storage
mv usb-storage.o usb-storage-original.o
mv sub-storagex.o usb-storage.o

Vous avez sauvegardé le module original et activé le nouveau. Si Windows est installé sur votre machine vous devez redémarrer celle-ci.

étape 4 - Utilisation de l'appareil

Maintenant connectez l'appareil à votre ordinateur avec votre cable USB. Dans la console vous verrez apparaître un message comme celui-ci :

Jul 14 12:31:03 hawaii kernel: usb.c: USB device 2 (vend/prod 0x7b4/0x102) is not claimed by any active driver.
Jul 14 12:31:04 hawaii kernel: usb-uhci.c: interrupt, status 3, frame# 107
Jul 14 12:31:04 hawaii kernel: Vendor: OLYMPUS Model: C2Z,D520Z,C220Z Rev: 1054
Jul 14 12:31:04 hawaii kernel: Type: Direct-Access ANSI SCSI revision: 02
Jul 14 12:31:04 hawaii kernel: Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
Jul 14 12:31:04 hawaii kernel: SCSI device sda: 256000 512-byte hdwr sectors (131 MB)
Jul 14 12:31:04 hawaii kernel: sda: Write Protect is off

Vous devez ensuite monter le périphérique pour avoir accès aux photos. J'ai créé un répertoire /olympus :

mkdir /olympus

puis j'ai monté l'appareil avec :
mount /dev/sda1 /olympus

Allez ensuite dans le répertoire :

cd /olympus

puis entrez le chemin spécifique de l'Olympus :
cd dcim/100olymp

et vous êtes dans le répertoire contenant les images. Vous pouvez les regarder, les copier, faire tout ce que vous voulez avec.

Quand vous avez fini quittez le répertoire et démontez l'appareil :

cd ; umount /olympus

Si ça ne marche pas

Ce que j'ai écrit est la façon dont je l'ai fait et comment ça a marché sur ma machine. Comme vous devez effectuer tout ceci en tant que root il est possible que vous ayez endomagé votre système. Sur d'autres systèmes ces étapes pourraient ne pas fonctionner. Si ça ne fonctionne pas je ne peux pas vous aider, parce que je ne connais pas votre système, ou ce qui pourait être différent dessus. Donc tout ce que vous faites est à vos propres risques!

J'ai constaté autre chose: le module USB-storage et la connexion ADSL avec pppoe ne fonctionnent pas simultanément sur mon système. Je peux soit aller sur internet, soit accéder à mon appareil, mais pas les deux en même temps.



@ Retour à la rubrique Matériel

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Daniel Cartron le 24/06/2003.

Copyright

Copyright © 24/06/2003, Daniel Cartron

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike iconCreative Commons Noncommercial
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique, Contexte non commercial 2.0 :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
Affichages

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons CC-BY-SA