本来以为结束,谁知离正常的系统还是比较远,不过不放弃,这期的笔记我敢肯定是最后一期了,写了那么多我也觉得烦,被gentoo折磨烦了。
安装KDE桌面
选择正确的配置文件
先获取root权限来安装桌面环境:
先eselect profile list来看看配置正,如果选不对的话KDE桌面环境是无法正常安装的。
建议选择适当的概要文件(尽管不是必需的),因为它设置了许多全局和特定于包的使用标志,以简化安装并确保KDE的流畅体验。
为了选择最合适的配置文件,首先列出可用的:
对于KDE Plasma 5桌面环境,请选择带有OpenRC的desktop/ Plasma或带有systemd的desktop/ Plasma /systemd:
我的第19项就是带有Plasma的那项。(不知道的话可以回头看我的第二期笔记,里面有截图)
首先先测试网络,没网络一切空谈:
看,有网络了,如果没有网络的该怎么办呢?下面为我的解决方法:(网络正常的请忽略)
我是这样解决的,由于gentoo默认是使用DHCP的,所以第三期的笔记教程中的DHCP客户端是一定要装的。
如果你在第三期笔记的网络信息中的配置网络环节中,即是编辑/etc/conf.d/net时没有添加config_(网络接口名,如我的是eno16777736)=“dhcp”或没有这样编辑的,重启到新的gentoo系统,是没法进行联网的。(不记得网络接口名的请使用ifconfig命令查看)
这时我们可以这样解决,你可以在新的gentoo系统中修改/etc/conf.d/net,如果不行的话请运行Live CD,重新恢复安装步骤并进入新环境,再编辑/etc/conf.d/net,编辑完后可以按重启系统的步骤重启系统,编辑/etc/conf.d/net的具体操作在本期笔记中,自己认真阅读吧!解决方法到此为止。
启动相应的服务(这个建议配置,但如果能够不需要开启这些也能正常使用KDE,请忽略)
在安装KDE相关软件之前,建议先设置其他几个服务;如果使用了桌面/等离子或桌面配置文件,其中一部分将自动安装,但仍然需要正确设置,这些服务包括:
1.D-Bus:启用D-Bus消息总线系统。
2.polkit:启用polkit框架来控制系统范围服务的特权。
3.udisk:支持某些与存储相关的服务。
首先先编辑/etc/portage/make.conf:
添加完成后请按Ctrl+X,按Y并按回车键即可完成保存和退出。(建议在这里也把USE=“consolekit”添加上去,因为下面会用到。)
然后更新下系统以便使更改生效:(时间很长,耐心等待)
配置步骤完成后,启动D-Bus:
要在引导时启动D-Bus,将其添加为默认运行级别:(可选配置)
提示:即使不将D-Bus添加到默认运行级别,它通常也会由依赖D-Bus的服务启动,这应该可以解释为什么D-Bus会神秘地启动,尽管它还没有正式添加到系统运行级别。
(Tips:D-Bus的用法:https://wiki.gentoo.org/wiki/D-Bus)
然后配置polkit,具体操作如下:(polkit(以前是PolicyKit)是一种授权API,用于向非特权程序提供服务的特权程序(例如系统守护进程)。)
注:Polkit使用D-Bus和ConsoleKit,所以首先设置它们。另外,确保在内核中设置CONFIG_FUTEX=y。如果不选择此选项,polkitd进程可能生成高CPU。
所以先在内核设置CONFIG_FUTEX=y,先看下面设置:
然后在里面看看找到CONFIG_FUTEX=y这个选项:
这么多,如何找?请按Ctrl+W查找,然后输入上面的选项,即可找到CONFIG_FUTEX=y。
所以一般genkernel自动配置内核都会配置这个选项的,手动配置就不知道了,如何手动配置没有的话,请在Live CD下找到该文件编译,然后再重新编译一次,最后再把该文件加载到引导中去,否则导致高CPU容易造成卡顿,甚至系统崩溃!!!
至于ConsoleKit,下面将会说到,现在开始配置:(如果不明白为什么配置请看https://wiki.gentoo.org/wiki/Polkit)
请按Ctrl+X,按Y并按回车键即可完成保存和退出。
请按Ctrl+X,按Y并按回车键即可完成保存和退出。(polkit的用法:https://wiki.gentoo.org/wiki/Polkit)
udisk是一个提供存储相关服务的D-Bus守护进程,接下来就是配置udisk:
先决条件:udisk使用D-Bus和polkit,所以先设置它们,上面已经设置好了,udisk使用polkit来处理权限,接下来就是配置了。
由于udisk无法配置,这应该是手动配置内核时没有勾选相关选项,如果你的内核手动配置时有挑选以下的选项的话,请参考:https://wiki.gentoo.org/wiki/Udisks 继续配置。
设备管理器
一、在其中选择一个:
eudev: Gentoo的udev分支,目标是获得更好的兼容性。它是桌面/等离子配置文件的默认值。
udev:支持udev Linux动态和持久设备命名。
systemd:使用systemd的设备管理器部分。systemd的用户不需要在这里采取任何其他主动。
eudev
先安装eudev,为了避免在world设置中注册,应该使用oneshot选项:
当安装完毕后进行配置:(RC的名字是udev,而不是eudev。它需要在sysinit运行级别中注册。)
提示:从syfs /udev-init-scripts版本29开始,udev-trigger也应该添加到sysinit运行级别。
如果系统使用multilib,例如,有abi_x86_64(32)使用标志对旧的udev包是活动的,那么不要忘记更改它:(当然如果是32的,请把64改为32即可。)
按Ctrl+X,按Y并重命名为:eth0(传统经典命名),然后退出并保存。
为了保持经典的命名,可以在/etc/udev/rules.中使用相同命名的空文件覆盖此规则d目录:
使用新的“可预测的”命名,新的网络接口命名约定不一样,因此需要重新链接接口。使用/etc/init.d/net.lo作为需要添加的任何接口名称的链接目标。请确保将下面命令中的替换为系统中出现的以太网(本人使用的是NET)接口名称。通过运行ifconfig命令可以发现存在哪些接口:
为/etc/init中的现有接口创建符号链接:(使用刚刚命名的eth0)
将脚本添加到默认运行级别,使接口自动启动:
(剩下的两个要理解的话请点击上方的udev,syetemd即可阅读相关文章)
注:如果启动系统时出现错误标志,请把eth0设置为你原本的网络接口名称,例如我的:eno16777736。
会话跟踪
在以下其中任选一个:
1.ConsoleKit:用于定义和跟踪用户、登录会话和座位的框架。它是桌面/等离子配置文件的默认值。
2.elogind: 从systemd项目中提取的独立logind包,用于OpenRC或其他init系统。
3.systemd:使用系统的会话跟踪部分,systemd的用户不需要在这里采取任何其他主动。
ConsoleKit
介绍:ConsoleKit是一个定义和跟踪用户、登录会话和座位的框架,ConsoleKit的主要功能是支持多用户设置。它也适用于单个用户,但与现有方法相比没有任何好处。
ConsoleKit是一个D-Bus守护进程,为每个PAM会话创建自己的会话,快速用户切换是一个由ConsoleKit提供支持的特性。当切换时,设备文件权限被更改为新的活动用户,旧会话中的应用程序被通知,因此它们可以基于ConsoleKit信息撤销授予。
ConsoleKit支持关闭/重新启动处理,这样只有本地的活跃用户可以关闭或重新启动系统。
先决条件:本文D-Bus已经预先配置好。
安装ConsoleKit,首先Kernel内核要开启以下选项:
Required options for ConsoleKit
General setup --->
[*] Auditing support
[*] Enable system-call auditing support
由于我使用的是genkernel自动配置编译内核,所以并不知道是否配置到,所以先进行以下的测试:
按Ctrl+X,按Y并按回车键即可完成保存和退出。
如果使用变量设置为consolekit,则需要更新系统:(又要等比较长的时间)
startx集成:要在使用startx启动X服务器(而不是显示管理器)时创建一个ConsoleKit会话,请向每个用户添加以下内容~/。xinitrc文件:
~/.xinitrc
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session <WINDOW_MANAGER>
开启Consolekit:
/etc/init.d/consolekit start
启动控制台工具包:
rc-update add consolekit boot
用法:ck-list-sessions:显示所有当前会话的细节。对于本地用户,active和is-local应该为真。(我的没有配置完成,应该是内核编译时没有选中上方的相关选项)
注:对于Wayland的支持,需要一个logind实现。Gentoo提供了elogind作为systemd的替代方案。
按照链接了解如何设置这些服务。注意,在这个概要文件中设置的其他使用标志组合在技术上是可能的(特别是如果选择的应用程序是运行而不是一个完整的KDE等离子桌面环境),但可能不受支持,未经测试,或导致意外的功能损失。
设置X环境:(建议设置)
配置内核
介绍:X.Org server, X的一部分。Org release是X Window system的主要组件,它提供了硬件上的服务,并为大多数图形用户界面(如桌面环境或窗口管理器)及其应用程序提供了基础。(更多请详细查看:https://wiki.gentoo.org/wiki/Xorg/Guide)
安装xorg-server要比安装整个xorg包轻得多,并且具有拥有完整功能GUI(例如plasma)所需的所有组件,接下来就是安装了:
(在安装Xorg之前,需要为它准备好系统。首先,我们将设置内核来支持输入设备和显卡。然后我们编辑/etc/portage/makeconf以便构建和安装正确的驱动程序和Xorg包。)
以下的为内核配置,请使用make meunconfig或genkernel --meunconfig all(当然如果使用genkernel all的选这个)来手动配置内核:
接下来配置内核,为显卡使用正确的KMS驱动程序,英特尔、英伟达和AMD/ATI是最常见的显卡,所以请按照下面的代码列出每一张显卡:
Enabling evdev in the kernel
Device Drivers --->
Input device support --->
<*> Event interface
注:KMS与遗留framebuffer驱动程序冲突,后者必须在内核配置中禁用。
Disable legacy framebuffer support and enable basic console FB support
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
有关Intel显卡,请参阅Intel文章的内核部分。
英伟达显卡:
nVidia settings
Device Drivers --->
Graphics support --->
<M/*> Nouveau (nVidia) cards
对于较新的AMD/ATI卡(RadeonHD 2000及以上版本),出现系统内核/linux-固件(包括radeon和amdgpu;单独的包x11驱动程序/radeon-ucode已经不存在了)。一旦安装了这些包中的一个,将Radeon驱动程序作为内核中的一个模块,或者(可选地)配置内核,如Radeon文章的固件部分详细介绍,或者,对于较新的AMD显卡(GCN1.1+),在AMDGPU文章的固件部分:
AMD/ATI Radeon settings
## (Setup the kernel to use the radeon-ucode firmware)
Device Drivers --->
Generic Driver Options --->
[*] Include in-kernel firmware blobs in kernel binary
## # ATI card specific, (see Radeon page for details which firmware files to include)
(radeon/<CARD-MODEL>.bin ...)
## # Specify the root directory
(/lib/firmware/) External firmware blobs to build into the kernel binary ## (Enable Radeon KMS support)
Device Drivers --->
Graphics support --->
<M/*> ATI Radeon
[*] Enable modesetting on radeon by default
[ ] Enable userspace modesetting on radeon (DEPRECATED)
AMDGPU settings
## (Setup the kernel to use the amdgpu firmware)
Device Drivers --->
Generic Driver Options --->
[*] Include in-kernel firmware blobs in kernel binary
## # AMD card specific, (see AMDGPU page for details which firmware files to include)
(amdgpu/<CARD-MODEL>.bin ...)
## # Specify the root directory
(/lib/firmware/) External firmware blobs to build into the kernel binary ## (Enable Radeon KMS support)
Device Drivers --->
Graphics support --->
<M/*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
<M/*> AMD GPU
[ /*] Enable amdgpu support for SI parts
[ /*] Enable amdgpu support for CIK parts
[*] Enable AMD powerplay component
ACP (Audio CoProcessor) Configuration --->
[*] Enable AMD Audio CoProcessor IP support (CONFIG_DRM_AMD_ACP)
Display Engine Configuration --->
[*] AMD DC - Enable new display engine
[ /*] DC support for Polaris and older ASICs
[ /*] AMD FBC - Enable Frame Buffer Compression
[ /*] DCN 1.0 Raven family
<M/*> HSA kernel driver for AMD GPU devices
注1:旧的Radeon card (X1900系列和更老)不需要额外的固件或任何固件配置。对于它们,只需启用直接呈现管理器(DRM)和ATI Radeon modesetting。
注2:Linux内核>= 3.9在默认情况下不具有radeon上的Enable modesetting,因为它在默认情况下是隐含的。如果发现新内核中缺少此选项,请不要惊慌。
注3:Linux内核>= 4.15确实包含显示核心(DC),这是AMDGPU工作所必需的。这个更新的驱动程序是为GCN5.0 Vega和DCN1.0 Raven Ridge (APU)编写的,但是也为旧的Radeon显卡增加了额外的功能,从GCN1.1出现和更新版本开始。它计划将这个对旧的Radeon卡的额外支持作为标准,所以如果您发现这个选项在新的内核中丢失了,不要惊慌。
退出内核配置,重新构建内核并重新引导。(重新引导和构建内核请看:https://wiki.gentoo.org/wiki/Kernel/Rebuild)
现在已经建立了KMS,继续下一步:
现在内核已经准备好了,/etc/portage/make.conf中有两个重要的变量在安装Xorg之前,必须配置conf文件:
第一个变量是VIDEO_CARDS(配置请点击这里)。这是用来设置你打算使用的视频驱动程序,通常是基于你拥有的视频卡。第二个变量是INPUT_DEVICES(配置请点击这里),用于确定要为输入设备构建哪些驱动程序,要检查当前激活的内容,运行:
portageq envvar INPUT_DEVICES
如果需要其他输入设备,比如笔记本电脑的Synaptics touchpad,请确保将它们添加到/etc/portage/make.conf的INPUT_DEVICES中配置文件:
Sample make.conf entries
## (For mouse, keyboard, and Synaptics touchpad support)
INPUT_DEVICES="libinput synaptics"
## (For nVidia cards)
VIDEO_CARDS="nouveau"
## (For AMD/ATI cards)
VIDEO_CARDS="radeon"
安装X(如果你嫌上面设置太过恐怖,请直接从此处开始,当然最好是设置完上面的配置)
如果建议的设置不起作用,请安装x11-base/xorg-drivers包(参见下面的步骤)。检查所有可用的选项并选择适用于系统的选项,这个例子是一个有键盘、鼠标、Synaptics触摸板和Radeon显卡的系统。(当然我用于虚拟机并不太在意这个要求)
下载安装时间短,设置所有必要的变量后,可以安装Xorg:
注:可以安装x11-base/xorg-x11包,而不是安装更轻量的x11-base/xorg-server。在功能上,x11-base/xorg-x11和x11-base/xorg-server是相同的,但是x11-base/xorg-x11带来了许多大多数系统可能不需要的更多包。附加包包括许多语言中的大量字体分类。对于工作的X11框架来说,它们不是必需的。(这个随自己选择)
emerge --ask x11-base/xorg-x11
当然我选择x11-base/xorg-server,安装时间较短:
安装完毕后,需要重新初始化一些环境变量,然后才能继续。使用以下命令源配置文件:
对于英伟达的用户,可以运行nvida -xconfig来生成一个可以工作的xorg可能是有益的。选定显卡的conf文件。没有这个步骤,xorg.conf文件需要手动创建,如下所述。错过了xorg,当尝试startx时,conf有时会在终端上产生“未找到屏幕”错误。另外,NVidia驱动程序只能在重新引导后才能工作,所以在运行nvida -xconfig之后一定要重新启动系统:
nvidia-xconfig
将OpenGL渲染器设置为硬件渲染器而不是软件渲染器是可行的,建议这样做:
eselect opengl set nvidia
注:尝试在不编辑任何配置文件的情况下使用startx。如果Xorg无法启动,或者存在其他问题,则需要手动配置Xorg。如果对内核进行了更改,不要忘记在使用startx之前重新启动系统,以便使用新构建的内核。如果内核在进程中更新到一个新版本,那么很可能需要同时更新引导装载程序的配置文件。
注:在xorg.conf.d中配置文件应该被视为最后的选择。如果可能的话,不需要任何特殊配置就可以运行Xorg。(Xorg的大多数配置文件都存储在/etc/ x11 / xorg.conf.d /中。)
Start X
尝试startx启动X服务器。startx是一个执行X会话的脚本(由x11-apps/xinit安装);也就是说,它启动X服务器和一些图形应用程序。它决定使用以下逻辑运行哪些应用程序:
如果主目录中存在一个名为.xinitrc的文件,它将执行这里列出的命令。
否则,它将从/etc/env中读取XSESSION变量在/etc/90xsession.d文件并相应执行相关会话。XSESSION的值可以在/etc/ x11 / sessions/中找到。要设置系统范围内的默认会话运行:
这将创建90xsession文件,并将默认的X会话设置为Xfce。记住在对90xsession进行更改后运行env-update。
注:如果没有安装窗口管理器,则会出现一个纯黑屏。因为这也可能是错误的标志,所以只能安装x11-wm/twm和x11-terms/xterm包来测试X。
由上图可知出现了错误,我们安装下x11-wm/twm和x11-terms/xterm进行测试:
装完后startx测试下。
额,看起来怪怪的。
会话(要开始的程序)也可以作为startx的参数:
startx /usr/bin/startfluxbox
您还可以通过在X11服务器选项前面加双破折号:
startx -- vt7
现在startX已经可以进入了,但是感觉怪怪的,下面我们要调整下X的设置。
调整X设置
设置屏幕分辨率:
编辑/etc/X11/xorg.conf.d/40-monitor.conf:
Section "Device"
Identifier "RadeonHD 4550"
Option "Monitor-DVI-0" "DVI screen"
EndSection
Section "Monitor"
Identifier "DVI screen"
Option "PreferredMode" "1440x900"
EndSection
运行X (startx)以发现它使用了所需的分辨率。
多个显示器:可以在/etc/ x11 / xorg.con.d /中建立多个监视器。给每个监视器一个唯一的标识符,然后列出它的物理位置,例如“RightOf”或“Above”另一个监视器。下面的示例演示如何配置DVI和VGA监视器,将VGA监视器作为右侧屏幕:
编辑:/etc/X11/xorg.conf.d/40-monitor.conf
Section "Device"
Identifier "RadeonHD 4550"
Option "Monitor-DVI-0" "DVI screen"
Option "Monitor-VGA-0" "VGA screen"
EndSection
Section "Monitor"
Identifier "DVI screen"
EndSection
Section "Monitor"
Identifier "VGA screen"
Option "RightOf" "DVI screen"
EndSection
配置键盘(要设置X以使用国际键盘):
编辑/etc/X11/xorg.conf.d/30-keyboard.conf
Section "InputClass"
Identifier "keyboard-all"
Driver "evdev"
Option "XkbLayout" "us,cz"
Option "XkbModel" "logitech_g15"
Option "XkbRules" "xorg"
Option "XkbOptions" "grp:alt_shift_toggle,grp:switch,grp_led:scroll,compose:rwin,terminate:ctrl_alt_bksp"
Option "XkbVariant" ",qwerty"
MatchIsKeyboard "on"
EndSection
最终安装X已完成,可以成功通过startX来工作了,如果不想配置内核,请从文章中的“安装X”开始安装xorg,之后的设置X自己参考即可,接下来是支持X服务。
配置X
Portage知道X USE标志用于在其他包中支持X(在所有桌面配置文件中默认)。确保将此使用标志添加到使用标志列表中,以确保X兼容系统范围:
按Ctrl+X,按Y并按回车键即可完成保存和退出。
如果acl USE标志是全局启用的,并且正在使用ConsoleKit(默认为桌面配置文件)的视频卡权限,将自动处理。可以使用getfacl检查权限:
getfacl /dev/dri/card0 | grep lida
user:lida:rw-
更广泛的解决方案是将需要访问视频卡的用户添加到视频组:
显示管理器(必须配置,建议完成所有的安装步骤再来设置这里,别忘了这里)
(有时称为登录管理器)向用户显示图形登录屏幕,以启动X服务器会话:
在大多数情况下,OpenRC init系统(Gentoo的默认init系统)将用于启动显示管理器。XDM init脚本处理显示管理器的启动。需要配置conf.d文件来设置系统的默认显示管理器。
下面的示例将SDDM设置为默认的显示管理器。根据需要调整其他显示管理器:
编辑 /etc/conf.d/xdm,将SDDM设置为默认的显示管理器:
按Ctrl+X,按Y并按回车键即可完成保存和退出。
DISPLAYMANAGER="sddm"
要在启动时启动SDDM,请将XDM init脚本添加到系统的默认运行级别:(建议你配置完后面的安装步骤再来设置这里吧!)
rc-update add xdm default
要立即启动SDDM,请运行:
rc-service xdm start
systemd用户的请看这里:https://wiki.gentoo.org/wiki/Display_manager。
安装KDE(关键时刻)
为了防止配置文件失效,再次配置一下,先eselect profile list查看配置文件,我的是19项,选择:eselect profile set 19。
kde-plasma/ Plasma -meta包提供完整的Plasma 5套件,开始安装:
目前KDE最新版本为5.12.5,然后我激动的心情同时也很崩溃