Ebbene si è stata trovata la soluzione:
La periferica è una Dexatek DK-5702 con ID
04b4:2101 clone della DVBWorld DVB-S 2102 USB2.0 su kubuntu Lucid con kernel 2.6.32-24.
Il problema sta nel file dw2102.c ovvero nel driver, bisogna modificare alcune righe affinchè "riconosca" la 2101 e inizializzi il tuner.
Xgaz ha sintetizzato, corretto e proposto la soluzione in base a delle modifiche da me apportate al codice.
Copia-incollo quanto esposto da xgaz su Sifteam
Le righe di codice dalla 1538 alla 1592 cambiano cosi:
Codice: Seleziona tutto
/* init registers */
switch (dev->descriptor.idProduct) {
case 0xd651:
case USB_PID_TEVII_S650:
dw2104_properties.rc_key_map = ir_codes_tevii_table;
dw2104_properties.rc_key_map_size =
ARRAY_SIZE(ir_codes_tevii_table);
case USB_PID_DW2104:
reset = 1;
dw210x_op_rw(dev, 0xc4, 0x0000, 0, &reset, 1,
DW210X_WRITE_MSG);
/* break omitted intentionally */
case USB_PID_DW3101:
reset = 0;
dw210x_op_rw(dev, 0xbf, 0x0040, 0, &reset, 0,
DW210X_WRITE_MSG);
break;
case 0x2101:
dw210x_op_rw(dev, 0xbc, 0x0030, 0, &reset16[0], 2,
DW210X_READ_MSG);
dw210x_op_rw(dev, 0xba, 0x0000, 0, &reset16[0], 7,
DW210X_READ_MSG);
dw210x_op_rw(dev, 0xba, 0x0000, 0, &reset16[0], 7,
DW210X_READ_MSG);
dw210x_op_rw(dev, 0xb9, 0x0000, 0, &reset16[0], 2,
DW210X_READ_MSG);
case USB_PID_CINERGY_S:
case USB_PID_DW2102:
dw210x_op_rw(dev, 0xbf, 0x0040, 0, &reset, 0,
DW210X_WRITE_MSG);
dw210x_op_rw(dev, 0xb9, 0x0000, 0, &reset16[0], 2,
DW210X_READ_MSG);
/* check STV0299 frontend */
dw210x_op_rw(dev, 0xb5, 0, 0, &reset16[0], 2,
DW210X_READ_MSG);
if ((reset16[0] == 0xa1) || (reset16[0] == 0x80)) {
dw2102_properties.i2c_algo = &dw2102_i2c_algo;
dw2102_properties.adapter->tuner_attach = &dw2102_tuner_attach;
break;
} else {
/* check STV0288 frontend */
reset16[0] = 0xd0;
reset16[1] = 1;
reset16[2] = 0;
dw210x_op_rw(dev, 0xc2, 0, 0, &reset16[0], 3,
DW210X_WRITE_MSG);
dw210x_op_rw(dev, 0xc3, 0xd1, 0, &reset16[0], 3,
DW210X_READ_MSG);
if (reset16[2] == 0x11) {
dw2102_properties.i2c_algo = &dw2102_earda_i2c_algo;
break;
}
}
La patch per risolvere il problema dei possessori della 2101 potrebbe essere perciò questa:
Codice: Seleziona tutto
diff -r 7ea7cc0eaa40 linux/drivers/media/dvb/dvb-usb/dw2102.c
--- a/linux/drivers/media/dvb/dvb-usb/dw2102.c Tue Nov 08 00:03:04 2011 +0200
+++ b/linux/drivers/media/dvb/dvb-usb/dw2102.c Fri Nov 11 21:58:42 2011 +0100
@@ -1552,6 +1552,15 @@
dw210x_op_rw(dev, 0xbf, 0x0040, 0, &reset, 0,
DW210X_WRITE_MSG);
break;
+ case 0x2101:
+ dw210x_op_rw(dev, 0xbc, 0x0030, 0, &reset16[0], 2,
+ DW210X_READ_MSG);
+ dw210x_op_rw(dev, 0xba, 0x0000, 0, &reset16[0], 7,
+ DW210X_READ_MSG);
+ dw210x_op_rw(dev, 0xba, 0x0000, 0, &reset16[0], 7,
+ DW210X_READ_MSG);
+ dw210x_op_rw(dev, 0xb9, 0x0000, 0, &reset16[0], 2,
+ DW210X_READ_MSG);
case USB_PID_CINERGY_S:
case USB_PID_DW2102:
dw210x_op_rw(dev, 0xbf, 0x0040, 0, &reset, 0,
@@ -1579,17 +1588,6 @@
break;
}
}
- case 0x2101:
- dw210x_op_rw(dev, 0xbc, 0x0030, 0, &reset16[0], 2,
- DW210X_READ_MSG);
- dw210x_op_rw(dev, 0xba, 0x0000, 0, &reset16[0], 7,
- DW210X_READ_MSG);
- dw210x_op_rw(dev, 0xba, 0x0000, 0, &reset16[0], 7,
- DW210X_READ_MSG);
- dw210x_op_rw(dev, 0xb9, 0x0000, 0, &reset16[0], 2,
- DW210X_READ_MSG);
- break;
- }
msleep(100);
kfree(p);
Si può salvare in un file di testo e chiamarla, per esempio, dw2101_s2-liplianin.patch
Mettendola nella cartella dei driver s2-liplianin ed entrando nella stessa si può eseguirla con queste operazioni:
e poi ricompilare il tutto...
Fine citazione.
Ho provato la scheda con Kaffeine 1.0 e 0.8.8 viene riconosciuta tranquillamente, funziona anche il telecomando in dotazione che interagisce con il software.
Ciao e grazie a tutti.