根据Gentoo handbook安装——KDE桌面+NVIDI
在上一篇中根据Gentoo handbook安装——gentoo基本系统+UEFI引导,已经装好了gentoo基本系统,这一篇开始安装KDE桌面,同时安装NVIDIA的显卡驱动。
- 切换语言
因为在命令行下,中文有可能会乱码,所以先临时切换回英文方便安装软件:
export LANG=en_US.UTF-8
- 配置网络
根据上一篇中的内容,如果是台式机那么此时已经可以联网了则跳过此步骤,如果是笔记本则需要配置无线网络
步骤如下:
创建 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密码"
# The higher the priority the sooner we are matched
priority=5
}
解锁WIFI并启用WIFI
注意:wlp0s20f3为本机wifi端口,具体名称以自己的笔记本为主,查看 ls /sys/class/net
rfkill unblock all
ip link set dev wlp0s20f3 up
连接 WIFI 并自动分配 IP
wpa_supplicant -B -i wlp0s20f3 -c /etc/wpa_supplicant/wpa_supplicant.conf
dhcpcd wlp0s20f3
检测网络连接
ping www.baidu.com
- 安装编辑软件
开始之前先装一个vim
,方便后续修改配置(当然用nano
也是一样的,看个人喜好):
emerge app-editors/vim
- 创一个普通用户:
登录kde(sddm)时不能用root帐号
useradd -m -G users,wheel,audio,lp,cdrom,portage,cron -s /bin/bash skillf
passwd skillf #设置用户密码
1. 选择桌面配置文件
eselect profile list
KDE配置
选择kde的配置文件,即后面带有
plasma
的:
eselect profile set 19
2. 启用相关服务
如果使用桌面等 配置文件,则会自动安装其中一部分,但仍需要正确设置。这些服务基本信息是:
-
D-Bus:允许使用D-Bus消息总线系统。
-
polkit:启用polkit框架以控制系统范围服务的权限。
-
udisks:支持某些与存储相关的服务。
-
eudev:Gentoo的udev分支,旨在获得更好的兼容性。它是桌面/等离子配置文件的默认设置。
-
ConsoleKit:用于定义和跟踪用户,登录会话和席位的框架。它是桌面/等离子配置文件的默认设置。
至于怎么启用上述服务,请接着往下看!
2.1 修改 USE flags
vim /etc/portage/make.conf
#打开make.conf文件之后,找到 USE 变量,
#如果没有USE,则在最后一行添加USE,并添加以下标志
USE="dbus policykit udisks eudev consolekit"
顺便确认一下编译时用的cpu核心数,根据个人电脑修改:CPU核心数+1
,
我这里是: MAKEOPTS="-j9"
如果文件/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 -j9 加快编译速度,9为CPU核心数+1
make -j9 && make modules_install
- 内核完成编译后,将内核映像复制到 /boot/。这由
make install
命令自动处理:
make install
- 重新引导一下:
注意: 在此之前需要确保引导分区挂载成功,上一篇文章中,引导分区挂载在 /boot/efi 目录,执行 mount 命令查看 /boot/efi 是否被挂载,如果不存在挂载,则需要重新挂载引导分区。
确保引导分区已成功挂载之后,重新配置引导:
grub-mkconfig -o /boot/efi/grub/grub.cfg
确认挂载引导分区
一切都确认好了之后,开始更新系统以使更改生效,这需要点时间:
time emerge --ask --quiet --changed-use --deep @world
2.3 设置相关服务默认启动
至此相关系统服务已安装完,接下来需要设置默认启动:
rc-update add dbus default
rc-update add udev default
rc-update add consolekit default
3. 安装X server
添加USE flags
vim /etc/portage/make.conf
#在USE最后面添加一个 X
USE="X"
# 鼠标键盘触摸板标志
INPUT_DEVICES="libinput" # 笔记本用户需添加:synaptics
#NVIDIA显卡:将安装正确版本的驱动 x11-drivers/nvidia-drivers
VIDEO_CARDS="nvidia"
检查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
- 修改之后的内核需要重新编译!
退出配置并开始编译过程:
make -j9 加快编译速度,9为CPU核心数+1
make -j9 && make modules_install
- 内核完成编译后,将内核映像复制到 /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
- 可以并且建议将OpenGL渲染器设置为硬件渲染器而不是软件渲染器:
eselect opengl set nvidia
- 将需要访问视频卡的用户skillf(开始前创建的用户)添加到视频组:
gpasswd -a skillf 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。
这并不是我们想要的,此时需要自动打开:
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 23 24 43
字体
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。
- 显卡测试
检查OpenGL渲染器设置为硬件渲染器是否成功:
需要安装x11-apps/mesa-progs
sudo emerge --ask x11-apps/mesa-progs
glxinfo | grep rendering
提示:direct rendering: Yes 表明启动正常
显卡FPS测试 glxgears
sudo glxgears
显卡测试
最后来一张KDE桌面图~
KDE桌面至此,gentoo的KDE桌面+nvidia显卡已安装完成!
温馨提示:如果出现 kde 登录界面输入密码之后重新回到登录界面,此时不要慌,可以按快捷键 Ctrl+Alt+F1 进入tty1 命令行界面
在tty1下会提示登录,直接用 root
用户登录,之后先查看一下 sddm 的登录历史:
vim /var/log/sddm.log
或者直接用 grep
查看带(EE)
的行即可明白哪里出现了错误。
cat /var/log/sddm.log |grep "(EE)"
错误提示例如:
...
[03:36:24.762] (EE) HELPER: chdir( /home/skillf ) failed for user: "skillf"
[03:36:24.762] (EE) HELPER: verify directory exist and has sufficient permissions
...
这里提示的是切换skillf用户的家目录时出现了问题,
那么我们可以直接去到家目录的上一级目录并查看情况
cd /home
ls -al
此时可能出现的情况:
1、skillf的家目录不存在,自然切换失败
查看家用户的名字:cat /etc/passwd |grep "skillf"
,找到 /home 后面的目录既是家目录,
例如 :/home/skillf
"# 此时可以切换到skilf用户,并创建家目录,这样的好处是,创建的目录拥有者就是skillf用户
su skillf
mkdir ./skillf
2、家目录的权限不是skillf用户,所以没有权限进去家目录
因此可以直接更改家目录的拥有者
"# skillf:skillf 拥有者和群体的使用者均设为 skillf,最后的 skillf 是家目录
chown skillf:skillf skillf
最后切换回root用户重启即可
su root
reboot
重启完成之后,输入密码,此时即可进入熟悉的kde桌面啦~
遇事不慌,多去 /var/log目录下,查看各种问题的历史慢慢分析~
谢谢阅读~