kernel .config优化

  • 一、概述
  • 二、明确具体CONFIG作用
  • 三、总结

一、概述

在嵌入式开发中,使用linux kernel不可避免,kernel支持的驱动非常庞大,删除不需要的驱动也是势在必行。那么那么多的配置,都有什么作用?该删除哪些呢?下面介绍一种快速明白相应配置的功能。

二、明确具体CONFIG作用

以USB模块为例
在kernel编译时使用的.config部分内容如下:

#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_RTL8152 is not set
CONFIG_USB_USBNET=y
# CONFIG_USB_NET_AX8817X is not set
# CONFIG_USB_NET_AX88179_178A is not set
CONFIG_USB_NET_CDCETHER=y
# CONFIG_USB_NET_CDC_EEM is not set
# CONFIG_USB_NET_CDC_NCM is not set
# CONFIG_USB_NET_CDC_MBIM is not set
# CONFIG_USB_NET_DM9601 is not set
# CONFIG_USB_NET_SMSC75XX is not set
# CONFIG_USB_NET_SMSC95XX is not set
# CONFIG_USB_NET_GL620A is not set
# CONFIG_USB_NET_NET1080 is not set
# CONFIG_USB_NET_PLUSB is not set

很明显有很多驱动都用不上,要确定具体一个CONFIG的作用,在kernel根目录执行(以CONFIG_USB_CATC为例)

linux-3.10$ grep -nr "USB_CATC" --include=Kconfig
drivers/net/usb/Kconfig:10:config USB_CATC

注意: 搜索时把前面的CONFIG_去掉,搜索出的结果是config USB_CATC形式的。有时会搜索出很多,因此需要这个规则。
查看Kconfig内容,部分内容如下:

#
# USB Network devices configuration
#
comment "Networking support is needed for USB Network Adapter support"depends on USB && !NETmenu "USB Network Adapters"depends on USB && NETconfig USB_CATCtristate "USB CATC NetMate-based Ethernet device support"select CRC32---help---Say Y if you want to use one of the following 10Mbps USB Ethernetdevice based on the EL1210A chip. Supported devices are:Belkin F5U011Belkin F5U111CATC NetMateCATC NetMate IIsmartBridges smartNICThis driver makes the adapter appear as a normal Ethernet interface,typically on eth0, if it is the only ethernet device, or perhaps oneth1, if you have a PCI or ISA ethernet card installed.To compile this driver as a module, choose M here: themodule will be called catc.

看到这里已经很明白了吧。该段中不仅描述的驱动的作用,还描述了驱动的依赖。

三、总结

一般修改kernel配置,使用make menuconfig,但是使用该命令需要配一些编译环境。自己搭建的编译环境自己做主,折腾下无所谓,当使用公司服务器编译时,不同版本kernel需要的环境不同,配置环境还需要申请,流程相当麻烦。

实际上,kernel编译最总使用的是.config文件,make menuconfig修改的也是.config文件,当.config文件不存在时,会拷贝一个默认配置文件为.config,因此我们修改默认配置文件,删除.config文件,也可以正常编译kernel且使修改生效;如果不想修改默认配置文件,按照以上描述的方法,修改.config文件也可以。

kernel .config优化相关推荐

  1. How to get ‘kernel config‘ when CONFIG_IKCONFIG is not set ? (Method)

    本文用于提取Android内核配置文件,在 CONFIG_IKCONFG is not set 的情况下. 受Github的一个代码库的启发android 提取内核指南,现在应该是提取出了kernel ...

  2. Linux系统高并发kernel参数优化

    众所周知在默认参数情况下Linux对高并发支持并不好,主要受限于单进程最大打开文件数限制.内核TCP参数方面和IO事件分配机制等.下面就从几方面来调整使Linux系统能够支持高并发环境. iptabl ...

  3. kernel启动优化

     由于老衲最近在做车载linux kernel优化,特别是对启动时间的优化,从一开始的漫无目的,到现在的算是了解的过程,下了很大功夫. 特别是优化到最后2s以内,每10ms的优化太让人吐血了.杂话 ...

  4. kernel config

    前言之前言:谁是这篇文章的读者? 不习惯读英文资料的非LINUX高手 声卡不响光驱不转连不上网等等,只要有问题就行 开发嵌入式操作系统 现在流行的ODL(only disk linux)中做内核部分, ...

  5. chromeos kernel config 如何修改

    Chrome OS使用的内核是Linux内核,可以通过以下步骤修改Chrome OS内核的配置: 打开Chromebook终端:在Chromebook上打开Chrome浏览器,按下Ctrl + Alt ...

  6. 查看Ubuntu操作系统的kernel config文件方法

    ubuntu16@ubuntu16-virtual-machine:~$ ls /boot/config-`uname -r` /boot/config-4.15.0-117-generic ubun ...

  7. 全志 Linux 系统启动优化 启动优化速度方式 优化启动流程 优化uboot 优化kernel等

    文章目录 1 概述 2 启动速度优化简介 2.1 启动流程 2.2 测量方法 2.2.1 printk time 2.2.2 initcall_debug 2.2.3 bootgraph. 2.2.4 ...

  8. Android 开机优化

    原址 问题描述 开机时间相对参考机过慢,大约慢15s左右.Android 系统7.0. 问题分析 开机问题涉及的层次较多,大致有bootloader–>kernel–>Zygote–> ...

  9. Android 系统性能优化

    一.Pinner service 配置优化 修改  /frameworks/base/core/res/res/values/config.xml  添加如下代码: <resources xml ...

最新文章

  1. svn 提交到远程仓库_Linux学习16gitlab新建项目提交代码
  2. 一个高性能RPC框架原理剖析
  3. 十三种基于直方图的图像全局二值化算法原理、实现、代码及效果。
  4. hdu 3790(最短路)
  5. Hive分区和桶的概念
  6. linux笔记8.0
  7. MySql锁机制:共享锁、排它锁;行锁、表锁、页锁;
  8. Excel技能——批量生成excel的工作表名称目录链接
  9. XS9950是单路AHDRX芯片,国产单通道模拟复合视频解码芯片方案,硬件替代TP9950。
  10. Sublime Text自定制代码片段之 快速生成html结构
  11. 图形学基础|景深效果(Depth of Field/DOF)
  12. Caterpillar CAT SIS卡特彼勒最新零件目录系统+维修信息
  13. informix常用时间运算和操作方法
  14. VUE2中provide 和 inject用法,以及怎么做响应式数据?
  15. 为什么图片反复压缩后会普遍会变绿而不是其他颜色?
  16. form表单的action属性设置相对路径
  17. OpenCV3入门(五)图像的阈值
  18. DVWA--XSS(Reflected)(全难度)
  19. 高瓴张磊《价值》读书笔记,超全思维导图(附pdf下载)
  20. java中判断对象中某个属性是否为空

热门文章

  1. 矿大学会计还是计算机,中国矿业大学会计专业就业怎样?
  2. BI大数据的星形模型和雪花模型
  3. STM32使用stm32cubemx LL库系列教程
  4. 云上省钱新玩法 教你如何优惠与灵活兼得
  5. c语言中变量后面加上f,C语言的数据类型
  6. DES密码算法实现(C语言)
  7. ES 问题 : too_many_clauses maxClauseCount is set to 1024
  8. sed在某一行行首添加字符_sed在行首或者行尾添加内容
  9. matlab自带的神经网络例子,MATLAB-network m
  10. hive连接报错:Unauthorized connection for super-user: root from IP 192.168.216.128:14:13