- 论坛徽章:
- 0
|
Gentoo Linux实战!
5.进入chroot环境,升级Portage软件列表及全面更新系统
- #chroot /mnt/gentoo /bin/bash
- #env-update
- #source /etc/profile (真正进入Gentoo环境)
- #emerge rsync (下载Portage软件列表)
- #nano -w /etc/make.conf (编辑make.conf ,优化Portage相关参数,主要是以下几项)
复制代码
a. 修改编译针对CPU的编译优化参数
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
- (这是我的优化参数,你可以根据自己的CPU类型选择不同的参数,详情请参考下表)
复制代码
- ×Safe flags to use for gentoo-1.4
- Those flags are for gcc-3.x and alike (mostly gcc-3.0, gcc-3.1.1 and gcc-3.2), you may check which gcc you're using with the following command :
- How to know your gcc version
- #gcc --version
- You can know which CPU you have with the following command :
- How to know your CPU type
- cat /proc/cpuinfo
- This page is for those who don't want to experiment, want a stable system, but still optimized for their processor. Be careful, by using those flags, binaries from your system might not work on another one. So if you compiled with those flags optimized for p4, you cant send a tbz2 or share a hard disk with a friend who only has a pentium MMX.
- i386 (Intel), do you really want to install gentoo on that ?
- CHOST="i386-pc-linux-gnu"
- CFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer"
- i486 (Intel), do you really want to install gentoo on that ?
- CHOST="i486-pc-linux-gnu"
- CFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer"
- Pentium 1 (Intel)
- CHOST="i586-pc-linux-gnu"
- CFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer"
- Pentium MMX (Intel)
- CHOST="i586-pc-linux-gnu"
- CFLAGS="-march=pentium-mmx -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=pentium-mmx -O3 -pipe -fomit-frame-pointer"
- Pentium PRO (Intel)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=pentiumpro -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=pentiumpro -O3 -pipe -fomit-frame-pointer"
- Pentium II (Intel)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
- Celeron (Mendocino), aka Celeron1 (Intel)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
- Pentium III (Intel)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
- Celeron (Coppermine) aka Celeron2 (Intel)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
- Celeron (Willamette?) (Intel)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
- Pentium 4 (Intel)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
- Eden C3/Ezra (Via)
- CHOST="i586-pc-linux-gnu"
- CFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer"
- quote : the ezra doesn't have any special instructions that you could optimize for, just consider is a K6-3...basically a p2 with 3dnow
- K6 (AMD)
- CHOST="i586-pc-linux-gnu"
- CFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
- K6-2 (AMD)
- CHOST="i586-pc-linux-gnu"
- CFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer"
- K6-3 (AMD)
- CHOST="i586-pc-linux-gnu"
- CFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer"
- Athlon (AMD)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer"
- Athlon-tbird, aka K7 (AMD)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer"
- Athlon-tbird XP (AMD)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
- Athlon 4(AMD)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=athlon-4 -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=athlon-4 -O3 -pipe -fomit-frame-pointer"
- Athlon XP (AMD)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
- Athlon MP (AMD)
- CHOST="i686-pc-linux-gnu"
- CFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer"
- 603 (PowerPC)
- CHOST="powerpc-unknown-linux-gnu"
- CFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt"
- CXXFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt"
- 603e (PowerPC)
- CHOST="powerpc-unknown-linux-gnu"
- CFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt"
- CXXFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt"
- 604 (PowerPC)
- CHOST="powerpc-unknown-linux-gnu"
- CFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt"
- CXXFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt"
- 604e (PowerPC)
- CHOST="powerpc-unknown-linux-gnu"
- CFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt"
- CXXFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt"
- 750 aka as G3 (PowerPC)
- CHOST="powerpc-unknown-linux-gnu"
- CFLAGS="-mcpu=750 -O3 -pipe -fsigned-char -mpowerpc-gfxopt"
- CXXFLAGS="-mcpu=750 -O3 -pipe -fsigned-char -mpowerpc-gfxopt"
- Note: do not use -march=
- 7400, aka G4 (PowerPC)
- CHOST="powerpc-unknown-linux-gnu"
- CFLAGS="-mcpu=7400 -O2 -pipe -fsigned-char -maltivec
- -mabi=altivec -mpowerpc-gfxopt"
- CXXFLAGS="-mcpu=7400 -O2 -pipe -fsigned-char -maltivec
- -mabi=altivec -mpowerpc-gfxopt"
- -fsigned-char -maltivec -mabi=altivec -mpowerpc-gfxopt"
- Note: do not use -march=
- Note: -O3 is unstable on G4
- 7450, aka G4 second generation (PowerPC)
- CHOST="powerpc-unknown-linux-gnu"
- CFLAGS="-mcpu=7450 -O2 -pipe -fsigned-char
- -maltivec -mabi=altivec -mpowerpc-gfxopt"
- CXXFLAGS="-mcpu=7450 -O2 -pipe -fsigned-char
- -maltivec -mabi=altivec -mpowerpc-gfxopt"
- Note: do not use -march=
- Note: -O3 is unstable on G4
- PowerPC (If you don't know which one)
- CHOST="powerpc-unknown-linux-gnu"
- CFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt"
- CXXFLAGS="-O3 -pipe -fsigned-char -mpowerpc-gfxopt"
- Sparc
- CHOST="sparc-unknown-linux-gnu"
- CFLAGS="-O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-O3 -pipe -fomit-frame-pointer"
- Sparc 64
- CHOST="sparc64-unknown-linux-gnu"
- CFLAGS="-O3 -pipe -fomit-frame-pointer"
- CXXFLAGS="-O3 -pipe -fomit-frame-pointer"
复制代码
b. emerge Gentoo Linux的最新unstable版本
[仍然是修改/etc/make.conf]
- # Advanced Masking
- # ================
- #
- # Gentoo is using a new masking system to allow for easier stability testing
- # on packages. KEYWORDS are used in ebuilds to mask and unmask packages based
- # on the platform they are set for. A special form has been added that
- # indicates packages and revisions that are expected to work, but have not yet
- # been approved for the stable set. '~arch' is a superset of 'arch' which
- # includes the unstable, in testing, packages. Users of the 'x86' architecture
- # would add '~x86' to ACCEPT_KEYWORDS to enable unstable/testing packages.
- # '~ppc', '~sparc', '~sparc64' are the unstable KEYWORDS for their respective
- # platforms. DO NOT PUT ANYTHING BUT YOUR SPECIFIC ~ARCHITECTURE IN THE LIST.
- # IF YOU ARE UNSURE OF YOUR ARCH, OR THE IMPLICATIONS, DO NOT MODIFY THIS.
- #
- ACCEPT_KEYWORDS="~x86" #(去掉ACCEPT_KEYWORDS="~x86"前的注释符即可)
复制代码 |
|