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

[Risolto] iUnable to handle kernel paging request at virt

Messaggioda Montanaro » venerdì 16 novembre 2018, 15:59

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
Montanaro
Prode Principiante
 
Messaggi: 102
Iscrizione: aprile 2018
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda DoctorStrange » venerdì 16 novembre 2018, 16:02

Per quale motivo per chiudere un applicazione vuoi fare un kill al suo processo? Non puoi semplicemente chiuderla? Che applicazione è?
Avatar utente
DoctorStrange
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1562
Iscrizione: ottobre 2015
Località: Roma, Italia
Desktop: Unity
Distribuzione: Ubuntu 16.04.03 Xenial Xerus
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda Montanaro » venerdì 16 novembre 2018, 16:06

DoctorStrange Immagine 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: 102
Iscrizione: aprile 2018
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda Montanaro » sabato 17 novembre 2018, 20:20

nessuno sa aiutarmi ? :(
Montanaro
Prode Principiante
 
Messaggi: 102
Iscrizione: aprile 2018
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda Montanaro » martedì 20 novembre 2018, 12:27

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
Montanaro
Prode Principiante
 
Messaggi: 102
Iscrizione: aprile 2018
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda DoctorStrange » martedì 20 novembre 2018, 13:18

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?
Avatar utente
DoctorStrange
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1562
Iscrizione: ottobre 2015
Località: Roma, Italia
Desktop: Unity
Distribuzione: Ubuntu 16.04.03 Xenial Xerus
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda Montanaro » martedì 20 novembre 2018, 14:05

DoctorStrange Immagine 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
Montanaro
Prode Principiante
 
Messaggi: 102
Iscrizione: aprile 2018
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda DoctorStrange » martedì 20 novembre 2018, 14:25

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.
Avatar utente
DoctorStrange
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1562
Iscrizione: ottobre 2015
Località: Roma, Italia
Desktop: Unity
Distribuzione: Ubuntu 16.04.03 Xenial Xerus
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda Montanaro » martedì 20 novembre 2018, 14:52

DoctorStrange Immagine 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: 102
Iscrizione: aprile 2018
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda Montanaro » martedì 20 novembre 2018, 14:57

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.
Montanaro
Prode Principiante
 
Messaggi: 102
Iscrizione: aprile 2018
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda DoctorStrange » martedì 20 novembre 2018, 15:23

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.
Avatar utente
DoctorStrange
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1562
Iscrizione: ottobre 2015
Località: Roma, Italia
Desktop: Unity
Distribuzione: Ubuntu 16.04.03 Xenial Xerus
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda Montanaro » martedì 20 novembre 2018, 16:26

DoctorStrange Immagine 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 :(
Montanaro
Prode Principiante
 
Messaggi: 102
Iscrizione: aprile 2018
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda Stealth » martedì 20 novembre 2018, 17:13

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
Avatar utente
Stealth
Tenace Tecnocrate
Tenace Tecnocrate
 
Messaggi: 16071
Iscrizione: gennaio 2006
Desktop: Gnome
Distribuzione: Ubuntu 18.04 LTS

Re: Unable to handle kernel paging request at virtual addres

Messaggioda Montanaro » mercoledì 21 novembre 2018, 11:53

Stealth Immagine 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: 102
Iscrizione: aprile 2018
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile

Re: Unable to handle kernel paging request at virtual addres

Messaggioda Montanaro » giovedì 22 novembre 2018, 15:49

ho risolto.

alla fine bisognava ri-alzare i protocolli di comunicazione :)
un semplice mprobe
Montanaro
Prode Principiante
 
Messaggi: 102
Iscrizione: aprile 2018
Desktop: ubuntu
Distribuzione: linux embedded 3.10.17
Sesso: Maschile


Torna a Kernel e servizi di sistema

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 2 ospiti