Danh sách phần cứng tương thích với Red Hat ở địa chỉ http://hardware.redhat.com giúp bạn tìm hiểu xem bìa đồ hoạ và các thiết bị phần cứng khác của bạn có được hỗ trợ hay không và cần máy chủ X loại nào. Các bìa màn hình sử dụng những chipset có trong danh sách nói trên thường được hỗ trợ trên mọi loại bus, gồm cả PCI và AGP.
Tất cả các chipset này đều được hỗ trợ trong chế độ 256 màu, một số còn được hỗ trợ trong cả chế độ đơn sắc hoặc 16 màu, một số khác lại được hỗ trợ ở những chế độ có cấp độ màu cao hơn nữa.
Muốn cài đặt và chạy được X Window tốt, máy phải có đủ bộ nhớ trên ổ cứng, bộ nhớ RAM và các phần cứng khác phải tương thích. Để cài đặt và chạy được XFree86, cấu hình tối thiểu là:
Pentium 400 MHz hoặc mạnh hơn Bộ nhớ còn trống trên đĩa cứng: 475MB RAM 128MB (khuyến cáo 192MB)
3.1.2 XFree86 và RH Linux 9
Red Hat Linux 9 sử dụng XFree86 phiên bản 4.x, bao gồm nhiều công nghệ tiên tiến như hỗ trợ cho các phần cứng 3D, phần mở rộng XRender để hiển thị các font nét trơn, hỗ trợ cho các thiết bị video và các thiết bị đầu vào hiện đại khác.
Lưu ý
Red Hat Linux 9 không còn hỗ trợ XFree86 phiên bản 3. Trước khi nâng cấp lên phiên bản 9 của Red Hat Linux, hãy chắc chắn là bìa màn hình của bạn tương thích với XFree86 phiên bản 4 bằng cách kiểm tra Danh sách phần cứng tương thích với Red Hat ở địa chỉ http://hardware.redhat.com.
Những tệp chính của XFree86 nằm ở hai thư mục:
/usr/X11R6/
chứa X server và một vài ứng dụng client như các tệp X header files, libraries, modules, và tài liệu.
/etc/X11/
chứa các tệp cấu hình cho các ứng dụng X client và server. Ở đây còn chứa cả các tệp cho X server, các font server xfs cũ, trình quản trị hiển thị X, và nhiều thành phần nền tảng khác.
Lưu ý rằng tệp cấu hình cho kiến trúc font mới là /etc/fonts/fonts.conf (thay thế cho tệp /etc/X11/XftConfig). Xem thêm về cấu hình và thêm font ở mục Fonts.
Trình cài đặt Red Hat Linux sẽ cài đặt và cấu hình XFree86 một cách tự động, trừ khi gói XFree86 không được chọn để cài đặt. Tuy nhiên nếu màn hình và bìa màn hình thay đổi, thì XFree86 cần phải cấu hình lại. Cách tốt nhất là sử dụng X Configuration Tool (redhat-config-xfree86).
Để chạy X Configuration Tool khi vẫn còn trong phiên làm việc X, ta chọn menu Main Menu Button (trên thanh Panel) => System Settings => Display. Sau khi sử dụng X Configuration Tool trong một phiên làm việc X, những thay đổi sẽ được áp dụng cho lần log-in sau đó. Xem thêm về X Configuration Tool trong chương Audio, Video, and General Amusement của tài liệu Red Hat Linux Getting Started Guide.
Một vài trường hợp, khi cấu hình lại XFree86 server ta phải sửa thủ công tệp cấu hình /etc/X11/XF86Config. Xem thêm cấu trúc của tệp này trong phần Tệp cấu hình XFree86 Server.
3.1.3 Môi trường desktop và trình quản trị cửa sổ
Khi một XFree86 server đang chạy, các ứng dụng X client có thể kết nối với server và tạo ra giao diện đồ hoạ người dùng (GUI). Một trong các môi trường đồ hoạ phát triển là GNOME mà phần lớn người dùng Red Hat Linux quen sử dụng.
Để tạo một giao diện GUI cao cấp thì 2 đối tượng của các ứng dụng X client phải được kết nối với XFree86 server là: môi trường desktop và Trình quản trị cửa sổ.
a. Các môi trường desktop
Môi trường desktop cung cấp đủ các loại X client khác nhau, tạo ra một môi trường GUI và nền tảng phát triển.
Môi trường desktop có các tính năng cao cấp giúp các X clients và các tiến trình đang chạy khác nối kết với nhau, cho phép các ứng dụng hoạt động trong môi trường đó thực hiện được những tác vụ kỹ thuật như gắp và thả (drag and drop).
Red Hat Linux có sẵn hai môi trường desktop là:
1) GNOME — là môi trường desktop ngầm định của Red Hat Linux dựa trên nền GTK+2 graphical toolkit.
2) KDE— một môi trường desktop khác dựa trên nền Qt3 graphical toolkit. Cả GNOME và KDE đều có các ứng dụng phát triển như trình xử lý văn bản, bảng tính và trình duyệt Web cũng như các công cụ để tuỳ biến GUI. Hơn nữa, nếu có cả hai thư viện GTK+2 và Qt thì các ứng dụng KDE có thể chạy trong môi trường GNOME và ngược lại.
b. Trình quản trị cửa sổ
Quản trị cửa sổ (Window Manager) là các trình X client, hoặc một phần của môi trường desktop hoặc chạy độc lập. Mục đích chính của chúng là quản trị vị trí, kích thước và di chuyển các cửa sổ đồ hoạ. Trình quản trị cửa sổ cũng quản trị các tiêu đề, cách kích hoạt cửa sổ và các phím quy định hay nút bấm chuột. Có 5 loại trình quản trị cửa sổ trong Red Hat Linux:
kwin — KWin là trình quản trị cửa sổ ngầm định cho môi trường desktop KDE, có hiệu quả và hỗ trợ nhiều tuỳ biến.
metacity — Metacity là trình quản trị cửa sổ ngầm định của môi trường desktop GNOME, khá đơn giản và hỗ trợ nhiều tuỳ biến.
mwm — Motif Window Manager là trình quản trị cửa sổ cơ bản và chạy độc lập. Vì được thiết kế để chạy độc lập nên nó không được sử dụng kết hợp trong môi trường GNOME hay KDE.
sawfish — Sawfish là trình quản trị cửa sổ ngầm định cho môi trường GNOME cho đến khi phát hành bản Red Hat Linux 8.0. Trình này có nhiều tính năng, hoặc được sử dụng độc lập, hoặc kết hợp với môi trường desktop.
twm — Tab Window manager là trình quản trị cửa sổ tối thiểu, cung cấp bộ công cụ cơ bản nhất của các trình quản trị cửa sổ và có thể được dùng độc lập hoặc với một môi trường desktop. Nó được cài đặt như là một phần của XFree86.
Các trình quản trị cửa sổ này có thể không chạy trong môi trường desktop, để phân biệt sự khác nhau ta thử dùng lệnh xinit -e <path-to-window-
manager>, trong đó <path-to-window-manager> là vị trí của tệp nhị phân của trình quản trị cửa sổ. Có thể tìm tệp nhị phân này bằng <window-manager- name>.
3.1.4 Các tệp cấu hình XFree86 Server
XFree86 server là một tệp nhị phân dạng khả thi (/usr/X11R6/bin/XFree86) và tự động tải bất kỳ một modun X server cần thiết nào khi đang chạy trong thư mục /usr/X11R6/lib/modules/. Một vài modun được tự động tải bởi server và một vài tuỳ chọn được xác định trong tệp cấu hình XFree86 server.
Các tệp cấu hình XFree86 server và liên quan được đặt trong thư mục /etc/X11/. Tệp cấu hình cho XFree86 server là /etc/X11/XF86Config. Khi cài Red Hat Linux, các tệp cấu hình cho XFree86 được tạo với các thông tin lấy từ phần cứng của hệ thống trong quá trình cài đặt.
Mặc dù ít phải sửa tệp cấu hình /etc/X11/XF86Config một cách thủ công nhưng việc biết các tham số cũng cần thiết, nhất là khi gặp sự cố.
a. Tệp XF86Config
Tệp /etc/X11/XF86Config gồm nhiều phần khác nhau, mỗi phần xác định một mảng phần cứng.
Mỗi phần được bắt đầu bằng một dòng Section "<section-name>" (với
<section-name> là tên của phần đó) và kết thúc bằng một dòng EndSection. Trong mỗi phần là những dòng chứa tên và ít nhất một giá trị, thường đặt trong ngoặc kép.
Những dòng bắt đầu bằng dấu [#] thì XFree86 server không đọc và chỉ là chú thích cho người đọc.
Một vài tham số trong /etc/X11/XF86Config nhận giá trị logic (boolean) là chuyển trạng thái một tính năng là bật (on) hay tắt (off). Các giá trị đó là:
• 1, on, true, hay yes — bật • 0, off, false, hay no — tắt.
Dưới đây là một vài phần quan trọng theo thứ tự trong tệp /etc/X11/XF86Config. Xem thêm về tệp cấu hình XFree86 server trong trang man của XF86Config.
b. ServerFlags
Phần ServerFlags chứa những tham số toàn cục của XFree86 server. Các tham số trong phần này có thể bị ghi đè bởi các tham số trong phần ServerLayout (Xem thêm ServerLayout). Dưới đây là một ví dụ mẫu của phần ServerFlags:
Section "ServerFlags"
Option "DontZap" "true" EndSection
Các tham số quan trọng nhất:
• "DontZap" "<boolean>" — Khi giá trị <boolean> là true, sẽ không sử dụng được tổ hợp phím [Ctrl]-[Alt]-[Backspace] để tắt XFree86 server.
• "DontZoom" "<boolean>" — Khi giá trị <boolean> là true, không sử dụng các tổ hợp phím [Ctrl]-[Alt]-[dấu cộng trên bàn số] và [Ctrl]-[Alt]-[dấu trừ trên bàn số] để chuyển qua lại độ phân giải màn hình.
c. ServerLayout
Phần ServerLayout chứa các thiết bị đầu ra và đầu vào do XFree86 server quản lý. Tối thiểu phần này phải xác định một thiết bị đầu ra và hai thiết bị đầu vào (bàn phím và chuột).
Dưới đây là một mẫu của phần ServerLayout: Section "ServerLayout"
Identifier "Default Layout" Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection
Các tham số thường dùng trong phần ServerLayout:
• Identifier — xác định tên duy nhất cho phần ServerLayout.
• Screen — xác định tên của phần Screen được dùng cho XFree86 server. Có thể có nhiều Screen.
Screen 0 "Screen0" 0 0
Số đầu tiên là (0) cho biết đầu nối của màn hình thứ nhất hoặc head trên video card dùng trong phần
Screen với tên là "Screen0".
Nếu video card có nhiều head, có thể có một mục Screen khác với một tên khác.
Số bên phải "Screen0" cho các giá trị toạ độ tuyệt đối của điểm góc trên bên trái màn hình (ngầm định là 0 0).
• InputDevice — xác định tên của InputDevice dùng cho XFree86 server.
Phải có ít nhất hai thiết bị đầu vào cho InputDevice entires: một là chuột và một là bàn phím. Các tuỳ chọn CorePointer và CoreKeyboard là chuột và bàn phím chính.
• Option "<option-name>" — tuỳ chọn xác định các tham số khác. Bất kỳ tham số nào ở đây đều có thể ghi đè lên tham số tương tự trong phần ServerFlags.
Thay thế <option-name> bằng một tham số hợp lệ có trong danh sách cho phần này của trang man của XF86Config.
Có thể tạo nhiều phần ServerLayout. Tuy nhiên, server sẽ chỉ đọc phần ServerLayout đầu tiên, trừ được thực hiện từ dòng lệnh.
d. Files
Phần Files đặt đường dẫn đến các dịch vụ cho XFree86 server, như đường dẫn font. Ví dụ mẫu của phần Files:
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "unix/:7100"
EndSection
Những tham số thường dùng trong phần Files:
• RgbPath — Xác định vị trí của CSDL màu RGB. CSDL này định nghĩa các màu hợp lệ trong XFree86 và gán chúng với các giá trị RGB.
• FontPath — Xác định vị trí để XFree86 server lấy font từ xfs font server.
• ModulePath — Một tham số xác định các thư mục chứa các modun của XFree86 server.
e. Module
Phần Module xác định các modun trong thư mục /usr/X11R6/lib/modules/ được XFree86 server tải. Những modun này thêm các chức năng cho XFree86 server.
Ví dụ mẫu về phần Module: Section "Module" Load "dbe" Load "extmod" Load "fbdevhw" Load "glx" Load "record" Load "freetype" Load "type1" Load "dri" EndSection
f. InputDevice
Mỗi phần InputDevice cấu hình một thiết bị đầu vào cho XFree86 server. Các hệ thống thường có ít nhất hai phần InputDevice, bàn phím và chuột.
Ví dụ sau là một mẫu InputDevice cho chuột: Section "InputDevice"
Identifier "Mouse0" Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice" Option "Emulate3Buttons" "no" EndSection
Các tham số của phần InputDevice :
• Identifier — tên duy nhất và bắt buộc. • Driver — tên device driver mà XFree86 tải. • Option — các tuỳ chọn thêm.
Đối với chuột, những tuỳ chọn thêm gồm:
• Protocol — giao thức của chuột, ví dụ IMPS/2. o Device — vị trí vật lí của thiết bị.
o Emulate3Buttons — chuột dùng hai phím dùng như chuột có ba phím khi bấm đồng thời các phím.
Xem trang man của XF86Config để xem các tuỳ chọn khác.
Ngầm định phần InputDevice có các chú thích để người dùng cấu hình các tuỳ chọn khác.
g. Monitor
Mỗi phần Monitor cấu hình một kiểu màn hình của hệ thống. Cách tốt nhất để cấu hình một màn hình là cấu hình X trong quá trình cài đặt hoặc dùng công cụ X Configuration Tool.
Ví dụ mẫu của phần Monitor: Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "DDC Probed Monitor - ViewSonic G773-2" DisplaySize 320 240
HorizSync 30.0 - 70.0 VertRefresh 50.0 - 180.0 EndSection
Lưu ý
Cẩn thận khi sửa thủ công các giá trị trong phần Monitor của tệp /etc/X11/XF86Config. Những giá trị không thích hợp có thể làm hỏng màn hình. Hãy xem tài liệu để có các tham số an toàn. Các tham số cho phần Monitor:
• Identifier — Tên duy nhất và bắt buộc. • VendorName — Nhà sản xuất.
• DisplaySize — Kích thước bằng milimét, kích thước vật lý vùng hiển thị của màn hình.
• HorizSync — Xác định khoảng tần số chiều dọc tính bằng kHz. • VertRefresh — Xác định khoảng tần số chiều ngang tính bằng kHz
• Modeline — xác định chế độ video cho màn hình ở một độ phận giải nhất định. Xem trang man của XF86Config để thêm thông tin về Modeline.
• Option "<option-name>" — tham số khác.
h. Device
Mỗi phần Device cấu hình một video card của máy.
Cách tốt nhất để cấu hình một video card là cấu hình trong X trong quá trình cài đặt hoặc bằng cách dùng công cụ X Configuration Tool.
Ví dụ mẫy về phần Device : Section "Device"
Identifier "Videocard0" Driver "mga"
VendorName "Videocard vendor"
BoardName "Matrox Millennium G200" VideoRam 8192
Option "dpms" EndSection
Các tham số thường dùng trong phần Device:
• Identifier — tên duy nhất và bắt buộc.
• Driver — xác định driver mà XFree86 sẽ tải để sử dụng video card. Danh sách các drivers trong /usr/X11R6/lib/X11/Cards, được kèm theo gói hwdata package.
• VendorName — tên nhà sản xuất . • BoardName — tên video card.
• VideoRam — bộ nhớ RAM có trên video tính bằng KB.
• BusID — vị trí bus của video card. Chỉ bắt buộc khi có nhiều cards.
• Screen — tên của màn hình hoặc head trên video card (khi video cards có nhiều heads). Giá trị của Screen là số nguyên. Head đầu tiên trên video card đánh số là 0.
• Option "<option-name>" — Tham số khác.
i. Screen
Mỗi phần Screen gắn một video card (hay video card head) với một màn hình trong phần Device
và phần Monitor.
Ví dụ mẫu của phần Screen: Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 16 SubSection "Display"
Depth 24 Modes "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1152x864" "1024x768" "800x600" "640x480" EndSubSection EndSection
Các tham số thường dung:
• Identifier — tên duy nhất và bắt buộc.
• Device — tên duy nhất và bắt buộc trong phần Device. • Monitor — tên duy nhất và bắt buộc trong phần Monitor .
• DefaultDepth — độ sâu màu (color depth) ngầm định và tính bằng bits. Trong ví dụ trên là 16, nghĩa là ngầm định là nghìn màu. Có thể có nhiều DefaultDepth nhưng ít nhất phải có một.
• SubSection "Display" — Xác định chế độ màn hình ở một độ sâu màu nhất định. Một phần Screen có thể có nhiều phần nhỏ Display, nhưng ít nhất phải có một cho color depth xác định trong DefaultDepth.
• Option "<option-name>" — Các tham số khác.
j. DRI
Phần DRI xác định các tham số cho Direct Rendering Infrastructure (DRI). DRI là giao diện cho phép các ứng dụng 3D sử dụng các hỗ trợ 3D của phần cứng có sẵn trong một số thiết bị phần cứng video mới. Hơn nữa, DRI có thể khiến cho 2D tốt hơn nhờ hỗ trợ này.
Phần này được bỏ qua trừ khi có DRI là enable (kích hoạt) trong phần Module. Ví dụ mẫu:
Section "DRI"
Group 0 Mode 0666 EndSection
Vì các video cards khác nhau dùng DRI theo các cách khác nhau, không thay đổi giá trị của phần này mà không xem tệp /usr/X11R6/lib/X11/doc/README.DRI.
3.1.5 Runlevels và XFree86
Nói chung, bản cài đặt Red Hat Linux đã ngầm định cấu hình máy khởi động ở môi trường đồ hoạ, gọi là runlevel 5. Tuy nhiên có thể khởi động trong chế độ text nhiều người dùng (gọi là runlevel 3) và sau đó mới khởi động một phiên hội X.
a. Runlevel 3
Khi chạy runlevel 3, cách tốt nhất để khởi động một phiên hội X là log in và gõ lệnh
startx. Lệnh startx là lệnh đầu tiện để gọi xinit chạy XFree86 server và kết nối