1,585 瀏覽數

PXE Boot options – inst.xdriver

測試環境為 :
PXE Server – RHEL 6.8 x64
PXE Client – RHEL 7.3 x64
關於 PXE 詳細設定請參考 http://benjr.tw/83

RHEL 7 要透過 PXE 來安裝,設定檔如下:

[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
label linux
  menu label Install system
  kernel vmlinuz
  append initrd=initrd.img ip=dhcp inst.repo=http://10.32.5.1/mnt/archive/RHEL-7/7.x/Server/x86_64/os/

安裝的時候遇到 Xorg 沒有辦法啟動,這時候要透過 inst.xdriver 指定 Xorg 驅動程式.

inst.xdriver=
在安裝過程時指定 Xorg 的驅動程式名稱.

常見的有

  • qxl (QEMU QXL video accelerator)
  • ati
  • intel
  • sisusb
  • mga
  • r128
  • radeon (Driver for ATI/AMD Radeon)
  • modesetting (Kernel Mode Setting)
  • trident
  • spiceqxl
  • cirrus
  • savage
  • sis
  • nouveau (Nvidia 的顯示卡)
  • siliconmotion
  • mach64
  • tdfx
  • vmware
  • openchrome
  • s3
  • neomagic
  • vesa (VESA-compatible)
  • fbdev (Linux framebuffer X)
  • v4l (old Xv ddx driver for video4linux devices)

最常用的是 inst.xdriver=vesa
指定 xorg driver 驅動程式為 vesa,而且只要是 VESA-compatible video cards 都可以使用.

也可以採用另外一個參數 inst.usefbx 直接指定 inst.xdriver=fbdev (Linux framebuffer X 驅動程式)

但是不確定你的作業系統有支援哪一些顯示卡的驅動程式.可以先用 文字模式安裝完畢,再透過 Xorg -configure 來查詢安裝的作業系統支援哪一些 xorg 的驅動程式.

[root@localhost ~]$ Xorg -configure

X.Org X Server 1.17.2
Release Date: 2015-06-16
X Protocol Version 11, Revision 0
Build Operating System:  2.6.32-573.18.1.el6.x86_64 
Current Operating System: Linux localhost.localdomain 3.10.0-514.6.1.el7.x86_64 #1 SMP Wed Jan 18 13:06:36 UTC 2017 x86_64
Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-514.6.1.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8
Build Date: 06 November 2016  12:43:39AM
Build ID: xorg-x11-server 1.17.2-22.el7 
Current version of pixman: 0.34.0
	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Sat Apr 22 00:01:03 2017
List of video drivers:
	ati
	intel
	nouveau
	qxl
	radeon
	v4l
	vmware
	vesa
	fbdev
	modesetting
	dummy
(++) Using config file: "/root/xorg.conf.new"
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"


Xorg detected your mouse at device /dev/input/mice.
Please check your config if the mouse is still not
operational, as by default Xorg tries to autodetect
the protocol.

Your xorg.conf file is /root/xorg.conf.new

To test the server, run 'X -config /root/xorg.conf.new'

(EE) Server terminated with error (2). Closing log file.

Xorg 會顯示目前他有支援的 VGA 驅動模組.並且自行偵測你的系統可以使用哪一種模組,新產生的設定檔 xorg.conf.new 會儲存在家目錄,我們需要把該檔案從家目錄 xorg.conf.new 複製到 /etc/X11 ,如果偵測錯誤,可依據剛才支援列表中自行編輯成目前系統的 VGA 的驅動模組.

修改後就可以啟動 X-window

[root@localhost ~]$ cp xorg.conf.new /etc/X11/xorg.conf
[root@localhost ~]$ vi /etc/X11/xorg.conf
Section "Device"
        Identifier  "Card0"
        Driver      "fbdev"
        BusID       "PCI:0:15:0"
EndSection
[root@localhost ~]$ startx

如果可以進入 X-Windows ,這個 VGA 的驅動模組就確定可以在你的系統上來使用.

現在回到 PXE 加入 VGA 的驅動模組參數,剛剛我的系統可以使用 fbdev ,所以就在 PXE 參數指定 Xorg 驅動模組 (inst.xdriver= fbdev).

還有另外一個參數 nomodeset 可以同時搭配來使用
不使用 Kernel modesetting (KMS),而核心模式設定(KMS)主要將螢幕顯示解析度和顯示色深從的顯示由使用者空間(user space)提升到核心空間(kernel space)

[root@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
label linux
  menu label Install system
  kernel vmlinuz
  append initrd=initrd.img ip=dhcp inst.repo=http://10.32.5.1/mnt/archive/RHEL-7/7.x/Server/x86_64/os/ inst.xdriver=fbdev nomodeset 

現在在 PXE 安裝過程都可以透過 X-Window ,但安裝完後開機系統卻停在文字介面並顯示

random: nonblocking pool is initialized

網路上面的討論是建議加入 nomodeset 開機參數,檢查 /etc/default/grub 裡面 GRUB_CMDLINE_LINUX 參數有 nomodeset 沒有 fbdev,加入 fedev 再重新開機,結果還是一樣.

[root@localhost ~]# cat /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cla/root rd.lvm.lv=cla/swap fbdev nomodest

最後只好先切換 控制台至 Alt-F2 並再重新設定 Xorg (方式如前面重新設定),重開機就正常了.

發表迴響