[Risolto] iUnable to handle kernel paging request at virt

Compilazione del kernel, gestione moduli, servizi attivi, e tutti gli interventi per l'ottimizzazione del sistema operativo.
Scrivi risposta
Montanaro
Prode Principiante
Messaggi: 164
Iscrizione: lunedì 16 aprile 2018, 20:56
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

[Risolto] iUnable to handle kernel paging request at virt

Messaggio da Montanaro »

Ragà, killerando una app, mi compare il seguente errore/probelma:

Codice: Seleziona tutto

Unable to handle kernel paging request at virtual address
e l'elaborazione si blocca.

Cosa significa?
Mi pare strano che semplicemente usando un

Codice: Seleziona tutto

killall -9 nomeapp
si possa sputtanare qualcosa
Ultima modifica di trekfan1 il giovedì 22 novembre 2018, 19:49, modificato 2 volte in totale.
Motivazione: Non serve il tutto maiuscolo per il [Risolto], grazie
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2854
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Unable to handle kernel paging request at virtual addres

Messaggio da DoctorStrange »

Per quale motivo per chiudere un applicazione vuoi fare un kill al suo processo? Non puoi semplicemente chiuderla? Che applicazione è?
Montanaro
Prode Principiante
Messaggi: 164
Iscrizione: lunedì 16 aprile 2018, 20:56
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggio da Montanaro »

DoctorStrange [url=https://forum.ubuntu-it.org/viewtopic.php?p=5094159#p5094159][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Per quale motivo per chiudere un applicazione vuoi fare un kill al suo processo? Non puoi semplicemente chiuderla? Che applicazione è?
è un'applicazione QT che legge un IMU esterna.
quando accidentalmente viene distaccata l'IMU, allora il mio script deve sospendere l'applicazione in automatico e riavvarla se rivede il contatto.

pensavo di aver risolto il problema ma invece lo spegnimento dell' app mi crea il messaggio di errore precedente.

ho provato a sostituire la app dell' IMU con qualsiasi altra app (anche semplicemente un'immagine di "hello world ") e il problema permane .
Montanaro
Prode Principiante
Messaggi: 164
Iscrizione: lunedì 16 aprile 2018, 20:56
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggio da Montanaro »

nessuno sa aiutarmi ? :(
Montanaro
Prode Principiante
Messaggi: 164
Iscrizione: lunedì 16 aprile 2018, 20:56
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggio da Montanaro »

riporto l'errore completo:

Codice: Seleziona tutto

il flag quando si ?è in else vale 1 
Killed 
Unable to handle kernel paging request at virtual address 0000e1e6 
pgd = 80004000, hw pgd = bd580000 
[0000e1e6] *pgd=00000000 
Internal error: Oops: 17 [#1] SMP ARM 
Unable to handle kernel paging request at virtual address fffffffe 
pgd = 80004000, hw pgd = bd580000 
[fffffffe] *pgd=4fffd821, *pte=00000000, *ppte=00000000 
Internal error: Oops: 80000007 [#2] SMP ARM 
Unable to handle kernel paging request at virtual address fffffffe 
pgd = 80004000, hw pgd = bd580000 
[fffffffe] *pgd=4fffd821, *pte=00000000, *ppte=00000000 
Internal error: Oops: 80000007 [#3] SMP ARM 
Unable to handle kernel paging request at virtual address fffffffe 
pgd = 80004000, hw pgd = bd580000 
[fffffffe] *pgd=4fffd821, *pte=00000000, *ppte=00000000 
Internal error: Oops: 80000007 [#4] SMP ARM 
Unable to handle kernel paging request at virtual address fffffffe 
pgd = 80004000, hw pgd = bd580000 
[fffffffe] *pgd=4fffd821, *pte=00000000, *ppte=00000000 
Internal error: Oops: 80000007 [#5] SMP ARM 
Unable to handle kernel paging request at virtual address fffffffe 
pgd = 80004000, hw pgd = bd580000 
[fffffffe] *pgd=4fffd821, *pte=00000000, *ppte=00000000 
Internal error: Oops: 80000007 [#6] SMP ARM 
Unable to handle kernel paging request at virtual address fffffffe 
pgd = 80004000, hw pgd = bd580000 
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2854
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Unable to handle kernel paging request at virtual addres

Messaggio da DoctorStrange »

Fermo restando che, per quanto tecnicamente possibile, non è mai una buona idea brutalizzare un sistema operativo rimuovendo un dispositivo senza fare il suo detach. La cosa si può fare, ma logicamente ottieni dei warning.

Detto questo, hai pensato all'idea di creare una regola udev per mediare inserimento e rimozione del tuo dispositivo? Non sò come tu abbia realizzato la tua applicazione, ma ti assicuri di rilasciare tutte le risorse impiegate, in seguito alla rimozione del dispositivo stesso? Sei certo che non rimangano delle pipe aperte che diventano ingestibili in seguito alla rimozione?

Come gestisci questo dispositivo?
Montanaro
Prode Principiante
Messaggi: 164
Iscrizione: lunedì 16 aprile 2018, 20:56
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggio da Montanaro »

DoctorStrange [url=https://forum.ubuntu-it.org/viewtopic.php?p=5095155#p5095155][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Fermo restando che, per quanto tecnicamente possibile, non è mai una buona idea brutalizzare un sistema operativo rimuovendo un dispositivo senza fare il suo detach. La cosa si può fare, ma logicamente ottieni dei warning.

Detto questo, hai pensato all'idea di creare una regola udev per mediare inserimento e rimozione del tuo dispositivo? Non sò come tu abbia realizzato la tua applicazione, ma ti assicuri di rilasciare tutte le risorse impiegate, in seguito alla rimozione del dispositivo stesso? Sei certo che non rimangano delle pipe aperte che diventano ingestibili in seguito alla rimozione?

Come gestisci questo dispositivo?

Il codice operativo è proprietario.
Io posso agire solo a livello applicativo quindi utilizzando le librerie per gestire la connessione e poi con script come quello che riporto sotto per gestire la partenza o meno delle applicazioni.

Dici che il problema è ad un livello più profondo e quindi irrisolvibile?
ho provato a fare il distacco del dispositivo senza che vi fosse l'applicazione QT in running e in quel caso non ho avuto problema.
Il problema si ha solo se vi è parallelamente l'applicazione QT a girare.


Quello seguente è il codice. Nelle mie intenzioni: il terzo if gestisce il dispositivo quando è distaccato, mentre i primi due annidati gestiscono il riavvio.
La directory usbmisc è quella dell'IMU che si crea all'aggancio e che contiene i file dell'accelerometro e del giroscopio.
Ho provato anche a inserire il killeraggio nell'if di ri-aggancio, poco prima del lancio dell'applicazione ma mi dà lo stesso errore.

Codice: Seleziona tutto

#!/bin/sh


COUNTER1=0 
FLAG=0 


sleep 15
       while [  $COUNTER1 -lt 80000 ]; do


 


   if [ -d "/sys/class/usbmisc/" ]; then
      
             if [ ${FLAG} = "1" ]; then
                      echo "sono nel secondo if" 
               let     FLAG=0 
                 
                
                 


                     sleep 1

                echo "valore FLAG interno al secondo if E' $FLAG  dispositivo collegato"
                cd /home/dinex/bin
                   ./provaSecondaApp
          
              fi

    fi
    

 
echo "dispositivo collegato" 

let COUNTER1=COUNTER1+1 
 echo "valore COUNTER  E'  $COUNTER1  occhiale collegato"
  sleep 1

  if [ ! -d "/sys/class/usbmisc/" ]; then
         echo "dispositivo da collegare"
      
    
    let  FLAG=1 
  echo "il flag quando si è in else vale $FLAG"
sleep 2
     kill -9  235
        

   fi
 
done
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2854
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Unable to handle kernel paging request at virtual addres

Messaggio da DoctorStrange »

Il dispositivo lo devi rimuovere dal sistema, a livello di userspace, cioè a livello di applicazione. Se vuoi farlo tramite script, la procedura dovrebbe essere di scrivere un "1", all'interno di una particolare directory di sistema, che dovrebbe essere qualcosa del tipo /sys/dev/usb/detach, o simile. In ogni caso, devi PRIMA rimuovere il dispositivo da software, e POI distaccarlo dal computer, non puoi gestire una rimozione di un hardware con un semplice if.

Le API potranno anche essere proprietarie, ma è compito tuo gestire in maniera idonea il detach. Questo non dipende dall'applicazione, ma dal sistema operativo.
Montanaro
Prode Principiante
Messaggi: 164
Iscrizione: lunedì 16 aprile 2018, 20:56
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggio da Montanaro »

DoctorStrange [url=https://forum.ubuntu-it.org/viewtopic.php?p=5095170#p5095170][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Il dispositivo lo devi rimuovere dal sistema, a livello di userspace, cioè a livello di applicazione. Se vuoi farlo tramite script, la procedura dovrebbe essere di scrivere un "1", all'interno di una particolare directory di sistema, che dovrebbe essere qualcosa del tipo /sys/dev/usb/detach, o simile. In ogni caso, devi PRIMA rimuovere il dispositivo da software, e POI distaccarlo dal computer, non puoi gestire una rimozione di un hardware con un semplice if.

Le API potranno anche essere proprietarie, ma è compito tuo gestire in maniera idonea il detach. Questo non dipende dall'applicazione, ma dal sistema operativo.


ok :) scusa se insisto con le domande ma sono livello principiante :sisi:

quando dici scrivere nella cartella idonea (che al momento non trovo) e rimuovere da sofware intendi dire che queste cose vanno fanno nel programmino sh che ho messo sopra o che vanno inserite nel codice QT ?

ah sottolineo perché probabilmente non sono stato chiaro: distacco del dispositivo è accidentale. è questa eventualità che dobbiamo gestire. non vi è un distacco volontario :muro:
Montanaro
Prode Principiante
Messaggi: 164
Iscrizione: lunedì 16 aprile 2018, 20:56
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggio da Montanaro »

un'altra precisazione: in realtà il distacco non provoca particolari problemi se l'applicazione QT non parte. E' quando parte una qualunque applicazione QT (che gestisca o meno l'IMU) e poi avviene il distacco, si hanno problematiche.
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2854
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Unable to handle kernel paging request at virtual addres

Messaggio da DoctorStrange »

Facciamo una cosa, prima di fare qualcunque modifica dobbiamo sapere come il tuo sistema vede questo misterioso dispositivo, procedi in questo modo:

Distacca il dispositivo dal pc. Ora apri un terminale e digita questo comando:

Codice: Seleziona tutto

udevadm monitor --env
E premi subito invio (con il dispositivo ancora staccato).

Solo a questo punto connetti il dispositivo al pc. Lascia che il terminale lavori. Una volta che il log che vedi sul tuo terminale è completo, premi CTRL+C.

Il log generato sul monitor è come il pc vede questo dispositivo. A meno che non ci siano informazioni personali o riservate, copia l'intero contenuto di questo log in un file di pastebin.com, e posta qui il link, oppure copia ed incolla qui sul forum, il risultato di quel comando.
Montanaro
Prode Principiante
Messaggi: 164
Iscrizione: lunedì 16 aprile 2018, 20:56
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggio da Montanaro »

DoctorStrange [url=https://forum.ubuntu-it.org/viewtopic.php?p=5095183#p5095183][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Facciamo una cosa, prima di fare qualcunque modifica dobbiamo sapere come il tuo sistema vede questo misterioso dispositivo, procedi in questo modo:

Distacca il dispositivo dal pc. Ora apri un terminale e digita questo comando:

Codice: Seleziona tutto

udevadm monitor --env
E premi subito invio (con il dispositivo ancora staccato).

Solo a questo punto connetti il dispositivo al pc. Lascia che il terminale lavori. Una volta che il log che vedi sul tuo terminale è completo, premi CTRL+C.

Il log generato sul monitor è come il pc vede questo dispositivo. A meno che non ci siano informazioni personali o riservate, copia l'intero contenuto di questo log in un file di pastebin.com, e posta qui il link, oppure copia ed incolla qui sul forum, il risultato di quel comando.

uso un linux embedded proprietario. non ha tutte le funzionalità. il comando

Codice: Seleziona tutto

udevadm 
non esiste :(

quello che è strana la seguente cosa:

1) se avvio una applicazione qt con temporaneamente lancio un programmino per killerarla dopo tot secondi e riavvviarne un'altra (senza distacco), tutto funziona.
2) se non lancio applicazoni qt e contemporaneamente lancio un programmino per far partire un'applicazione qt dopo un distaccio/riaggancio del dispositivo, tutto funziona
3) se lancio un'applicazioen qt e contemporaneamente il programmino che allo sgancio/riatto faccia partire un'altra applicazioen qt allora non funge :(
Avatar utente
Stealth
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 17342
Iscrizione: martedì 31 gennaio 2006, 22:55
Desktop: Gnome
Distribuzione: Ubuntu 22.04 LTS

Re: Unable to handle kernel paging request at virtual addres

Messaggio da Stealth »

Codice: Seleziona tutto

... uso un linux embedded proprietario. non ha tutte le funzionalità ...
Ehm.... e scusa l'impertinenza, ma il come fare non dovrebbero spiegartelo loro, quelli che lo hanno costruito e ne detengono i diritti?
ciao
Montanaro
Prode Principiante
Messaggi: 164
Iscrizione: lunedì 16 aprile 2018, 20:56
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggio da Montanaro »

Stealth [url=https://forum.ubuntu-it.org/viewtopic.php?p=5095240#p5095240][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:

Codice: Seleziona tutto

... uso un linux embedded proprietario. non ha tutte le funzionalità ...
Ehm.... e scusa l'impertinenza, ma il come fare non dovrebbero spiegartelo loro, quelli che lo hanno costruito e ne detengono i diritti?
ciao

eh… politiche aziendali :(


sapendo il nome di un processo, vi è un modo di killerare tutti i padri/figli di quel processo?
io sto usando killall -9
Montanaro
Prode Principiante
Messaggi: 164
Iscrizione: lunedì 16 aprile 2018, 20:56
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggio da Montanaro »

ho risolto.

alla fine bisognava ri-alzare i protocolli di comunicazione :)
un semplice mprobe
Scrivi risposta

Ritorna a “Kernel e servizi di sistema”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 6 ospiti