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.