2024年12月12日

HYEOS

随事而为

Gentoo KDE intel nvidia 双显卡安装

5 min read
  • 配置网络
    根据上一篇中的内容,如果是台式机那么此时已经可以联网了则跳过此步骤,如果是笔记本则需要配置无线网络
    步骤如下:
    创建 WIFI配置文件 /etc/wpa_supplicant/wpa_supplicant.conf 内容如下

    The below line not be changed otherwise wpa_supplicant refuses to work
    ctrl_interface=/var/run/wpa_supplicant
    Ensure that only root can read the WPA configuration
    ctrl_interface_group=0
    Let wpa_supplicant take care of scanning and AP selection
    ap_scan=1
    Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
    network={
    ssid="这里填写WIFI名称"
    psk="这里填写WIFI密码"
    priority=5
    }
    解锁WIFI并启用WIFI`
    `注意:wlo1为本机wifi端口,具体名称以自己的笔记本为主,查看 ls /sys/class/net

    ```bash
    rfkill unblock all
    ip link set dev wlo1 up
    连接 WIFI 并自动分配 IP
    ```
    ```swift
    wpa_supplicant -B -i wlo1 -c /etc/wpa_supplicant/wpa_supplicant.conf
    dhcpcd wlo1
    检测网络连接
    ```
    ```css
    ping www.baidu.com
    ```

  • 安装编辑软件
    开始之前先装一个vim,方便后续修改配置(当然用nano也是一样的,看个人喜好):

    emerge app-editors/vim
  • 创一个普通用户:
    登录kde(sddm)时不能用root帐号

    useradd -m -G users,wheel,audio,lp,cdrom,video,portage,cron -s /bin/bash hyeos
    passwd hyeos #设置用户密码

    1. 选择桌面配置文件

    eselect profile list

    hyeos@GENTOO ~ $ eselect profile list
    Available profile symlink targets:
    [1] default/linux/amd64/17.1 (stable)
    [2] default/linux/amd64/17.1/selinux (stable)
    [3] default/linux/amd64/17.1/hardened (stable)
    [4] default/linux/amd64/17.1/hardened/selinux (stable)
    [5] default/linux/amd64/17.1/desktop (stable)
    [6] default/linux/amd64/17.1/desktop/gnome (stable)
    [7] default/linux/amd64/17.1/desktop/gnome/systemd (stable)
    [8] default/linux/amd64/17.1/desktop/plasma (stable)
    [9] default/linux/amd64/17.1/desktop/plasma/systemd (stable)
    [10] default/linux/amd64/17.1/desktop/systemd (dev)
    [11] default/linux/amd64/17.1/developer (stable)
    [12] default/linux/amd64/17.1/no-multilib (stable)
    [13] default/linux/amd64/17.1/no-multilib/hardened (stable)
    [14] default/linux/amd64/17.1/no-multilib/hardened/selinux (stable)
    [15] default/linux/amd64/17.1/systemd (stable)
    [16] default/linux/amd64/17.0 (dev)
    [17] default/linux/amd64/17.0/selinux (dev)
    [18] default/linux/amd64/17.0/hardened (dev)
    [19] default/linux/amd64/17.0/hardened/selinux (dev)
    [20] default/linux/amd64/17.0/desktop (dev)
    [21] default/linux/amd64/17.0/desktop/gnome (dev)
    [22] default/linux/amd64/17.0/desktop/gnome/systemd (dev)
    [23] default/linux/amd64/17.0/desktop/plasma (dev)
    [24] default/linux/amd64/17.0/desktop/plasma/systemd (dev)
    [25] default/linux/amd64/17.0/developer (dev)
    [26] default/linux/amd64/17.0/no-multilib (dev)
    [27] default/linux/amd64/17.0/no-multilib/hardened (dev)
    [28] default/linux/amd64/17.0/no-multilib/hardened/selinux (dev)
    [29] default/linux/amd64/17.0/systemd (dev)
    [30] default/linux/amd64/17.0/x32 (dev)
    [31] default/linux/amd64/17.0/musl (exp)
    [32] default/linux/amd64/17.0/musl/hardened (exp)
    [33] default/linux/amd64/17.0/musl/hardened/selinux (exp)
    [34] default/linux/amd64/17.0/uclibc (exp)
    [35] default/linux/amd64/17.0/uclibc/hardened (exp)
    选择kde的配置文件,即后面带有plasma的:

    2. 启用相关服务

    如果使用桌面等 配置文件,则会自动安装其中一部分,但仍需要正确设置。这些服务基本信息是:

  • D-Bus:允许使用D-Bus消息总线系统。
  • polkit:启用polkit框架以控制系统范围服务的权限。
  • udisks:支持某些与存储相关的服务。
  • eudev:Gentoo的udev分支,旨在获得更好的兼容性。它是桌面/等离子配置文件的默认设置。
    至于怎么启用上述服务,请接着往下看!
    2.1 修改 USE flags
    vim /etc/portage/make.conf
    #打开make.conf文件之后,找到 USE 变量,
    #如果没有USE,则在最后一行添加USE,并添加以下标志
    USE="dbus policykit udisks eudev -consolekit"

    顺便确认一下编译时用的cpu核心数,根据个人电脑修改:CPU核心数+1
    我这里是: MAKEOPTS="-j13"
    如果文件/etc/portage/make.conf 中不存在该变量,则需要手动输入。

    2.2 确保内核开启了对udisks的支持
  • 查看并修改内核的方法:
    cd /usr/src/linux
    make menuconfig

    执行完上述命令后,此时将出现一个kernel图形界面,按照下面的格式进行启用内核服务:

    # KERNEL udisks2
    General setup --->
    [*] Support for paging of anonymous memory (swap)
    Device Drivers --->
    < > ATA/ATAPI/MFM/RLL support (DEPRECATED) --->
    File Systems -->
    Native Language Support -->
    <*> NLS UTF8
    Pseudo filesystems --->
    -*- Tmpfs virtual memory file system support (former shm fs)
    [*] Tmpfs POSIX Access Control Lists
  • 修改完成并退出之后,需要重新编译内核:
    make -j13 加快编译速度,13为CPU核心数+1

    make -j13 && make modules_install
  • 内核完成编译后,将内核映像复制到 /boot/。这由make install命令自动处理:
    make install
  • 重新引导一下:
    注意: 在此之前需要确保引导分区挂载成功,上一篇文章中,引导分区挂载在 /boot/efi 目录,执行 mount 命令查看 /boot/efi 是否被挂载,如果不存在挂载,则需要重新挂载引导分区。
    确保引导分区已成功挂载之后,重新配置引导:

    hyeos@GENTOO ~ $ sudo grub-mkconfig -o /boot/grub/grub.cfg
    密码:
    Generating grub configuration file ...
    Found linux image: /boot/vmlinuz-5.4.97-gentoo-x86_64
    Found initrd image: /boot/initramfs-5.4.97-gentoo-x86_64.img
    Found linux image: /boot/vmlinuz-5.4.97-gentoo-x86_64.old
    Found initrd image: /boot/initramfs-5.4.97-gentoo-x86_64.img
    done

    确认挂载引导分区
    一切都确认好了之后,开始更新系统以使更改生效,这需要点时间:

    time emerge -avuDN @world
    2.3 设置相关服务默认启动

    至此相关系统服务已安装完,接下来需要设置默认启动:

    rc-update add dbus default
    rc-update add udev default

    3. 安装X server

    添加USE flags

    vim /etc/portage/make.conf
    #在USE最后面添加一个 X
    USE="X"
    # 鼠标键盘触摸板标志
    INPUT_DEVICES="libinput synaptics" # 笔记本用户需添加:synaptics
    #intel NVIDIA双显卡,同时我启用了virtualbox,此处也将virtualbox填加显卡驱动
    VIDEO_CARDS="nvidia intel i915 i965 virtualbox"

    检查kernel:

  • 输入驱动支持
    需要通过更改内核配置来激活对事件接口(CONFIG_INPUT_EVDEV)的支持。如果您不知道如何设置内核,请阅读“ 内核配置指南”
    进入内核界面:cd /usr/src/linux -> make menuconfig

    #Enabling evdev in the kernel
    Device Drivers --->
    Input device support --->
    <*> Event interface
  • 内核模式设置
    现代开源视频驱动程序依赖于内核模式设置(KMS)。KMS提供了改进的图形启动,闪烁更少,用户切换速度更快,内置帧缓冲控制台,从控制台到Xorg的无缝切换以及其他功能。
    注意:KMS与传统帧缓冲驱动程序冲突,必须在内核配置中保持禁用状态。
    首先为KMS准备内核。无论使用哪个Xorg视频驱动程序,此步骤均为:

    Device Drivers --->
    Graphics support --->
    Frame Buffer Devices --->
    <*> Support for frame buffer devices --->
    ## (Disable all drivers, including VGA, Intel, nVidia, and ATI, except EFI-based Framebuffer Support, only if you are using UEFI)
    ## (Further down, enable basic console support. KMS uses this.)
    Console display driver support --->
    <*> Framebuffer Console Support

    接下来,配置内核以使用适当的视频卡KMS驱动程序。英特尔,nVidia和AMD / ATI是最常用的卡,因此请按照以下每张卡的代码列表进行操作。
    *对于nVidia卡:
    这里用的闭源驱动nvidia
    进入内核界面:
    cd /usr/src/linux -> make menuconfig**

    [*] Enable loadable module support ---> #开启可加载模块支持
    Processor type and features ---> #开启 MTRR 支持
    [*] MTRR (Memory Type Range Register) support
    Device Drivers --->
    Graphics support --->
    -*- /dev/agpgart (AGP Support) ---> #启用agpgart支持
    < > Nouveau (nVidia) cards #确保禁用nouveau驱动程序:
    Frame buffer Devices ---> #禁用对内核驱动程序的支持
    <*> Support for frame buffer devices --->
    < > nVidia Framebuffer Support
    < > nVidia Riva support
  • 修改之后的内核需要重新编译!
    退出配置并开始编译过程:

    关于nvidia显卡的内核选项,参考官方的进行选择,首次使用请尽量用官方的指导https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers/zh-cn

    关于virtualbox的驱动选项也请参考官方的进行选择,在后面的安装virtualbox虚拟机时将不会出现其它的因为内核驱动不支持的原因而造成windows或macos系统无法安装或引导https://wiki.gentoo.org/wiki/Virtualbox

    make -j13 && make modules_install
    genkernel --menuconfig all #也可使用此命令,我习惯此命令,可以直接将编译好的内核文件自动安装
  • 内核完成编译后,将内核映像复制到 /boot/。这由make install命令自动处理:
    make install
  • 重新引导一下:
    grub-mkconfig -o /boot/efi/grub/grub.cfg

    一切就绪,开始安装 X server

    time emerge --ask --quiet x11-base/xorg-server

    安装完成后,需要重新初始化一些环境变量才能继续。使用此命令获取配置文件:

env-update
source /etc/profile
  • NVidia用户:
    NVidia驱动程序仅在重新启动后才能工作,因此请确保在运行nvidia-xconfig后重新启动系统:

    nvidia-xconfig

    我的/etc/X11/xorg.conf配置内容

    Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
    EndSection

Section "Module"
Load "fb"
Load "shadow"
Load "exa"
Load "glamoregl"
Load "glx"
Load "dri3"
EndSection

Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "01:00:0"
Option "Accel" "true"
Option "RenderAccel" "true"
Option "NoFlip" "false"
Option "SWCursor" "false"
Option "HWCursor" "true"
Option "DamageEvents" "true"
Option "ModeDebug" "false"
Option "AllowSHMPixmaps" "false"
Option "SidebandSocketPath" "/tmp"
Option "UseSysmemPixmapAccel" "true"
Option "MultisampleCompatibility" "true"
Option "AllowEmptyInitialConfiguration" "true"
Option "ForceCompositionPipeline" "true"
Option "ForceFullCompositionPipelline" "true"
Option "AllowIndirectGLXProtocol" "false"
Option "TripleBuffer" "true"
Option "Stereo" "0"
Option "BaseMosaic" "false"
Option "MultiGPU" "false"
Option "SLI" "false"
Option "RegistryDwords" "EnableBrightnessControl=1"
EndSection

Section "Device"
Identifier "InactiveDevice1"
Driver "modesetting"
VendorName "Unknown"
Option "AccelMethod" "glamor"
Option "DRI" "3"
Option "TearFree" "true"
EndSection

Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
Identifier "intel"
Driver "modesetting"
BusID "00:02:0"
EndSection

Section "Screen"
Identifier "intel"
Device "intel"
EndSection

  • 可以并且建议将OpenGL渲染器设置为硬件渲染器而不是软件渲染器:
    eselect opengl set nvidia #我执行未成功,找不到模块,不执行也无所谓
  • 将需要访问视频卡的用户skillf(开始前创建的用户)添加到视频组:
    gpasswd -a hyeos video
  • 为防止nouveau 与 nvidia冲突,需要将nouveau禁止加载,将nouveau模块列入黑名单:
    vim /etc/modprobe.d/nouveau-blacklist.conf
    #在文件中加入以下语句即可
    blacklist nouveau

    4. 安装kde

    这将安全全部plasma套件,会需要相当长的时间,可以休息一下,或者放到睡觉前操作~

    time emerge --ask --quiet kde-plasma/plasma-meta

    5. 配置桌面显示管理器SDDM

    sddm已经包含在plasma套件里面了,但需要指定一下:

    vim /etc/conf.d/xdm
    DISPLAYMANAGER="sddm"

    修改完之后,需要设置开机默认开启sddm,否则会直接进入命令行ttys,然后需要手动打开登录界面,才能进入KDE。
    这并不是我们想要的,此时需要自动打开(为避免出现无法启动桌面进入卡死状态,建议先不执行下面命令,使用/etc/init.d /xdm start命令启动能成功进入桌面后再执行以下命令填写每次自启动,默认情况下xdm会自动安装,但也可能没有安装,近两次我安装时发现没有自安装,所以可以手动安装xdm):

    rc-update add xdm default

    6.KDE工具包

    KDE-应用/ KDE的应用程式的元包提供了完整的应用程序包:
    如果对于KDE比较了解,则可以装一些常用的工具即可,这里了为方便,使用懒人法全套安装啦~
    温馨提示:
    如果手头上没事做的话,这里建议不要使用 --quiet选项,或者放在睡前执行,否则会让你的觉得卡半天都没有动静,事实上它在疯狂编译中!

    time emerge --ask --quiet kde-apps/kde-apps-meta

    7. 安装字体

    默认的字体会导致中文乱码,此时应该装支持中文的字体即可解决:

    emerge --ask media-fonts/wqy-zenhei wqy-bitmapfont wqy-microhei wqy-unibit

    获取安装所有字体的配置文件列表:

    eselect fontconfig list


    选择刚才安装的带有wqy的字体左边的序号(以自己电脑为准)启用它们:

    eselect fontconfig enable 30 31 55

    8. 安装 fcitx 输入法

    emerge --ask app-i18n/fcitx kcm-fcitx
    #前者是软件,后者是桌面配置工具,不安装配置工具,则在桌面环境下不能使用输入法图形化设置。

    配置输入法,在用户目录下添加.xprofile文件,并添加以下内容:

    vim /home/skillf/.xprofile
    eval "$(dbus-launch --sh-syntax --exit-with-session)"
    export XMODIFIERS="@im=fcitx"
    export QT_IM_MODULE="fcitx"
    export GTK_IM_MODULE="fcitx"

    9. 重启之后的一些设置与检查

    完成之后重启,即可进入KDE啦!

    reboot

    重启后,输入开头新创建的用户密码登录系统,打开konsole终端并安装一个sudo,方便以后获取管理员权限:
    su进入root用户(管理员用户)
    exit退出root用户

    su
  • 安装 sudo
    emerge --ask sudo
  • 配置sudo
    sudo的配置文件是 /etc/sudoers,但是该文件规定必须在root下使用visudo命令编辑:

    visudo

    这里会打开/etc/sudoers文件,找到下面这行
    # %wheel ALL=(ALL) ALL
    去掉开头的#保存文件退出即可!
    意思是:允许wheel用户组中的用户执行所有命令(我们开头新建的用户skillf是属于wheel组的),但是需要输入密码。

    当然也可以设置不需要输入密码:# %wheel ALL=(ALL) NOPASSWD: ALL,只是为了安全起见不建议使
    用!
    具体更多的配置内容可以去看:/etc/sudoers
    设置完之后就退出root用户:

    exit


  • 显示系统信息:
    需要安装screenfetch

    
    sudo emerge --ask screenfetch
    screenfetch
    sudo提示的密码是指当前用户的密码,例如我在skillf用户下运行的sudo,那么密码就是skillf用户的密码,输入并回车即可。在输入密码之后,短时间内不需要再次输入密码,可直接运行sudo。
    ```[![](http://hyehye.net/wp/wp-content/uploads/2021/02/1613375368-hyeos2021046154903.png)](http://hyehye.net/wp/wp-content/uploads/2021/02/1613375368-hyeos2021046154903.png)
    ``
  • 显卡测试
    检查OpenGL渲染器设置为硬件渲染器是否成功:
    需要安装 x11-apps/mesa-progs

    sudo emerge --ask x11-apps/mesa-progs
    glxinfo | grep rendering

    提示:direct rendering: Yes 表明启动正常
    显卡FPS测试 glxgears

    sudo glxgears

    显卡测试
    [](http://hyehye.net/wp/wp-content/uploads/2021/02/1613375368-hyeos2021046154903.png
    最后来一张KDE桌面图~

    KDE桌面
    至此,gentoo的KDE桌面+nvidia显卡已安装完成!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注