{Je coince} Compiler un module, pour pouvoir lancer une VM sous Android.

  • Auteur de la discussion tinou37
  • Date de début
tinou37

tinou37

Membre
Inscrit
1 Novembre 2012
Messages
15
Points
1
  • #1
Hola, je viens quérir quelques informations ! :)

J'ai acquis il y a peu de temps, un Asus Zenfone 2 ze551ml, et je cherche, simplement parce que c'est sans aucun doute possible (le défi, le fun, ceux qui en auront l'utilité), à pouvoir lancer n'importe quelle système avec une machine virtuelle dessus, en profitant nativement des performances du processeur, exit donc QEMU. :)

Voici la config de la bête :

SOC : QuadCore Intel Atom [email protected] (score antutu + 50 000)
Ram : 4Go de DDR3
NAND : 32/64Go
Port µSD : oui
Code source du kernel disponible : OUI
Bootloader déverrouillé : OUI
Rom installée : CyanogenMod 12.1

Comme vous pouvez le voir, avec un processeur X86, nous ne devrions pas avoir trop de problèmes, depuis son déverrouillage, c'est un peu devenu le saint graal de la bidouilles, j'ai réussit sans trop de mal à chrooter Ubuntu x86, à utiliser des logiciels pour PC, et même à profiter de quelques logiciels Windows avec Wine. :)

Seulement voilà, du côté de VirtualBox, nous avons besoin que ce dernier compile ses modules, hors pour ça, il faut disposer du paquet, installé "linux-headers", normalement généré à partir des sources du Noyau Linux actuellement utilisé.

La question étant de savoir comment convertir les sources, vers ce paquet... Et j'ai du coup, trouvé une solution, pour une situation similaire sur un netbook équipé de ChromeOS =>
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


Les sources du noyau qui m'intéresse sont disponibles ici =>
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


Seulement, je coince, je n'ai jamais compilé de noyau avant, et lorsque je lance la commande "make-kpkg --rootcmd fakeroot kernel_image kernel_headers", j'obtiens des erreurs, qui seraient apparemment en rapport avec le fichier de configuration des options de compilation du noyau.

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

On m'a répondu sur XDA (mais j'ai du mal avec l'anglais technique, surtout pour une première fois)

acquire_console_sem and release_console_sem WERE declared in /include/linux/console.h. They seem to be not used anymore after kernel version 2.6.xx?
You have 2 options:
1. set CONFIG_CONSOLE_EARLYSUSPEND to n
2. you need to (back)port these functions

Donc, si j'ai bien compris, il suffisait juste que je modifie le fichier .config pour désactiver cette fonction (ce qui signifie aussi, que disposer d'un fichier .config préconfiguré pour compiler comme les builds proposées sur XDA ne serait pas du luxe ? On dirait qu'avec le noyau tel quel, j'ai juste les options basiques sélectionnées par défaut), chose que j'ai fait... Le problème étant qu'à chaque fois que je relance la commande "make-kpkg", ce dernier est réinitialisé, les modifications que j'effectue dessus ne sont pas prises en compte.

Du coup, je coince, et comme j'ai du mal, que pousser une compilation aussi loin est une première pour moi, et que la manipulation est assez particulière, j'aurais bien besoin d'être épaulé, en Français... :oops:
 
A

Anonymous

  • #2
Bonjour,
Je confirme que ces fonctions {acquire, release}_console_sem sont obsolètes depuis la fin des kernels 2.6, ce qui commence à faire un bout de temps !
Il n'est pas normal que Virtualbox y fasse référence. A mon avis cela cache un problème de base, comme le fait que les sources de Virtualbox n'arrivent pas à déterminer la version du kernel sur lequel ils vont se baser.
Comment fais-tu ta compilation ? tu cross-compiles sur un PC sous Ubuntu je supppose ? pas sur le smartphone lui-même ?
 
tinou37

tinou37

Membre
Inscrit
1 Novembre 2012
Messages
15
Points
1
  • #3
Coredump a dit:
Bonjour,
Je confirme que ces fonctions {acquire, release}_console_sem sont obsolètes depuis la fin des kernels 2.6, ce qui commence à faire un bout de temps !
Il n'est pas normal que Virtualbox y fasse référence. A mon avis cela cache un problème de base, comme le fait que les sources de Virtualbox n'arrivent pas à déterminer la version du kernel sur lequel ils vont se baser.
Comment fais-tu ta compilation ? tu cross-compiles sur un PC sous Ubuntu je supppose ? pas sur le smartphone lui-même ?

Alors déjà, pour le moment, rien à voir avec VirtualBox, ce que j'essaie de faire, c'est de générer proprement un paquet "linux-headers", et j'ai tenté la manip autant sur le système chrooté que sur mon PC ayant ubuntu installé en natif.

Mais du coup sur mon PC, ayant ubuntu installé, j'ai tenté une autre approche, j'ai fureté un peu du côté des paquets linux-headers déjà installé sur mon système, et je me suis aperçu qu'en réalité, ce paquet contient ni plus ni moins que les sources du noyau, je ne comprends pas pourquoi alors la génération du paquet nécessite une compilation, du coup j'ai généré moi même le paquet DEB qui va bien, tout en indiquant le noyau trouvé avec "uname -r" dans le système chrooté.
Les sources du noyau se retrouvent donc dans /usr/src/linux-headers-3.10.85-Deathly-0.4

Le fichier control du paquet d'installation :

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Un petit coup de "dpkg --build" et à partir de là, ça commence déjà à avancer, après avoir installé ledit paquet...

Quand je relance l'installation de Virtualbox avec la commande "sudo apt-get install virtualbox --reinstall", lors de la génération du module avec DKMS, j'obtiens cette erreur :

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

J'ai tenté la commande lsmod, que ce soit en natif sous Android, ou sous Ubuntu chrooté, même souci, "/proc/modules: No such file or directory".

En fouinant un peu, si j'ai bien compris, ça signifie que le support des modules n'est pas activé sur le noyau Linux sous Android, que j'utilise, et qu'il faudrait le recompiler avec les options qui vont bien pour ça ?
 
A

Anonymous

  • #4
Il faudrait que tu précises pour chaque commande que tu cites si c'est lancé depuis un shell sur ton Zenphone ou sur ton Ubuntu, parce que là ce n'est pas clair du tout.
 

Sujets en relation

Haut Bas