# [Qemu] 'a compile pô

## gbetous

Salut !

Je voudrais faire mumuse avec Qemu mais j'arrive pas à le compiler :

J'ai lu le HOWTO, j'ai donc fait les opérations suivantes :

```

emerge =sys-devel/gcc-3.4.6*

gcc-config i686-pc-linux-gnu-3.4.6

source /etc/profile

emerge -a qemu

```

Malheureusement, j'ai l'erreur suivantes :

```

i686-pc-linux-gnu-gcc -Wall -O2 -g -fno-strict-aliasing -I. -I.. -I/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0/work/qemu-0.9.0/target-i386 -I/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0/work/qemu-0.9.0 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0/work/qemu-0.9.0/fpu -DHAS_AUDIO -I/var/tmp/portage/app-emulation/qemu-softmmu-0.9.0/work/qemu-0.9.0/slirp  -c -o slirp/ip_icmp.o /var/tmp/portage/app-emulation/qemu-softmmu-0.9.0/work/qemu-0.9.0/slirp/ip_icmp.c

../softmmu_template.h: In function `__stq_mmu':

../softmmu_template.h:260: erreur: incapable de trouver un registre de déversement dans la classe « GENERAL_REGS »

../softmmu_template.h:260: erreur: ceci est le insn:

(insn:HI 365 364 366 13 ../softmmu_template.h:290 (parallel [

            (set (reg:DI 0 ax [216])

                (lshiftrt:DI (reg/v:DI 59 [ val ])

                    (subreg:QI (reg:SI 0 ax [215]) 0)))

            (clobber (scratch:SI))

            (clobber (reg:CC 17 flags))

        ]) 309 {lshrdi3_1} (insn_list 364 (nil))

    (expr_list:REG_DEAD (reg:SI 0 ax [215])

        (expr_list:REG_UNUSED (reg:CC 17 flags)

            (expr_list:REG_UNUSED (scratch:SI)

                (nil)))))

../softmmu_template.h:260: embrouillé par les erreurs précédentes, abandon

make[1]: *** [helper.o] Erreur 1

```

J'ai un peu cherché, et appremment ce serait l'erreur typique de celui qui compile avec gcc4. Or si je vérifie, j'ai bien :

```

coyote ~ # gcc -v

Lecture des spécification à partir de /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/specs

Configuré avec: /var/tmp/portage/sys-devel/gcc-3.4.6-r2/work/gcc-3.4.6/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4.6 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include/g++-v3 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-libunwind-exceptions --disable-multilib --disable-libgcj --with-arch=i686 --enable-languages=c,c++,f77 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu

Modèle de thread: posix

version gcc 3.4.6 (Gentoo 3.4.6-r2 p1.5, ssp-3.4.6-1.0, pie-8.7.10)

```

et

```

coyote ~ # i686-pc-linux-gnu-gcc -v

Lecture des spécification à partir de /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/specs

Configuré avec: /var/tmp/portage/sys-devel/gcc-3.4.6-r2/work/gcc-3.4.6/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4.6 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include/g++-v3 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-libunwind-exceptions --disable-multilib --disable-libgcj --with-arch=i686 --enable-languages=c,c++,f77 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu

Modèle de thread: posix

version gcc 3.4.6 (Gentoo 3.4.6-r2 p1.5, ssp-3.4.6-1.0, pie-8.7.10)

```

Vous arrivez à compiler Qemu vous ? Et comment ?

Merci !

----------

## geekounet

Qemu 0.9 compile avec GCC 4 en 32bit normalement, donc tente avec  :Smile: 

----------

## gbetous

Je ne crois pas :   :Wink: 

```

 * qemu requires gcc-3 in order to build and work correctly

 * please compile it switching to gcc-3.

 * We are aware that qemu can guess a gcc-3 but this feature

 * could be harmful.

!!! ERROR: app-emulation/qemu-softmmu-0.9.0 failed.

Call stack:

  ebuild.sh, line 1648:   Called dyn_setup

  ebuild.sh, line 714:   Called qa_call 'pkg_setup'

  ebuild.sh, line 44:   Called pkg_setup

  qemu-softmmu-0.9.0.ebuild, line 47:   Called die

!!! gcc 4 cannot build qemu

!!! If you need support, post the topmost build error, and the call stack if rel     evant.

!!! A complete build log is located at '/var/tmp/portage/app-emulation/qemu-soft     mmu-0.9.0/temp/build.log'.

```

----------

## geekounet

C'est pas parce que l'ebuild t'en empêche que c'est pas possible. Le mainteneur a ptêt oublié de virer le warning. Tente en le virant de l'ebuild  :Smile: 

----------

## gbetous

Heu... comment qu'on fait ?   :Embarassed: 

----------

## Temet

```
vim /usr/portage/app-emulation/qemu-softmmu/qemu-softmmu-0.9.0.ebuild
```

----------

## gbetous

re-Heu... (pas fort le gars). Si je fais une modif, j'ai l'erreur :

```

Calculating dependencies -!!! Digest verification failed:

!!! /usr/portage/app-emulation/qemu-softmmu/qemu-softmmu-0.9.0.ebuild

!!! Reason: Failed on MD5 verification

!!! Got: fe27b0843213ecf1083216c20257aeed

!!! Expected: ca6dd85d6ec35c869ee0ffe0c9511472

```

----------

## Temet

Prends la, mets dans un overlay, ajoute un r1 et redigest la  :Wink: 

EDIT : ou redigest la directement d'ou t'es... mais j'aurais du te la faire changer dans overlay, mea culpa.

----------

## gbetous

Ok, donc ce que j'ai fais, c'est un bien bourrin (apparemment) :

```
ebuild /usr/portage/app-emulation/qemu-softmmu/qemu-softmmu-0.9.0.ebuild digest
```

Bon, bin c'est pas glop :

```

../softmmu_header.h:207: erreur: can't find a register in class GENERAL_REGS while reloading asm

```

Un soucis dans mes flags ?

```

Portage 2.1.2.11 (default-linux/x86/2007.0, gcc-4.1.2, glibc-2.5-r4, 2.6.20-gentoo-r8 i686)

=================================================================

System uname: 2.6.20-gentoo-r8 i686 Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz

Gentoo Base System release 1.12.9

Timestamp of tree: Thu, 09 Aug 2007 00:50:01 +0000

dev-java/java-config: 1.3.7, 2.0.33-r1

dev-lang/python:     2.4.4-r4

dev-python/pycrypto: 2.0.1-r6

sys-apps/sandbox:    1.2.17

sys-devel/autoconf:  2.13, 2.61

sys-devel/automake:  1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10

sys-devel/binutils:  2.17

sys-devel/gcc-config: 1.3.16

sys-devel/libtool:   1.5.23b

virtual/os-headers:  2.6.21

ACCEPT_KEYWORDS="x86"

AUTOCLEAN="yes"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=nocona -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"

CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild /etc/terminfo"

CXXFLAGS="-O2 -march=nocona -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

FEATURES="ccache distlocks metadata-transfer parallel-fetch sandbox sfperms strict"

GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"

LANG="fr_FR.UTF-8"

LC_ALL="fr_FR.UTF-8"

LINGUAS="fr"

MAKEOPTS="-j4"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/layman/xeffects /usr/local/layman/berkano"

SYNC="rsync://sam/gentoo-portage"

USE="X a52 aac aalib acl acpi alsa arts berkdb bitmap-fonts cli cracklib crypt cups dbus dri dts dvb dvd dvdr dvdread encode ffmpeg flac fortran gdbm gif glitz gpm hal iconv isdnlog jpeg kde libcaca live mad midi mjpeg mmx mmxext mp3 mpeg mudflap ncurses nls nptl nptlonly nsplugin ogg opengl openmp oss pam pcre pdf perl png pppd python qt3 qt4 quicktime readline real reflection session spl sqlite3 srt sse sse2 ssl ssse3 svg tcpd threads truetype-fonts type1-fonts unicode usb v4l vidix vorbis win32codecs x264 x86 xorg xvid zlib" ALSA_CARDS="hda-intel intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="fr" USERLAND="GNU" VIDEO_CARDS="i810"

Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

```

----------

## Temet

Bon, on va y aller au troll velu : VirtualBox > Qemu   :Laughing: 

----------

## gbetous

Je lance un compil' de VirtualBOx, on va voir ça vite fait   :Very Happy: 

Mon but c'est de faire tourner DOS/Windows3.11 et peut-etre des Windows plus recents (98 ?) afin de faire tourner qques jeux (pas de 3D). C'est dans les cordes de VirtualBox ?

----------

## gbetous

Hop, ça y est, j'ai lancé VirtualBox !

Pas mal l'interface, assez réussie... Tant pis, je reste sur VirtualBox   :Wink: 

----------

## kwenspc

Pour l'utilité que tu en as, en effet virtualbox est de mise.

Pour developper des drivers, faire du RE, débugger un kernel ou encore tester d'autres archi comme l'ARM là qemu a tout à fait sa place.

----------

## gbetous

Tiens bin pour faire mumuse avec mon téléphone portable, j'ai installé un WindowsXP, et je voudrais y acceder à mon nouveau joujou via l'USB.

J'ai réussi à faire fonctionner Internet, l'audio, mais pas du tout l'USB ! Je trouve pas de périphériques USB dans le menu USB (alors que le téléphone est bien vu, j'ai un /dev/ttyACM0 qui s'est créé).

Qu'est-ce que j'ai manqué ?

----------

## Oni92

Tu as installé quelle version de VirtualBox, parce qu'il y a 2 versions : app-emulation/virtualbox-bin avec support de l'USB et  app-emulation/virtualbox sans support de l'USB

----------

## gbetous

Ah, bin la mauvaise !

J retente avec la '-bin'

----------

## gbetous

 :Crying or Very sad: 

Lorsque je tente de lancer une machine ou que j'essaie d'en créer une nouvelle, j'ai une erreur : "failed to assign the machine to the session". Un coup de Google et... rien ! Je dois etre la seule personne au monde a avoir eu cette erreur...

----------

## Temet

Non, je l'ai eue... quand je suis passé de la version GPL à la version closed source binaire.

Ça m'a pris la tête... je ne sais plus comment je m'en suis sorti... mais je l'ai écrit quelque part sur CE forum. Cherche et t'auras ta solution  :Wink: 

----------

## gbetous

Trouvé !

Je te tiens au courant...

EDIT : bon, c'est un peu différent, mais j'ai toujours l'erreur (elle a l'air plus tard, j'ai qques boites de dialoges). a titre d'info, t'as quoi comme USE sur le package ?

EDIT2 : c'est bon !!! j'ai refais encore comme toi (desinstall, suppression du groupe etc...) mais hyper propre, dans le bon ordre, en me deconnectant comme il faut.

----------

## gbetous

arglll... j'y suis tout pret !!!

j'arrive pas à connecter le préiphérique, j'ai une erreur "not permitted to open USB device, check usbfs options".

pourtant je me suis mis dans le groupe "usb", et dans mon mtab je vois "usbfs /proc/bus/usb usbfs rw,noexec,nosuid,devmode=0664,devgid=85 0 0" (et le groupe usb est bien le gid 85). et je me suis déconnecté/reconnecté pour que ca prenne effet (preuve par la commande groups).

au passage, j'arrive à m'y connecter avec KMobileTool sans pb.

j'ai meme fait un chmod 666 sur le /dev/ttyACM0, mais rien n'y fait... une idée ?

----------

## gbetous

Voilà, ça marche, et encore (presque) de la meme maniere.

J'ai rien fait de spécial, juste rajouté une nouvelle machine (avec le meme disque dur virtuel). Et là, ça marche, windows trouve mes périphériques USB. C'est peut-etre le fait que l'USB était activé avant que je fasse toutes les manips.

Bref pas très robuste aux "monkey tests" ce truc   :Wink: 

----------

