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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

3.1 本章导读
: P. ?% h1 j1 NLinux 驱动工程师一定要掌握 Linux 内核的编译方法,也就是将 Linux 内核源码,编译成针对特定硬件的二进制镜像。
( t2 n* ?: I+ y" @在前面入门视频“01-烧写、编译以及基础知识视频”→“实验 10-搭建编译环境uboot_linux_Android”中,简单的介绍过如何将 Linux 源码编译生成二进制 zImage在本章中,将更加详细的介绍这部分内容,然后介绍 Kconfig 配置文件,Kconfig 文件是和编译的 Makemenuconfig 工具配合使用的。最后还需要掌握“.config”文件的作用。
. ^' V0 @" u6 b$ U& S3.1.1 工具
* R: w# W! K+ S/ l% T! C  d3.1.1.1 硬件工具
+ }' `0 G, S5 F5 b" B  p1 w1)PC 机9 |1 }  z# ~1 B& v
3.1.1.2 软件工具
# E1 Q7 U# [, `! z9 K  \1)虚拟机 Vmware
& F+ p' H9 E+ H( `8 G' k2)Ubuntu12.04.2
! E. N5 R6 c2 S  g7 {: N2 {0 I3)Ubuntu 系统下解压生成的 Linux 源码
  \8 d' |/ N3 o3.1.2 预备课程. V$ b9 n7 J" P. T7 N$ B
入门视频“01-烧写、编译以及基础知识视频”→“实验 10-搭建编译环境uboot_linux_Android”或者使用手册“五 Android 开发环境搭建以及编译”; [, N9 B5 e$ D0 V+ P# u
3.1.3 视频资源
! O. I) H8 h: z- N: H2 M本节配套视频为“视频 03_Menuconfig_Kconfig”
4 l  k& S) U1 Z3.2 学习目标
; M, p& T$ z3 J) k, ^% ]本章需要学习以下内容:% }1 _8 M' h! d% L/ h
掌握 Menuconfig 的用法  G( a9 B  K5 n0 V7 O/ L" {
理解 Kconfig 文件并掌握修改 Kconfig 的方法
, q* \1 S3 l+ Z$ o7 P理解配置文件“.config”+ F9 O  T4 o" L. M8 g3 J& y
Linux 内核配置裁减* R, Y9 s; g) u+ R
3.3 Linux 内核配置系统2 U. y$ K/ F# U
Linux 内核配置系统由三个部分组成。
7 u+ U  Y' u" N5 O0 ^Makefile 文件:分布在 Linux 内核源码中的 Makefile 文件,定义了 Linux 内核的编译规则。# D8 ~8 w; \$ F- O
Kconfig 文件:给用户提供配置选择的功能。) z. x  V1 j3 ~' ]
配置工具:这里使用的是 menuconfig,相比其它工具,这个工具使用的比较多,也比较
/ b7 Z9 A" H9 r% b5 I8 G8 b( B容易上手,无论哪个机构发布的 Linux 版本应该都是支持 menuconfig 的。
) j6 E$ e. }& e" l+ n3.4 Menuconfig 的操作5 A, B; M0 @8 `' h3 a0 W7 o  W
Linux 的裁减配置是通过 menuconfig 工具来实现的,本节介绍如何使用这个工具。8 v+ N% l( L! h2 y, Y
3.4.1 Menuconfig 发展历史简介
1 K3 E: i2 y4 x在 Linux 发展过程中,配置内核可以使用以下工具。& P2 V* H) E  \9 x
#make config
! B- Z, L8 x4 r; }6 e' z, o" i这是基于文本的最为传统的配置界面,不推荐使用
- G6 s3 ~, x- [" ?#make menuconfig
* N, e- k" w( p( q: W, {& k" \& V  n基于文本菜单的配置界面,现在大部分都是使用这个工具来裁减配置内核的,本章节也是
7 A3 u+ f: Z* T介绍这种方法。' h  T: K0 ?7 I1 j) V& \3 y4 f' i: Z
#make xconfig: ?. N! v$ m. V) K* X" H! w( L
要求 QT 被安装,用的比较少。/ s  W! K* E6 g, _7 ^0 ]
#make gconfig
7 [% K. d8 Y- [9 z要求 GTK,用的比较少。
+ A, ~, ^; C. h$ H5 _上面不同的命令代表使用不同的工具,如下图所示,在源码目录下,输入命令“make4 ]. h8 P( }2 F2 C& i6 z
config”。

' }( T$ D. K7 Y" f$ \8 Y' g1 q
如上图所示,这是一个文本类型的配置工具,根据提示“scripts/kconfig/conf --oldaskconfig Kconfig”可以知道,这种方法是旧的配置方法,虽然 Linux 内核可能会长时间的支持,但是不人性化的操作方式,会降低效率,所以现在几乎淘汰了。
0 }2 _, d" p8 }5 f( O4 |使用“Ctrl+c”可以退出配置界面,退出后,如下图所示。


: h5 ]9 ~( s- n3.4.2 Menuconfig 操作方法
& B" i# h! k6 d( t5 C7 ~前面实验提到过 menuconfig 实现的代码在源码“scripts”目录下,不过这里根本不用关心它是怎么实现的,只需要掌握怎么操作即可,就像学习开车,要知道怎么打方向盘,而不需要知道方向盘和轮子之间是怎么传动的。% q" t2 T6 h0 }; r
下面介绍 menuconfig 的操作方法。+ @& m% v8 y/ D7 Q4 W9 u
如下图所示,在源码目录下,输入命令“make Menuconfig”。

! g3 K" [& P; y. m2 N6 o) H* a+ t+ a
如下图所示,进入配置界面。这个功能界面对应配置工具,它包含配置命令解释器,对配置脚本中使用的命令进行解释;还包含了配置用户界面,用来提供字符界面和图形界面。这些配置工具都是使用脚本语言编写的,不过只用关心怎么使用。

6 T, B/ U4 d  ~1 ~: M2 {, |
如下图所示,“方向按键”中的“左右”可以选择你需要的操作。“<Select>”表示进入选择的配置界面,“< Exit >”表示返回,“< Help >”可以阅读帮助文档。


0 N  g  C; S" j% c8 R" M$ m1 m如下图所示,“方向按键”中的“上下”可以选择配置的选项。

2 a$ l) s5 B, x/ l) h# ]
如下图所示,输入“/”,可以进入搜索界面。


: g. l& {, E8 A$ v9 @2 a  [! b( X如下图所示,这里来查找一下“leds”的驱动,输入“leds”,然后按“回车”。

0 W+ L1 \! t0 p& g$ P5 h: p
如下图所示,发现很多配置都是“=n”,通过方向按键,控制向下翻页,然后观察那个选项配置成了“=y”。

% ]$ `( X4 v! G; Z+ m& L8 L: i
如下图所示,这里可以看到这个 leds 驱动的目录“Device Drivers”“Characterdevices”。


5 K: A* P1 ], z) I- i5 A6 L9 Z然后,根据查找出来的信息,找到对应的 leds 驱动。如下图,返回配置界面。找到“Device Drivers”目录。输入“回车”。

$ ]( V$ G: G" u! V$ G9 L* Z
如下图所示,进入“Device Drivers”对应的配置界面。


! u4 K( U. Z4 |+ H然后,如下图所示,找到“Character devices”,输入“回车”。


& {3 W8 [* L% B如下图所示,进入“Character devices”配置界面。


" g; k: a# i8 ^8 @% k& K, h如下图所示,“Enable LEDS config”找到对应的 leds 驱动配置选项。缺省配置文件里,这个已经选上了。

' S3 Q. E( p! |( k* e
单击“空格”键后,去掉 leds 驱动选项。


& q6 {4 s' p& f- G9 y6 f再次敲击“空格”,选上 leds 驱动的选项。

$ y8 q8 g1 G1 y7 n2 O" H
然后,选上“Exit”,如下图所示,输入“回车”。


) Y8 k. v% U1 ~6 U+ }# e如下图所示,继续退出。


% w) A  d) B0 D- I如下图所示,继续退出。

" Y1 ~5 I$ M5 y; v6 Z# ?* Q
如下图所示,因为修改过配置选项,所以退出的时候会提醒“是否保存新的配置”。

5 ^1 K- i9 \% T1 u! n( y' l* D6 q
如下图所示,因为第一次操作,担心用户在无意间动了某个配置选项,编译后无法启动,建议选择“No”,不保存退出。

* ^# E+ |: C1 K- f, q3 f8 L0 I
到这里,整个 Menuconfig 配置的操作以及流程就完全介绍完了。如果修改了配置文件,如下图所示的“.config”文件就会被修改。再次编译内核的时候,系统会根据新的config 文件来编译整个内核。; ~8 @8 B4 F7 u4 w% T+ J
内核的配置非常多,大家可以看一下使用手册 9.4 小节,里面有详细的介绍。

$ a/ i2 o+ K5 @+ j) t
iTOP4412开发板项目实战:1 W7 ^6 W6 w7 Z6 _! d+ b
1.云服务器只能家居 2.门禁系统 3.WEB服务及远程控制 4.智能网关 5.手机远程控制开发板 6.图像识别 7.机车导航项目 8.Zigbee智能家居, J" t/ h( F0 J& U
学习资料:2300页教程+300期配套视频教程

- ^9 y# p+ I" A. N2 e4 u
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-4 13:47 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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