# [VirtualBox] Spécifier l'architecture du guest

## Dieppe

Bonjour à tous,

Voici ma situation :

Je suis en projet système, donc j'écris un OS (enfin j'essaye) 32 bits from scratch.

J'aimerais bien coder chez moi ; ça tombe bien, un prof a fait un tuto pour vritualbox.

J'ai donc une machine virtuelle qui boot via le réseau et une image PXE qui s'occupe de charger le kernel. Petit problème, tout fonctionne bien... jusqu'à ce que l'image PXE se charge, ce qui fait rebooter le guest.

A mon avis, c'est parce que je suis en amd64 (core2 duo), et que le PXE est fait pour du x86. Donc, la solution serait de "forcer" virtualbox à tourner en 32 bits, mais de ce que j'ai vu ça ne semble pas possible.

Donc : 

a) Est-ce possible ?

b) Si non, y'a-t-il moyen d'utiliser une autre vm qui le permette et qui permette le boot réseau via PXE ?

c) Si non, quelle autre solution est envisageable ?

d) La réponse d

Voilà voilà,

Merci d'avance,

Dieppe

----------

## GentooUser@Clubic

Je sait pas si c'est possible avec VirtualBox mais en tout cas avec qemu ça doit être possible (autant le boot pxe que l'émulation  d'un proc 32 bits)

----------

## novazur

 *Dieppe wrote:*   

> A mon avis, c'est parce que je suis en amd64 (core2 duo), et que le PXE est fait pour du x86. Donc, la solution serait de "forcer" virtualbox à tourner en 32 bits, mais de ce que j'ai vu ça ne semble pas possible.

 

Bizarre tout de même. Même si tu décoches VT-x/AMD-V ?

A priori, on ne peut pas booter en 64 bits sans cette option.

Autre chose, je suis aussi avec un core 2 duo (mais pas en PXE), et si je boote une image 32 bits, ça ne me fait pas rebooter... même avec la case cochée d'ailleurs (je viens de tester). Du coup, je ne suis pas persuadé que ta conclusion soit la bonne.

Bon courage.

----------

## Dieppe

Bonjour,

Alors, j'ai essayé de lancer l'image PXE avec QEMU, et voilà ce que j'obtiens :

```

clement@Euryphaessa ~/.VirtualBox/TFTP $ qemu -boot n -tftp /home/clement/.VirtualBox/TFTP/ -bootp /PCsys.pxe -cpu pentium -smp 1 -m 4G

qemu: fatal: Trying to execute code outside RAM or ROM at 0x000a6d6c

EAX=60000011 EBX=00000000 ECX=00000010 EDX=00000000

ESI=00000004 EDI=00000000 EBP=00000000 ESP=0000fffc

EIP=00007d6c EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0

ES =9f01 0009f010 0000ffff 00009302

CS =0008 0009f000 0000ffff 00009b09

SS =2000 00020000 0000ffff 00009302

DS =0000 00000000 0000ffff 00009302

FS =0000 00000000 0000ffff 00009302

GS =0000 00000000 0000ffff 00009302

LDT=0000 00000000 0000ffff 00008200

TR =0000 00000000 0000ffff 00008b00

GDT=     0009f855 00000017

IDT=     00000000 000003ff

CR0=60000011 CR2=00000000 CR3=00000000 CR4=00000000

DR0=00000000 DR1=00000000 DR2=00000000 DR3=00000000

DR6=ffff0ff0 DR7=00000400

CCS=00000000 CCD=60000011 CCO=LOGICL

FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80

FPR0=0000000000000000 0000 FPR1=0000000000000000 0000

FPR2=0000000000000000 0000 FPR3=0000000000000000 0000

FPR4=0000000000000000 0000 FPR5=0000000000000000 0000

FPR6=0000000000000000 0000 FPR7=0000000000000000 0000

XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000

XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000

XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000

XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000

Abandon

```

A quoi cela peut-il être du ?

EDIT : je viens d'y penser, dans les spécifications, l'espace d'adressage fait 4Go, c'est peut-être dû à ça ?

EDIT 2 : finalement, après avoir installé VirtualBox non OSE, ça fonctionne. Donc je ne sais pas exactement d'où ça vient (compilation ou version ?), mais ça marche, c'est le principal.

----------

