Linux中國

戴文的Linux內核專題:22 配置內核 (18)

你好!準備好閱讀下一篇文章了么?在本篇中,我們將會討論輔助顯示。輔助顯示是一些小的LCD屏幕;大多數小於或等於128x64。接著,我們會討論用戶空間IO驅動,一些虛擬驅動,Hyper-V,開發中驅動,IOMMU,和其他一些內核特性。

第一個配置輔助顯示的驅動是"KS0108 LCD Controller"。KS0108 LCD Controller是由三星製造的圖形控制器。

下面可以設置LCD並口地址(Parallel port where the LCD is connected)。第一個並口地址是0x378,下一個是0x278,第三個是0x3BC。這些不是地址唯一的選擇。大多數人不需要改變這個。shell命令"cat /proc/ioports"會列出可用的並口和地址。

內核可以設置KS0108 LCD 控制器的寫入延時到並口(Delay between each control writing (microseconds))。默認的值大部分是正確的,因此一般不需要更改。

"CFAG12864B LCD"屏幕是一塊128x64,雙色LCD屏幕。這塊屏幕依賴於KS0108 LCD控制器。

可以改變這些LCD屏幕的刷新率(Refresh rate (hertz))。通常上,更高的刷新率會導致更多的CPU活動。這意味著一個緩慢的系統需要一個更低的刷新率。

設置完輔助顯示後,接著設置"Userspace I/O drivers"。用戶空間系統允許用戶的應用和進程訪問內核中斷和內存地址。啟用了它,一些驅動可以放在用戶空間。

"generic Hilscher CIF Card driver"用於Profibus卡和Hilscher CIF卡。

"Userspace I/O platform driver"在用戶空間創建通用驅動系統。

下一個驅動和上面的相同,但是增加IRQ處理(Userspace I/O platform driver with generic IRQ handling)。

下面的驅動又像前面的一個,但是增加了動態內存支持(Userspace platform driver with generic irq and dynamic memory)。

下面,是一些供應商/設備特性的驅動。

接著是一些通用PCI/PCIe卡驅動(Generic driver for PCI 2.3 and PCI Express cards)。

下面的驅動用於"VFIO support for PCI devices"。VFIO代表Virtual Function Input/Output(虛擬功能輸入/輸出)。VFIO允許設備直接以安全方式訪問用戶空間。

"VFIO PCI support for VGA devices"允許VGA通過VFIO被PCI支持。

接下來是virtio驅動。virtio是一個IO虛擬化平台。這個虛擬軟體用於操作系統虛擬化。這在Linux系統上的虛擬機上運行一個操作系統時需要。

我們第一個可以配置的virtio驅動是"PCI driver for virtio devices"。這允許虛擬訪問PCI

"Virtio balloon driver"允許虛擬系統的內存根據需要擴展或減少。通常上,沒有人希望在需要內存的時候,虛擬系統保留它可能不會使用的內存。

下面的驅動允許內存映射到virtio設備(Platform bus driver for memory mapped virtio devices)。

如果Linux內核需要運行在微軟的Hyper-V系統上,那麼啟用這個驅動(Microsoft Hyper-V client drivers)。這允許Linux能夠成為Hyper的訪客/客戶端系統。

下面,我們會配置處於開發階段的驅動。這些驅動正在開發當中,可能會變化很快,或者還沒到Linux內核的質量標準。這個分類中的驅動只有Android驅動(在內核3.9.4中)。是的,Andorid使用Linux內核,這使得Andorid變成了一個Linux系統。然而,這仍然有爭議。如果內核是用於Android,那麼最好啟用所有的驅動。

"Android Binder IPC Driver"提供了對於Binder的支持,它允許Andorid系統進程間相互通信。

下面可以啟用ashmen驅動(Enable the Anonymous Shared Memory Subsystem)。Ashmem代表"Anonymous SHared MEMory"(虛擬內存共享)或者"Android SHared MEMory"(Andorid共享內存)。

"Android log driver"提供了完整的Andorid日誌系統。

"Timed output class driver" 和 "Android timed gpio driver"允許Andorid系統操作GIP引腳並在超時後取消操作。

"Android Low Memory Killer"會在需要更多內存關閉進程。這個特性會殺死不再使用或活躍的任務。

"Android alarm driver"使內核在設定的間隔後喚醒。

在配置完開發階段的驅動後,下面的驅動用於X86平台。這些驅動是 X86 (32-bit)的供應商/設備特定硬體。

下一個驅動是"Mailbox Hardware Support"。這個框架控制郵箱隊列和硬體郵箱系統的中斷信號。

"IOMMU Hardware Support"鏈接內存到能夠使用DMA的設備上。IOMMU增強了DMA。IOMMU映射地址並阻止故障設備訪問內存。IOMMU同樣允許硬體訪問比沒有IOMMU更多內存。

"AMD IOMMU support"提供了對AMD設備更好的IOMMU支持。

對於AMD IOMMU支持存在調試特性(Export AMD IOMMU statistics to debugfs)。

存在一個對於AMD硬體的更新版本的IOMMU驅動(AMD IOMMU Version 2 driver)。

Linux內核同樣支持對Intel設備的IOMMU驅動支持(Support for Intel IOMMU using DMA Remapping Devices)。

一些設備可能會接受不同的電壓和時鐘頻率。這個驅動允許操作系統控制設備的電壓輸出和時鐘頻率(Generic Dynamic Voltage and Frequency Scaling (DVFS) support)。啟用了這個驅動,可以啟用下面的那些對於電源/性能管理特性。

"Simple Ondemand"就像上面的,但是只會基於設備活動改變時鐘頻率。通常上,更多的活動意味著設備需要更快的時鐘速率來使用更多的資源需求。

"Performance"允許系統設置最高支持的時鐘速度以滿足最好的性能。這會增加電源消耗。

"Powersave"會設置時鐘頻率到最低以節約電源。

"Userspace"允許用戶空間設置時鐘頻率。

"External Connector Class (extcon) support"使得用戶空間可以監視外部連接器如USB和AC口。這允許應用了解是否插入了線纜。用戶幾乎都希望啟用這個。如果任何人由於某個合理的理由禁用了它,請告訴我們為什麼這麼做。

"GPIO extcon support"驅動就像上面的驅動,但是它只對於GPIO管腳。

接下來是不同的供貨商/設備特定的內存控制器(Memory Controller drivers)。內存晶元控制器可能是獨立的設備或者內置在內存晶元上。這些控制器管理這輸入和輸出的數據流。

"Industrial I/O support"驅動提供了標準的感測器介面而不管匯流排的類型(像PCIe、spi、GPIO等等)。IIO是"Industrial I/O support"(工業IO)的通用縮寫。

Linux內核提供了大量不同的加速器、放大器模數轉換器、慣性測量單元、光敏感測器、磁場感測器和其他許多感測器和轉換器的支持。

"Intel Non-Transparent Bridge support"驅動支持連接到系統的PCIe硬體橋。所有到映射內存的寫入會鏡像到兩個系統中。

"VME bridge support"和上面的相同除了橋使用的是VME,這是一個不同的匯流排標準。

"Pulse-Width Modulation (PWM) Support"通過調節從這些設備收到的平均功率調節背光燈和風扇速度。

"IndustryPack bus support"提供了對IndustryPack匯流排標準的支持。

下一篇文章,我們會繼續配置固件驅動。謝謝!

via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-18.4896/

譯者:geekpi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國