Domanda:
Come scoprire se il kernel del mio dispositivo ha il supporto del dispositivo loop
insomnia
2012-07-07 02:40:57 UTC
view on stackexchange narkive permalink

Presumo che la maggior parte di voi sappia perché lo chiedo, ma per coloro che non lo fanno, il supporto del dispositivo in loop di un kernel su un dispositivo Android viene utilizzato per montare un file IMG Distro Linux (Ubuntu o Debian, & un paio di altri) per eseguire linux img in un ambiente chroot da eseguire fianco a fianco accanto al tuo sistema Android.

Quindi ci sono tonnellate di informazioni su cosa sia il supporto per dispositivi loop (se hai bisogno di una buona spiegazione vedere l'articolo di Wikipedia.) e perché ne hai bisogno, ma c'è una grande mancanza di spiegazioni su come scoprire se il tuo dispositivo lo supporta. La maggior parte delle informazioni ad esso relative è che "la maggior parte delle rom lo supporta" ...

Quindi, fino al problema, come si potrebbe scoprire se il mio dispositivo attualmente lo supporta? C'è qualche script che posso guardare o qualcosa nel kernel che posso visualizzare per scoprire se il mio dispositivo lo supporta?

Potresti semplicemente provare a montare un dispositivo loop. La parte di programmazione è fuori tema qui però - prova [SO].
Va bene, grazie per aver risolto il problema. Mi piacerebbe ancora sapere come trovare ciò che gli dà supporto
@insomnia: Come ogni caratteristica non banale, sono necessarie molte cose per far funzionare il dispositivo di loopback, CONFIG_BLK_DEV_LOOP è solo una di queste, il programma `mount` ha anche il supporto delle opzioni di montaggio appropriate, riconosce il formato IMG e trova il driver corretto per tradurre il formato dell'immagine del disco in un dispositivo a blocchi. In breve, l'unico modo affidabile per verificare il supporto è provare effettivamente a montarlo.
Cinque risposte:
#1
+4
t0mm13b
2012-07-07 03:43:47 UTC
view on stackexchange narkive permalink

Puoi verificare selezionando /proc/config.gz e cercalo cercando l'opzione di configurazione - CONFIG_BLK_DEV_LOOP = y .

Per farlo devi farlo in questo modo:

  cp /proc/config.gz /sdcard/kernel_config.gz  

e

  adb pull /sdcard/kernel_config.gz

Decomprimere kernel_config.gz e aprirlo in un blocco note o editor di testo e cercalo.

Se # CONFIG_BLK_DEV_LOOP non è impostato o CONFIG_BLK_DEV_LOOP = n tutte le scommesse sono disattivate.

Grazie mille! Peccato che non so cosa abbia modificato Matt. probabilmente qualcosa che mi sarebbe stato utile. Ridicolo quanto sia anale l'intera rete di scambio di stack .. Chi se ne frega se è ancora sull'argomento, le sue informazioni utili che molti potrebbero trovare utili, ma no, fanno sì che le persone debbano cercare. E in effetti quelle informazioni che sono state rimosse probabilmente non sono mai state pubblicate da nessun'altra parte in rete. Ma non può restare perché non puoi discutere di sviluppo Android su un sito Android .. Strano non lo capisco .. Ma grazie mille t0mm13b, esattamente quello che stavo cercando!
@insomnia: Puoi vedere [esattamente cosa è stato modificato] (http://android.stackexchange.com/posts/25399/revisions) facendo clic sul timestamp. Ha corretto la formattazione su un pezzo di testo. Nessuna informazione rimossa da questo post.
@eldarerathis sì, l'ho notato. Colpa mia. A quel punto ero nuovo. Ma ha anche cancellato un commento pertinente che è ciò che mi ha fatto dire in primo luogo. Ma sì, mi dispiace per questo.
Su Cyanogenmod 10.1, non ho il file /proc/config.gz. Cosa fare?
@enedil: Costruisci il tuo kernel temo ... non si può fare, alcuni scelgono di includere la configurazione, altri no.
Ok, il mio kernel supporta i dispositivi loop, ho usato la seconda risposta.
Aggiunta: /proc/config.gz è disponibile solo se il kernel è compilato con CONFIG_IKCONFIG_PROC.zcat /proc/config.gz |grep CONFIG_IKCONFIG
#2
+3
fabceolin
2012-11-23 22:31:22 UTC
view on stackexchange narkive permalink

È possibile utilizzare il seguente comando dal terminale:

  export | grep LOOP_MOUNTPOINT  

Se c'è un LOOP_MOUNPOINT, probabilmente puoi montare dispositivi loop.

AGGIORNATO

COME FARE TEST?

Scarica un'immagine di freedos ( http://www.freedos.org/) 40 MB ISO.

Crea un'associazione dispositivo loop:

  losetup / dev / block / loop4 fd11src.iso 

Monta un dispositivo iso

  mkdir freedos_imgmount -t iso9660 -o ro / dev / block / loop4 freedos_img  

E c'è questo l'iso montato su freedos_img

E se lo trovo, cosa? significa che ho il supporto per i dispositivi loop?
Puoi scoprirlo facilmente senza cercare LOOP_MOUNTPOINT. Basta digitare questo `export | grep LOOP` in `Terminal Emulator`. Questo mostrerà le istanze di LOOP_MOUNTPOINT.
#3
+1
Adan
2013-03-15 10:20:22 UTC
view on stackexchange narkive permalink

Mi sono appena imbattuto in questo. Stavo avendo lo stesso problema. Potresti semplicemente fare zcat /proc/config.gz | grep CONFIG_BLK_DEV_LOOP da un emulatore di terminale. Se ottieni y , sei a posto.

Sicuramente la migliore risposta.
Come si installa zcat? "zcat: non trovato"
@Redsandro Installa busybox.
#4
+1
rudimeier
2014-05-12 21:34:55 UTC
view on stackexchange narkive permalink

Ecco una funzione della shell per verificare il supporto del loop senza creare un dispositivo loop. Dovrebbe funzionare anche come non root.

  funzione check_loop_support {local tmp # supponendo che losetup -f funzioni ... da controllare da qualche altra parte tmp = $ (losetup -f 2> / dev / null) se test -b "$ tmp"; then return 0 fi # Finora non abbiamo trovato alcun supporto per i loop. Controlliamo se è possibile # caricare il modulo e supponiamo che funzioni. modprobe --quiet --dry-run loop &> / dev / null return $?}  

Nota che esistono versioni losetup con un comportamento diverso di -f. A volte caricavano automaticamente il modulo loop se necessario e possibile. E alcune versioni restituiscono anche direttamente 1 se non è disponibile il supporto per i loop. Altri stampano semplicemente "/ dev / loop0" sebbene non esista un dispositivo di questo tipo. La funzione sopra cerca di essere sicura per tutti i casi noti.

Nota che potresti ancora dover caricare il modulo loop per avere un loop utilizzabile dispositivi disponibili. Se sei root potresti anche eseguire un vero e proprio "modprobe loop" prima di losetup per essere sicuro.

#5
+1
Rokas Jasonas
2015-03-18 15:22:06 UTC
view on stackexchange narkive permalink

Puoi utilizzare Verifica dispositivo Loop per verificare se il tuo dispositivo lo supporta.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...