当前位置: 移动技术网 > 科技>操作系统>Linux > Linux:Gentoo系统的安装笔记(四)

Linux:Gentoo系统的安装笔记(四)

2018年09月19日  | 移动技术网科技  | 我要评论

 本来以为结束,谁知离正常的系统还是比较远,不过不放弃,这期的笔记我敢肯定是最后一期了,写了那么多我也觉得烦,被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,然后我激动的心情同时也很崩溃

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网