戴文的Linux內核專題:22 配置內核 (18)
戴文的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總線標準的支持。
原文發布時間:2014-5-24
本文來自雲棲合作夥伴“linux中國”
最後更新:2017-05-17 16:32:21