找回密码
 注册
关于网站域名变更的通知
查看: 399|回复: 0
打印 上一主题 下一主题

迅为4412开发板实验Menuconfig_Kconfig(上)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-12-22 10:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

3.1 本章导读. Q( r# {# r2 h0 \, R
Linux 驱动工程师一定要掌握 Linux 内核的编译方法,也就是将 Linux 内核源码,编译成针对特定硬件的二进制镜像。/ ?5 s2 ?7 D  S5 d% M
在前面入门视频“01-烧写、编译以及基础知识视频”→“实验 10-搭建编译环境uboot_linux_Android”中,简单的介绍过如何将 Linux 源码编译生成二进制 zImage在本章中,将更加详细的介绍这部分内容,然后介绍 Kconfig 配置文件,Kconfig 文件是和编译的 Makemenuconfig 工具配合使用的。最后还需要掌握“.config”文件的作用。: ?1 h, j" d# b) H- h: y' M/ @* f% [
3.1.1 工具
% s; X* o8 M' v3 A0 n5 W3.1.1.1 硬件工具/ w! A8 \) O6 J) k- v+ _
1)PC 机8 v* H& h+ T$ q  }; E3 t' H
3.1.1.2 软件工具( H! q" z2 r- f& y. y
1)虚拟机 Vmware* k4 f, z% v- P
2)Ubuntu12.04.2. A. z) ?0 Y$ F0 H( P2 s' J
3)Ubuntu 系统下解压生成的 Linux 源码0 V8 C) C) ^5 [( h
3.1.2 预备课程
7 W- A2 N* j8 p9 [9 _: }5 j" d入门视频“01-烧写、编译以及基础知识视频”→“实验 10-搭建编译环境uboot_linux_Android”或者使用手册“五 Android 开发环境搭建以及编译”
0 {, }& Q3 s7 O7 j3.1.3 视频资源
( N3 M8 Z  e0 k0 Y3 F6 U/ ~- Z9 W本节配套视频为“视频 03_Menuconfig_Kconfig”
2 A) n' F/ F9 v% {) M3 O8 Y3.2 学习目标
( m+ c- C% N( o& T2 a& X* i, S0 {本章需要学习以下内容:; z1 S, y$ h1 R" n' J- D
掌握 Menuconfig 的用法' d. p2 y5 ?$ Q- D% `6 t9 Q
理解 Kconfig 文件并掌握修改 Kconfig 的方法
4 a; }5 h8 |$ i7 A  {. Y! D理解配置文件“.config”
$ g9 O  r) a7 uLinux 内核配置裁减( M- q' ~& m! G& s9 C
3.3 Linux 内核配置系统$ s6 B. X  y0 m+ H. d7 g" d
Linux 内核配置系统由三个部分组成。3 ~3 {2 \; p. {  W( L4 h
Makefile 文件:分布在 Linux 内核源码中的 Makefile 文件,定义了 Linux 内核的编译规则。9 H8 W5 X4 P) v
Kconfig 文件:给用户提供配置选择的功能。9 G5 a+ O/ ~1 `/ Z* Y8 A* k+ _
配置工具:这里使用的是 menuconfig,相比其它工具,这个工具使用的比较多,也比较
1 N$ k# B2 E- s$ Z: b) `/ {. {容易上手,无论哪个机构发布的 Linux 版本应该都是支持 menuconfig 的。
+ Y4 J$ ^9 J: W5 o3.4 Menuconfig 的操作
' v6 A9 |3 L4 ?( VLinux 的裁减配置是通过 menuconfig 工具来实现的,本节介绍如何使用这个工具。
. W; J6 t$ V5 t3 C; C/ L% ?( A% h3.4.1 Menuconfig 发展历史简介) l' M8 e6 {+ k, u
在 Linux 发展过程中,配置内核可以使用以下工具。0 `: |! y0 U- {& V# ^( T6 P) H
#make config% A2 n% m0 y& c+ J$ P" }+ ^
这是基于文本的最为传统的配置界面,不推荐使用  t* u+ [# j% ?
#make menuconfig; v. Y% F  t( u! p
基于文本菜单的配置界面,现在大部分都是使用这个工具来裁减配置内核的,本章节也是. q1 t! W+ n) W2 d* W% {! N- p4 m3 {
介绍这种方法。
4 O' c' f* K" T  y/ c. t# `( u#make xconfig  E3 o0 _$ x0 r! t5 x
要求 QT 被安装,用的比较少。
. H# [% [: ^. |# \#make gconfig
# o6 P4 U. [$ S3 ^8 f, R! D+ s要求 GTK,用的比较少。3 M9 n+ K! n! l# W3 D+ J- t
上面不同的命令代表使用不同的工具,如下图所示,在源码目录下,输入命令“make( g; T2 U* u- v2 L! R: c6 f  _2 T
config”。

" G. c0 ^/ j# b- r! X
如上图所示,这是一个文本类型的配置工具,根据提示“scripts/kconfig/conf --oldaskconfig Kconfig”可以知道,这种方法是旧的配置方法,虽然 Linux 内核可能会长时间的支持,但是不人性化的操作方式,会降低效率,所以现在几乎淘汰了。* h* Z8 {" R0 V: x7 D
使用“Ctrl+c”可以退出配置界面,退出后,如下图所示。


4 W8 Y5 Y4 k5 u1 t3.4.2 Menuconfig 操作方法! e0 u" m' U6 o. i1 r- \
前面实验提到过 menuconfig 实现的代码在源码“scripts”目录下,不过这里根本不用关心它是怎么实现的,只需要掌握怎么操作即可,就像学习开车,要知道怎么打方向盘,而不需要知道方向盘和轮子之间是怎么传动的。! q6 j8 D* e4 y) Q+ d
下面介绍 menuconfig 的操作方法。
4 [# E) q; [  H5 _- d1 j( H! L+ F如下图所示,在源码目录下,输入命令“make Menuconfig”。


. Y+ u7 P3 g* X6 `' w6 r如下图所示,进入配置界面。这个功能界面对应配置工具,它包含配置命令解释器,对配置脚本中使用的命令进行解释;还包含了配置用户界面,用来提供字符界面和图形界面。这些配置工具都是使用脚本语言编写的,不过只用关心怎么使用。


9 j, Y% f  @3 Z如下图所示,“方向按键”中的“左右”可以选择你需要的操作。“<Select>”表示进入选择的配置界面,“< Exit >”表示返回,“< Help >”可以阅读帮助文档。

$ r8 c& \4 h  a8 Q: \
如下图所示,“方向按键”中的“上下”可以选择配置的选项。

* F" b6 J, [) i; C
如下图所示,输入“/”,可以进入搜索界面。


1 R7 E  F4 \1 P' D$ ~如下图所示,这里来查找一下“leds”的驱动,输入“leds”,然后按“回车”。


& T; n1 _! a5 t- D" O如下图所示,发现很多配置都是“=n”,通过方向按键,控制向下翻页,然后观察那个选项配置成了“=y”。

  \/ U" U' Q0 }1 ]6 Y
如下图所示,这里可以看到这个 leds 驱动的目录“Device Drivers”“Characterdevices”。


. q3 E# o6 R, ^. @& b然后,根据查找出来的信息,找到对应的 leds 驱动。如下图,返回配置界面。找到“Device Drivers”目录。输入“回车”。


9 `2 H0 j% i# C2 \  g- s如下图所示,进入“Device Drivers”对应的配置界面。


) N! p. H. w6 \2 [1 ?8 ~  @然后,如下图所示,找到“Character devices”,输入“回车”。

" y$ I5 w! ?3 v7 a
如下图所示,进入“Character devices”配置界面。


- F) i) U4 d  X! i) M如下图所示,“Enable LEDS config”找到对应的 leds 驱动配置选项。缺省配置文件里,这个已经选上了。

" a3 t: r# o8 ~
单击“空格”键后,去掉 leds 驱动选项。


% O, X$ K9 V# H7 K0 S# R# R再次敲击“空格”,选上 leds 驱动的选项。

: i. p0 O, p4 g# n0 s" `; }
然后,选上“Exit”,如下图所示,输入“回车”。

  t. Y5 m) @, q" e& C
如下图所示,继续退出。


- J$ T6 o2 m9 T! B5 v如下图所示,继续退出。

' J$ X- N0 y$ [4 \4 w
如下图所示,因为修改过配置选项,所以退出的时候会提醒“是否保存新的配置”。

2 M7 g/ n% J- t& Q+ |
如下图所示,因为第一次操作,担心用户在无意间动了某个配置选项,编译后无法启动,建议选择“No”,不保存退出。


1 p7 P, x" X1 U3 K; e( L到这里,整个 Menuconfig 配置的操作以及流程就完全介绍完了。如果修改了配置文件,如下图所示的“.config”文件就会被修改。再次编译内核的时候,系统会根据新的config 文件来编译整个内核。
  h% d# F) Z  u7 i内核的配置非常多,大家可以看一下使用手册 9.4 小节,里面有详细的介绍。

( c$ Z* U& N8 b4 [9 b& T6 }$ l
iTOP4412开发板项目实战:
: I+ M; Z0 e4 d! p7 |1.云服务器只能家居 2.门禁系统 3.WEB服务及远程控制 4.智能网关 5.手机远程控制开发板 6.图像识别 7.机车导航项目 8.Zigbee智能家居
& p8 X+ \5 G8 t7 O学习资料:2300页教程+300期配套视频教程


1 F" s2 z) c2 f% I) g# p3 t' p
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-27 12:59 , Processed in 0.078125 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表