1.前言

编译linux内核失败的原因很多时候就是驱动选错,适合自己本机的驱动没编译进去。面对特殊平台(或者有些洁癖者,我就是^_^),要编译精简内核,只要本机驱动,其他都不需要。面对内核里面这么多驱动,不懂硬件的我们,看到都头大。本人第一次安装gentoo的时候,内核编译了5次,前4次主要失败原因是以太网卡驱动、无线网卡驱动、显卡驱动、声卡驱动都没一次性配置正确。虽然gentoo提供了genkernel命令,可以自动帮你编译内核,但还是想自己手工尝试下。

2.获取本机驱动信息

既然跟内核挂钩,我们获取本机内核驱动信息最直接的办法就是使用lspci命令,这个命令可以输出本机驱动信息,配合-k选项可以看到此驱动在内核的位子。

一般编译内核的场景:更新旧内核,安装定制版linux发行版(gentoo,arch等),嵌入式平台,其他特殊平台等等...

大部分场景在下都可以使用lspci命令,安装gentoo的livecd版都提供了该工具,如果其他系统没有就安装该工具

debian系列安装

1 $:sudo apt-get install pciutils

或者源码编译安装,下载地址https://www.kernel.org/pub/software/utils/pciutils/

然后我们获取本机环境现存的驱动信息,下面是我的机器上面的信息:

1 $:lspci -k2 00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)3 Subsystem: Lenovo Device 21e24 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)5 Kernel driver inuse: pcieport6 00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)7 Subsystem: Lenovo Device 21e38 Kernel driver inuse: i9159 00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)10 Subsystem: Lenovo Device 21e211 Kernel driver inuse: mei_me12 00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)13 Subsystem: Lenovo Device 21e214 Kernel driver in use: ehci-pci15 00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)16 Subsystem: Lenovo Device 21e217 Kernel driver inuse: snd_hda_intel18 00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1(rev b4)19 Kernel driver inuse: pcieport20 00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2(rev b4)21 Kernel driver inuse: pcieport22 00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3(rev b4)23 Kernel driver inuse: pcieport24 00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4(rev b4)25 Kernel driver inuse: pcieport26 00:1c.7 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 8(rev b4)27 Kernel driver inuse: pcieport28 00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)29 Subsystem: Lenovo Device 21e230 Kernel driver in use: ehci-pci31 00:1f.0 ISA bridge: Intel Corporation HM65 Express Chipset Family LPC Controller (rev 04)32 Subsystem: Lenovo Device 21e233 Kernel driver inuse: lpc_ich34 00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04)35 Subsystem: Lenovo Device 21e236 Kernel driver inuse: ahci37 00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 04)38 Subsystem: Lenovo Device 21e239 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Seymour [Radeon HD 6400M/7400M Series] (rev ff)40 Kernel driver inuse: radeon41 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)42 Subsystem: Lenovo Device 21e243 Kernel driver inuse: r816944 04:00.0 System peripheral: Ricoh Co Ltd PCIe SDXC/MMC Host Controller (rev 07)45 Subsystem: Lenovo Device 21e246 Kernel driver in use: sdhci-pci47 09:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter (rev 01)48 Subsystem: Realtek Semiconductor Co., Ltd. Device 8195

49 Kernel driver in use: rtl8192ce

我们可以看到每个驱动后面都有Kernel driver in use:,代表驱动在内核中的链接位子。

3.配置内核驱动

下载内核源码https://www.kernel.org/,我这里下载的是stable 4.3.3,解压后进入源码目录执行:

1 $:make menuconfig

接下来就会弹出编译选项界面,如图:

我们可以看到上面有快捷键操作说明,我重点在> for Search,在界面直接按反斜杠,进入搜索界面。接下来挑个重点驱动说明一下,我们看

Network controller,可以看到型号是Realtek  RTL8188CE,然后Kernel driver in use: rtl8192ce,在内核的位子链接是rtl8192ce

我们按>,输入rtl8192ce,然后回车,就会出现详细位子,如图:

我们可以看到Pormt提示上面跟我要的型号一样,具体选项的前面有个(1),注意这里同一个Symbol(就是刚刚输入的rtl8192ce)有的对应很多选项,根据前面的序号,按对应的数字就可以直接进入选项,按可以返回来这个界面。这里,我直接按1。按1后,就到具体选项了,如图:

我们看到上面,发行版为了兼容各种机器,把所有Realtek的驱动都编译进成了模块。接下来就保留自己的驱动型号,去掉其他不要的。

剩下的驱动跟上面操作一样的,还有的不必要驱动是直接编译进了内核,非模块。对照自己的驱动,其他都可以不要。配置好后的内核

配置文件最好保存下来,如果驱动没配置成功,再配置的时候把保存的配置文件复制一份到源码目录,命名为.config。继续make menuconfig配置。

Linux内核配置网口驱动,linux内核编译,配置本机驱动相关推荐

  1. linux 串口转网口工具,linux下串口调试工具/串口终端推荐: picocom(转)

    Servlet 3.0 异步模式 Servlet 3.0标准新增了异步处理的支持. 进行异步处理的Servlet和作用于该Servlet的拦截器都必须声明对于异步处理的支持. java 资源监控 ht ...

  2. linux系统查看网口流量,linux 查看网口流量

    SCC(超级计算集群)简介 SCC概述 超级计算集群(Super Computing Cluster,SCC)使用高速RDMA网络互联的CPU以及GPU等异构加速设备,面向高性能计算.人工智能/机器学 ...

  3. virtualbox调试linux内核,virtualbox+kgdbt调试linux内核

    参考http://blog.csdn.net/zr_lang/article/details/8107015 环境需求: 两台linux虚拟机,我这里用的virtualbox安装的ubuntu12.0 ...

  4. linux 内核配置mmc,Linux内核编译,配置本机驱动

    1.前言 编译Linux内核失败的原因很多时候就是驱动选错,适合自己本机的驱动没编译进去.面对特殊平台(或者有些洁癖者,我就是^_^),要编译精简内核,只要本机驱动,其他都不需要.面对内核里面这么多驱 ...

  5. Linux驱动(8)--内核编译与配置

    内核编译与配置 1. Menuconfig 2. Kconfig 3. Makefile 4. 内核配置与编译的流程 5. 注意 1. Menuconfig Linux编译器是通过.config文件确 ...

  6. intel x520网卡驱动_手工编译linux桌面内核(二)——硬件驱动的配置 下篇

    前言: 前面的方法讲完了,接下来我们来看看实例(我自己电脑的配置). 这里我只打算列出几项重要的驱动配置来,其它的请自行查阅gentoo wiki! 再次强调,这是我自己电脑的硬件驱动配置,不可能完全 ...

  7. linux 编译3g驱动_linux重新编译内核

    1.内容简介 linux内核简介 linux内核版本号 linux为什么重新编译内核 linux内核编译模式 linux内核功能划分 linux内核编译步骤 2linux内核简介 内核,是一个操作系统 ...

  8. 基于块的linux驱动程序,基于块的Linux驱动程序 块设备驱动 centos内核编译过程 操作系统课程设计...

    操作系统的课程设计,本人也是一头雾水地做完了课程设计,在这里贴下操作过程,放下当时参考的一篇CSDN文章链接:https://blog.csdn.net/cxy_chen/article/detail ...

  9. Linux 内核编译配置选项简介(转)

    Linux 内核编译配置选项简介 作者:金步国 版权声明 本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布.任何人都可以自由使用.转载.复制和再分发,但必须保留作者署名 ...

最新文章

  1. 【BZOJ2140】稳定婚姻 Tarjan
  2. 2020全国高中清华北大录取人数榜,各位学生快看!
  3. Android中处理崩溃异常 (转)
  4. SmartPDA图片
  5. 屌丝创业从理性“认识你自己”开始
  6. mysql5.7.18的安装与主从复制
  7. java决策_机Java解决决策表
  8. 商业大亨微信草花服务器,商业大亨2每日答题和服务器进度奖励
  9. web前端学习:1分钟了解JavaScript基础语法规则
  10. C#编程总结(四)多线程应用
  11. VB制作控件之图片命令按钮➀
  12. 网易云那些触动人心的经典热评
  13. 三星s4流量显示无服务器,三星s4有什么隐藏功能
  14. Java程序流程控制(符号函数sgn、闰年判断)
  15. 《Windows 8 权威指南》——2.4 Aero与Metro的触摸对比
  16. 计算机应用基础小结,计算机应用基础教学小结
  17. 计算机操作系统的阶段分为几个阶段,浅谈操作系统的发展历程
  18. leetcode 第344题 (Java实现) 字符串反转
  19. 专注年轻一代,基于E-MapReduce梨视频推荐系统
  20. LeetCode 146. LRU 缓存

热门文章

  1. 环旭拟约4.5亿美元收购欧洲第二大EMS公司
  2. 【第17天】丰富的阅历使话题源源不断
  3. 视频转gif【不要钱!不要会员!还很方便!】
  4. 新手爬虫——网易云音乐分析
  5. 通过代码执行鼠标动作
  6. 利用深度学习生成数据的时间序列预测(Matlab代码实现)
  7. 出身985,工作996,劝退35,美团移动端开发工程师
  8. 996.ICU难逃凉凉,互联网从业者难逃“高薪陷阱”
  9. ubuntu18.04.3安装和卸载Adobe Reader 9
  10. 数据结构背包问题c语言思路,【数据结构与算法】背包问题总结梳理