Codice: Seleziona tutto
Unable to handle kernel paging request at virtual address
Cosa significa?
Mi pare strano che semplicemente usando un
Codice: Seleziona tutto
killall -9 nomeapp
Codice: Seleziona tutto
Unable to handle kernel paging request at virtual address
Codice: Seleziona tutto
killall -9 nomeapp
è un'applicazione QT che legge un IMU esterna.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 è?
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
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?
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
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.
Codice: Seleziona tutto
udevadm monitor --env
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:
E premi subito invio (con il dispositivo ancora staccato).Codice: Seleziona tutto
udevadm monitor --env
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.
Codice: Seleziona tutto
udevadm
Codice: Seleziona tutto
... uso un linux embedded proprietario. non ha tutte le funzionalità ...
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:Ehm.... e scusa l'impertinenza, ma il come fare non dovrebbero spiegartelo loro, quelli che lo hanno costruito e ne detengono i diritti?Codice: Seleziona tutto
... uso un linux embedded proprietario. non ha tutte le funzionalità ...
ciao
Visualizzano questa sezione: 0 utenti iscritti e 6 ospiti