Pages : 1
#1 Le 23/03/2022, à 18:01
- daerlnaxe
Cross-Compiler QEMU
Bonjour à tous,
A la base ce n'est pas trop pour une raison entreprise, bien que j'aime me former... Donc j'espère ne pas me planter de section.
Je voudrais compiler QEMU, déjà la version de base, car je souhaite par rapport à du rétrogaming compiler avec un patch... J'ai déjà posé la question sur développez.net mais je n'ai qu'une personne qui m'a répondu et qui n'a réussi à m'aider malgré sa bonne volonté.
J'ai commencé à compiler par windows x64 avec Msys2 mingw 64:
- J'ai commencé par compiler en suivant le tuto que j'ai vu sur le site du projet, ça n'a pas fonctionné
- J'ai du rajouter à coup de pacman -S tout ce qu'il me manquait au fur et à mesure puis finalement trouvé aussi un truc à rajouter ça partait bien mal.
- J'ai du faire à un moment un CC=gcc je ne suis pas revenu en arrière depuis, je ne sais pas le faire.
- J'ai recompilé et là je crois que la compilation a fonctionné, mais...
Donc depuis:
- On me demande la librairie libzstd.dll, je suis allé chercher une précompilée sur le site github du projet (enfin j'espère).
- Là ça se lance mais ça me sort "g_spawn_async_with_fds"
- J'ai rajouté une ligne pour installer le pack de base, ça fait toujours pareil.
- J'ai vu avec un des devs de QEMU qui me dit que j'ai besoin de la version 2.58 de la librairie... GLIB
Je me suis dit passons sur Ubuntu vu que j'en virtualise un par virtuabox (en plus de mon pc suédé, mais bon lui je le touche que rarement), je suis en train de voir pour faire un dual boot plus tard pour le retrogaming, bref j'essaie de voir... QEMU me convient pour la periode win9x c'est parfait, je préfère bien plus à wine, j'ai lancé C&C sans l'ombre d'un soucis. Vraiment au top... Et je suis passé par PCEM, DOXBOX-X, VMWare, VirtualBox... pour win9x Qemu c'est pile ce dont j'ai besoin.
Et là... ça commence direct que le tuto est pour Debian, pourtant je me suis dit que ça pourrait passer logiquement, et certains paquets ne sont pas connus quand je fais.
"apt-get install gcc-mingw32 mingw32-binutils mingw-w64"
minigw et moi on n'a jamais été potes... Je programme sur c# ,j'ai fait du QT, du Java, du visual c++ et du python.. Mais ça... C'est une plaie pour moi, j'aimerai bien apprendre à m'en servir et j'ai pas trop eu le temps de lui dédier un apprentissage c'était toujours pour compiler des librairies afin de lancer mon propre projet... Tiens ça me revient je crois qu'il fallait compiler Boost. Et 99% du temps j'en ai bavé, j'ai arrêté certains projets comme une application locale p2p pour synchroniser ses fichiers (bon y'a une solution maintenant qui est sortie donc ça m'arrange).
Si quelqu'un pouvait me filer un coup de main, je suis un gros noob là dessus comme vous l'aurez compris (et j'aime pas ça) donc c'est possible que je pose des questions de boulet.
Dernière modification par daerlnaxe (Le 23/03/2022, à 20:31)
Hors ligne
#2 Le 23/03/2022, à 20:16
- Nuliel
Re : Cross-Compiler QEMU
Bonjour,
Tu veux compiler sous quel OS? Parce que là, entre windows, pacman (qui n'est pas pour ubuntu) et ubuntu, c'est pas clair. En tout cas, pour du linux, tu auras de l'aide ici, mais sur windows, tu risques fort de pas en avoir des masses (simplement parce qu'on sait pas). Tu veux compiler ou cross compiler? (en d'autres termes, tu veux compiler qemu pour windows depuis ubuntu ou depuis ubuntu pour ubuntu?). Le patch en question a pas été ajouté aux versions récentes de qemu? Parce que sinon ce serait plus simple.
Hors ligne
#3 Le 23/03/2022, à 20:28
- daerlnaxe
Re : Cross-Compiler QEMU
Salut,
Déjà merci de ta réponse.
J'en suis au point si tu veux de compiler sur ce que tu veux du moment que ça marche , en plus je me lamentais pile à l'instant quand tu m'as répondu.
C'est pour ça que je suis passé ici, je pense que lever le plus d'inconnues c'est le plus intéressant... Bon si possible sous Ubuntu mais au pire je peux installer une Debian d'ici demain am (rendez vous important le matin) (je te dis ça pour pas abuser de ton temps). Je t'avoue que je n'avais pas percuté que Pacman c'était à part mais c'est vrai qu'à un moment sous ubuntu quand j'ai testé git par exemple je me suis rendu compte que c'était intégré, je me suis donc dit que sous windows on devait essayer de reproduire le comportement... je me le disais un peu d'ailleurs car je me souviens qu'à un moment dans la compilation certaines libs qui semblaient appartenir à linux n'étaient pas là donc fallait que je rajoute des trucs.
Désolé je sais que je parle beaucoup.
Du coup déjà est ce que tu penses que c'est possible de compiler QEMU sans trop péter un plomb en cross compilation donc, vers Windows puisque QEMU est à destination de windows dans mon cas (GlassShader n'existe que sous windows). Est ce qu'en virtualisant ubuntu je ne m'expose pas à des soucis (je préfère demander au cas où , avec une compilation de ce type) windows host.
Actuellement donc, le point de départ commence mal,je me dis que c'est probablement un soucis de dépôt mais je préfère demander maintenant.:
sudo apt-get install gcc-mingw32 mingw32-binutils mingw32-runtime
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
sh: 0: getcwd() failed: No such file or directory
E: Impossible de trouver le paquet gcc-mingw32
E: Impossible de trouver le paquet mingw32-binutils
E: Impossible de trouver le paquet mingw32-runtime
En temps normal j'aurais cherché, mais je suis claqué de tomber sur des trucs obsolètes et de me heurter à des murs, je me suis dit tant pis on accepte d'être noob et on demande de l'aide dès le début.. au moins je me dis que je pourrais être guidé dans le processus et comprendre, éventuellement poser des questions.
Question subsidiaire.
A tout hasard quand même en passant, j'ai cherché de quoi rajouter des shaders (A wine dans un premier temps) sur QEMU, donc s'il en existe à patcher directement peut être que j'aurais pas besoin de compiler vers windows 10. GlassShader propose un maximum de shaders à mettre soit sur tout le bureau soit sur une fenêtre "interceptée" (hook) je n'ai pas trouvé sur linux, à chaque fois on me dit que c'est au jeu à le faire ou à un wrap, mais c'est pas possible avec ces vieux jeux ça fout facilement le bazar ou faut passer par des patches non officiels qui peuvent altérer le gameplay. Donc si quelqu'un à une idée, on m'a dit compiz mais j'ai pas vu comemnt rajouter un effet sur toute une fenêtre "stable", c'était dans les transitions par exemple. J'ai cherche un temps considérable à blanc (bon j'aurais peut être du venir ici, je suis passé par Reddit).
Gros merci d'avance.
Edit: j'ai modifié mon titre pour être plus clair, tu as raison c'est de la cross-compilation.
Dernière modification par daerlnaxe (Le 23/03/2022, à 20:37)
Hors ligne
#4 Le 23/03/2022, à 21:07
- Nuliel
Re : Cross-Compiler QEMU
T'inquiète, je réponds quand j'ai du temps et que je suis dispo (généralement le soir et le WE).
Oui les linux ont des dépôts avec tous les logiciels, c'est quand même plus propre qu'aller chercher des programmes partout sur internet...
J'ai un ami qui a compilé (pas cross compilé) QEMU l'année dernière, par contre la cross compilation pour windows j'en ai pas fait beaucoup, et c'était il y a longtemps. Généralement on cross compile parce qu'on a pas de windows ou parce que c'est pour un système embarqué. Ce serait à mon avis bien plus simple de compiler directement sous windows (même si je sais pas faire).
Je vois pas le rapport entre shaders et QEMU. QEMU sert à émuler un système (quelle que soit l'architecture, en gros il fait la traduction), donc pas de rapport avec les shaders pour un jeu ou pour des fenêtres. D'ailleurs pourquoi utiliser QEMU pour des vieux jeux? Tu es sûr que des outils comme retroarch ou autre serait pas plus adapté que QEMU?
compiz ça date!
Dernière modification par Nuliel (Le 23/03/2022, à 21:08)
Hors ligne
#5 Le 24/03/2022, à 06:38
- iznobe
Re : Cross-Compiler QEMU
Bonjour , cross compiler pour windows , a partir d' ubuntu en VM sous windowz , ca semble pourtant simple comme point d' origine
Faut pas le prendre mal , mais je ne pouvais pas passer a coté de cela c ' est le chien qui se mord la queue cette histoire .
Dernière modification par iznobe (Le 24/03/2022, à 06:39)
retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .
Hors ligne
#6 Le 24/03/2022, à 06:47
- xubu1957
Re : Cross-Compiler QEMU
Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Réso|u] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci. Membre de Linux-Azur
Hors ligne
#7 Le 24/03/2022, à 11:56
- daerlnaxe
Re : Cross-Compiler QEMU
Bonjour , cross compiler pour windows , a partir d' ubuntu en VM sous windowz , ca semble pourtant simple comme point d' origine
Faut pas le prendre mal , mais je ne pouvais pas passer a coté de cela c ' est le chien qui se mord la queue cette histoire .
Pas qu'un peu mais ils ont pas mis à jour leur tuto pour compiler sous windows on dirait d'ailleurs le wiki est marqué work in progress, le seul qui compile pour windows le fait depuis linux .
Même moi si j'avais réussi à surmonter le problème, le tuto que j'aurais fait n'aurait été valable qu'un temps. Et comme indiqué en ce moment je n'ai pas de distribution installée à part sur mon laptop requalifié .. j'ai besoin de thunes pour me prendre un ssd plus gros ou en acheter un second pour y mettre une distribution, je vitualize mais c'est sur le hdd de stockage qui fait 4To. Mon ssd n'est pas très gros et il ne me reste que 20Go dessus.
@Xubu1957.
Merci, donc en fait c'est bon il est installé par conséquent. Je vais me noter ça dans un coin. Je cherche par google ou ddc il me remonte facilement du stackoverflow mais rien de chez stackexchange .
J'avais installé en vérifiant avec la page du site mais comme leur ligne pour débian comprend des trucs en plus, je me suis dit que c'était peut être des outils à installer en plus qui n'avaient pas été couverts par le tuto du site.
Dernière modification par daerlnaxe (Le 24/03/2022, à 11:57)
Hors ligne
#8 Le 25/03/2022, à 00:05
- daerlnaxe
Re : Cross-Compiler QEMU
Bon, je continue de galérer, donc ce que j'ai opté de faire c'est de compiler déjà normalement QEMU, je crois que j'ai réussi.
Je me suis fait mon environnement en plus de minwg-64, peut être qu'il y a de la redondance à vous de me dire.
sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev
sudo apt-get install build-essential
A la fin j'ai testé en renommant un fichier compilé d'une autre manière que les fichiers QEMU habituels
ce qui donne
./qemu-system-x86_64-2
Et ça se lance... j'ai jamais compilé pour linux, je faisais du python et comme expliqué minwg et moi on est pas trop copains. Donc si on peut me valider... S'il y a des logs à fournir, j'en ai un de Ninja.
Donc je vais tenter à tête reposer du coup après de cross compiler de nouveau.. En fait quand je lance "configure" ça reconnait pas la commande, donc je me dis que le tuto pour compiler poru windows doit s'appuyer sur le précédent et qu'il devait me manquer des outils. Est ce que ça vous parait cohérent ?
Hors ligne
#9 Le 25/03/2022, à 18:41
- daerlnaxe
Re : Cross-Compiler QEMU
Bon, je ne sais pas ce que j'oublie mais je ne génère aucun exécutable.
mkdir -p bin/debug/cross
cd bin/debug/cross/
j'ai testé
../../../configure --host=i686-w64-mingw32 --enable-debug
et
../../../configure --host=x86_64-w64-mingw32 -enable-debug
make
Aucun exe, et quand je tente quand même en renommant un des fichiers qui pourraient être des exe, sous windows, ça me dit que ce n'est pas compatible.... quelqu'un aurait une idée ? Entre les pages où le code date de 2016, ceux qui utilisent une autre solution et j'ai pas envie de m'embarquer dans tous les sens sans certitude, je sèche.
edit:
je tente avec ../../../configure --host=x86_64-w64-mingw32-gcc -enable-debug
Edit2
J'ose pas up même si ça fait plusieurs jours, je n'y arrive pas en cross compilation sous ubuntu mais je viens normalement de réussi sous windows.
Dernière modification par daerlnaxe (Le 30/03/2022, à 23:52)
Hors ligne
Pages : 1