KDE kio slave sysinfo di SUSE su slackware-current
Moderatore: Staff
Regole del forum
1) Citare l'eventuale nome e link dell'articolo della wiki.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare l'eventuale nome e link dell'articolo della wiki.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- gianco
- Linux 1.x
- Messaggi: 172
- Iscritto il: mar 31 ott 2006, 8:01
- Nome Cognome: Giancarlo
- Slackware: current
- Kernel: 2.6.33.4-smp
- Desktop: kde 4.4.5
- Località: Pavia
KDE kio slave sysinfo di SUSE su slackware-current
Come da topic, nuovo articolo in wikislacky, sezione scritti misti.
Ciao a tutti.
Ciao a tutti.
Uppete!
Sto provando la versione kio-sysinfo 1.8.2 con hwinfo 13.41 opportunamente patchato.
Configurazione e compilazione vanno a buon fine, ma il kio crasha inesorabilmente con messaggio
Qualcuno ha altre esperienze?
Sto provando la versione kio-sysinfo 1.8.2 con hwinfo 13.41 opportunamente patchato.
Configurazione e compilazione vanno a buon fine, ma il kio crasha inesorabilmente con messaggio
Codice: Seleziona tutto
kio_file: *** Starting kio_sysinfo
kio_sysinfo: (/org/freedesktop/Hal/devices/volume_uuid_257e9c8a_9f10_47d4_8529_e48878d74ec1,sda3,38G Media,,true,/dev/sda3,,reiserfs,false,,media/hdd_unmounted,,---,/org/freedesktop/Hal/devices/volume_uuid_6C1095B7109588AA,sda2,37G Media,,true,/dev/sda2,/win-xp,ntfs,true,,media/hdd_mounted,,---,/org/freedesktop/Hal/devices/volume_uuid_A03C986E3C9840E8,sda1,84G Media,,true,/dev/sda1,/win-vista,ntfs,true,,media/hdd_mounted,,---)
process 1150: arguments to dbus_move_error() were incorrect, assertion "(dest) == NULL || !dbus_error_is_set ((dest))" failed in file dbus-errors.c line 254.
This is normally a bug in some application using the D-Bus library.
D-Bus not built with -rdynamic so unable to print a backtrace
kioslave: ####### CRASH ###### protocol = kio_sysinfo pid = 1150 signal = 6
no, non ho floppy.
Ho provato anche a debuggare un po', ma non ci sono venuto a capo. Il crash avviene nella funzione fillMediaDevices, ma non riesco a capire quando neanche mettendo milioni di kdebug In più utilizzando qdbusviewver ho capito il funzionamento dello script e tutto fila liscio se lo faccio a mano.
Altre idee?
Ho provato anche a debuggare un po', ma non ci sono venuto a capo. Il crash avviene nella funzione fillMediaDevices, ma non riesco a capire quando neanche mettendo milioni di kdebug In più utilizzando qdbusviewver ho capito il funzionamento dello script e tutto fila liscio se lo faccio a mano.
Altre idee?
- gianco
- Linux 1.x
- Messaggi: 172
- Iscritto il: mar 31 ott 2006, 8:01
- Nome Cognome: Giancarlo
- Slackware: current
- Kernel: 2.6.33.4-smp
- Desktop: kde 4.4.5
- Località: Pavia
Mi posti l'output di "dcop kded mediamanager fullList" ?
Prova a ricompilare sostituendo nella fill media manager
con
E' un abbozzo di soluzione, ovviamente, ma se ti funziona trovo conferma delle mie supposizioni e posso postare anche il perchè del crash.
Prova a ricompilare sostituendo nella fill media manager
Codice: Seleziona tutto
if (m_halContext && di.id.startsWith("/org/freedesktop/Hal/" ) )
Codice: Seleziona tutto
if (m_halContext && di.id.startsWith("/org/freedesktop/Hal/devices/volume" ) )
Dunque, appena ti ho risposto mi sono rimesso a ridebuggare.
In pratica l'errore avviene quando riempie m_info, subito dopo il ciclo dei devices. linee 810 più o meno.
Lì mi sa che avviene un qualche errore che, senza una chiamata a dbus_error_init(&error), viene ripassato alla funzone di dopo, che quindi va in crash. Oppure in altre parole. Se metto dbus_error_init(&error) tra ogni m_info[qualcosa] = libhal_device_... allora non crasha più.
In più non riesco a trovare come prendere quelle informazioni (smbios.system.product) da qdbusviewer, cosa che mi lascia più che perplesso e mi fa sperare che il tutto possa risolversi da qui!!
In pratica l'errore avviene quando riempie m_info, subito dopo il ciclo dei devices. linee 810 più o meno.
Lì mi sa che avviene un qualche errore che, senza una chiamata a dbus_error_init(&error), viene ripassato alla funzone di dopo, che quindi va in crash. Oppure in altre parole. Se metto dbus_error_init(&error) tra ogni m_info[qualcosa] = libhal_device_... allora non crasha più.
In più non riesco a trovare come prendere quelle informazioni (smbios.system.product) da qdbusviewer, cosa che mi lascia più che perplesso e mi fa sperare che il tutto possa risolversi da qui!!
- gianco
- Linux 1.x
- Messaggi: 172
- Iscritto il: mar 31 ott 2006, 8:01
- Nome Cognome: Giancarlo
- Slackware: current
- Kernel: 2.6.33.4-smp
- Desktop: kde 4.4.5
- Località: Pavia
A me funziona. Praticamente se faccio
mi viene fuori
Come vedi, il floppy è smontato, Ma nella FillMediaManager
Quando HAL prova a leggere i dati del floppy (ma credo in generale di un device smontato, ma che nel programma ha mounted="true") allora c'è il crash.
[EDIT]
Questa affermazione è, purtroppo per me, sbagliata. ( *++it == "true" ) assegna vero (booleano) se il campo *++it (stringa) è uguale a true e falso (booleano) altrimenti. Andando di fretta e di copia/incolla non avevo visto che gli uguali erano due, sorry.
[/EDIT]
Io ho bypassato il check del floppy da parte di HAL modificando il test di entrata nel ciclo, in modo da escluderlo. E' un tapullo temporaneo, devo vedere bene cosa succede con altri device...così becca sicuro gli HD e non so che altro.
Purtroppo trogliere l'assegnazione a true a di.mounted non funziona, ho già provato, non viene rilevato nessun disco. Ti faccio sapere, ora però vado a lavorare, non posso rimettermici prima di stasera.
Codice: Seleziona tutto
dcop kded mediamanager fullList
Codice: Seleziona tutto
/org/freedesktop/Hal/devices/volume_uuid_c614b883_acac_498f_8ab2_30975e9a45b2
sda3
Dispositivo 155G
true
/dev/sda3
/home
ext3
true
media/hdd_mounted
---
/org/freedesktop/Hal/devices/volume_uuid_ea59dbde_b2f0_4435_b740_a2232c8d6e3d
sda2
Dispositivo 81G
true
/dev/sda2
ext3
false
media/hdd_unmounted
---
/org/freedesktop/Hal/devices/volume_uuid_342811C128118352
sda1
Dispositivo 81G
true
/dev/sda1
/mnt/winxp
ntfs
true
media/hdd_mounted
---
/org/freedesktop/Hal/devices/platform_floppy_0_storage
0
true
/dev/floppy/0
false
media/floppy_unmounted
Codice: Seleziona tutto
di.mounted = ( *++it == "true" ); // bool
[EDIT]
Questa affermazione è, purtroppo per me, sbagliata. ( *++it == "true" ) assegna vero (booleano) se il campo *++it (stringa) è uguale a true e falso (booleano) altrimenti. Andando di fretta e di copia/incolla non avevo visto che gli uguali erano due, sorry.
[/EDIT]
Io ho bypassato il check del floppy da parte di HAL modificando il test di entrata nel ciclo, in modo da escluderlo. E' un tapullo temporaneo, devo vedere bene cosa succede con altri device...così becca sicuro gli HD e non so che altro.
Purtroppo trogliere l'assegnazione a true a di.mounted non funziona, ho già provato, non viene rilevato nessun disco. Ti faccio sapere, ora però vado a lavorare, non posso rimettermici prima di stasera.
Ultima modifica di gianco il ven 7 set 2007, 15:00, modificato 2 volte in totale.
- gianco
- Linux 1.x
- Messaggi: 172
- Iscritto il: mar 31 ott 2006, 8:01
- Nome Cognome: Giancarlo
- Slackware: current
- Kernel: 2.6.33.4-smp
- Desktop: kde 4.4.5
- Località: Pavia
Provata la tua soluzione qui al lavoro , e devo dire che funziona anche la tua (non avevo dubbi).
Resta da vedere (ma indagherò per conto mio ) perchè la mia funziona (cioè bypassare il check del floppy), la tua è sicuramente più valida, perchè non altera il comportamento dell'originale.
Resta inoltre da sotituire la stringa "lsb-release" con "slackware-version" (sed fa al caso nostro) e cambiare leggermente il codice
per assegnare i valori giusti alle stringhe, poi dovremmo esserci. Inoltre non funziona il network status, (ma mi sembra che non funzioni a nessuno, negli screenshot su kde-apps non lo vedo). A me
restituisce sempre 1 che nel sorgente è pari a "Network Unreachable", cosa ovviamente non vera, ma potrebbe trattarsi del fatto che non ho ip pubblico.
Resta da vedere (ma indagherò per conto mio ) perchè la mia funziona (cioè bypassare il check del floppy), la tua è sicuramente più valida, perchè non altera il comportamento dell'originale.
Resta inoltre da sotituire la stringa "lsb-release" con "slackware-version" (sed fa al caso nostro) e cambiare leggermente il codice
Codice: Seleziona tutto
m_info[ OS_SYSTEM ] = readFromFile( "/etc/lsb-release", "DISTRIB_DESCRIPTION", "=" );
m_info[ OS_VERSION ] = readFromFile( "/etc/lsb-release", "DISTRIB_CODENAME", "=" );
Codice: Seleziona tutto
dcop kded networkstatus status www.google.com
per quello io ho forzato in questo modo un po' penosinogianco ha scritto:Resta inoltre da sotituire la stringa "lsb-release" con "slackware-version" (sed fa al caso nostro) e cambiare leggermente il codiceper assegnare i valori giusti alle stringhe, poi dovremmo esserci.Codice: Seleziona tutto
m_info[ OS_SYSTEM ] = readFromFile( "/etc/lsb-release", "DISTRIB_DESCRIPTION", "=" ); m_info[ OS_VERSION ] = readFromFile( "/etc/lsb-release", "DISTRIB_CODENAME", "=" );
Codice: Seleziona tutto
if((fp =fopen ("/etc/slackware-version", "r"))==NULL)
m_info[ OS_SYSTEM ] = readFromFile( "/etc/issue" );
else
{ fclose(fp);
m_info[ OS_SYSTEM ] = "Slackware";//readFromFile( "/etc/slackware-version", "DISTRIB_DESCRIPTION", "=" );
m_info[ OS_VERSION ] = readFromFile( "/etc/slackware-version", m_info[ OS_SYSTEM ], " " );
}
- gianco
- Linux 1.x
- Messaggi: 172
- Iscritto il: mar 31 ott 2006, 8:01
- Nome Cognome: Giancarlo
- Slackware: current
- Kernel: 2.6.33.4-smp
- Desktop: kde 4.4.5
- Località: Pavia
Io ho messodapuzz ha scritto: per quello io ho forzato in questo modo un po' penosinoCodice: Seleziona tutto
if((fp =fopen ("/etc/slackware-version", "r"))==NULL) m_info[ OS_SYSTEM ] = readFromFile( "/etc/issue" ); else { fclose(fp); m_info[ OS_SYSTEM ] = "Slackware";//readFromFile( "/etc/slackware-version", "DISTRIB_DESCRIPTION", "=" ); m_info[ OS_VERSION ] = readFromFile( "/etc/slackware-version", m_info[ OS_SYSTEM ], " " ); }
Codice: Seleziona tutto
if((fp =fopen ("/etc/lsb-release", "r"))==NULL)
m_info[ OS_SYSTEM ] = readFromFile( "/etc/slackware-version" );
else
{
...
}
A casa, dove invece ho il floppy, funziona la mia patch e vedo la sezione relativa alla scheda madre, quindi la reinizializzazione dell'errore "dovrebbe" essere superflua, ma non mi spiego perchè togliendo il floppy dal ciclo mi va tutto . Stasera provo a mettere la tua patch insieme alla mia e ti faccio sapere...
- gianco
- Linux 1.x
- Messaggi: 172
- Iscritto il: mar 31 ott 2006, 8:01
- Nome Cognome: Giancarlo
- Slackware: current
- Kernel: 2.6.33.4-smp
- Desktop: kde 4.4.5
- Località: Pavia
Allora: solo la tua patch sul mio desktop non funziona, c'è bisogno anche della mia ti posto il pezzo della fillMediaDevice() modificato e che sul mio desktop funziona:
provalo magari anche sul tuo...
Codice: Seleziona tutto
if (m_halContext && di.id.startsWith("/org/freedesktop/Hal/devices/volume" ) )
{
dbus_error_init(&error);
di.total = libhal_device_get_property_uint64(m_halContext, di.id.latin1(), "volume.size", &error);
if (dbus_error_is_set(&error))
di.total = 0;
}
di.model = libhal_device_get_property_string( m_halContext, di.id.latin1( ), "block.storage_device", &error );
di.model = libhal_device_get_property_string( m_halContext, di.model.latin1( ), "storage.model", &error );
++it; // skip separator
m_devices.append( di );
}
m_info[PRODUCT ] = libhal_device_get_property_string( m_halContext, "/org/freedesktop/Hal/devices/computer", "smbios.system.product", &error );
dbus_error_init(&error);
m_info[MANUFACTURER ] = libhal_device_get_property_string( m_halContext, "/org/freedesktop/Hal/devices/computer", "smbios.system.manufacturer", &error );
dbus_error_init(&error);
m_info[TYPE] = libhal_device_get_property_string( m_halContext, "/org/freedesktop/Hal/devices/computer", "smbios.chassis.type", &error );
dbus_error_init(&error);
m_info[BIOSVENDOR] = libhal_device_get_property_string( m_halContext, "/org/freedesktop/Hal/devices/computer", "smbios.bios.vendor", &error );
dbus_error_init(&error);
m_info[BIOSVERSION] = libhal_device_get_property_string( m_halContext, "/org/freedesktop/Hal/devices/computer", "smbios.bios.version", &error );
dbus_error_init(&error);
libhal_ctx_free(m_halContext);
return true;
- gianco
- Linux 1.x
- Messaggi: 172
- Iscritto il: mar 31 ott 2006, 8:01
- Nome Cognome: Giancarlo
- Slackware: current
- Kernel: 2.6.33.4-smp
- Desktop: kde 4.4.5
- Località: Pavia
Penso che per il momento si potrebbe fare un pacchetto e farlo testare ad altri utenti, dal momento che i "fix" sembrano essere molto dipendenti dai PC su cui sono stati scritti, oppure al max fare una patch che faccia andare il tutto su slackware.dapuzz ha scritto:si potrebbe avvisare l'autrice per far fare una nuova versione revisionata e corretta... ho provato a contattarla, ma non so se non abbia scritto lei il kio, o se se ne sia completamente scordata!
Ma l'autore è una donna? Su kde-apps è Alberto Jerrad (forse ti riferisci a quello originale di SUSE?).
Ciao tutti,
Perdonilo, ma non parlo italiano e sto usando Babelfish per tradurrmi questo messaggio per. Spero che questo alberino sia tradotto bene, prego non prenda alcun'offesa se non è.
Chiunque qui infine è riuscito a convincere kio-sysinfo-1.8.2 per funzionare senza arrestarsi su Slackware-12 ancora? Infine lo ho convinto per compilare ieri, ma non appena lo apro si arresta e non posso calcolare fuori perchè. Sapete di un pacchetto di Slackware per kio-sysinfo-1.8.2 dovunque?
Abbia un buon giorno!
LocoMojo
Perdonilo, ma non parlo italiano e sto usando Babelfish per tradurrmi questo messaggio per. Spero che questo alberino sia tradotto bene, prego non prenda alcun'offesa se non è.
Chiunque qui infine è riuscito a convincere kio-sysinfo-1.8.2 per funzionare senza arrestarsi su Slackware-12 ancora? Infine lo ho convinto per compilare ieri, ma non appena lo apro si arresta e non posso calcolare fuori perchè. Sapete di un pacchetto di Slackware per kio-sysinfo-1.8.2 dovunque?
Abbia un buon giorno!
LocoMojo
- wesbluemarine
- Linux 0.x
- Messaggi: 96
- Iscritto il: mer 12 set 2007, 8:57
- Località: Lucca