Frage:
So finden Sie heraus, ob der Kernel meines Geräts Loop-Geräteunterstützung bietet
insomnia
2012-07-07 02:40:57 UTC
view on stackexchange narkive permalink

Ich würde annehmen, dass die meisten von Ihnen wissen, warum ich das frage, aber für diejenigen, die dies nicht tun, wird die Unterstützung eines Kernels auf einem Android-Gerät zum Mounten einer Linux Distro IMG-Datei (Ubuntu oder Debian, &) verwendet ein paar andere), um das Linux-IMG in einer Chrooted-Umgebung auszuführen, die neben Ihrem Android-System nebeneinander ausgeführt wird.

Es gibt also unzählige Informationen darüber, was Loop Device Support ist (wenn Sie eine gute Erklärung benötigen siehe Wikipedia-Artikel.) und warum Sie es brauchen, aber es gibt einen großen Mangel an Erklärungen, wie Sie herausfinden, ob Ihr Gerät es unterstützt. Die meisten Informationen dazu sind, dass "die meisten ROMs es unterstützen" ...

Wie würde man also feststellen, ob mein Gerät es derzeit unterstützt? Gibt es ein Skript, das ich mir ansehen kann, oder etwas im Kernel, das ich anzeigen kann, um herauszufinden, ob mein Gerät dies unterstützt?

Sie können einfach versuchen, ein Loop-Gerät zu montieren. Der Programmierteil ist hier allerdings nicht zum Thema - versuchen Sie [SO].
Okay, danke, dass du das behoben hast. Ich würde immer noch gerne wissen, wie ich finde, was es unterstützt
@insomnia: Wie bei jeder nicht trivialen Funktion sind viele Dinge erforderlich, damit das Loopback-Gerät funktioniert. CONFIG_BLK_DEV_LOOP ist nur eine davon. Das Programm "mount" unterstützt auch die entsprechenden Mount-Optionen, erkennt das IMG-Format und findet den richtigen Treiber um das Disk-Image-Format in ein Blockgerät zu übersetzen. Kurz gesagt, die einzige zuverlässige Möglichkeit, nach Unterstützung zu suchen, besteht darin, tatsächlich zu versuchen, sie zu mounten.
Fünf antworten:
#1
+4
t0mm13b
2012-07-07 03:43:47 UTC
view on stackexchange narkive permalink

Sie können dies überprüfen, indem Sie /proc/config.gz überprüfen und darin nach der Konfigurationsoption suchen - CONFIG_BLK_DEV_LOOP = y .

Dazu müssen Sie Folgendes tun:

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

und

  adb pull /sdcard/kernel_config.gz  

Entpacken Sie den kernel_config.gz und öffnen Sie ihn in a Notizblock oder Texteditor und suchen Sie danach.

Wenn entweder # CONFIG_BLK_DEV_LOOP nicht festgelegt ist oder CONFIG_BLK_DEV_LOOP = n , sind alle Wetten deaktiviert.

Vielen Dank! Schade, dass ich nicht weiß, was Matt bearbeitet hat. wahrscheinlich etwas, das mir nützlich gewesen wäre. Lächerlich, wie anal das gesamte Stack-Exchange-Netzwerk ist. Wen kümmert es, wenn es immer noch um das Thema geht? Seine nützlichen Informationen, die viele vielleicht nützlich finden, aber nein, machen es so, dass die Leute suchen müssen. Und tatsächlich wurden Informationen, die entfernt wurden, wahrscheinlich nirgendwo anders im Internet veröffentlicht. Aber es kann nicht bleiben, weil Sie nicht über Android-Entwicklung auf einer Android-Site diskutieren können. Seltsam, ich verstehe es einfach nicht. Aber vielen Dank t0mm13b, genau das, wonach ich gesucht habe!
@insomnia: Sie können [genau das, was bearbeitet wurde] (http://android.stackexchange.com/posts/25399/revisions) anzeigen, indem Sie auf den Zeitstempel klicken. Er korrigierte die Formatierung auf einem Textstück. Es wurden keine Informationen aus diesem Beitrag entfernt.
@eldarerathis Ja, ich habe es bemerkt. Mein Fehler. Ich war zu diesem Zeitpunkt neu. Er hat aber auch einen relevanten Kommentar gelöscht, weshalb ich ihn überhaupt gesagt habe. Aber ja, tut mir leid.
Unter Cyanogenmod 10.1 habe ich keine /proc/config.gz-Datei. Was ist zu tun?
@enedil: Erstellen Sie Ihren eigenen Kernel, fürchte ich ... das geht nicht, einige entscheiden sich dafür, die Konfiguration einzuschließen, andere nicht.
Ok, mein Kernel unterstützt Loop-Geräte, ich habe die zweite Antwort verwendet.
Ergänzung: /proc/config.gz ist nur verfügbar, wenn der Kernel mit CONFIG_IKCONFIG_PROC kompiliert wurde.zcat /proc/config.gz |grep CONFIG_IKCONFIG
#2
+3
fabceolin
2012-11-23 22:31:22 UTC
view on stackexchange narkive permalink

Sie können den folgenden Befehl am Terminal verwenden:

  export | grep LOOP_MOUNTPOINT  

Wenn es einen LOOP_MOUNPOINT gibt, können Sie wahrscheinlich Loop-Geräte mounten.

AKTUALISIERT

HOW TO TEST?

Laden Sie ein Freedos-Image herunter ( http://www.freedos.org/). 40 MB ISO.

Erstellen Sie eine Schleifengerätezuordnung:

  losetup / dev / block / loop4 fd11src.iso  

Mounten eines ISO-Geräts

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

Und da ist die gemountete ISO bei freedos_img

Und wenn ich es finde, was? Bedeutet dies, dass ich Unterstützung für Loop-Geräte habe?
Sie können es leicht herausfinden, ohne nach LOOP_MOUNTPOINT zu suchen. Geben Sie einfach diesen `export | ein grep LOOP` in `Terminal Emulator`. Dies zeigt die Instanzen von LOOP_MOUNTPOINT.
#3
+1
Adan
2013-03-15 10:20:22 UTC
view on stackexchange narkive permalink

Bin gerade darauf gestoßen. Ich hatte das gleiche Problem. Sie können einfach zcat /proc/config.gz | ausführen grep CONFIG_BLK_DEV_LOOP von einem Terminalemulator. Wenn Sie ein y erhalten, können Sie loslegen.

Auf jeden Fall die beste Antwort.
Wie installiert man zcat? `zcat: nicht gefunden`
@Redsandro Installieren Sie die Busybox.
#4
+1
rudimeier
2014-05-12 21:34:55 UTC
view on stackexchange narkive permalink

Hier ist eine Shell-Funktion, mit der Sie nach Schleifenunterstützung suchen können, ohne ein Schleifengerät zu erstellen. Es sollte sogar als Nicht-Root funktionieren.

  Funktion check_loop_support {local tmp # unter der Annahme, dass losetup -f funktioniert ... woanders überprüft werden tmp = $ (losetup -f 2> / dev / null) wenn test -b "$ tmp"; dann 0 zurückgeben fi # Bisher haben wir keine Loop-Unterstützung gefunden. Lassen Sie uns prüfen, ob # wir das Modul laden können und davon ausgehen, dass es funktionieren würde. modprobe --quiet --dry-run loop &> / dev / null return $?}  

Beachten Sie, dass es Losetup-Versionen mit unterschiedlichem Verhalten von -f gibt. Manchmal luden sie das Schleifenmodul automatisch, wenn dies erforderlich und möglich war. Und einige Versionen würden sogar direkt 1 zurückgeben, wenn keine Schleifenunterstützung verfügbar wäre. Andere drucken einfach "/ dev / loop0", obwohl es kein solches Gerät gibt. Die obige Funktion versucht, in allen bekannten Fällen sicher zu sein.

Beachten Sie, dass Sie das Schleifenmodul möglicherweise noch laden müssen, um eine verwendbare Schleife zu haben Geräte verfügbar. Wenn Sie root sind, können Sie vor dem Losetup auch eine echte "Modprobe-Schleife" ausführen, um sicherzugehen.

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

Mit Loop Device Checker können Sie überprüfen, ob Ihr Gerät dies unterstützt.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...