戴文的Linux內核專題:20 配置內核 (16)
歡迎來到下一篇Linux內核文章。在本篇里,我們將討論輸入/輸出埠。
首先,PS/2滑鼠和AT鍵盤需要"i8042 PC Keyboard controller"驅動。在USB之前,滑鼠和鍵盤使用圓形埠的PS/2埠。AT鍵盤是一種84鍵使用AT埠的IBM鍵盤。AT埠有5針而PS/2口有六針。
使用COM口(有時也稱RS232串口)的輸入設備需要這個驅動(Serial port line discipline)。COM是一種串口,意味著每次傳輸一位。
TravelMate筆記本需要這個特殊的驅動來使用連接到QuickPort的滑鼠(ct82c710 Aux port controller)。
對於PS/2 mice、AT keyboards 和 XT keyboards的並口適配器使用這個驅動(Parallel port keyboard adapter)。
"PS/2 driver library"用於PS/2滑鼠和AT鍵盤。
可以啟用"Raw access to serio ports"來允許設備文件作為字元文件來使用。
下面,下面有一個用於"Altera UP PS/2 controller"的驅動。
PS/2復用同樣需要一個驅動(TQC PS/2 multiplexer)。
ARC FPGA平台對於PS/2控制器需要特殊的驅動(ARC PS/2 support)。
注意:我想要說清楚這篇文章中討論的PS/2控制器並不是Sony的PlayStation上的遊戲控制器。這篇文章討論的是6針滑鼠/鍵盤埠。控制器是一種有PS/2埠的卡。
"Gameport support"提供對15針gameport的支持。gameport是一種曾經被很多遊戲設備使用直到USB埠的發明的15針口。
下一個驅動是在ISA或者PnP匯流排卡上的gameport驅動(Classic ISA and PnP gameport support)。ISA代表"Industry Standard Architecture"(工業標準架構)並且它是一種在PCI之前的並行匯流排標準。PnP代表"Plug-and-Play"(即插即用)並且他是一種在ISA之前的通用標準。
"PDPI Lightning 4 gamecard support"提供了一個有gameport的遊戲卡的專有驅動。
SoundBlaster Audigy卡是一種專有gameport卡(SB Live and Audigy gameport support)。
ForteMedia FM801 PCI音頻控制器在卡上有一個音頻控制器(ForteMedia FM801 gameport support)。這個驅動只支持gameport。
下一步,我們可以進入"Character devices"。字元設備以字元傳輸數據。
首先,可以啟用/禁用TTY(Enable TTY)。移除TTY會節約很多空間,但是許多終端和這類設備需要TTY。除非你知道你在做什麼,否則不要禁用TTY。
致我的粉絲:如果你知道一個禁用TTY的理由,你能在下面發表你的答案並與我們共享么?謝謝!
下一步,可以啟用/禁用"Virtual terminals"(虛擬終端)。再說一次,這個可以節約很多空間,但是虛擬終端很重要。
下一個驅動支持字體映射和Unicode轉換(Enable character translations in console)。這用於轉換ASCII到Unicode。
虛擬終端可以用這個驅動作為系統控制台(Support for console on virtual terminal)。系統控制台管理著登陸和內核信息/警告。
虛擬終端必須通過控制台驅動與物理終端交互(Support for binding and unbinding console drivers)。在虛擬終端可用之前,控制台驅動必須被載入。當虛擬終端關閉後,控制台終端必須被卸載。
下一個驅動提供了對Unix98 PTY驅動的支持(Unix98 PTY support)。這是Unix98偽終端。
有趣的事實:Linux內核允許某個文件系統一次在很多地方被多次掛載。
接下來,可以支持"Support multiple instances of devpts"(譯註:允許多個"devpts"文件系統實例)。devpts文件系統用於偽終端的slave。
過時的PTY同樣可以啟用(Legacy (BSD) PTY support)。
可以設置最大數量的使用中的過時PTS(Maximum number of legacy PTY in use)。
下面的驅動可以用於提供對其他驅動不支持的串口的支持 (Non-standard serial port support)。
下面有一些用於特定板和卡的驅動。
這個驅動支持GSM MUX協議(GSM多路復用)(GSM MUX line discipline support (EXPERIMENTAL))。
下一個驅動啟用kmem設備文件(/dev/kmem virtual device support)。kmem通常用於內核調試。kmem可以用於讀取某些內核變數和狀態。
Stallion卡上面有許多串口Stallion multiport serial support)。這個驅動特別支持這塊卡。
下面,我們可以進入到串列設備驅動了。如前所述,串列設備每次傳輸一位。
第一個驅動用於標準串口支持(8250/16550 and compatible serial support)。
在這個驅動下,即插即用(Plug-and-Play)同樣存在於串口中(8250/16550 PNP device support)。
下面的驅動允許串口用於連接一個終端後作為控制台(Console on 8250/16550 and compatible serial port)。
一些UART控制器支持直接內存訪問(DMA support for 16550 compatible UART controllers)。UART代表的是"Universal Asynchronous Receiver/Transmitter"(通用非同步收發)。UART控制器轉換串列到並行,反之亦然。
下一步,這個驅動提供了標準PCI串列設備支持(8250/16550 PCI device support)。
16位PCMCIA串列設備由這個驅動支持(8250/16550 PCMCIA device support)。記住,PCMCIA是一種通常使用於筆記本的PC卡。
可以設置最大數量支持的串口(Maximum number of 8250/16550 serial ports),接著是在啟動中註冊的最大數量(Number of 8250/16550 serial ports to register at runtime)。
為了擴展像HUB6的串列能力,啟用這個驅動(Extended 8250/16550 serial driver options)。
一個特殊驅動用於支持多於4種的過時串口(Support more than 4 legacy serial ports)。
當啟用這個驅動後,可以共享串口中斷(Support for sharing serial interrupts)。
使用這個驅動可以自動檢測串口中斷請求(Autodetect IRQ on standard ports)。
RSA串口同樣也在Linux內核中支持(Support RSA serial ports)。RSA代表的是"Remote Supervisor Adapter"(遠程管理適配器)。RSA是一種IBM特定的硬體。
下面,有不同的供應商/設備特定驅動。
下面有一個使用printk輸出用戶信息的TTY驅動(TTY driver to output user messages via printk)。printk(print kernel)是一種通常列印啟動信息的特殊軟體。任何由printk顯示的字元串通常在/var/log/messages文件里。shell命令"dmesg"顯示所有被printk使用的字元串。
下面,我們可以啟用/禁用並口印表機的支持(Parallel printer support)。
接下來的驅動允許印表機作為一個控制台(Parallel printer support)。這意味著內核消息會被逐字地由印表機列印。通常地在這個系列中使用"print"(列印)這個單詞時,意味這將輸出信息到屏幕上。而這次,字面上的意思是將數據輸出在紙上。
以下的驅動使設備文件在/dev/parport/中(Support for user-space parallel port device drivers)。這使得一些進程可以訪問。
再說一次,Linux內核有許多特性和驅動,所以我們還會在下一篇文章中繼續討論更多的驅動。謝謝!
致粉絲:我們正在接近配置過程的終點。我有一張你們很多人想知道的內核話題列表。這些話題包含了安裝內核、管理模塊、加入第三方驅動、還有許多其他有趣的建議和要求。
via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-16.4835/
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive