KDE kio slave sysinfo di SUSE su slackware-current

Usate questo forum per proporre nuovi articoli, creare gruppi di lavoro, segnalare problemi, collaborare in genere al progetto Wikislacky.

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.
Avatar utente
gianco
Linux 1.x
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

Messaggio da gianco »

Come da topic, nuovo articolo in wikislacky, sezione scritti misti.

Ciao a tutti.

Avatar utente
dapuzz
Linux 4.x
Linux 4.x
Messaggi: 1137
Iscritto il: mar 16 mag 2006, 11:09
Contatta:

Messaggio da dapuzz »

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

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
Qualcuno ha altre esperienze?

Avatar utente
gianco
Linux 1.x
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

Messaggio da gianco »

Hai per caso un floppy smontato nel tuo sistema ? Credo di aver trovato la soluzione, fammi sapere...

Avatar utente
dapuzz
Linux 4.x
Linux 4.x
Messaggi: 1137
Iscritto il: mar 16 mag 2006, 11:09
Contatta:

Messaggio da dapuzz »

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 :D In più utilizzando qdbusviewver ho capito il funzionamento dello script e tutto fila liscio se lo faccio a mano.
Altre idee?

Avatar utente
gianco
Linux 1.x
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

Messaggio da gianco »

Mi posti l'output di "dcop kded mediamanager fullList" ?

Prova a ricompilare sostituendo nella fill media manager

Codice: Seleziona tutto

if (m_halContext && di.id.startsWith("/org/freedesktop/Hal/" ) )
con

Codice: Seleziona tutto

if (m_halContext && di.id.startsWith("/org/freedesktop/Hal/devices/volume" ) )
E' un abbozzo di soluzione, ovviamente, ma se ti funziona trovo conferma delle mie supposizioni e posso postare anche il perchè del crash.

Avatar utente
dapuzz
Linux 4.x
Linux 4.x
Messaggi: 1137
Iscritto il: mar 16 mag 2006, 11:09
Contatta:

Messaggio da dapuzz »

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!!

Avatar utente
gianco
Linux 1.x
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

Messaggio da gianco »

A me funziona. Praticamente se faccio

Codice: Seleziona tutto

dcop kded mediamanager fullList
mi viene fuori

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
Come vedi, il floppy è smontato, Ma nella FillMediaManager

Codice: Seleziona tutto

di.mounted = ( *++it == "true" ); // bool
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.
Ultima modifica di gianco il ven 7 set 2007, 15:00, modificato 2 volte in totale.

Avatar utente
gianco
Linux 1.x
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

Messaggio da gianco »

Provata la tua soluzione qui al lavoro :badgrin: :badgrin: :shock: , e devo dire che funziona anche la tua (non avevo dubbi).

Resta da vedere (ma indagherò per conto mio :D ) 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", "=" );
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

Codice: Seleziona tutto

dcop kded networkstatus status www.google.com
restituisce sempre 1 che nel sorgente è pari a "Network Unreachable", cosa ovviamente non vera, ma potrebbe trattarsi del fatto che non ho ip pubblico.

Avatar utente
dapuzz
Linux 4.x
Linux 4.x
Messaggi: 1137
Iscritto il: mar 16 mag 2006, 11:09
Contatta:

Messaggio da dapuzz »

gianco ha scritto: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", "=" );
per assegnare i valori giusti alle stringhe, poi dovremmo esserci.
per quello io ho forzato in questo modo un po' penosino

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 ], " " );
  }

Avatar utente
gianco
Linux 1.x
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

Messaggio da gianco »

dapuzz ha scritto: per quello io ho forzato in questo modo un po' penosino

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 ], " " );
  }
Io ho messo

Codice: Seleziona tutto

if((fp =fopen ("/etc/lsb-release", "r"))==NULL)
        m_info[ OS_SYSTEM ] = readFromFile( "/etc/slackware-version" );
   else
  {      
...
  }
Comunque mi sa che ci troviamo di fronte a due errori diversi: sul mio portatile dove NON ho il floppy la tua patch funge, ma in effetti non vedo poi la sezione relativa alla scheda madre, immagino che questo voglia dire che le chiamate HAL per la scheda madre sul portatile falliscono e la reinizializzazione dell'errore tampona.

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...

Avatar utente
gianco
Linux 1.x
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

Messaggio da gianco »

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:

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;
provalo magari anche sul tuo...

Avatar utente
dapuzz
Linux 4.x
Linux 4.x
Messaggi: 1137
Iscritto il: mar 16 mag 2006, 11:09
Contatta:

Messaggio da dapuzz »

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!

Avatar utente
gianco
Linux 1.x
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

Messaggio da gianco »

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!
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.

Ma l'autore è una donna? Su kde-apps è Alberto Jerrad (forse ti riferisci a quello originale di SUSE?).

LocoMojo
Linux 0.x
Linux 0.x
Messaggi: 1
Iscritto il: sab 27 ott 2007, 16:51

Messaggio da LocoMojo »

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

Avatar utente
wesbluemarine
Linux 0.x
Linux 0.x
Messaggi: 96
Iscritto il: mer 12 set 2007, 8:57
Località: Lucca

Messaggio da wesbluemarine »

beh ho visto che ci sono alcuni pacchetti propri di suse nel repo di slacky....perchè non tenere aggiornato il sysinfo? :)

Rispondi