Openmoko under QEMU on Gentoo

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Using Manual Setup)
m (-Documentation, -Technical, +Emulation)
 
(4 intermediate revisions by 3 users not shown)
Line 7: Line 7:
 
outside gentoo.
 
outside gentoo.
 
</strong>
 
</strong>
Please use  
+
 
 +
 
 +
Please use GCC 3.3 instead.
  
 
<pre>
 
<pre>
Line 14: Line 16:
  
 
== Introduction ==
 
== Introduction ==
This page is aimed at Gentoo users new to the OpenMoko project who're trying to get the QEMU emulator up and running and do some development for the project. The basic process to do this is described at [[OpenMoko_under_QEMU]] however there are a number of Gentoo specific steps, not all of which are immediately obvious. This page obviously draws heavily from the main [[OpenMoko_under_QEMU]] page and you should check that page for most of the details as it is more likely to be updated
+
This page is aimed at Gentoo users new to the Openmoko project who're trying to get the QEMU emulator up and running and do some development for the project. The basic process to do this is described at [[Openmoko_under_QEMU]] however there are a number of Gentoo specific steps, not all of which are immediately obvious. This page obviously draws heavily from the main [[Openmoko_under_QEMU]] page and you should check that page for most of the details as it is more likely to be updated
  
 
The ultimate aim of this article is to get a good Gentoo process set out which can then be used as the basis for an ebuild. Ideally this would incorporate the Neo1973 qemu files into the normal Gentoo qemu build.
 
The ultimate aim of this article is to get a good Gentoo process set out which can then be used as the basis for an ebuild. Ideally this would incorporate the Neo1973 qemu files into the normal Gentoo qemu build.
Line 64: Line 66:
 
Once you've completed the rest of the instructions set out in the main article you should have a qemu Neo1973 emulator which you can run with something similar to: arm-softmmu/qemu-system-arm -M neo -m 130 -mtdblock openmoko/openmoko-flash.image -kernel openmoko/openmoko-kernel.bin -usb -show-cursor -snapshot -usbdevice keyboard
 
Once you've completed the rest of the instructions set out in the main article you should have a qemu Neo1973 emulator which you can run with something similar to: arm-softmmu/qemu-system-arm -M neo -m 130 -mtdblock openmoko/openmoko-flash.image -kernel openmoko/openmoko-kernel.bin -usb -show-cursor -snapshot -usbdevice keyboard
  
[[Category:Technical  ]]
+
[[Category:Emulation]]
[[Category:Software]]
+
[[Category:Documentation]]
+

Latest revision as of 21:19, 12 September 2008

[edit] IMPORTANT

As noted in http://docs.openmoko.org/trac/ticket/1093

It is confirmed by upstream: gentoo's 3.4.6 doesn't build qemu on 32-bit x86. A gcc developer (Paul Brook) said gentoo's gcc "is broken" and nothing can be done outside gentoo.


Please use GCC 3.3 instead.

# emerge -va =sys-devel/gcc-3.3.6-r1

[edit] Introduction

This page is aimed at Gentoo users new to the Openmoko project who're trying to get the QEMU emulator up and running and do some development for the project. The basic process to do this is described at Openmoko_under_QEMU however there are a number of Gentoo specific steps, not all of which are immediately obvious. This page obviously draws heavily from the main Openmoko_under_QEMU page and you should check that page for most of the details as it is more likely to be updated

The ultimate aim of this article is to get a good Gentoo process set out which can then be used as the basis for an ebuild. Ideally this would incorporate the Neo1973 qemu files into the normal Gentoo qemu build.

[edit] Using Manual Setup

Fetch the source from Subversion as described in the main article. Before performing the configure step we need to emerge a few dependencies.

emerge -va libsdl lynx netpbm

(more dependencies to be added here)

Unfortunately qemu won't compile with gcc4.x so we need to temporarily switch to a gcc3.4 compiler. You can check the available gcc installs by using gcc-config -l. If the output lists a valid gcc3.4 compiler then you can skip the next install, but most people will probably see output similar to this:

# gcc-config -l
 [1] x86_64-pc-linux-gnu-4.1.2 *

If you don't have an entry in the list for gcc3.4 then you'll have to emerge the compiler using:

# emerge -va =sys-devel/gcc-3.4.6-r2
...
...
# gcc-config -l
 [1] x86_64-pc-linux-gnu-3.4.6
 [2] x86_64-pc-linux-gnu-3.4.6-hardened
 [3] x86_64-pc-linux-gnu-3.4.6-hardenednopie
 [4] x86_64-pc-linux-gnu-3.4.6-hardenednopiessp
 [5] x86_64-pc-linux-gnu-3.4.6-hardenednossp
 [6] x86_64-pc-linux-gnu-4.1.2 *


You don't need to use gcc-config to switch the default compiler to gcc-3 - Qemu should find there right version if it's installed.

Now continue with the ./configure and make sections from the main article, then reset your system to the previous gcc compiler using the gcc-config command again.

# ./configure --target-list=arm-softmmu  # GCC 3.x will be required, see --cc=
# make

Once you've completed the rest of the instructions set out in the main article you should have a qemu Neo1973 emulator which you can run with something similar to: arm-softmmu/qemu-system-arm -M neo -m 130 -mtdblock openmoko/openmoko-flash.image -kernel openmoko/openmoko-kernel.bin -usb -show-cursor -snapshot -usbdevice keyboard

Personal tools

IMPORTANT

As noted in http://docs.openmoko.org/trac/ticket/1093

It is confirmed by upstream: gentoo's 3.4.6 doesn't build qemu on 32-bit x86. A gcc developer (Paul Brook) said gentoo's gcc "is broken" and nothing can be done outside gentoo. Please use

# emerge -va =sys-devel/gcc-3.3.6-r1

Introduction

This page is aimed at Gentoo users new to the OpenMoko project who're trying to get the QEMU emulator up and running and do some development for the project. The basic process to do this is described at OpenMoko_under_QEMU however there are a number of Gentoo specific steps, not all of which are immediately obvious. This page obviously draws heavily from the main OpenMoko_under_QEMU page and you should check that page for most of the details as it is more likely to be updated

The ultimate aim of this article is to get a good Gentoo process set out which can then be used as the basis for an ebuild. Ideally this would incorporate the Neo1973 qemu files into the normal Gentoo qemu build.

Using Manual Setup

Fetch the source from Subversion as described in the main article. Before performing the configure step we need to emerge a few dependencies.

emerge -va libsdl lynx netpbm

(more dependencies to be added here)

Unfortunately qemu won't compile with gcc4.x so we need to temporarily switch to a gcc3.4 compiler. You can check the available gcc installs by using gcc-config -l. If the output lists a valid gcc3.4 compiler then you can skip the next install, but most people will probably see output similar to this:

# gcc-config -l
 [1] x86_64-pc-linux-gnu-4.1.2 *

If you don't have an entry in the list for gcc3.4 then you'll have to emerge the compiler using:

# emerge -va =sys-devel/gcc-3.4.6-r2
...
...
# gcc-config -l
 [1] x86_64-pc-linux-gnu-3.4.6
 [2] x86_64-pc-linux-gnu-3.4.6-hardened
 [3] x86_64-pc-linux-gnu-3.4.6-hardenednopie
 [4] x86_64-pc-linux-gnu-3.4.6-hardenednopiessp
 [5] x86_64-pc-linux-gnu-3.4.6-hardenednossp
 [6] x86_64-pc-linux-gnu-4.1.2 *


You don't need to use gcc-config to switch the default compiler to gcc-3 - Qemu should find there right version if it's installed.

Now continue with the ./configure and make sections from the main article, then reset your system to the previous gcc compiler using the gcc-config command again.

# ./configure --target-list=arm-softmmu  # GCC 3.x will be required, see --cc=
# make

Once you've completed the rest of the instructions set out in the main article you should have a qemu Neo1973 emulator which you can run with something similar to: arm-softmmu/qemu-system-arm -M neo -m 130 -mtdblock openmoko/openmoko-flash.image -kernel openmoko/openmoko-kernel.bin -usb -show-cursor -snapshot -usbdevice keyboard