7 votos

Cómo averiguar si el núcleo de mi dispositivo tiene soporte para dispositivos de bucle

Asumiría que la mayoría de ustedes saben por qué estoy preguntando esto, pero para aquellos que no lo saben, el soporte de dispositivos de bucle de un kernel en un dispositivo Android se utiliza para montar un archivo IMG de Linux Distro (Ubuntu o Debian, y un par más) para ejecutar el img de linux en un entorno Chrooted para que se ejecute junto a su sistema Android.

Así que hay mucha información sobre qué es el soporte de dispositivos de bucle (si necesita una buena explicación vea el artículo de Wikipedia), y por qué lo necesita, pero hay una gran falta de explicación sobre cómo averiguar si su dispositivo lo soporta. La mayoría de la información relacionada con esto es que "la mayoría de las roms lo soportan"...

Así que, en cuanto a la cuestión, ¿cómo se puede descubrir si mi dispositivo es actualmente compatible con él? ¿Hay algún script que pueda mirar o algo en el núcleo que pueda ver para averiguar si mi dispositivo lo soporta?

4voto

Nick Pierpoint Puntos 7976

Puede verificarlo comprobando /proc/config.gz y buscar a través de él buscando la opción de configuración - CONFIG_BLK_DEV_LOOP=y .

Para hacer eso necesitas hacerlo de esta manera:

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

y

adb pull /sdcard/kernel_config.gz

Descomprime el kernel_config.gz y abrirlo en un bloc de notas o un editor de texto y buscarlo.

Si es así # CONFIG_BLK_DEV_LOOP is not set o CONFIG_BLK_DEV_LOOP=n todas las apuestas se han cancelado.

3voto

fabceolin Puntos 11

Puede usar el siguiente comando en la terminal:

export | grep LOOP_MOUNTPOINT

Si hay un LOOP_MOUNPOINT, probablemente puedas montar dispositivos de bucle.

ACTUALIZADO

¿CÓMO PRUEBA?

Descargue una imagen de freedos ( http://www.freedos.org/ ) 40MB ISO.

Haz una asociación de dispositivos de bucle:

losetup /dev/block/loop4 fd11src.iso 

Montar un dispositivo iso

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

Y está esta la iso montada en freedos_img

1voto

vasc0x Puntos 11

Acabo de encontrarme con esto. Estaba teniendo el mismo problema. Podrías hacer zcat /proc/config.gz | grep CONFIG_BLK_DEV_LOOP de un emulador terminal. Si consigues un y estás listo para irte.

1voto

rudimeier Puntos 101

Aquí está una función de la concha para comprobar el soporte del bucle sin crear un dispositivo de bucle. Incluso debería funcionar como no-Root.

function check_loop_support {
    local tmp

    # assuming that losetup -f works ... to be checked somewhere else
    tmp=$(losetup -f 2>/dev/null)
    if test -b "$tmp"; then
        return 0
    fi

    # So far we haven't found any loop support. Let's check whether we
    # could load the module and assume that it would work.
    modprobe --quiet --dry-run loop &>/dev/null
    return $?
}

Note que existen versiones de pérdida con diferente comportamiento de -f. A veces cargaban automáticamente el módulo de bucle si era necesario y posible. Y algunas versiones incluso devolverían directamente 1 si no hay soporte de bucle disponible. Otras sólo imprimen "/dev/loop0" aunque no existe tal dispositivo. La función anterior intenta ser segura para todos los casos conocidos.

Tenga en cuenta que puede que aún tenga que cargar el módulo de bucle para tener disponibles dispositivos de bucle utilizables. Si eres Root, también podrías ejecutar un verdadero "bucle de modprobe" antes de perderlo para estar seguro.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X