<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoo-amd64-faq.xml,v 1.11 2006/02/11 14:22:50 swift Exp $ -->

<guide link="/doc/en/gentoo-amd64-faq.xml">
<title>Gentoo Linux/AMD64 Frequently Asked Questions</title>

<author title="Editor">
  <mail link="lmedinas@gmail.com">Luis Medinas</mail>
</author>
<author title="Editor">
  <mail link="gerrynjr@gentoo.org">Gerald J. Normandin Jr.</mail>
</author>
<author title="Editor">
  <mail link="blubb@gentoo.org">Simon Stelling</mail>
</author>
<author title="Editor">
  <mail link="neysx@gentoo.org">Xavier Neys</mail>
</author>

<abstract>
This is the Gentoo Linux/AMD64 Frequently Asked Questions
</abstract>

<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
<license/>

<version>1.8</version>
<date>2006-02-11</date>

<chapter>
<title>Questions</title>
<section>
<title>Introduction to Gentoo/AMD64 FAQ</title>
<body>

<p>
This document contains the most commonly asked questions about Gentoo/AMD64. We
intend to help and provide useful information about Gentoo/AMD64. Some of these
questions can be found in forums, irc, or mailing lists. If you have suggestions
or questions about this FAQ, you are welcome to send an e-mail to the authors
explaining the problem.
</p>

</body>
</section>
<section>
<title>Installation</title>
<body>

<ul>
  <li><uri link="#cflags">What CFLAGS should I use for AMD64/EM64T?</uri></li>
  <li><uri link="#kernel">What kernel should I use?</uri></li>
  <li>
    <uri link="#perfup">Will I have a performance upgrade if I use 64-bit
    system instead of 32-bit?</uri>
  </li>
  <li>
    <uri link="#emul32">How do I get 32-bit emulation for my system?</uri>
  </li>
  <li><uri link="#multilib">What is multilib and how can I use it?</uri></li>
  <li><uri link="#chroot32">How do I create a 32-bit chroot?</uri></li>
  <li>
    <uri link="#upgradex86">Can I upgrade from my x86 system to amd64 by doing
    emerge -e world?</uri>
  </li>
</ul>

</body>
</section>
<section>
<title>Hardware</title>
<body>

<ul>
  <li>
    <uri link="#videobindrivers">Will my binary NVIDIA/ATI drivers work?</uri>
  </li>
  <li>
    <uri link="#coolnquiet">How do I use Cool'n'Quiet/Powernow features?</uri>
  </li>
</ul>

</body>
</section>
<section>
<title>Applications</title>
<body>

<ul>
  <li><uri link="#flash">Can I get Macromedia Flash working?</uri></li>
  <li><uri link="#OOo">Can I get OpenOffice.org working?</uri></li>
  <li><uri link="#java">How do I get java working in my browser?</uri></li>
  <li>
    <uri link="#masked">I want to install package foo, but emerge says: (masked
    by: ~amd64 keyword)</uri>
  </li>
  <li>
    <uri link="#keyword">I want to install package foo, but emerge says:
    (masked by: missing keyword)</uri>
  </li>
</ul>

</body>
</section>
<section>
<title>How can I help the Gentoo/AMD64 project?</title>
<body>

<ul>
  <li><uri link="#bugs">How do I report bugs?</uri></li>
  <li><uri link="#project">How can I help?</uri></li>
</ul>

</body>
</section>
<section>
<title>Other Resources</title>
<body>

<ul>
  <li>
    <uri link="#other">Where can I get more help or information about
    Gentoo/AMD64?</uri>
  </li>
</ul>

</body>
</section>
</chapter>

<chapter>
<title>Installation</title>
<section id="cflags">
<title>What CFLAGS should I use for AMD64/EM64T?</title>
<body>

<p>
You should use simple <c>CFLAGS</c> to avoid future problems with your system.
For example, you should use <c>CFLAGS="-march=k8 -O2 -pipe"</c> for Athlon64 or
Opteron and <c>CFLAGS="-march=nocona -O2 -pipe"</c> for a EM64T processor. If
you plan to use a 32-bit chroot, you should use <c>CFLAGS="-march=athlon-xp
-O2 -pipe -msse2"</c> for a AMD64 processor; for a EM64T, you should use
<c>CFLAGS="-march=pentium4 -O2 -pipe"</c> <e>inside the chroot</e>.
</p>

<note>
<c>-march=k8</c> is the same as <c>-march=athlon64</c> and
<c>-march=opteron</c>.
</note>

<warn>
You should <e>never</e> place <c>-fPIC</c>, <c>-m32</c> or <c>-m64</c> in
your <c>CFLAGS</c>. They are automatically added whenever they are needed.
Please also note that the <c>-Os</c> flag is currently not supported.
</warn>

</body>
</section>
<section id="kernel">
<title>What kernel should I use for AMD64?</title>
<body>

<p>
You can use almost all kernel sources available in Portage. We recommend using
<c>gentoo-sources</c> because it is a special kernel designed for Gentoo Linux.
It contains lots of AMD64-specific patches and therefore is the only kernel
officially supported by Gentoo/AMD64. You can try <c>vanilla-sources</c> as
well. If you feel brave or you need extra hardware support, you can always try
the experimental kernel from Andrew Morton called <c>mm-sources</c>.
</p>

<warn>
You should watch out for some kernel features which are not well tested, such
as <c>PREEMPT</c>.
</warn>

</body>
</section>
<section id="perfup">
<title>Will I have a performance upgrade if I use 64-bit system instead of 32-bit?</title>
<body>

<p>
That is a difficult question to answer. In some cases, you will experience a
performance improvement, in other cases you will not. For everyday use, there
is nearly no difference between 64-bit and 32-bit. 64-bit is generally faster
when it comes to floating point computing which is normally the case in
multimedia applications and 3D rendering. This <uri
link="http://enterprise.linux.com/enterprise/05/06/09/1413209.shtml?tid=121">article</uri>
may interest you. There's also a nice <uri
link="http://forums.gentoo.org/viewtopic-t-349691.html">thread</uri> in our
<uri link="http://forums.gentoo.org">forums</uri>.
</p>

</body>
</section>
<section id="emul32">
<title>How do I get 32-bit emulation for my system?</title>
<body>

<p>
You have to install a few packages to get 32-bit libraries into your system.
These packages are automatically pulled in as dependencies for 32-bit
applications by Portage, so there is no need to manually emerge them. You can
install such packages by doing:
</p>

<pre caption="Installing 32-bit libraries">
# <i>emerge emul-linux-x86-baselibs</i>
# <i>emerge emul-linux-x86-compat</i>
# <i>emerge emul-linux-x86-glibc</i>
</pre>

<p>
Furthermore, you need the <c>IA32_EMULATION</c> option activated in the kernel.
</p>

<pre caption="Activating IA32 Emulation in Kernel source">
# <i>cd /usr/src/linux</i>
# <i>make menuconfig</i>

Executable file formats / Emulations  ---&gt;
  [*] IA32 Emulation
</pre>

</body>
</section>
<section id="multilib">
<title>What is multilib and how can I use it?</title>
<body>

<p>
Every AMD64 processor is able to run 32-bit code as well as 64-bit code.
However, when you have a 32-bit application, you are unable to mix it with
64-bit libraries or vice versa. You can, however, natively run 32-bit
applications if all shared libraries it needs are available as 32-bit objects.
You can choose whether you want multilib support or not by selecting the
according profile. The default is a multilib-enabled profile.
</p>

</body>
</section>
<section id="chroot32">
<title>How do I create a 32-bit chroot?</title>
<body>

<p>
Please read the <uri
link="/proj/en/base/amd64/howtos/index.xml?part=1&amp;chap=2">32-bit chroot
guide</uri>.
</p>

</body>
</section>
<section id="upgradex86">
<title>Can I upgrade from my x86 system to amd64 by doing emerge -e world?</title>
<body>

<p>
Due to several differences between an <c>x86</c> and an <c>amd64</c>
installation, it is impossible to upgrade. Please perform a fresh install. The
installation is slightly different than an x86 one, so please use the
<uri link="/doc/en/handbook/handbook-amd64.xml">AMD64 Handbook</uri>.
</p>

</body>
</section>
</chapter>

<chapter>
<title>Hardware</title>
<section id="videobindrivers">
<title>Will my binary NVIDIA/ATI drivers work?</title>
<body>

<p>
Yes, NVIDIA and ATI provide drivers that work on AMD64. You can install them by
executing <c>emerge nvidia-kernel</c> or <c>emerge ati-drivers</c>. If you have
more questions about these drivers, you should read the <uri
link="/doc/en/nvidia-guide.xml">Nvidia guide</uri> or the <uri
link="/doc/en/ati-faq.xml">ATI FAQ</uri>.
</p>

</body>
</section>
<section id="coolnquiet">
<title>How do I use Cool'n'Quiet/Powernow features?</title>
<body>

<p>
You have to compile your kernel with support for these features. You just need
to enable the features below:
</p>

<pre caption="Kernel options for Cool'n'Quiet/Powernow">
Power management options ---&gt;
  [*] Power Management support
CPU Frequency scaling ---&gt;
  [*] CPU Frequency scaling
  [*] CPU frequency table helpers
  [*] AMD Opteron/Athlon64 PowerNow!
</pre>

<p>
Then <c>emerge cpudyn</c> and edit <path>/etc/conf.d/cpudyn</path> with your
favorite editor.
</p>

<pre caption="Example of /etc/conf.d/cpudyn">
INTERVAL=1
CPU_UP=0.5
CPU_DOWN=0.9
THROTTLING_LOW=7
CPUFREQ_25="/sys/devices/system/cpu/cpu0/cpufreq /sysfs/devices/system/cpu/cpu0/cpufreq"
CPUFREQ_ACPI="/proc/acpi/processor/CPU0/throttling"
</pre>

<p>
Now you only have to run <c>rc-update add cpudyn default</c> to make sure it is
started every time you boot.
</p>

</body>
</section>
</chapter>

<chapter>
<title>Applications</title>
<section id="flash">
<title>Can I get Macromedia Flash working?</title>
<body>

<p>
Yes. To get Flash working, you need a 32-bit browser like <c>mozilla-bin</c>,
<c>mozilla-firefox-bin</c> or <c>opera</c> because Macromedia doesn't provide a
64-bit version. After emerging the -bin-package of your favorite browser,
install flash by doing <c>emerge netscape-flash</c>.
</p>

</body>
</section>
<section id="OOo">
<title>Can I get OpenOffice.org working?</title>
<body>

<p>
OpenOffice 1.x and 2.0.x do not build on 64-bit systems, so you have to use the
32-bit binary version, available in portage as <c>openoffice-bin</c>.
</p>

</body>
</section>
<section id="java">
<title>How do I get java working in my browser?</title>
<body>

<p>
Blackdown provides a 64-bit JRE. To install it, <c>emerge blackdown-jre</c>.
Then, perform the following step:
</p>

<pre caption="Example of java link to browser plugins">
# <i>ln -s /opt/blackdown-jre-*/plugin/amd64/mozilla/libjavaplugin_oji.so /usr/lib64/nsbrowser/plugins/libjavaplugin_oji.so</i>
</pre>

</body>
</section>
<section id="masked">
<title>I want to install package foo, but emerge says: (masked by: ~amd64 keyword)</title>
<body>

<p>
This means that the package is still in the 'testing' tree. Please read <c>man
portage</c> or the <uri
link="/doc/en/handbook/handbook-amd64.xml?part=3&amp;chap=3">Mixing Software
Branches</uri> chapter of the <uri
link="/doc/en/handbook/handbook-amd64.xml">AMD64 Handbook</uri> for more
information.
</p>

</body>
</section>
<section id="keyword">
<title>I want to install package foo, but emerge says: (masked by: missing keyword)</title>
<body>

<p>
This means that the package has not been tested yet. It does <e>not
necessarily</e> mean that the package does not work. You can unmask it by
accepting another architecture for the package. The following example shows you
can tell Portage to accept the ~x86 keyword for a given package.
</p>

<pre caption="Example of adding package keywords">
# <i>echo "category/package ~x86" >> /etc/portage/package.keywords</i>
# <i>emerge package</i>
</pre>

<p>
If it works fine for you, please let us know and file a bug on <uri
link="http://bugs.gentoo.org/">Gentoo's Bugzilla</uri>, so that the AMD64 team
can keyword the package and other users can benefit from your test.
</p>

<warn>
Do not try commands like  <c>ACCEPT_KEYWORDS="~x86" emerge package</c>. It will
most certainly break your tree.
</warn>

</body>
</section>
</chapter>

<chapter>
<title>How can help I the Gentoo/AMD64 project?</title>
<section id="bugs">
<title>How do I report bugs?</title>
<body>

<p>
If you find a bug or you want to send us patches, you need to file a bug
report. It only takes you a little while, and your help is really appreciated.
Please follow the <uri
link="/proj/en/base/amd64/howtos/index.xml?part=1&amp;chap=2">Filing a Bug
Guide</uri>.
</p>

</body>
</section>
<section id="project">
<title>How can I help?</title>
<body>

<p>
With a growing popularity of the amd64 architecture, we also increasingly need
more help. There's still much work to be done to improve the quality of
Gentoo/AMD64. An average user can help us by:
</p>

<ul>
  <li>Filing general bug reports</li>
  <li>Testing software that does not yet have the <c>~amd64</c> keyword</li>
  <li>
    Participating in the <uri
    link="/proj/en/base/amd64/tests/index.xml?part=1&amp;chap=1">Arch Testers
    project</uri>
  </li>
  <li>
    Help answering questions on the mailing lists, forums and IRC channels
  </li>
  <li>Sending patches</li>
</ul>

</body>
</section>
</chapter>

<chapter>
<title>Other Resources</title>
<section id="other">
<title>Where can I get more help or information about Gentoo/AMD64?</title>
<body>

<p>
If any of your questions wasn't answered here, you can try other resources like
the <uri link="/doc/en/handbook/handbook-amd64.xml">AMD64 Handbook</uri>, the
<uri link="/proj/en/base/amd64/howtos/index.xml">AMD64 Howtos</uri> or
<uri link="/proj/en/base/amd64/index.xml">our project homepage</uri>. You can
also ask us at <c>#gentoo-amd64</c> on <c>irc.freenode.net</c>, <uri
link="http://forums.gentoo.org/viewforum-f-46.html">Gentoo/AMD64 Forums</uri>,
or on the <c>gentoo-amd64@lists.gentoo.org</c> mailing list.
</p>

</body>
</section>
</chapter>

</guide>
