本來以為結束,誰知離正常的系統還是比較遠,不過不放棄,這期的筆記我敢肯定是最後一期了,寫了那麼多我也覺得煩,被gentoo折磨煩了。 安裝KDE桌面 選擇正確的配置文件 先獲取root許可權來安裝桌面環境: 先eselect profile list來看看配置正,如果選不對的話KDE桌面環境是無法正常 ...
本來以為結束,誰知離正常的系統還是比較遠,不過不放棄,這期的筆記我敢肯定是最後一期了,寫了那麼多我也覺得煩,被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,然後我激動的心情同時也很崩潰