标签 内核 下的文章

你好!准备好阅读下一篇文章了么?在本篇中,我们将会讨论辅助显示。辅助显示是一些小的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内核,大多数回答是买本教材仔细研究,但我认为这是不够的,我认为至少要做一下介绍的一个才算是高手(你只需要会C和汇编就好了)

方法一:编写你自己的操作系统

有的人认为这可能是疯狂的想法,这貌似是很厉害的人物才会去做。其实不然,也不需要你做多么强大功能,就算你的系统只能看一张图片,那么我也同样的恭喜你,你成功了。即使你自己写的系统功能不是很强大,但它足以说明你对Linux内核理解的程度已经是相当不错了。这个方法也许是四种方法中最难的,也是最快的,最有效的

方法二:编写写一些内核模块!

这个想法比起上一个要显示很多,如果你已经再用Linux了,那么你编写一个内核模块是相当的容易,即便是你写了一个模块,让它打印出“hell ”到内核日志上,他的代码量是相当少的,基本上只需要写一个简单的进程和一个简单的函数,就可以搞定的事情。如果你去尝试它,并且成功了,那么我们也会恭喜你。编写一定功能的内核模块是比较困难的,你可以先想一个特定的功能,然后下载Linux内核源码,开始阅读它,再到谷歌上面去搜索。这里有几个内核模块https://github.com/jvns/kernel-module-fun你可以研究一下

方法三:阅读内核源码

这个方法听起来很愚蠢的样子,但不是你想的那个样子,实际上这也是对我们能力的一种考验,如此庞大的源代码,考验你的坚持,考验你的勇气,同时考验你的能力。在很多时候你会感觉无能为力,但我希望采用此方法的人,在阅读是不防做一下批注,你是怎样理解的,按照博客的形式发表出来,这样对你也有帮助,对我们也有帮助。

方法四:参加一次Linux内核培训!

这个方法需要有一定的资金和时间,当然也要靠你自己。找个培训班的,培训班自己问度娘了

Linux内核团队参与了GNOME女性拓展实习项目。它是惊人、奇妙并且令人非常愉快的一个活动。这意味着,如果你是一个女人并且愿意花费三个月时间在内核开发上,你就能参与内核的开发,并且不需要任何的经,还能得到一些报酬(5000美元)。

一年一度的 Google Summer Code 2014已经启动。今年是 Google Summer Code 第十年。这项活动是为了鼓励全世界的大学生使用开源软件进行开发。Google 将组织引导学生为各种开源项目编写代码。在过去的九年中,已经有来自世界各地超过100个国家7,500成功的学生参加了这个活动。

Google Summer Code是提供大专学生开发者年龄在18岁以上津贴编写代码的各种开源软件项目的全球方案。我们曾与开源,自由软件,以及与技术相关团体在为期三个月的识别和资助项目。公司自2005年成立以来,该计划已汇集了来自世界各地超过100个国家7,500成功的学生参加,逾7,000导师,产生超过50万行代码。通过代码的谷歌夏季,接受学生的申请是搭配从参与项目的导师或导师,从而获得接触到现实世界的软件开发方案,并在与他们的学术追求领域的就业机会。反过来,参与的项目能够更加轻松地识别和带来新的发展。最重要的是,更多的源代码创建和发布所有的使用和受益。

转载注明出处:Linux中国,夜域诡士

预期在2014年中发布的Linux 3.15内核会带来大量ACPI和电源管理的更新。感谢更新,Linux系统会在不久的将来可以更快地挂起与恢复。

Linux 3.15 kernel, ACPI, power management updates, Linux systems, Rafael Wysocki, asynchronous threads, Nvidia's Maxwell architecture, Linux kernel 3.14

拉斐尔·维索斯基,一名在英特尔负责维护linux内核电源管理代码的人员,指出了这一变化。Phoronix的报道引用了"对用户可见的在Linux 3.15 的内核中应该会减少系统挂起和恢复的时间,感谢启用了更多的异步线程。" Linux 3.15 也许同样会带来Nvidia Maxwell架构的基础支持。更多的细节还需等待。

同时,最新的稳定版Linux内核是3.13.6。Linux创始人,林纳斯·托瓦兹官方宣布即将到来的3.14的第6版候选发布版。RC6是Linux 3.14-rc5的继任者。现在可以下载来测试了。然而,因为它是一个开发版本,它不该在生产机上安装。

林纳斯·托瓦兹在发布说明中说:"我们正在接近rc周期的最后阶段,我不得不承认我希望这里的曲折少一点。这里没有任何太大的问题,但是在这个发布周期的最后还有一些小问题。同样rc6显著地比rc5更大。" 托瓦兹说他希望事情可以更平静,但是这里仍有一些小问题包括一些愚蠢的错误,还有晚一些的提交恢复。如果事情不能解决,托瓦兹已经暗示会发布rc8和rc9。Linux 3.14-rc6包含了一些简单的更新。


via: http://www.efytimes.com/e1/fullnews.asp?edid=133613

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

你好!这篇文章会覆盖不同的驱动。

首先"virtio console"是一种用于hypervisors的虚拟控制台驱动。

"IPMI top-level message handler"是用于IPMI系统的消息管理器。IPMI代表的是"Intelligent Platform Management Interface"(智能平台管理系统)。IPMI是一种不需要shell通过网络管理系统的接口。

"/dev/nvram support"允许系统读取和写入实时时钟的内存。通常上,这个特性用于在掉电时保存数据。

下面一个驱动支持Siemens R3964包驱动(Siemens R3964 line discipline)。这个是设备对设备协议

现在,我们可以进入PCMCIA字符设备驱动。然而,大多数这里的驱动是供货商/设备特定的。

原始块设备驱动允许块设备绑定到设备文件上/dev/raw/rawN(RAW driver (/dev/raw/rawN))。这么做的好处是高效的零拷贝。然而,大多数软件更偏好通过/dev/sd** 或者 /dev/hd**访问存储设备。

下面,可以设置支持的原始设备的最大数量。

下面的驱动可以生成设备文件/dev/hpet (HPET - High Precision Event Timer)。

注意:你们中很多人可能会想知道为什么要启用这些设备文件问题。好的,这些设备文件充当了一个软件和硬件之间的接口。

通过这个驱动可以映射HPET驱动(Allow mmap of HPET)。映射是一个生成设备和文件在内存中的地址列表。文件接着可以通过内存地址更快地找到并且接着指挥硬盘从地址中得到数据。

"Hangcheck timer"用于检测系统是否被锁定。这个定时器监视着锁定进程。当一个进程被冻结了,定时器就开启。当定时器停止后,如果进程还没有重启或者关闭,那么定时器会强迫进程关闭。

引用Linus Torvalds的话:可移植性是对于那些无法写新程序的人而言的。

使用Trusted Computing Group(可信赖计算组)规范的TPM安全芯片会需要这个驱动(TPM Hardware Support)。

现在,我们可以进入I2C设备。I2C代表的是"Inter-Integrated Circuit"(内部集成电路)并经常被成为"eye two see"。然而,一些人会说"eye squared see"。I2C是一种串行总线标准。

一些旧的软件将I2C适配器作为类设备,但是如今的软件不会这么做(Enable compatibility bits for old user-space)。所以,这个驱动会提供对旧软件的向后支持。

接下来,可以生成I2C设备文件(I2C device interface)。

I2C可以通过这个驱动提供复用支持(I2C bus multiplexing support)。

I2C可以通过这个驱动支持GPIO控制的复用(GPIO-based I2C multiplexer)。

对于开发者用这个驱动可以在I2C和SMBus上执行不同的测试(I2C/SMBus Test Stub)。

I2C系统启用这个特性可以生成调试信息(I2C Core debugging messages)。

下一个驱动生成额外的I2C调试信息(I2C Algorithm debugging messages)。

引用Linus Torvalds的话:Linux中没有原始设备的原因似乎我个人任何原始设备是一个愚蠢的注意。

下面的驱动会使I2C驱动生成调试信息(I2C Bus debugging messages)。

接下来,我们有串行外设接口(Serial Peripheral Interface)支持(SPI support)。SPi是一种用于SPI总线的同步串行协议。

在这之后,有一个驱动用于高速同步串行接口(High speed synchronous Serial Interface support)支持(HSI support)。HSI是一种同步串行协议。

PPS同样在Linux内核中支持(PPS support)。

"IP-over-InfiniBand"驱动支持IP包通过InfiniBand(译注:一种无限带宽技术)传输。

在这之后,有一个调试驱动用于IP-over-InfiniBand(IP-over-InfiniBand debugging)。

SCSI的RDMA协议同样可以通过InfiniBand传输(InfiniBand SCSI RDMA Protocol)。

这里同样有一种通过InfiniBand传输iSCSI协议的扩展(iSCSI Extensions for RDMA (iSER))。

有时候,错误发生在了整个系统必须知道的核心系统中(EDAC (Error Detection And Correction) reporting)。这个驱动发送核心给系统。通常地,这类底层错误由处理器中报告并接着由这个驱动让其他系统进程知道或者处理错误。

这个驱动提供了在老版本中的sysfs中使用的过时EDAC的支持(EDAC legacy sysfs)。

EDAC可以用来设置发送调试信息给Linux的日志系统(Debugging)。

引用Linus Torvalds的话:没有人可以第一次创造如此好的代码,除了我。

"Machine Check Exceptions"(机器检测异常)(MCEs)通过这个驱动被转化成可读的信息(Decode MCEs in human-readable form (only on AMD for now))。MCEs是由CPU检测到的硬件错误。MCEs通常触发内核错误。

将MCE解码成可读的形式的过程可以被注射用于测试错误处理(Simple MCE injection interface over /sysfs)。

下一个驱动允许错误在内存中被检测到并纠正(Main Memory EDAC (Error Detection And Correction) reporting)。

下面,还有很多用于特定设备组的检测和纠正错误的驱动。

引用Linus Torvalds的话:理论和实践有时会冲突。那这个发生时,理论输了。每次都是。

现在我们可以进入实时时钟("Real Time Clock")。这通常缩写为"RTC"。RTC一直跟随着时间。

下面的设定允许用户在Linux系统中使用RTC时间作为"挂钟"时间(Set system time from RTC on startup and resume)。这个挂钟是我们在桌面上或者通过"date"命令看到的时间。

另外,挂钟可以通过NTP服务器得到时间并与RTC同步(Set the RTC time based on NTP synchronization)。

一些系统有几个RTC,所以用户必须设置哪一个是默认 (RTC used to set the system time)。最好设置第一个(/dev/rtc0)为主时钟。

可以设置RTC系统的调试特性(RTC debug support)。

RTC可以使用不同的接口给予操作系统当前时间。使用sysfs会需要这个驱动(/sys/class/rtc/rtcN (sysfs)),而似乎用proc需要这个驱动 (/proc/driver/rtc (procfs for rtcN))。特殊的RTC字符设备可以生成并使用 (/dev/rtcN (character devices))。shell命令"hwclock"使用/dev/rtc,所以RTC字符设备。

下一个驱动允许在/dev接口上模拟RTC中断(RTC UIE emulation on dev interface)。这个驱动读取时钟时间并允许新的时间从/dev中检索。

RTC系统可以通过测试驱动测试(Test driver/device)。

下面,我们会讨论直接内存访问系统。DMA是硬件独立于处理器的内存访问过程。DMA增加的系统性能因为处理器将做得更少如果硬件自身做了更多的任务。不然,硬件会等待处理器完成任务。

这是调试DMA系统的调试引擎(DMA Engine debugging)。

接下来,有许多的供货商/设备特定驱动用于DMA支持。

一些DMA通过这个驱动支持大端读取和写入(Use big endian I/O register access)。

大端指的是二进制码的排列。英语国家的数字系统将数字的最大端放在左边。比如,数字17,最左的数字是放置十位的地方大于个位。在大端中,每字节最大的放在左边。字节有8位。比如:10110100。每一处都有相应的值128、64、32、16、8、4、2、1。所以提到的为被转换成十进制180。

DMA系统可以使用网络减小CPU使用(Network: TCP receive copy offload)。

"DMA Test Client"用于测试DMA系统。

下一篇文章中,我们会讨论显示/视频驱动。谢谢!

参考:Linus Torvalds的引用来自于:http://en.wikiquote.org/wiki/Linus_Torvalds


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

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

欢迎来到下一篇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/

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

过去两个月来,我一直在本文中更新报道Linux项目的进展情况。请原谅我最近在埋头于一些开发工作。闲话少说,让我们赶紧把落下的功课补上。

主线发布(Linus的分支)的相关新闻

2014年1月19日,Linux3.13发布。详见Linux3.13是什么。2014年3月2日,3.14-rc5发布。根据rc版本发布的进程来看,2014年3月底前Linux3.14应该就能正式发布。git中3.14-rc1已经PR(pull requests)的一些摘要更新如下:

来自Len Brown的turbostat更新:

一个新的命令行选项 -s,用来dump计数器

加强对Haswell Xeon [HSX]的支持。HSX在支持RAPL上与HSW客户端稍有不同,HSX的上一个版本并不支持turbostat。

来自Olof Johansson的针对ARM SoC的修复:

在defconfig中针对相应的平台设备增加了新的驱动

增加多平台覆盖率,修改一些DTS,统一相关设备及其衍生产品的驱动支持

来自Catalin Marinasd的ARM64位补丁:

支持用PTE\_WRITE位来区分某个页面是干净可写的,还是真正的只读页面。

来自Rafael Wysocki的ACPI及电源管理更新:

修改ACPI核心,即不论当前设备的状态如何,在扫描命名空间的同时,为ACPI表中列出的每一个设备创建一个acpi\_device结构对象。这一改动可以在ACPI表失效前,有效防止ACPI热插拔操作时错误地删除某些对象。

Todd E Brandt提供了一个用于挂起/恢复性能优化的新工具

修改初始化代码,将ACPI的初始化提前,这样内核就能在计时器初始化的时候继续使用ACPI,同时有可能简化EFI的初始化。 —— 来自李春义(音Chun-Yi Lee)

apm-仿真:添加APM休眠事件使其支持suspend2disk —— 用于改进使用休眠技术实现快速启动的嵌入式系统。通过此改动,APM事件通知软件组件,准备休眠以及状态恢复。捕捉apm状态可以有效帮助实现快速启动,同时保持系统状态,用于休眠和恢复。这一改动使apm支持“挂起到磁盘”。

来自张瑞(音Zhang Rui)的热量管理更新:

实时显示设备树的基础设施硬件的热性能。该工作包含了设备树介绍,描述硬件热行为及其限制,读取分析热数据,并建立热区间及其热参数。另外针对三家设备(TI SoC和hwmon的两台设备)的传感器设备使用新的表述方式进行API初始验证。这是完成验证工作的第一步,即使设备转为使用相应的API并进行验证。

Links to 3.14-rcs

稳定分支发布的相关新闻

Jiri Slaby正在接管3.12稳定分支的长期维护工作。Greg KH将继续负责kernel.org的发布。Jiri Slaby负责补丁汇总,发布候选声明。详见3.12-稳定版内核分支由Jiri Slaby接管。最新的稳定分支发布如下:

最新稳定版及扩展版发布

Release Version Projected EOL

Stable 3.13 3.13.6  Not announced
Stable 3.12 3.12.14 Not announced
Stable 3.11 3.11.10 EOL November 29 2013
Longterm 3.10   3.10.33 September 2015
Longterm 3.4    3.4.82  October 2014
Longterm 3.2    3.2.55  2016
Longterm 3.0    3.0.101 EOL October 22 2013
Longterm 2.6.34 2.6.34.15   EOL February 10 2014
Longterm 2.6.32 2.6.32.61   mid-2014
Extended stable 3.11.y.z    3.11.10.6   [Extended Stable][8]
Extended stable 3.8.y.z 3.8.13.19   [Extended Stable][9]
Extended stable 3.5.y.z 3.5.7.31    [Extended Stable][10]

如果你还想知道这些稳定版的发布是如何管理的,或者新版多久发布一次,详见Active kernel releases

Linux RT

Linux RT的稳定版发布多的不胜枚举。请移步linux-stable-rt.git查看最新版本。

哪里能找到Linux发布的所有git树?

Linux Release Git

Mainline git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git Stable releases (all) git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git Linux RT releases git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git Extended stable releases git://kernel.ubuntu.com/ubuntu/linux.git Bleeding edge linux-next git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

思考写在最后

3.13中的“TCP快速启动”从某些类型的TCP会话中去除了一轮时间轮询,从而大大提升了TCP连接的建立速度,web网页的加载速度也得以改进。

针对ARM的相关修改是3.14-rc1中的重要更新。许多新设备现在都支持或增加了多平台设备的覆盖率,对DTS的一些修改统一了相关设备及其衍生产品的驱动支持。相对于以前的设备树需要平台间的迁移,多平台配置配合DTS改进现在仅需一个通用设备驱动。这对于ARM的拓展是件好事,它开始能够支持PCI设备了。

改进嵌入式设备的休眠功能,进而用于快速启动,这对手机和嵌入式设备是个利好。谁愿意自己的手机休眠的时候总出意外?

Linux3.14-rc5的声明中,Linus Torvalds说道“下一周,下一个rc。一切都很平静,一切都很正常。”基于此,如果没有特殊情况,Linux3.14将在两到三周内发布。与往常一样,紧接着下一个合并窗口也就是3.15-rc1即将打开。

如果有人想知道Jiri Slaby接管3.12的长期维护后有哪些改变,请放心,一切如常。Jiri Slaby将搜集补丁,发布候补。我志愿测试3.12的候补发布,Guenter Roeck志愿在3.12的补丁队列上运行他的build测试。Greg KH将负责kernel.org的最终发布。


via: http://www.linuxjournal.com/content/linux-kernel-news-january-and-february-2014

译者:Mr小眼儿 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出