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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

3.1 本章导读' \7 n" o/ A( C
Linux 驱动工程师一定要掌握 Linux 内核的编译方法,也就是将 Linux 内核源码,编译成针对特定硬件的二进制镜像。
! L% ^$ w& ]# E  q7 a7 m在前面入门视频“01-烧写、编译以及基础知识视频”→“实验 10-搭建编译环境uboot_linux_Android”中,简单的介绍过如何将 Linux 源码编译生成二进制 zImage在本章中,将更加详细的介绍这部分内容,然后介绍 Kconfig 配置文件,Kconfig 文件是和编译的 Makemenuconfig 工具配合使用的。最后还需要掌握“.config”文件的作用。: o- ]1 X' x6 ]1 Z7 ^* K/ c
3.1.1 工具/ K+ g4 U% T9 S3 y/ a/ r
3.1.1.1 硬件工具+ e' \, p, E' n& m( ^
1)PC 机
% J& P) e+ f: M2 F; r3.1.1.2 软件工具" ~5 }5 \" e4 g3 U# T
1)虚拟机 Vmware
5 d! P& D: w* c8 K2)Ubuntu12.04.2
. R4 n8 x  O! ^" f3 H8 l: P3)Ubuntu 系统下解压生成的 Linux 源码
/ J+ V0 Q5 W/ o0 ]( s" O# `4 Y( U3.1.2 预备课程+ E4 T2 x. `+ `3 @) O
入门视频“01-烧写、编译以及基础知识视频”→“实验 10-搭建编译环境uboot_linux_Android”或者使用手册“五 Android 开发环境搭建以及编译”) y1 P4 u7 R% Y" {
3.1.3 视频资源. G) V# A: U  m( J- ~
本节配套视频为“视频 03_Menuconfig_Kconfig”
1 u3 u. t2 X, M. q) T9 Z3.2 学习目标, N7 P6 `& c: I& A1 A+ `' \
本章需要学习以下内容:
. p; R- Y$ a# |8 W! S6 z9 j掌握 Menuconfig 的用法! V! }  {+ v3 Z( p5 {, Z: w  w
理解 Kconfig 文件并掌握修改 Kconfig 的方法7 d& b' O9 v3 D$ n! n
理解配置文件“.config”; ~# m8 i4 J. {3 c8 Q( t4 k2 [
Linux 内核配置裁减" Z! n7 s2 K, p' \5 n4 i. B7 x
3.3 Linux 内核配置系统; l! l; X, o9 ?8 b
Linux 内核配置系统由三个部分组成。
) _0 r0 J, z0 ]6 }" ]Makefile 文件:分布在 Linux 内核源码中的 Makefile 文件,定义了 Linux 内核的编译规则。
8 Z7 N  _! i4 B) QKconfig 文件:给用户提供配置选择的功能。
& I3 D- o& u+ j% K6 f2 H1 I; S6 B% b配置工具:这里使用的是 menuconfig,相比其它工具,这个工具使用的比较多,也比较
$ ]) H3 L, H& O% m容易上手,无论哪个机构发布的 Linux 版本应该都是支持 menuconfig 的。1 i! X6 K' ?* k( s) {( Z
3.4 Menuconfig 的操作( r. g- y6 X+ b: N
Linux 的裁减配置是通过 menuconfig 工具来实现的,本节介绍如何使用这个工具。/ X" R' p! m, p( ^& T- i2 j
3.4.1 Menuconfig 发展历史简介
* ~7 C: J; a( S; d- K4 e5 g0 P" d: t在 Linux 发展过程中,配置内核可以使用以下工具。
  Z& {, S& |9 A1 e- ^#make config
& e' F6 `0 f! r. `$ [8 y& w- q这是基于文本的最为传统的配置界面,不推荐使用% p4 S+ S# R# u7 Z, x/ ~
#make menuconfig: ]* L/ E* @4 |- K9 j# m% ~4 S
基于文本菜单的配置界面,现在大部分都是使用这个工具来裁减配置内核的,本章节也是
% B) q& x# u5 Q% D7 g5 O4 g$ m介绍这种方法。
$ w3 Z2 r2 k  |$ R) W$ F#make xconfig* T$ Y/ q" {9 l; B1 F! W
要求 QT 被安装,用的比较少。
, g0 e3 I$ e% ]( ]  i! K4 {#make gconfig% K, r! [. ?+ o" z9 @
要求 GTK,用的比较少。
  G; c7 i; Z& ~# Z/ n8 W9 q  S6 o3 X上面不同的命令代表使用不同的工具,如下图所示,在源码目录下,输入命令“make
2 ?& n) q& P. u1 \/ q8 i2 hconfig”。


2 o- X& p% R6 V& F! U如上图所示,这是一个文本类型的配置工具,根据提示“scripts/kconfig/conf --oldaskconfig Kconfig”可以知道,这种方法是旧的配置方法,虽然 Linux 内核可能会长时间的支持,但是不人性化的操作方式,会降低效率,所以现在几乎淘汰了。+ ?% l; I7 r- H
使用“Ctrl+c”可以退出配置界面,退出后,如下图所示。

, g! g: p" S& F6 z7 g
3.4.2 Menuconfig 操作方法
; ?9 A: T+ x! f8 K; P( `前面实验提到过 menuconfig 实现的代码在源码“scripts”目录下,不过这里根本不用关心它是怎么实现的,只需要掌握怎么操作即可,就像学习开车,要知道怎么打方向盘,而不需要知道方向盘和轮子之间是怎么传动的。) E" U( X" D  X
下面介绍 menuconfig 的操作方法。0 I4 e1 |5 j( x6 L% _
如下图所示,在源码目录下,输入命令“make Menuconfig”。


% _6 o& @9 o0 ?' l, h! a& ?如下图所示,进入配置界面。这个功能界面对应配置工具,它包含配置命令解释器,对配置脚本中使用的命令进行解释;还包含了配置用户界面,用来提供字符界面和图形界面。这些配置工具都是使用脚本语言编写的,不过只用关心怎么使用。


2 \/ A- I9 g: C. \4 K5 X" T. a如下图所示,“方向按键”中的“左右”可以选择你需要的操作。“<Select>”表示进入选择的配置界面,“< Exit >”表示返回,“< Help >”可以阅读帮助文档。

/ h* g1 V: y$ N+ a# B
如下图所示,“方向按键”中的“上下”可以选择配置的选项。


, }; k, O4 _6 _$ S; W/ a如下图所示,输入“/”,可以进入搜索界面。

: b2 \7 R7 A4 b' O1 @" B1 K
如下图所示,这里来查找一下“leds”的驱动,输入“leds”,然后按“回车”。

; M" H% Z( W8 j' i. ]2 j$ ?
如下图所示,发现很多配置都是“=n”,通过方向按键,控制向下翻页,然后观察那个选项配置成了“=y”。

8 D" ^% C0 @3 c$ L, M+ L$ J
如下图所示,这里可以看到这个 leds 驱动的目录“Device Drivers”“Characterdevices”。

& J9 ?2 X; O2 n) T
然后,根据查找出来的信息,找到对应的 leds 驱动。如下图,返回配置界面。找到“Device Drivers”目录。输入“回车”。

6 F1 v/ e( T' `7 y1 {% {
如下图所示,进入“Device Drivers”对应的配置界面。

. L) }3 }6 ]0 e, m* K) q' N
然后,如下图所示,找到“Character devices”,输入“回车”。

" e% B& Y3 y( O
如下图所示,进入“Character devices”配置界面。


( S1 [' [2 ^6 e7 M- K如下图所示,“Enable LEDS config”找到对应的 leds 驱动配置选项。缺省配置文件里,这个已经选上了。


3 Z3 C& v# t- O' W) B单击“空格”键后,去掉 leds 驱动选项。

# H1 r6 O' A; y- E
再次敲击“空格”,选上 leds 驱动的选项。

( C: W/ V3 h7 k' V" Q# }% n
然后,选上“Exit”,如下图所示,输入“回车”。


; r1 {6 l. B1 b8 N+ |如下图所示,继续退出。


8 W) V. q* ~$ z4 l6 u如下图所示,继续退出。


$ }" t2 u% Y" l( b6 c, l6 w; }% D$ _如下图所示,因为修改过配置选项,所以退出的时候会提醒“是否保存新的配置”。


9 c6 v. `5 n& ~5 q+ A如下图所示,因为第一次操作,担心用户在无意间动了某个配置选项,编译后无法启动,建议选择“No”,不保存退出。


. W  z) x: l2 t' A# H; H: m到这里,整个 Menuconfig 配置的操作以及流程就完全介绍完了。如果修改了配置文件,如下图所示的“.config”文件就会被修改。再次编译内核的时候,系统会根据新的config 文件来编译整个内核。
5 \7 g, @1 S# h内核的配置非常多,大家可以看一下使用手册 9.4 小节,里面有详细的介绍。


8 @! s* E1 ^1 ?/ l/ TiTOP4412开发板项目实战:
# x' _- N) Q/ M4 }* n0 r, V1.云服务器只能家居 2.门禁系统 3.WEB服务及远程控制 4.智能网关 5.手机远程控制开发板 6.图像识别 7.机车导航项目 8.Zigbee智能家居
+ z/ g) L7 B3 K, O$ j1 j学习资料:2300页教程+300期配套视频教程

3 z8 Q' F4 y1 c) d, @0 |$ A
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-21 04:11 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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