linux 内核配置_allocate 2nd-level pagetab-程序员宅基地

对于每一个配置选项,用户可以回答"y""m""n"。其中"y"表示将相应特性的支持或设备驱动程序编译进内核;"m"表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;"n"表示内核不提供相应特性或驱动程序的支持。只有<>才能选择M

1. General setup(通用选项)

[*]Prompt for development and/or incomplete code/drivers,设置界面中显示还在开发或者还没有完成的代码与驱动,最好选上,许多设备都需要它才能配置。

[ ]Cross-compiler tool prefix,交叉编译工具前缀,如果你要使用交叉编译工具的话输入相关前缀。默认不使用。嵌入式linux更不需要。

[ ]Local version - append to kernel release,自定义版本,也就是uname -r可以看到的版本,可以自行修改,没多大意义。

[ ]Automatically append version information to the version string,自动生成版本信息。这个选项会自动探测你的内核并且生成相应的版本,使之不会和原先的重复。这需要Perl的支持。由于在编译的命令make-kpkg 中我们会加入– append-to-version 选项来生成自定义版本,所以这里选N

Kernel compression mode (LZMA),选择压缩方式。

[ ]Support for paging of anonymous memory (swap),交换分区支持,也就是虚拟内存支持,嵌入式不需要。

[*]System V IPC,为进程提供通信机制,这将使系统中各进程间有交换信息与保持同步的能力。有些程序只有在选Y的情况下才能运行,所以不用考虑,这里一定要选。

[*]POSIX Message Queues,这是POSIX的消息队列,它同样是一种IPC(进程间通讯)。建议你最好将它选上。

[*]BSD Process Accounting,允许进程访问内核,将账户信息写入文件中,主要包括进程的创建时间/创建者/内存占用等信息。可以选上,无所谓。

[*]BSD Process Accounting version 3 file format,选用的话统计信息将会以新的格式(V3)写入,注意这个格式和以前的 v0/v1/v2 格式不兼容,选不选无所谓。

[ ]Export task/process statistics through netlink (EXPERIMENTAL),通过通用的网络输出工作/进程的相应数据,和BSD不同的是,这些数据在进程运行的时候就可以通过相关命令访问。和BSD类似,数据将在进程结束时送入用户空间。如果不清楚,选N(实验阶段功能,下同)。

[ ]Auditing support,审计功能,某些内核模块需要它(SELINUX),如果不知道,不用选。

[ ]RCU Subsystem,一个高性能的锁机制RCU 子系统,不懂不了解,按默认就行。

[ ]Kernel .config support,将.config配置信息保存在内核中,选上它及它的子项使得其它用户能从/proc/ config.gz中得到内核的配置,选上,重新配置内核时可以利用已有配置

Enable access to .config through /proc/config.gz,上一项的子项,可以通过/proc/ config.gz访问.config配置,上一个选的话,建议选上。

(16)Kernel log buffer size (16 => 64KB, 17 => 128KB) ,内核日志缓存的大小,使用默认值即可。12 => 4 KB13 => 8 KB14 => 16 KB单处理器,15 => 32 KB多处理器,16 => 64 KB17 => 128 KB

[ ]Control Group support(有子项),使用默认即可,不清楚可以不选。

Example debug cgroup subsystem,cgroup子系统调试例子

Namespace cgroup subsystem,cgroup子系统命名空间

Device controller for cgroups,cgroups设备控制器

Cpuset support,只有含有大量CPU(大于16)SMP系统或NUMA(非一致内存访问)系统才需要它。

[ ]enable deprecated sysfs features to support old userspace tools,在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口,一般不选。

[ ]Kernel->user space relay support (formerly relayfs),内核系统区和用户区进行传递通讯的支持,这个选项在特定文件系统(relayfs)中提供数据接口支持,它可以支持从内核空间到用户空间的大批量数据传递的支持。不清楚可以不选。

[ ]Namespaces support,(有子项)命名空间支持,允许服务器为不同的用户信息提供不同的用户名空间服务,不清楚可以不选。

[ ]Initial RAM filesystem and RAM disk (initramfs/initrd) support,初始RAM的文件和RAM磁盘( initramfs /initrd)支持(如果要采用initrd启动则要选择,否则可以不选),不需要,不用选。嵌入式linux一般不选。

[ ]Optimize for size,优化大小,-Os代替-O2参数,可能会有二进制错误问题,一般不选。

0Default panic timeout,添0即可。

[*]Configure standard kernel features (for small systems),特殊内核用到,可以不选,嵌入式linux则必选。

[ ]Enable the Anonymous Shared Memory Subsystem,启用匿名共享内存子系统,不清楚可以不选。

[ ]Enable AIO support,支持AIOAsynchronous I/O 异步事件非阻塞I/O),(包含aio.h, aio_read,向内核发出读命令,aio_write向内核写命令,详细见‘AIO介绍‘文档),AIO机制为服务器端高并发应用程序提供了一种性能优化的手段。加大了系统吞吐量,所以一般用于大型服务器,一般不用选。

[ ]Kernel Performance Events And Counters(有子项),不清楚,不选。

[*]Enable VM event counters for /proc/vmstat,允许在/proc/vmstat中包含虚拟内存事件记数器。

[*]Enable SLUB debugging support,支持SLUB内存分配管理器调试,

[ ]Disable heap randomization,禁用随即head,选不选均可。

Choose SLAB allocator (SLUB (Unqueued Allocator))  --->, 选择内存分配管理器,强烈推荐使用SLUB

[ ]Profiling support,剖面支持,用一个工具来扫描和计算计算机的剖面图,支持系统测评,一般开发人员使用,不选。

[ ]Kprobes,调试人员使用,不选。

GCOV-based kernel profiling  --->(有子项),默认即可。

2. Enable loadable module support(可加载模块)

[ ]Forced module loading, 强行加载模块,不建议选。

[*]Module unloading,支持模块卸载,必须选上。

[ ]Forced module unloading,强行卸载模块,即使内核认为这样并不安全,也就是说你可以把正在使用中的模快卸载掉。如果你不是内核开发人员或者骨灰级的玩家,不建议选。

[ ]Module versioning suppor,这个功能可以让你使用其它版本的内核模块,除非特殊需要,一般不选。

[ ]Source checksum for all modules,这个功能是为了防止更改了内核模块的代码但忘记更改版本号而造成版本冲突,现在很少使用,不选。

3. Enable the block layer(块设备层)

[*]Support for large (2TB+) block devices and files,仅在使用大于2TB的块设备时需要

[*]Block layer SG support v4,通用SCSI设备第四版支持。

[*]Block layer data integrity support,块设备数据完整性支持。

[*]IO Schedulers  --->(有子项),IO调度器

[ ]Anticipatory I/O scheduler,抢先式I/O调度器,大多数块设备只有一个物理查找磁头(例如一个单独的SATA硬盘),将多个随机的小写入流合并成一个大写入流,用写入延时换取最大的写入吞吐量.适用于大多数环境,特别是写入较多的环境(比如文件服务器)

[ ]Deadline I/O scheduler,期限式I/O调度器,轮询的调度器,简洁小巧,提供了最小的读取延迟和尚佳的吞吐量,特别适合于读取较多的环境(比如数据库)

[ ]CFQ I/O scheduler,使用QoS策略为所有任务分配等量的带宽,避免进程被饿死并实现了较低的延迟,可以认为是上述两种调度器的折中.适用于有大量进程的多用户系统CFQ调度器尝试为所有进程提供相同的带宽。它将提供平等的工作环境,对于桌面系统很合适。

Default I/O scheduler (CFQ)  --->默认IO调度器有上面三个IO调度器:抢先式是传统的,它的原理是一有响应,就优先考虑调度。如果你的硬盘此时在运行一项工作,它也会暂停下来先响应用户。期限式则是:所有的工作都有最终期限,在这之前必须完成。当用户有响应时,它会根据自己的工作能否完成,来决定是否响应用户。CFQ则是平均分配资源,不管你的响应多急,也不管它的工作量是多少,它都是平均分配,一视同仁的。

4. System Type(arm 占用配置,一般是厂家提供,与第7项代替了原有的Processor type and features)

5. [ ]FIQ Mode Serial Debugger,一般不选。

6. Bus support(总线支持)

PCI support,PCI总线支持,主板上最长用的插槽,最好选上,arm linux可以不选,arm一般没有PCI总线。

PCCard (PCMCIA/CardBus) support,一般笔记本有这种插槽,笔记本选上,arm linux 不选。

7. Kernel Features(内核特征)

[ ] Tickless System (Dynamic Ticks),非固定平率系统,能让内核运行的更有效率,并且省电,pc下可选,特别是笔记本,arm linux一般不用选。

[ ] High Resolution Timer Support,支持高频率时间发生器,需要硬件兼容,但大多数PCARM都不支持,不选

Memory split (2G/2G user/kernel split)  --->,内核与用户空间各占2G,内核空间0-0x7FFFFFFF,用户空间80000000-FFFFFFFF

Preemption Model (No Forced Preemption (Server))  --->,内核抢占模式。普通PC用户一般选2arm linux 1就可以。

No Forced Preemption (Server),禁止内核抢占,适合服务器环境。针对于高吞吐量的设计,但有可能延时较长,适用于服务器或科学运算,或向要最大的运算能力,而不理会调度上的延时

Voluntary Kernel Preemption (Desktop),自愿内核抢占,适合普通的桌面环境。已降低吞吐量为代价,降低内核调度的最大延时,提供更快的应用程序响应,即使系统已经高负荷运转,应用程序仍然能运行的很“流畅”,适合用户桌面环境

Preemptible Kernel (Low-Latency Desktop),主动内核抢占,适合运行实时程序的环境。更低的吞吐量,进一步降低内核的调度延时,使应用程序更加流畅。

[ ]Compile the kernel in Thumb-2 mode,编译Thumb-2 mode内核,一般不选

[*] Use the ARM EABI to compile the kernel,与下面绑定配置。

[*] Allow old ABI binaries to run with this kernel (EXPERIMENTAL),对于嵌入式系统(jffs2 yaffs2),这两个要选上,否则很可能启动的时候报错(kernel panic- not syncing: Attempted to kill init!

[ ] High Memory Support (EXPERIMENTAL)(有子项), 1G物理内存以下不选,超过1G才选。(配置略有变化,以前的选项是OFF<1G,4G(>1G && <4G),64G(>4G))。

Allocate 2nd-level pagetables from highmem,1G物理内存以下不选,超过1G(小于4G)才选

Allocate 3nd-level pagetables from highmem,大于4G,选择此项目。

Memory model (Flat Memory)  --->,一般选"Flat Memory",其他选项涉及内存热插拔。

[ ] Enable KSM for page merging,允许linux内核识别出包含相同内容的内存页,然后合并这些内存页,将数据整合在一个位置可以多次引用,特殊功能,不用选。

(4096) Low address space to protect from user allocation,默认4096即可

[ ] Use kernel mem{cpy,set}() for {copy_to,clear}_user() (EXPERIMENTAL),不清楚可以不选。

----------------- ----------------- ----------------- -----------------

附:yaffs2 文件系统:Kernel panic - not syncing: Attempted to kill init!  

在内核挂载根文件系统时,提示Kernel panic - not syncing: Attempted to kill init!的解决方法

方法1

Kernel Features  --->

[*] Use the ARM EABI to compile the kernel                 

[*]   Allow old ABI binaries to run with this kernel (EXPERIMENTA)

方法2

修改busyboxMakefile

修改

CC=$(CROSS_COPILE)gcc

CC=$(CROSS_COPILE)gcc -march=armv4t

一般海思编译器选择此选项,linux-gcc-3.4.5 以下的编译器,不用选,如果用4.3.3(支持EABI的编译器)以上的最好选上。

 

8. Boot options

一般不需要配置,u-boot会把启动参数传递给内核。如果bootloader没有传参数,可以配置启动参数,类似下面这样:

(0x0) Compressed ROM boot loader base address

(0x0) Compressed ROM boot loader BSS address

(mem=32M console=ttySAC0 root=/dev/ram initrd=0x30800000,4M ramdisk_size=4096 rw) Default kernel command string

 

9. CPU Power Management

[ ] CPU idle PM support,允许软件控制的空闲进程电源管理,arm linux一般不用选。

10. Floating point emulation(浮点运算,(arm专用)arm是否支持硬浮点协处理器,支持的话选择VFP,不支持选择NWFPE)

[ ] NWFPE math emulation

[ ] FastFPE math emulation (EXPERIMENTAL)

[*] VFP-format floating point maths

[ ] Advanced SIMD (NEON) Extension support

10. Userspace binary formats(二进制支持)

[*] Kernel support for ELF binaries,必须选,否则内核可能不能启动,其他可以全部不选,

[ ] Write ELF core dumps with partial segments

< > Kernel support for a.out and ECOFF binaries

< > Kernel support for MISC binaries

11. Power management options(电源管理)

一般用于笔记本,PCarm可以不选。

[*] Power Management support,选择此项,下面的项才能可见

[ ] Power Management Debug Support,调试用,不用选

[*] Suspend to RAM and standby,待机到内存,即内存供电而暂时关闭硬盘等外设。

< > Advanced Power Management Emulation,高级电源管理,

[ ] Run-time PM core functionality,允许对运行中接入的I/O设备进行电源管理。

12. Networking support,(协议层的网络支持,socket等,硬件层的支持在Device Drivers中配置)

Networking options  --->,网络选项

<*> Packet socket,这种socket能够让应用程序(tcpdumpiptables)直接与网络设备通讯,而不通过内核中的其他中介协议,最好选上。

<*> Unix domain sockets,一种仅运行于本机上的效率高于TCP/IP socket,简称Unix socket.许多程序都使用它在操作系统内部进行进程间通信(IPC),比如X Window syslog,最好选上。

< > Transformation user configuration interface,为IPsec(可在ip层加密)之类的工具提供XFRM 用户配置接口支持,不清楚可以不选。

[ ] Transformation sub policy support (EXPERIMENTAL),XFRM子策略支持,仅供开发者使用,不清楚不要选。

[ ] Transformation migrate database (EXPERIMENTAL),

[ ] Transformation statistics (EXPERIMENTAL),

< > PF_KEY sockets,用于可信任的密钥管理程序和操作系统内核内部的密钥管理进行通信,IPsec也依赖于它,可以不选。

[ ]   PF_KEY MIGRATE (EXPERIMENTAL),子项,不用选。

[*] TCP/IP networking,TCP/IP协议,必须要选

[*]   IP: multicasting,群组广播,选上

[]   IP: advanced router,高级路由功能,做路由器的话选上,可以不选。

Choose IP: FIB lookup algorithm (choose FIB_HASH if unsure) (FIB_HASH),子项,不懂的话就选FIB_HASH吧

[ ]   IP: policy routing,策略路由,不清楚可以不选。

[ ]   IP: equal cost multipath,用于路由的基于目的地址的均衡。不清楚可以不选。

[ ]   IP: verbose route monitoring,显示冗余的路由监控信息,可以不选

[ ]   IP: kernel level autoconfiguration,内核启动时自动配置IP地址、路由表等,需要从网络启动的无盘工作站需要这个,普通用户不需要。

< >  IP: tunneling,IP隧道,将一个IP报文装在另一个IP报文的技术。不清楚不用选。

< >  IP: GRE tunnels over IP,基于IPGRE(通用路由封装)隧道,不清楚可以不选。

[]   IP: multicast routing,多重传播路由,没有特殊需求可以不选。

[ ]     IP: multicast policy routing,子项,不清楚可以不选

[ ]     IP: PIM-SM version 1 support,子项,不清楚可以不选

[ ]     IP: PIM-SM version 2 support,子项,不清楚可以不选

[ ]   IP: ARP daemon support,废弃功能,不选。

[ ]   IP: TCP syncookie support,抵抗SYN flood攻击的好东西,要启用它必须同时启用/proc文件系统和"Sysctlsupport", 然后在系统启动并挂载了/proc 之后执行"echo 1>/proc/sys/net/ipv4/tcp_syncookies"命令,不清楚可以不选。

< >  IP: AH transformation,IPsec验证头(AH),实现了数据发送方的验证处理,可确保数据既对于未经验证的站点不可用也不能在路由过程中更改,不清楚可以不选。

< >  IP: ESP transformation,IPsec封闭安全负载(ESP),实现了发送方的验证处理和数据加密处理,用以确保数据不会被拦截/查看或复制。不清楚可以不选。

< >  IP: IPComp transformation,IPComp(IP静荷载压缩协议),用于支持IPsec,不清楚可以不选。

< >  IP: IPsec transport mode,IPsec传输模式,常用于对等通信,用以提供内网安全.数据包经过了加密但IP头没有加密,因此任何标准设备或软件都可查看和使用IP头,不清楚可以不选。

< >  IP: IPsec tunnel mode,IPsec隧道模式,用于提供外网安全(包括虚拟专用网络).整个数据包(数据头和负载)都已经过加密处理且分配有新的ESP /IP 头和验证尾,从而能够隐藏受保护站点的拓扑结构,不清楚可以不选。

< >  IP: IPsec BEET mode,IPsec BEET模式,不清楚可以不选。

[*]   Large Receive Offload (ipv4/tcp),针对 TCP 流量的 LRO (Large Receive Offload) 支持,选上。

<*>  INET: socket monitoring interface,socket监视接口,一些Linux 本地工具(:包含ssiproute2)需要使用它,选上

[]   TCP: advanced congestion control  --->,高级拥塞控制,如果没有特殊需求(比如无线网络)就别选了,内核会自动将默认的拥塞控制设为"Cubic"并将"Reno"作为候补,可以不选。如果网络用处较多,还是选上为好(如网络视频服务器)。 关于拥塞控制,见tcp拥塞控制.doc文档。

[ ]   TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL),不清楚可以不选。

<*>   The IPv6 protocol  --->,IPV6支持的话,就选上,

[*] Only allow certain groups to create sockets,只允许特定的群体创建socket,选上,没什么坏处。

[*] Network activity statistics tracking,最好选上。

…….网络选项中,后面的不清楚的话 可以不选,选上基本几项,网络就可以工作了,有时间进一步深入研究。

 

-*-   Wireless  --->(无线,没有无线网卡的话可以不选)

<*>   cfg80211 - wireless configuration API,暂时未会,使用默认配置

13. Device Drivers(设备驱动)

Generic Driver Options  --->,通用选项

(/sbin/mdev) path to uevent helper,不理解,用的默认值

[ ] Maintain a devtmpfs filesystem to mount at /dev,让devtmpfs文件系统安装在/dev,不清楚可以不选。

[*] Select only drivers that don't need compile-time external firmware,只显示那些不需要内核对外部设备的固件作map支持的驱动程序,除非你有某些怪异硬件,否则请选上。

[ ] Prevent firmware from being built,不编译固件(固化的软件,如bios.固件一般是随硬件的驱动程序提供的,仅在更新固件的时候才需要重新编译。可以不选,但想要更新固件的话就要重新编译内核了。

{*} Userspace firmware loading support,提供某些内核之外的模块需要的用户空间固件加载支持,在内核树之外编译的模块可能需要它,选上。

[*]  Include in-kernel firmware blobs in kernel binary 

()   External firmware blobs to build into the kernel binary

< > Connector - unified userspace <-> kernelspace linker  --->,用户空间和内核空间连接器,工作在netlink socket协议的顶层,不清楚可以不选。

<*> Memory Technology Device (MTD) support  --->,特殊的存储技术,如常用语数码相机或嵌入式系统的闪存卡,一般是NOR flashNand的支持,arm linux必选,PC不用选。

[ ]   Debugging,调试模式,不选。

< >  MTD tests support,MTD测试支持,不清楚可以不选。

< >  MTD concatenating support,连接多个MTD设备,例如使用JFFS2文件系统管理多片Flash的情形。只有一片Flash时不选。

[*]  MTD partitioning support,分区支持,选上。

< >     RedBoot partition table parsing,使用RedBoot解析Flash分区表,如果需要读取这个分区表的信息选择此项

[*]     Command line partition table parsing,允许通过内核命令行传递MTD分区表信息,

< >     ARM Firmware Suite partition parsing,使用AFS分区信息

< >     TI AR7 partitioning support,AR7分区支持

<*>  Direct char device access to MTD devices,将系统中的MTD设备看做字符设备进行读写,需要与驱动同步的。

-*-  Common interface to block layer for MTD 'translation layers'

<*>  Caching block device access to MTD devices,文件系统挂载后,模拟块设备进行访问。常用于只读文件系统。如果是DiskOnChip使用NFTL方式。

< >  FTL (Flash Translation Layer) support,提供对Flash翻译层支持,可以不选

< >  NFTL (NAND Flash Translation Layer) support,NAND Flash翻译层支持,可以不选

< >  INFTL (Inverse NAND Flash Translation Layer) support,提供INFTL支持,DiskOnChip使用

< >  Resident Flash Disk (Flash Translation Layer) support,提供RFD支持,为嵌入式系统提供类似BIOS功能,不清楚可以不选,使用Uboot驱动的话也不用选。

< >  NAND SSFDC (SmartMedia) read only translation layer,NAND SSFDC只读翻译层,不清楚可以不选。

< >  SmartMedia/xD new translation layer,不清楚可以不选。

< >  Log panic/oops to an MTD buffer,MTD缓冲日志,不清楚可以不选。

RAM/ROM/Flash chip drivers  --->,RAM/ROM/Flash芯片驱动,不清楚可以不选。

Mapping drivers for chip access  --->,为芯片的访问方式选择Mapping驱动,不清楚可以不选。

Self-contained MTD device drivers  --->,自身包含MTD设备驱动,一般不选。

< >  Include chip ids for known NAND devices.,NAND flash信息,不用选。

< >  NAND Device Support  --->,Nand设备支持,有nand的话选上,子项默认配置即可,如果支持Nand,加选这一项就够了。

< >  OneNAND Device Support  --->,One nand支持,不清楚可以不选。

LPDDR flash memory drivers  --->,LPDDR Flash内存驱动,未用,不用选。

UBI - Unsorted block images  --->未分类block影响,不清楚不选。

附:配置支持jffs2两步

1) 在“memory technology devices(mtd)”选项中选择:

<*>memory technology device(mtd)support

<*>mtd partitioning support

<*>cashing block device access to mtd devices

ram/rom/flash chip drivers--->

<*> detect flash chips by common flash interface(cfi) probe

<*> support for intel/sharp flash chips

mapping drivers for chip access--->

<*> cfi flash device in physical memory map

(0)   physical start address of flash mapping

(1000000)physical length of flash mapping

(2)buswidthin octets

<*> intel strataflash device mapped on at91rm9200

这里设置了flash芯片的起始地址、大小以及宽度,比如:起始地址为“0”,大小为“1000000”,即16mb,宽度为“2”,即16字节。然后选中自己加入的“intel strataflash device mapped on at91rm9200”这一项

2) 在“file systems”选项中选择:

<*>joumalling flash file system v2(jffs2)support

对于其他功能,可根据自己的实际情况,进行裁减,然后保存退出,接下来编译出操作系统内核映像。(详细见 linux支持nor flash.txt 文档)

 

< > Parallel port support  --->,配置并口,如打印机,arm linux可以不用配置

< >   PC-style hardware (NEW),

< >   AX88796 Parallel Port (NEW),

[ ]    IEEE 1284 transfer modes (NEW),

[*] Block devices  --->,块设备,一般都不用选,除非有特殊需要

< >   Loopback device support,拿文件来模拟块设备,想要mount iOS文件的话必须选上,一般不选。

< >   Network block device support,网络块设备支持,让PC成为网络块设备的客户端。一般不选

< >   Low Performance USB Block driver,低性能USB块设备驱动程序,一般不选。

<*>   RAM block device support,RAM块设备支持,子选项保持默认就好了。

< >   Packet writing on CD/DVD media,不清楚可以不选。

< >   ATA over Ethernet support,不清楚可以不选。

[*] Misc devices  --->,混杂设备驱动,一般不选。

< > ATA/ATAPI/MFM/RLL support (DEPRECATED)  --->,不清楚可以不选。

SCSI device support  --->,支持u盘的话,需要选上。

< > RAID Transport Class,不清楚可以不选。

<*> SCSI device support,支持u盘选上,子选项默认配置即可。

< > Serial ATA and Parallel ATA drivers  --->,SATAPATA支持,没有硬盘的话可以不选。

[ ] Multiple devices driver support (RAID and LVM)  --->,特殊服务器管理用到,如LVM,一般用户不会用到,不用选,

[*] Network device support  --->,网络设备支持,必选。包括前兆网卡,PPPOE等的支持。

[*] HID Devices  --->,HID支持,选上

[*] USB support  --->,USB支持,选上

<*> MMC/SD/SDIO card support  --->,SD卡支持,选上。

……

其他选项根据需求来。在嵌入式linux中一般IIC SPIdevice都自己写驱动,不用选。

14. File systems(文件系统)

<*> Second extended fs support,EXT2文件系统支持。

[*]   Ext2 extended attribute,EXT2文件系统支持。

<*> Ext3 journalling file system support,EXT3文件系统支持,子项默认就行。

<*> The Extended 4 (ext4) filesystem ,EXT4文件系统支持,子项默认就行。

……

JFSIBM所用)文件系统等,省略,用的不多。

……

[*] Enable POSIX file locking API,使能POSIX文件锁的API,最好选上。

[*] Dnotify support,基于目录的文件变化的通知机制,不选nfsd起不来,比选的。

[ ] Inotify file change notification support,新式的文件体统的变化通知机制,用以替代老旧的Dnotify,选了Dnotify就不要选它了。

[*] Inotify support for userspace,用户空间的Inotify支持,最好选上。(notify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建)。

<*> FUSE (Filesystem in Userspace) support,允许在用户空间实现一个文件系统,如果打算开发一个自己的文件系统或使用一个机遇FUSE的文件系统,最好打开。

<*>   Character device in Userpace support,允许在用户空间实现一个字符设备,

-*- Miscellaneous filesystems  --->,杂项文件系统,子项很复杂,主要配置jffs2 和 yaffs2文件系统,一般用于嵌入式设备。

[*] Network File Systems  --->,网络文件系统,NFS等。

……

其他没有特殊需求可以不选。

15. Kernel hacking(内核hack选项,基本上选Enable __must_check logic和Stacktrace就可以了,有需要再深入研究)

[ ] Show timing information on printks,在printk的输出中包含时间信息,可以用来分析内核启动过程各步骤所用时间,需要时选上。

[ ] Enable __deprecated logic,不清楚不要选。

[*] Enable __must_check logic,在编译内核的过程中使用"必须检查"的逻辑,禁用它将不会显示某些警告信息,选上。

[ ] Magic SysRq key,不懂,千万别选。

[ ] Strip assembler-generated symbols during link,,不清楚不要选。

[ ] Enable unused/obsolete exported symbols,没用的信息符号,会使内核增大,不选.

[ ] Debug Filesystem,不是内核开发者的别选。

[ ]Run 'make headers_check' when building vmlinux,在编译内核时运行'make headers_check'命令检查内核头文件,当你修改了与用户空间相关的内核头文件后建议启用该选项。

[ ] Kernel debugging,不是内核开发者的别选。

[ ] SLUB debugging on by default,不清楚不要选。

[ ] Enable SLUB performance statistics,不清楚不要选。

[*] Stacktrace,支持调用栈,用于出错排查问题。

[ ] Debug memory initialization,调试内存初始化,不选,

[ ] Check for stalled CPUs delaying RCU grace periods ,检查停止CPU延缓RCU的宽限期,

[ ] Latency measuring infrastructure,不清楚不要选。

[ ] Sysctl checks,不清楚不要选。

[ ] Tracers  --->,不清楚不要选。

[ ] Perform an atomic64_t self-test at boot,不清楚不要选。

[ ] Sample kernel code  --->  ,不清楚不要选。

[*] Enable stack unwinding support,可以不选(31没选)。

[*] Verbose user fault messages,可以不选(31没选)。

[ ] On-chip ETM and ETB,片上ETMETB,不清楚可以不选。

16. Security options(安全选项,一般不需要配置,)

[ ]  Enable the /proc/keys file by which keys may be viewed,允许有权限的进程通过/proc/keys读取所有的key,最好不要选。

[ ]  Restrict unprivileged access to the kernel syslog,限制未经授权访问内核日志。

[ ]  Enable different security models,允许内核选择不同的安全模式,如果未选择按默认处理。

[*] Enable the securityfs filesystem,不清楚可以不选(16没选)。

Default security module (Unix Discretionary Access Controls)  --->,默认安全模式。

17. Cryptographic API(支持的加密算法) 

18. Library routines(库子程序)


转自: http://wenku.baidu.com/link?url=scHbokjqF7nK8kca00Pxrm8uaUmm7HNkgXLGaq0tNU-9T2zOrc08oZ7YJkXagD-QiGoyezaL-NNusTbqFofv9VQia3H2ZKLmVU5XX1xs6ju

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dzw19911024/article/details/52754235

智能推荐

Android 8.0以上获取设备序列号解决方案_access denied finding property "ro.serialno-程序员宅基地

文章浏览阅读2.5w次,点赞16次,收藏26次。Android8.0以下通常使用反射的方式读取SN号码Class<?> c = Class.forName("android.os.SystemProperties");Method get = c.getMethod("get", String.class);String serial = (String) get.invoke(c, "ro.serialno");An..._access denied finding property "ro.serialno

如何从零绘制k线图 — 原生js canvas图表绘制-程序员宅基地

文章浏览阅读322次。下载资源:www.yinxiangit.com源码地址:https://github.com/sutianbinde/charts演示地址:kchart.html具体步骤创建html文件,然后我们在页面中写一个用于放图表的 div然后在js中写入数据,和 绘制图表的方法 (数据是一个三维数组,每一个k点值中包含了日期 还包含了..._js k线图

微前端框架 qiankun 项目实战(一)--本地开发篇-程序员宅基地

文章浏览阅读324次。作者:黑化程序员https://juejin.cn/post/6970310177517993998❞大家好,我是小黑。公司使用技术栈是vue,最近遇到了一个需求,要把原有后台管理系统的功..._qiankun子项目是本地目录

Android预置可卸载app,恢复出厂不能恢复_预置可卸载apk,恢复出厂设置以后不可以恢复-程序员宅基地

文章浏览阅读1.7k次。问题背景在某些时候我们希望对于预置的app可卸载,但是恢复出厂不能恢复。比如设备上的一些生产工具之类的软件,生产验证结束之后人工卸载,而在用户手里不能恢复出来。预置能够减少生产流程中的安装环节。实现方法原生实现有一种原生的实现方式是将app打到data分区,这样相当于在编译的时候就把app装上,最终打入的img在userdata.img里。下面是Android.mk的写法:LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)但是有些工程组织是默认不打use_预置可卸载apk,恢复出厂设置以后不可以恢复

matlab与科学计算-程序员宅基地

文章浏览阅读929次,点赞22次,收藏11次。本系列文章为作者的学习笔记,配套课程位中国大学慕课网站上的《科学计算》(中南大学)课程。目前更新的内容主要包含matlab的基础类容,需要学习matlab的同学可以看一看

leetcode题:224. 基本计算器(困难)-程序员宅基地

文章浏览阅读254次。一、题目描述:224. 基本计算器(困难)实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式可以包含左括号(,右括号),加号+,减号-,非负整数和空格。示例 1:输入: "1 + 1"输出: 2示例 2:输入: " 2-1 + 2 "输出: 3示例 3:输入: "(1+(4+5+2)-3)+(6+8)"输出: 23说明:你可...

随便推点

【MAC】Homebrew的安装和使用_"file \"/opt/homebrew/opt/[email protected]/libexec/bin/p-程序员宅基地

文章浏览阅读220次。Homebrew国内安装使用Homebrew安装脚本检查安装卸载脚本彻底删除致谢大佬使用HomebrewHomebrew is the easiest and most flexible way to install the UNIX tools Apple didn’t include with OS X。网址:https://brew.sh/index_zh-cn.html安装脚本/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/Home_"file \"/opt/homebrew/opt/[email protected]/libexec/bin/pip\", line 33, in sy"

数据结构 3-栈队-程序员宅基地

文章浏览阅读51次。将line中的字符依次入栈,然后输出栈中元素个数与栈顶元素。然后将栈中元素依次出栈并输出,出栈时将不等于x的字符依次入队列。建立一个队列, 入队10个任意数, 连续出队5个元素并依次输出 输出队头元素、输出队尾元素、队列中元素个数 当队列不为空时,将队列中所有元素输出 输出队列中元素个数。PTA:符号配对(考核)、表达式转换(中缀转后缀,考核) PTA(实验任务书):字符串是否对称(回文)对数字x,将数字最低四位入栈,并且x右移四位。对数字x,将最低位入栈,并且将x除以2。

css编写_编写干净CSS的黄金准则-程序员宅基地

文章浏览阅读247次。css编写The following is an extract from our book, CSS Master, written by Tiffany Brown. Copies are sold in stores worldwide, or you can buy it in ebook form here. 以下是蒂芙尼·布朗(Tiffany Brown)所著《 CSS Master..._黄金css是什么意思

《论文写作》课程报告-程序员宅基地

文章浏览阅读146次。从中文的角度, "摘要"就是把论文重要的内容摘录出来;从英文的角度, Abstract 就是把重要的内容抽取出来. 它通常包括三个部分: 已有工作的评述, 本文工作的描述, 实验结果. 有些期刊明确要求按照 Background, contribution, experiments 三个方面描述。第一句:说明问题所属的领域, 解释最重要的概念, 或者强调问题的重要性。第二句:本句可以描述该问题的流行解决方案. 如果说我们做研究是 “站在巨人的肩膀上”, 本句就描述巨人长什么样子。

什么是POC?-程序员宅基地

文章浏览阅读1.1w次,点赞4次,收藏19次。什么是POC?_poc

网站论坛同步用户,整合api,实现…_两个网站数据库用户名互通api代码-程序员宅基地

文章浏览阅读1.2k次。在网上参考了很多资料后,终于完美实现了网站和discuz!nt论坛的双向整合,整合后网站和论坛之间可以同步注册、登录、退出和修改登录密码操作。 本系统的实现形式是新云CMS网站(ASP)和Discuz!NT3.1论坛(ASP.NET)的同步,使用的API(应用程序编程接口)是新云CMS提供的api(做较大修改)和Discuz!NT提供的API(不做修改)。API使用REST形式的接口,这就意_两个网站数据库用户名互通api代码

推荐文章

热门文章

相关标签