
Ho finalmente risolto i miei problemi di cd-eject con un masterizzatore scsi..che con k3b propio non ne voleva sapere di uscire,terminata la masterizzazione.
E’ un problema ben noto della versione 1.0.1(ultima release)
Purtroppo bisogna avere i sorgenti per compilare k3b,perche’ bisogna modificare una piccola porzione di codice,che interessa il file
./libk3bdevice/k3bdevice.cpp
Senza questa modifica,e’ possibile comunque ejettare il cd/dvd-rom forzandolo da terminale col comando “eject”
1° variante
sudo eject /dev/x
dove x corrisponde al device (scd0,sr0…)
2° variante
sudo eject -m /dev/x
dove -m e’ l’opzione per forzare l’espulsione anche a device “busy” ovvero “occupato”
PREMESSA:la modifica che faremo..probabilmente sara’ inutile,perche’ nella prossima versione di k3b..Sebastian potrebbe avere risolto questo piccolo “bug”..
Per sistemare definitivamente questo problema,procuriamoci i sorgenti di k3b
Dal momento che stiamo installando la stessa versione che abbiamo installato dai repository..il binario di k3b (usr/bin/k3b) verra’ semplicemente sovrascritto..quindi non e’ necessario compilare anche gli altri files che trovate sul sito:
K3b 1.0.1 (KDE 3.2)
* K3b 1.0.1 sources
* K3b internationalization (i18n) sources for K3b 1.0.1
* K3b Monkey’s Audio Encoder and Decoder plugin 3.1 for K3b >= 0.12
..a meno che non abbiate una versione diversa da 1.0.1..
Scompattiamo k3b e spostiamoci nella directory:
libk3bdevice
Apriamo il file:
k3bdevice.cpp
Consiglio kate o kwrite..o comunque un editor dove sia possibile visualizzare i numeri di riga..altrimenti diventa lunga la faccenda..
quindi da kate–visualizza–mostra i numeri di riga(o premete F11) e spostiamoci alla riga 1571.
La patch e’ la seguente:
— ./libk3bdevice/k3bdevice.cpp
+++ ./libk3bdevice/k3bdevice.cpp
@@ -1571,7 +1571,7 @@
}
if ( success )
return success;
-#endif
+#else
ScsiCommand cmd( this );
cmd[0] = MMC_PREVENT_ALLOW_MEDIUM_REMOVAL;
@@ -1586,6 +1586,7 @@
cmd[4] = 0×2; // LoEj = 1, Start = 0
return !cmd.transport();
+#endif
}
Risparmiandovi l’interpretazione,le uniche 2 cose da modificare sono:
1- togliere endif e mettere al suo posto else
}
if ( success )
return success;
#else
2- alla riga 1586,aggiungere la chiusura condizione endif
cmd[4] = 0×2; // LoEj = 1, Start = 0
return !cmd.transport();
#endif
Il codice corretto sarebbe:
if ( success )
return success;
#else
ScsiCommand cmd( this );
cmd[0] = MMC_PREVENT_ALLOW_MEDIUM_REMOVAL;
cmd[5] = 0; // Necessary to set the proper command length
cmd.transport();
cmd[0] = MMC_START_STOP_UNIT;
cmd[5] = 0; // Necessary to set the proper command length
cmd[4] = 0×1; // Start unit
cmd.transport();
cmd[4] = 0×2; // LoEj = 1, Start = 0
return !cmd.transport();
#endif
}
Salviamo e procediamo con la normale compilazione,dalla directory superiore:
./configure
sudo make
sudo make install
K3b patchato.. si potrebbe anche pacchettizzare in .deb.. cosi’ da rendere piu’ semplice la vita agli utenti.Se qualcuno lo volesse fare saro’ ben lieto di ospitare il link.
Un altro fastidiosissimo inconveniente..che non c’entra con k3b..e’ il pulsante di espulsione del cd-rom..che a molti non funziona.(lock on mount)
Qui non c’e’ nulla da compilare..controlliamo solo che il file /etc/sysctl.conf abbia la seguente riga
dev.cdrom.lock=0
Se cosi’ non fosse,aggiungiamola..
Per sicurezza,impostiamo la stessa opzione per il file:
sudo echo 0 > /proc/sys/dev/cdrom/lock
_________________________________________________________
Per quanto riguarda i problemi dei permessi invece,ricordo che e’ possibile fare tutto dal k3bsetup
kdesu kcmshell k3bsetup2 --lang it
Il tuo indirizzo ip:
38.107.179.234






on
on
on
L’informazione è buona per chi ha questo problema ma chi ti ha insegnato ad applicare così le patch?
Non è più semplice e sicuro usare il comando patch (che è fatto apposta)?
MaramaxQuota
@Maramax
si in teoria bastava incollare la patch cosi’ come era in un txt e poi applicarla..:-)
dal momento che la modifica era minima..ho fatto a mano..
divilinuQuota