Archives de l’auteur : MrTAZ

LV0 Keys for PS3

LV0 keys:

ERK = CA7A24EC38BDB45B98CCD7D363EA2AF0C326E65081E0630CB9 AB2D215865878A

RIV = F9205F46F6021697E670F13DFA726212

PUBLIC = A8FD6DB24532D094EFA08CB41C9A72287D905C6B27B42BE4AB 925AAF4AFFF34D41EEB54DD128700D

PRIVATE = 001AD976FCDE86F5B8FF3E63EF3A7F94E861975BA3

CURVE_TYPE = 0×33

Ricoh / Microvision HP Webcam 1000 (r5u870) drivers Windows 7 x64

Et non, je ne suis pas mort!!!

Bref, j’ai trouvé comment faire fonctionner la webcam de mon vieux portable alors qu’il n’existe pas de drivers pour celle-ci!
Enfin… Presque!

C’est un chip Ricoh anciennement Microvision r5u870 dont le firmware est configuré pour fonctionner en WDM. (VID 05CA PID 1870)
Bref, après des heures de recherche pour un driver x64 spécifique à ce mode de fonctionnement, j’ai fini par trouvé une bidouille…
Il existe un programme pour flasher la caméra avec un autre firmware, plus précisement le firmware de la webcam « HP Pavilion Webcam » VID 05CA PID 1810 qui fonctionne elle en UVC.
Et il existe bien-sur le driver x64 !!!
Je vous fournis donc le driver en question (Provenant de chez HP).
sp36409

Pour changer le firmware de la webcam il suffit de lancer dans le répertoire \swsetup\SP36409\WCAMR SW32.exe ou SW64.exe en Administrateur.
Redémarrer la machine, la webcam a maintenant le PID 1810 et il reste à installer le driver dans le répertoire \swsetup\SP36409\WCAMR\driver

Et voilà, ça marche!!!

Et en plus, je pense que le drivers Ubuntu/Linux doit mieux fonctionner, à vérifier!
J’ai donc, vérifié, fonctionne sous Ubuntu avec https://launchpad.net/~r5u87x-loader/+archive/ppa
Et après Ubuntu, vérifier sans drivers sous Windows 7, le drivers uvc video generic, tout fonctionne! Bref, que du bonheur!

Nan, en fait, après redémarrage, la webcam ne fonctionne plus avec le drivers generic.
Je vais voir si y a pas moyen de flasher en dur le firmware qui va bien et ensuite faire un patch windows pour ne pas avoir besoin de drivers.

Pour info, https://bitbucket.org/ahixon/r5u87x/src/881dbd07a263/docs/model_matrix.txt

Patch SLIC pour Seabios.

Yop!

Petit patch pour rajouter une injection direct d’un dump de table SLIC dans la table acpi de la machine virtuelle sans modifier kvm/qemu.
Ça copie aussi oem_id et oem_table_id de la table SLIC dans la table RSDT.

Voici le diff.

--- acpi.c.orig	2011-12-24 18:03:11.346256959 +0100
+++ acpi.c	2011-12-24 17:58:07.368750605 +0100
@@ -628,6 +628,11 @@

     u16 i, external_tables = qemu_cfg_acpi_additional_tables();

+    #define SLIC_SIGNATURE 0x43494C53 // SLIC
+    #define HACK_SLIC_SIGNATURE 0x43314C35 // HACK SLIC
+    struct acpi_table_header *slic;
+    slic = 0;
+
     for(i = 0; i < external_tables; i++) {
         u16 len = qemu_cfg_next_acpi_table_len();
         void *addr = malloc_high(len);
@@ -635,7 +640,13 @@
             warn_noalloc();
             continue;
         }
-        ACPI_INIT_TABLE(qemu_cfg_next_acpi_table_load(addr, len));
+        struct acpi_table_header *acpi_ext_table;
+        acpi_ext_table = qemu_cfg_next_acpi_table_load(addr, len);
+        if (acpi_ext_table->signature == HACK_SLIC_SIGNATURE) {
+                acpi_ext_table = acpi_ext_table+1;
+                slic = acpi_ext_table;
+        }
+        ACPI_INIT_TABLE(acpi_ext_table);
         if (tbl_idx == MAX_ACPI_TABLES) {
             warn_noalloc();
             break;
@@ -653,7 +664,19 @@
     memset(rsdt, 0, rsdt_len);
     memcpy(rsdt->table_offset_entry, tables, sizeof(u32) * tbl_idx);

-    build_header((void*)rsdt, RSDT_SIGNATURE, rsdt_len, 1);
+    if (slic->signature == SLIC_SIGNATURE){
+        rsdt->signature = RSDT_SIGNATURE;
+        rsdt->length = cpu_to_le32(rsdt_len);
+        rsdt->revision = 1;
+        memcpy(rsdt->oem_id, slic->oem_id, 6);
+        memcpy(rsdt->oem_table_id, slic->oem_table_id, 8);
+        memcpy(rsdt->asl_compiler_id, CONFIG_APPNAME4, 4);
+        rsdt->oem_revision = cpu_to_le32(1);
+        rsdt->asl_compiler_revision = cpu_to_le32(1);
+        rsdt->checksum -= checksum(rsdt, rsdt_len);
+    } else {
+        build_header((void*)rsdt, RSDT_SIGNATURE, rsdt_len, 1);
+    }

     // Build rsdp pointer table
     memset(rsdp, 0, sizeof(*rsdp));

acpi_slic.patch bios.bin


Merci, pour les commentaires.