7 votes

Comment savoir si le noyau de mon appareil est compatible avec les périphériques en boucle ?

Je suppose que la plupart d'entre vous savent pourquoi je pose cette question, mais pour ceux qui ne le savent pas, le support d'un noyau sur un appareil Android est utilisé pour monter un fichier IMG d'une distribution Linux (Ubuntu ou Debian, et quelques autres) pour exécuter l'image linux dans un environnement raciné pour fonctionner côte à côte avec votre système Android.

Il existe des tonnes d'informations sur ce qu'est le Loop Device Support (si vous avez besoin d'une bonne explication, consultez l'article de Wikipedia), et pourquoi vous en avez besoin, mais il y a un grand manque d'explications sur la façon de savoir si votre appareil le supporte. La plupart des informations relatives à ce sujet sont que "la plupart des roms le supportent"...

Pour en revenir à la question, comment savoir si mon appareil le prend en charge ? Y a-t-il un script que je peux consulter ou quelque chose dans le noyau que je peux voir pour savoir si mon appareil le supporte ?

4voto

Nick Pierpoint Points 7976

Vous pouvez vérifier en contrôlant /proc/config.gz et le parcourir à la recherche de l'option configurer - CONFIG_BLK_DEV_LOOP=y .

Pour ce faire, vous devez procéder de cette manière :

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

et

adb pull /sdcard/kernel_config.gz

Dézippez le kernel_config.gz et l'ouvrir dans un bloc-notes ou un éditeur de texte et le rechercher.

Si c'est soit # CONFIG_BLK_DEV_LOOP is not set o CONFIG_BLK_DEV_LOOP=n tous les paris sont ouverts.

3voto

fabceolin Points 131

Vous pouvez utiliser la commande suivante dans le terminal :

export | grep LOOP_MOUNTPOINT

S'il existe un LOOP_MOUNPOINT, vous pouvez probablement monter des dispositifs de boucle.

MISE À JOUR

COMMENT TESTER ?

Télécharger une image freedos ( http://www.freedos.org/ ) 40MB ISO.

Faites une association de périphériques en boucle :

losetup /dev/block/loop4 fd11src.iso 

Monter un dispositif iso

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

Et il y a cette image montée sur freedos_img.

1voto

Adan Points 111

Je viens de tomber sur ça. J'avais le même problème. Vous pourriez juste faire zcat /proc/config.gz | grep CONFIG_BLK_DEV_LOOP à partir d'un émulateur de terminal. Si vous obtenez un y vous êtes prêt à partir.

1voto

Bhas Points 748

Voici une fonction shell pour vérifier le support de la boucle sans créer de dispositif de boucle. Elle devrait même fonctionner en tant que non-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 $?
}

Notez qu'il existe des versions de losetup avec un comportement différent de -f. Parfois, elles chargent automatiquement le module loop si nécessaire et possible. Et certaines versions retournent même directement 1 si aucun support de boucle n'est disponible. D'autres affichent simplement "/dev/loop0" bien qu'il n'y ait pas de périphérique de ce type. La fonction ci-dessus essaie d'être sûre pour tous les cas connus.

Notez que vous devrez peut-être encore charger le module loop pour disposer de périphériques loop utilisables. Si vous êtes Root, vous pouvez aussi lancer un vrai "modprobe loop" avant losetup pour être sûr.

1voto

Rokas Jasonas Points 11

Vous pouvez utiliser Vérificateur de dispositif de bouclage pour vérifier si votre appareil le prend en charge.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X