1.微码。

不将微码编进内核可无视。

改/etc/hosts

加上

  • 185.199.108.133         raw.githubusercontent.com

    • 185.199.109.133        raw.githubusercontent.com

      • 185.199.110.133        raw.githubusercontent.com

        • 185.199.111.133        raw.githubusercontent.com

以上是在https://www.ipaddress.com/找raw.githubusercontent.com的结果。

另外下载https://dev.gentoo.org/~whissi/dist/intel-microcode/intel-microcode-collection-20210830.tar.xz,放在/var/cache/distfiles/下(可能是chroot下)。

(链接:https://pan.baidu.com/s/1lO8V-hS1cCDqCeN5j2mofA 提取码:usxi)

否则sys-firmware/intel-microcode装不上,然后就找不到cpu的编号。

===========================这是华丽的分割线=============================

记录一下这几天的gentoo安装过程:

先下载安装iso和stage3。虽然stage3可以在安装时下载,但是在windows下用迅雷下载还是有点安稳感。

进到镜像站 Index of /gentoo/releases/amd64/autobuilds/current-install-amd64-minimal/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 会看到略乱的下载项:

只下载红框中的iso即可。注意:此页面中也有stage3下载,但是本人以两天废寝忘食的经历告诉你,这里的stage3都会有编译问题,具体原因不明。

接下来在Index of /gentoo/releases/amd64/autobuilds/current-stage3-amd64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror下载stage3

如有特殊需要可以下载相应的stage3

在下对Linux了解不多,不知道hardened、selinux、openrc什么意思,只知道mltilib是运行32位用的,有好心人知道的话请告诉我,谢谢!

将iso用Rufus写入U盘,将stage3拷贝到U盘中(只是方便拷贝到宿主机上,不用纠结拷贝在哪里)。上面的intel-microcode-collection-20210608.tar.xz也拷进来,因为安装时下载的话速度很慢。

以u盘启动,会进入到liveCD中,也就是事先编好的gentoo。

本人是装在一块空白的WD SN550上,不需要和Windows共存。

创建分区:

parted -a optimal /dev/nvme0n1

mkpart ESP 0% 300M

mkpart rootfs 300M 72000M

set 1 boot on

efi分区300M足矣(好像单独装不需要ESP,但是我不知道设什么好)

p用来查看布局。rm {序号}删除分区,quit退出parted。要想检查是否4K对齐用align-check optimal {序号}。

之后格式化分区:

mkfs.vfat -F 32 /dev/nvme0n1p1

mkfs.ext4 /dev/nvme0n1p2

然后挂载分区:

mkdir -p /mnt/gentoo

mount /dev/nvme0n1p2 /mnt/gentoo

mkdir -p /mnt/gentoo/boot/efi

mount /dev/nvme0n1p1 /mnt/gentoo/boot/efi

从U盘拷贝文件到分区中:

cp -v /mnt/cdrom/stage3-amd64-*.tar.xz /mnt/gentoo

cp -v /mnt/cdrom/intel-microcode-*.tar.xz /mnt/gentoo

解压stage3

cd /mnt/gentoo
tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

复制编译配置文件:

cp -v /mnt/cdrom/make.conf /mnt/gentoo/etc/portage/

make.conf为编译配置文件,示例如下:

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
#(无论何种intel、amd的CPU,且无论何种新老CPU架构,均建议-march=native,CPU指令集自动识别全面)  #程序员的用户注意了,“-fomit-frame-pointer"这一项会导致你编译出来的程序无法debug;不做程序开发或debug的普通用户可以放心开启。

COMMON_FLAGS="-march=native -O2 -pipe -finline-functions -fomit-frame-pointer"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
LDFLAGS="${COMMON_FLAGS} -Wl,-O2 -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--sort-common -Wl,--strip-all"
MAKEOPTS="-j18"
CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sse sse2 sse3 sse4_1 sse4_2 ssse3"

CHOST="x86_64-pc-linux-gnu"
EMERGE_DEFAULT_OPTS="--with-bdeps=y --ask --verbose=y --load-average --keep-going --deep"
# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"
 #如果你的内存足够大(8G、16G),那么建议你把编译程序时存放临时中间文件的目录设置为内存的tmpfs(/tmp目录),以减少编译时对硬盘的大量读写、延长硬盘使用寿命、并加快编译速度;但如果你的内存较小(<=4G),那么建议你把此项注释掉,否则很多程序会因内存容量不足而导致编译失败

PORTAGE_TMPDIR="/tmp"

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C

USE="-bindist -mdev -systemd -consolekit -doc -test -gnome-shell -gnome -gnome-keyring -handbook -gtk -dhcpcd -netifrc -pulseaudio -wayland -oss -gpm -iptables -bluetooth gdbm iwd udev gold icu nftables X staging fortran lto pgo graphite openmp minizip udev blkid efi hwdb smack acpi kde alsa sudo cjk ccache dbus policykit network elogind udisks aria2 dhclient networkmanager connection-sharing wifi ppp jack libsamplerate vdpau vaapi vulkan layers nvidia glamor http2"
ACCEPT_LICENSE="*"

#("amd64"是使用稳定版的较旧的软件,"~amd64"是使用不稳定版的更新的软件;建议用稳定版的,免得不稳定的软件包出了问题还要折腾;而且gentoo所谓“稳定版”的“旧”软件相比起debian、ubuntu、centos这些已经很新了,除非你是想像archlinux那样追新)
ACCEPT_KEYWORDS="amd64"
L10N="en-US zh-CN en zh"
LINGUAS="en-US zh-CN en zh"
AUTO_CLEAN="yes"

GRUB_PLATFORMS="efi-64"(UEFI 64位系统引导必须项)

VIDEO_CARDS=“radeonsi”

#"intel i965 iris nvidia"(Intel UHD630和nvidia双显卡)
#ALSA_CARDS="hda-intel"(intel HD声卡)
#INPUT_DEVICES="libinput synaptics"(笔记本电脑的触控板)

#(如果想把CPU的microcode直接编译进内核,则需要设置为“-S”;否则注释掉)
MICROCODE_SIGNATURES="-S"

LLVM_TARGETS="X86"

GENTOO_MIRRORS="https://mirrors.163.com/gentoo"

#安装完aria2之后去掉注释,具体参数参考aria2官方文档
#FETCHCOMMAND="/usr/bin/aria2c -d \${DISTDIR} -o \${FILE} --allow-overwrite=true --max-tries=5 --max-file-not-found=2 --max-concurrent-downloads=5 --connect-timeout=5 --timeout=5 --split=5 --min-split-size=2M --lowest-speed-limit=20K --max-connection-per-server=9 --uri-selector=feedback \${URI}"
#RESUMECOMMAND="${FETCHCOMMAND}"

#此处先注释掉,配置完ccache后再去掉注释
#FEATURES="ccache -test"
#CCACHE_DIR="/var/cache/ccache"

配置软件镜像源

#选择中国源,这一步是非必须的,上面的的make.conf里已经有中国的所有源了

mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

mkdir -p -v /mnt/gentoo/etc/portage/repos.conf

cd /mnt/gentoo/usr/share/portage/config/
cp -v repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

#加入中国源
nano -w /mnt/gentoo/etc/portage/repos.conf/gentoo.conf:  
sync-uri = rsync://mirrors.163.com/gentoo-portage
#sync-uri = rsync://mirrors.tuna.tsinghua.edu.cn/gentoo-portage/
#sync-uri = rsync://rsync.mirrors.ustc.edu.cn/gentoo-portage/
#sync-uri = rsync://rsync.mirrors.ustc.edu.cn/gentoo-portage/
#sync-uri = rsync://mirrors.yun-idc.com/gentoo-portage/

复制DNS信息

cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

挂载系统必要环境,并进入Chroot环境

mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
#mount --make-rslave /mnt/gentoo/sys (不使用systemd,所以注释掉)
mount --rbind /dev /mnt/gentoo/dev
#mount --make-rslave /mnt/gentoo/dev (不使用systemd,所以注释掉)

chroot /mnt/gentoo /bin/bash
mkdir -p /var/db/repos/gentoo
env-update
source /etc/profile
export PS1="(chroot) ${PS1}"

拷贝微码文件:

cp -v intel-microcode-*.tar.xz /var/cache/distfiles/

添加github的host:

nano -w /etc/hosts

添加:

185.199.108.133        raw.githubusercontent.com
185.199.109.133        raw.githubusercontent.com
185.199.110.133        raw.githubusercontent.com
185.199.111.133        raw.githubusercontent.com


以上是在https://www.ipaddress.com/查找 raw.githubusercontent.com的结果。


开始安装系统:

emerge-webrsync

#gentoo handbook上提到可以使用emerge -rsync升级软件包数据库到最近2小时的最新版

先选择基础配置文件

eselect profile list    #选一个合适的profile予设值
eselect profile set X    #这里先保持选择默认值,即“default/linux/amd64/17.1 (stable)”

安装cpuid2cpuflags,检测cpu指令集

emerge --ask app-portage/cpuid2cpuflags
cpuid2cpuflags   #将输出值全部拷贝到/mnt/gentoo/etc/portage/make.conf中,作为“CPU_FLAGS_X86= ”的值,并取消对“CPU_FLAGS_X86= ”这一行的注释


出现“Invalid impl in /etc/python-exec/python-exec/python-exec.conf:python.3.7”的解决方法:

这是python(本人一直认为这玩意是业界毒瘤!)升到3.9造成的。

解决办法:

eselect python list
eselect python cleanup
eselect python update

如果没有安装eselect-python

则可以使用

emerge -av eselect-python

安装ccache加快编译速度:

emerge --ask ccache 
mkdir -p /var/cache/ccache
chown root:portage /var/cache/ccache -R
chmod 2775 /var/cache/ccache -R

之后去掉/etc/portage/make.conf中关于“ccache”的注释

安装aria2加快emerge的下载速度:

emerge --ask aria2

之后去掉/mnt/gentoo/etc/portage/make.conf中关于“aria2”的注释


以上工作做完,就可以在安装过程被中断后(太晚了熬不住关机之类),以下列步骤进入chroot继续之前的安装过程:

mkdir -p /mnt/gentoo
mount /dev/nvme0n1p2 /mnt/gentoo
mkdir -p /mnt/gentoo/boot/efi
mount /dev/nvme0n1p1 /mnt/gentoo/boot/efi

mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev

chroot /mnt/gentoo /bin/bash
mkdir -p /var/db/repos/gentoo
env-update
source /etc/profile
export PS1="(chroot) ${PS1}"


配置系统时区和地区:

ls /usr/share/zoneinfo
echo "Asia/Shanghai" > /etc/timezone    #我是中国人

emerge --config sys-libs/timezone-data
hwclock --systohc
date MMDDhhmmYY      #设为当前时间

设置字符编码:

nano -w /etc/locale.gen:    #设置这几项
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GBK 
zh_CN.UTF-8 UTF-8

locale-gen

eselect locale list   #查看可用系统时区和地区配置
eselect locale set X    #这里先选择“C”!!

env-update && source /etc/profile && export PS1="(chroot) ${PS1}"

接下来,重新将整个基本系统从stage1编译到stage3,把原来官方提供的stage3 tarball里的所有组件替换成自己编译的(包括GCC编译器和所有基本系统组件),这样一来整个系统的所有程序和组件都是针对自己电脑CPU架构优化编译的了,争取性能最大化,美滋滋。

首先

qfile /etc/locale.gen /etc/conf.d/keymaps  #备份之前的locale和键盘设置
cp -v /etc/locale.gen{,.bak}

从stage1到stage2(重新编译:emerge包管理器、GCC编译器、llvm编译器、clang编译器、zlib库、glibc库、libtool库)

cd /var/db/repos/gentoo/scripts
nano -w bootstrap.sh:

找到这一段

# This stuff should never fail but will if not enough is installed.
[[ -z ${myBASELAYOUT} ]] && myBASELAYOUT=">=$(portageq best_version / sys-apps/baselayout)"
[[ -z ${myPORTAGE}    ]] && myPORTAGE="portage"
[[ -z ${myBINUTILS}   ]] && myBINUTILS="binutils"   
[[ -z ${myGCC}        ]] && myGCC="gcc"
[[ -z ${myGETTEXT}    ]] && myGETTEXT="gettext"
[[ -z ${myLIBC}       ]] && myLIBC="$(portageq expand_virtual / virtual/libc)"
[[ -z ${myTEXINFO}    ]] && myTEXINFO="sys-apps/texinfo"
[[ -z ${myZLIB}       ]] && myZLIB="zlib"
[[ -z ${myNCURSES}    ]] && myNCURSES="ncurses"

在里面

[[ -z ${myLIBC}       ]] && myLIBC="$(portageq expand_virtual / virtual/libc)"
改为
[[ -z ${myLIBC}       ]] ; myLIBC="$(portageq expand_virtual / virtual/libc)"

export USE="-* bootstrap ${ALLOWED_USE} ${BOOTSTRAP_USE}"
改为
export USE="-* bootstrap ${ALLOWED_USE} ${BOOTSTRAP_USE} openmp"

./bootstrap.sh

这个脚本执行完检测后会要求你重新编译安装emerge包管理器,yes同意重新安装。

tmpfiles-0.2错的话

emerge --sync

emerge --depclean

emerge --update --newuse --deep --with-bdeps=y @world

试试

gentoo的安装坑相关推荐

  1. Gentoo无线网卡安装之broadcom-sta(wl)篇(三)

    已开通新的博客,后续文字都会发到新博客 http://www.0xfree.top --- 这是第三篇,介绍Gentoo安装broadcom-sta(wl)无线驱动 如有未明白以下内容的,请看基础知识 ...

  2. Gentoo快速安装和安装在zfs上安装实践

    作为Linux菜鸟,却由于对性能的追求而想安装Gentoo,也失败了几十次,走了太多的弯路,甚至花一整个五一假期照着某医科生的帖子,从stage1开始装,然后还失败了.近些时总算找到了诀窍,能做到除核 ...

  3. gentoo freemind 安装设置

    gentoo freemind 安装设置 安装 freemind 之后,感觉菜单上面的字体比较模糊,通过设置 tools --> preference 中的 defaults --> de ...

  4. 飞行堡垒7可不可以linux系统,ubuntu18 安装坑点记录(华硕飞行堡垒),华硕飞行堡垒7配置...

    ubuntu18 安装坑点记录(华硕飞行堡垒),华硕飞行堡垒7配置 环境 电脑:华硕飞行堡垒FX53VD 显卡:集成显卡+NVIDIA显卡(linux版本很不友好) 镜像:ubuntu18.04.3 ...

  5. gentoo intel 安装桌面

    gentoo intel 安装桌面 首先增加 vim ~/.xinitrc [[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources# d ...

  6. Gentoo的安装全过程

    Gentoo的安装全过程 1.设置GRUB引导          编辑 C:/men.list 文件  2.新建分区:          fdisk /dev/sda     [N]磁盘分区  [L新 ...

  7. gentoo emerge安装软件

    gentoo怎样更新系统和安装软件时遇到冲突时怎么解决) 2013年05月18日 19:31:01 阅读数:7119 The big emerge (Note: quite a few people ...

  8. gentoo php,Gentoo 下安装 PHP 扩展

    PECL 在 Gentoo 下没法正常工作,总是在 make 一步提示 libtool 的版本有问题.不过在 Gentoo 的论坛上转了一圈,还是有所收获,以下是找到的解决办法: 下载并解压 PHP ...

  9. Gentoo虚拟机安装--基于分发内核

    Gentoo是一个非常著名的发行版,一切都是要自己编译,研究官方文档后,找到了一个简单的方法来安装Gentoo,本文参考了Gentoo安装手册,采用分发内核进行安装,避免了复杂的配置内核的工作,更容易 ...

  10. 就是爱作死,就是爱折腾----gentoo ppsspp 安装

    2019独角兽企业重金招聘Python工程师标准>>> Jerry 是个最爱玩的人!!!! 自从电脑上装了 gentoo 之后,就玩不了游戏了.以前也在 gentoo 上装过 Adv ...

最新文章

  1. 2016年全球100G和200G相干WDM光学系统出货量增长75%
  2. Android性能优化之启动优化实战篇,最终入职阿里
  3. ActiveX (.ocx)的写法,及在IE里调用
  4. asp mysql text_11种ASP连接数据库的方法
  5. 机器人水下赌场争霸战!中国团队创造历史,在美国登顶世界第一
  6. 一名微博架构师的2016年终总结
  7. 一些简单好玩的C语言程序
  8. 详解-线性结构-一元多项式的乘法与加法运算
  9. 第二证券|支持多子女购房、提高公积金贷款额度、发放限时补贴
  10. JavaScript 的常量和变量
  11. Unity云渲染开源框架UnityRenderStreaming使用说明
  12. Screaming Frog Log File Analyser 中文版安装教程
  13. Oracle 11g 未在本地计算机上注册“OraOLEDB.Oracle”提供程序。
  14. FFT 快速傅里叶变换 NTT 快速数论变换
  15. AVAudioplayer时error解决 创建失败
  16. Java 中带包的类的编译与运行
  17. python程序加密_三分钟教你python自动化加密Word
  18. 手机鸿蒙尝鲜版,华为鸿蒙2.0手机开发者Beta版发布,这些设备可优先尝鲜鸿蒙...
  19. 百分比宽高下使内容居中
  20. Java一个灰姑娘的游戏,灰姑娘的游戏安卓版下载-灰姑娘的游戏官网版下载v1.0-模拟MAX...

热门文章

  1. spring不停机部署_关于不停机部署方案的选择
  2. 帷幕的帷是什么意思_古时纺织什么样子?穿越时空看古代纺织发展
  3. 匿名邮件爆迅雷看看丑闻
  4. 手把手带你实现 Docker 部署 Redis 集群
  5. Linuxptp安装部署
  6. 《代码大全》读书笔记
  7. 重装Ubuntu系统
  8. 好看视频出击,从Q2财报看百度的短视频谋局
  9. java如何重命名class_java – 如何重命名XStream列表元素?
  10. 2014 年度 Git@OSC【非GitHub】 最热门的 50 个项目