戴文的Linux内核专题:16 配置内核 (12)

戴文的Linux内核专题:16 配置内核 (12)

欢迎来享受Linux内核配置系列下一部分。如你所猜到的那样,内核支持大量不同的硬件、协议和特性。

下一组我们要讨论的特性是"EEPROM support"。电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory)是一种掉电或者意外关闭后不会擦除内容的存储器。

内核支持在I2C卡上的EEPROM芯片包括FRAMs、ROMs和SRAMs (I2C EEPROMs / RAMs / ROMs 来自多数供货商)。FRAM(同样也称作FeRAM是一种使用铁电原理而不是电介质存储数据的随机访问存储芯片)。ROM芯片是只读(Read Only Memory)芯片。SRAM是静态而不是动态存储器就像DRAM。DRAN必须被刷新以保留数据而SRAM不需要刷新。然而,两者都会在电源关闭或者丢失时失去数据。

内核支持SPI总线的EEPROM(SPI EEPROMs from most vendors)。串行外设接口总线(Serial Peripheral Interface Bus (SPI))是一个缺乏错误检测的全双工总线系统。

老式的I2C EEPROM芯片需要一个除了上面I2C驱动之外的驱动(Old I2C EEPROM reader)。I2C总线用于嵌入式系统和电话,由于它用的是低速总线协议。

这个特性用来防止Maxim的可编程EEPROM变成只读模式(Maxim MAX6874/5 power supply supervisor)。特别地,这驱动提供对这个芯片的更好的电源管理。

这里还有一个驱动"EEPROM 93CX6 support","Microwire EEPROM 93XX46 support"和"ENE CB710/720 Flash memory card reader support"。

和其他内核特性一样,这里有一个对于EEPROM的调试特性(Enable driver debugging)。再说一次,为了更好的性能,禁用调试特性。

下面,我们有一个TI特性(Shared transport core driver)。这个驱动提供对于BT/FM和GPS芯片的传输协议。

下面的驱动支持I2C LIS3LV02Dx加速度计(STMicroeletronics LIS3LV02Dx three-axis digital accelerometer (I2C))。设备提供的数据存储在/sys/devices/platform/lis3lv02d。

下一步, Linux提供了下载固件到Altera的FPGA的模块(Altera FPGA firmware download module)。FPGA就是现场可编辑逻辑门阵列(field-programmable gate array)。它们是可编程集成电路。

Intel Management Engine Interface提供Intel芯片的安全和其他服务。

"ME Enabled Intel Chipsets"可以支持MEI。MEI是"Management Engine Interface"(管理引擎接口)。这个驱动支持有MEI服务的芯片组。

"VMware VMCI Driver"是一种用于客户机和宿主机中继通信的高速虚拟设备。VMCI代表的是"Virtual Machine Communication Interface"(虚拟机通信接口)。

下面, "ATA/ATAPI/MFM/RLL support"可以启用/禁用。MFM (Modified Frequency Modulation)是一种特殊的编码软驱位的方法。然而,这并不工作在所有的软驱上。MFM使用RLL(Run-Length Limited)编码制式。RLL通过有带宽限制的系统通信转换数据。ATAPI是先前提过的"ATA Packet Interface",同时ATA也在讨论接口标准的时候讨论过。

现在我们将讨论SCSI支持。小型计算机接口(Small Computer System Interface (SCSI))是另外一种SATA的接口标准。USB和火线设备使用SCSI协议。

第一个SCSI设定关于"RAID Transport Class"。这允许RAID使用SCSI标准。

为了使用SCSI目标,启用这个特性(SCSI target support)。

如果系统会运行旧的Linux应用,系统可能需要"legacy /proc/scsi/ support"。这会在/proc/scsi创建SCSI文件。

为了支持SCSI磁盘,启用下一个特性(SCSI disk support)。这是一个通用驱动。

为了支持SCSI磁带,启用这个特性(SCSI tape support)。这是一个通用驱动。SCSI磁带驱动器在像磁带的磁性条上记录数据。

OnStream SCSI磁带需要这个驱动而不是前面提到SCSI通用驱动SCSI OnStream SC-x0 tape support)。

"对于SCSI CDROM support",一些CD-ROM使用SCSI协议。

下面, 用户可以启用"Enable vendor-specific extensions (for SCSI CDROM)"。

这是一个对于大量不同SCSI设备的通用驱动(SCSI generic support)。这主要用于SCSI扫描仪和其他不被上面提到的SCSI驱动支持的设备或者那些之后会讨论的设备。

一些SCSI点唱机需要这个SCSI驱动(SCSI media changer support)。

Linux内核提供"SCSI Enclosure Support"。SCSI附件是一种管理电源和制冷SCSI设备同时提供不关于数据的服务的设备。

Linux内核应该设置为每个SCSI设备搜索全部的逻辑单元号(Logical Unit Numbers (LUN))(Probe all LUNs on each SCSI device)。LUN是SCSI地址。

这有额外的对于SCSI的错误报告(Verbose SCSI error reporting (kernel size +=12K))。这会明显地增加内核的大小。

这里还有一个SCSI日志系统(SCSI logging facility)。

为了增强你的系统,启用这个特性会允许SCSI在系统启动时就被探测到而不是先启用再探测(Asynchronous SCSI scanning)。大多数系统可以一次执行这两个任务,因此为什么允许这项? 对于那些连接了很多SCSI设备的硬件,这个会明显加快启动速度。

下面,"Parallel SCSI (SPI) Transport Attributes"(传统的并行SCSI)允许每个SCSI设备发送传输信息给sysfs。一些系统需要这个特性。

下面的特性和上面提到的一样,但是发送光纤通道设备的传输信息(FiberChannel Transport Attributes)(光纤通道接口)。光线通道设备使用SCSI。

下面用户可以启用/禁用"SCSI target support for FiberChannel Transport Attributes"(为光纤通道添加"target"模式驱动)。

iSCSI设备和SAS设备的传输数据可以导出到sysfs(iSCSI Transport Attributes)和SAS Transport Attributes)。SAS代表的的是"Serial Attached SCSI"(串行链接SCSI)。

下面,ATA支持被加入libsas(ATA support for libsas (requires libata))。注意配置工具提示需要libata。为了满足这个需求,启用ATA支持。更多情况下,配置工具已经或者将会会你这么做,但是请无论再检查一下。libsas和libata是相应的支持SAS和ATA的库。

下面的特性允许SAS接口接收SMP帧(Support for SMP interpretation for SAS hosts)。这加入了一个SMP解释器到libsas中。然而,这不会增加内核的尺寸。SMP帧允许所有在多CPU系统上的处理器访问SAS设备。

SRP可以发送传输的数据给sysfs(SRP Transport Attributes)。SRP代表SCSI RDMA协议(SCSI RDMA Protocol)。RDMA代表远程直接内存访问(Remote Direct Memory Access)。这意味着SRP是一个用来访问连接到另外一台计算机的SCSI设备的数据的协议。

下一步,用户可以启用"SCSI target support for SRP Transport"。

可以启用底层SCSI驱动(SCSI low-level drivers)。这提供了很多基础驱动。

在这之后,用户可以启用/禁用"PCMCIA SCSI adapter support"。这个适配器允许SCSI设备连接到PC卡上。

这里有一些驱动用于特殊的适配器- (Future Domain PCMCIA support)、(Qlogic PCMCIA support) 、(Symbios 53c500 PCMCIA support)。

多路径安装的设备需要这个特性(SCSI Device Handlers)。这用在每个节点都需要一个到SCSI存储单元的直接路径的集群中。

下一步,"OSD-Initiator library"(OSD启动库)可以启用。这是一个提供了补丁、OSD协议、和针对SCSI设备的T10协议的SCSI驱动。 OSD代表的是基于对象的存储设备(Object-based Storage Device);下一段会讨论得更多。

这个特性生成一个SCSI上层用于测试和管理/dev/osdx设备(OSD Upper Level driver)。exofs使用这个驱动用于挂载基于OSD的文件系统。OSD设备不像其他存储单元一样使用块的存储设备。相反地,OSD设备存储数据在称之为对象的容器里。exofs曾经称作OSDFS。

如果启用了它,OSD特性提供了调试工具(Compile All OSD modules with lots of DEBUG prints)。

如今,我们可以讨论串行ATA和并行ATA特性和驱动了。首先启用/禁用用于调试的第一个特性(Verbose ATA error reporting)。

下一步,用户应该对于ATA设备启用高级配置及电源接口特性(ATA ACPI Support)。这允许内核在SATA设备上更有效地管理电源使用。

内核包含了对于"SATA Zero Power Optical Disc Drive (ZPODD) support"的驱动。这会在不使用时关闭SATA光盘驱动器(SATA optical disc drives (ODD))。这节约了能源以及减少损耗。

贴士:即使你在编译一个高性能的内核,尝试启用所有的电源管理特性。则减少了电源消耗、操作开销、热量产生(热量会降低性能),以及老化。

SATA端口复用器需要这个驱动(SATA Port Multiplier support)。端口复用器是一个拥有许多端口但是自己仅需插入一个端口的设备。举例来说,如果一个硬件有一个SATA口,但是还需要更多的口,在这个口上插入端口复用器。现在设备可以有许多SATA口了。

下一个驱动用于AHCI SATA(AHCI SATA support)。高级主机控制器接口(Advanced Host Controller Interface (AHCI))是一种SATA总线适配器的操作标准。

对于要在Soc硬件上支持AHCI SATA设备,必须启用这个驱动(Platform AHCI SATA support)。Soc代表片上系统(System-on-a-Chip)。

下面是一些特殊设备的驱动

  • Initio 162x SATA support
  • ACard AHCI variant (ATP 8620)
  • Silicon Image 3124/3132 SATA support

再说一次,等着下一篇精彩的文章。

原文发布时间:2014-06-27

本文来自云栖合作伙伴“linux中国”

时间: 2024-09-29 09:14:24

戴文的Linux内核专题:16 配置内核 (12)的相关文章

戴文的Linux内核专题:22 配置内核 (18)

戴文的Linux内核专题:22 配置内核 (18) 你好!准备好阅读下一篇文章了么?在本篇中,我们将会讨论辅助显示.辅助显示是一些小的LCD屏幕:大多数小于或等于128x64.接着,我们会讨论用户空间IO驱动,一些虚拟驱动,Hyper-V,开发中驱动,IOMMU,和其他一些内核特性. 第一个配置辅助显示的驱动是"KS0108 LCD Controller".KS0108 LCD Controller是由三星制造的图形控制器. 下面可以设置LCD并口地址(Parallel port wh

戴文的Linux内核专题:23 配置内核 (19)

戴文的Linux内核专题:23 配置内核 (19) 欢迎进入Linux内核系列文章的下一篇!我们正在接近配置过程的终点.在这篇文章中,我们将会讨论固件驱动和文件系统驱动. 这个分类中的第一个驱动是寻找启动盘(BIOS Enhanced Disk Drive calls determine boot disk).有时,Linux不会知道哪个盘是启动盘.这个驱动允许内核询问BIOS.Linux接着在sysfs上存储信息.Linux需要知道这些来设置bootloader. 即使BIOS EDD服务被编

戴文的Linux内核专题:26 配置内核 (22)

戴文的Linux内核专题:26 配置内核 (22) 你好!本篇我们将继续配置"kernel hacks",接着我们会配置整个安全系统. Alpha和s390处理器需要配置下一个特性(Force weak per-cpu definitions).这个特性修复了一个在这类处理器中普遍存在的寻址问题.其他的处理器无需启用这个特性. 内核转储可以用这个特殊的调试工具测试(Linux Kernel Dump Test Tool Module).这个软件会允许内核开发者触发一个假错误来导致内核转

戴文的Linux内核专题:27 配置内核 (23)

戴文的Linux内核专题:27 配置内核 (23) 欢迎来到内核配置的下一章!本篇中我们会配置密码API,虚拟化和运行库.密码学指的是在需要的计算机之间加密和安全通信的科学.用户可能加密数据以保证是收件人而不是黑客收到数据. Linux内核需要在内核中启用"Cryptographic algorithm manager"(密码算法管理器).这个特性提供了操作内核的加密特性所需的软件. 当启用这个它,用户空间提供了配置加密特性(Userspace cryptographic algori

戴文的Linux内核专题:25 配置内核 (21)

戴文的Linux内核专题:25 配置内核 (21) 大家好!本篇我们将会配置Linux内核的网络文件系统支持.网络文件系统是一个可以通过网络远程访问计算机的远程文件系统. 首先,"NFS client support"驱动允许linux系统使用NFS网络文件系统.这里还有3个不同版本的NFS - (NFS client support for NFS version 2). (NFS client support for NFS version 3). (NFS client supp

戴文的Linux内核专题:05 配置内核 (1)

现在我们已经了解了内核,现在我们可以进入主要工作:配置并编译内核代码.配置内核代码并不会花费太长时间.配置工具会询问许多问题并且允许开发者配置内核的每个方面.如果你有不确定的问题或者特性,你最好使用配置工具提供的默认值.本系列教程会使读者逐步了解配置内核的整个过程. 配置代码前需要在源文件的文件夹内打开一个终端.当终端打开后,基于你喜好的配置界面,这里有几种不同的配置方法: make config - 纯文本界面 (最常用的选择). make menuconfig - 基于文本彩色菜单和单选列表

戴文的Linux内核专题:28 编译与安装

戴文的Linux内核专题:28 编译与安装 你好!在花费了大量的时间在配置你需要的内核后,你现在可以编译它了.源代码是纯文本形式的C代码.这对人来可读但是对机器可不是这样.编译会将代码转换成计算机可理解的一种称之为二进制码的形式(1是 [开],0 是 [关]).编译同样会将所有内核代码文件变成一个内核的文件. 为了编译内核,在内核源代码相同目录下,在终端内输入"make".这会花费一些时间.完成之后,必须通过"make modules"来编译模块.为了从一开始就简化

戴文的Linux内核专题:06 内核配置(2)

这一部分我们讲配置内核IRQ子系统.中断请求(IRQ)是硬件发给处理器的一个信号,它暂时停止一个正在运行的程序并允许一个特殊的程序占用CPU运行. 这个目录中的第一个问题属于内核特性(Expose hardware/virtual IRQ mapping via debugfs (IRQ_DOMAIN_DEBUG))(通过debugfs来显示硬件/虚拟的IRQ映射),它询问是否可以使用虚拟的调试文件系统来映射硬件及Linux上对应的IRQ中断号.这个用作调试目的,大多数用户不需要用到,所以我选择

戴文的Linux内核专题:08 配置内核(4)

在这个第四部分里,我们将继续配置更多的设置和特性. 这里我们被问及关于"IBM Calgary IOMMU support (CALGARY_IOMMU)".这个选项将会提供对IBM xSeries x366和x460的IOMMU的支持.这也将让那些32位PCI的设备工作正常--在这些系统上不支持双地址周期(DAC : Double Address Cycle)--因为该系统设置在访问超过3GB内存的时候会有问题.如果需要这些IOMMU设备可以用"iommu=off"