linux .config petalinux2018.3 eth0
大家好,今天小编来为大家解答linux .config这个问题,petalinux2018.3 eth0很多人还不知道,现在让我们一起来看看吧!
Linux下安装,配置config文件
抄袭这篇文章:
Linux下正常的编译安装/卸载
源码的安装一般由3个步骤组成:
配置(configure)
编译(make)
安装(make install)。
configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure–help可以输出详细的选项列表。
其中--prefix选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share,比较凌乱。
使用--prefix选项的另一个好处是方便卸载软件或移植软件
当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载干净;
移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统下)
当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是Makefile文件有uninstall命令。
make install PREFIX=path
这里PREFIX必须大写,其实绝大部分情况下 make install都不能再指定 PREFIX了,因为大部分程序都会 configure时得到的 prefix写入 config.h,然后在编译时编译到可执行文件内部,以便在执行时读取资源文件等。
这样在编译完毕后,就不能再修改 prefix了。只有运行时不需要资源文件的小工具,才可能在安装的时候随意选择 PREFIX,或者具有 loader的大程序,在执行时通过 loader传入路径……
关于卸载
如果没有配置--prefix选项,源码包也没有提供make uninstall,则可以通过以下方式可以完整卸载:
一个临时目录重新安装一遍,如:
$./configure--prefix=/tmp/to_remove&& make install
然后遍历/tmp/to_remove的文件,删除对应安装位置的文件即可(因为/tmp/to_remove里的目录结构就是没有配置--prefix选项时的目录结构)。
Linux内核根目录中的配置文件.config中包含了许多宏定义,
一、Linux内核的配置系统由三个部分组成,分别是:
1、Makefile:分布在 Linux内核源代码根目录及各层目录中,定义 Linux内核的编译规则;
2、配置文件(config.in(2.4内核,2.6内核)):给用户提供配置选择的功能;
3、配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于 Ncurses图形界面以及基于 Xwindows图形界面的用户配置界面,各自对应于 Make config、Make menuconfig和 make xconfig)。这些配置工具都是使用脚本语言,如 Tcl/TK、Perl编写的(也包含一些用 C编写的代码)。本文并不是对配置系统本身进行分析,而是介绍如何使用配置系统。所以,除非是配置系统的维护者,一般的内核开发者无须了解它们的原理,只需要知道如何编写 Makefile和配置文件就可以。
二、Make menuconfig过程分析
1、scripts文件夹存放的是跟make menuconfig配置界面的图形绘制相关的文件,我们作为使用者无需关心这个文件夹的内容
2、读取arch/arch/$ARCH/Kconfig以及各子目录下的Kcondig文件,生成配置条目。
$ARCH由linux内核根目录下的makefile文件决定
ARCH?= arm
CROSS_COMPILE?= arm-linux-
Kconfig文件中为配置信息的宏定义,与我们在make menuconfig图形界面看到的信息一致。
例如:
config CPU_S3C2410_DMA
bool
depends on S3C2410_DMA&&(CPU_S3C2410|| CPU_S3C2442)
default y if CPU_S3C2410|| CPU_S3C2442
help
DMA device selection for S3C2410 and compatible CPUs
因此,Kconfig文件很重要的作用就是:定义配置宏、相关依赖关系、帮助信息
3、读取内核根目录下.config文件,生成配置选项:[*]编译进内核 [M]编译为模块 [ ]不编译
arch/arm/configs/文件夹下存放了一些配置模板
我们可以通过cp/arch/arm/configs/xx_defconfig.config来使用这些配置模板
通过图形界面变更配置选项会自动更新到.config文件中
make disclean会删除.config
4、编译过程根据.config生成 Linux内核根目录下的 include/config/auto.conf文件
CONFIG_EEPROM_93CX6=m
CONFIG_DM9000=y
根目录Makefile以及子目录的Makefile根据auto.conf生成编译条件
obj-$(CONFIG_DM9000)+= dm9000.o//obj-m+= dm9000.o
5、编译过程根据.config生成Linux内核根目录下的 include/linux/autoconf.h文件
.config或 auto.conf中定义要编译为 m模块的项,如:
CONFIG_DEBUG_NX_TEST=m
在 autoconf.h中会被定义为:
#define CONFIG_DEBUG_NX_TEST_MODULE 1
.config或auto.conf中定义为编译为 y的选项,如:
CONFIG_DM9000= y
在 autoconf.h中会被定义为:
#define CONFIG_DM9000 1
autoconf.h中是.config或者auto.conf中配置信息的另一种体现形式,它是站在源码的角度,供源码使用的C语言宏定义。
6、总结
我们在使用make menuconfig时,首先会确定架构arch,然后读取arch目录的Kconfig中的配置宏定义,生成编译条目,然后读取Linux内核根目录下的.config选项,将.config中的配置信息显示在图形界面上[*] [M] or []。我们在图形界面中更改配置选项会自动保存到.config文件中。编译过程根据.config随后生成auto.conf文件,它决定了makefile中各个文件的编译类型,静态编译进内核、编译成模块、不编译;同时生成autoconf.h,它以C语言宏定义的形式表达了各个文件是否被编译,源码中会判断某文件是否被编译进行不同的处理。
三、将自定义文件添加进内核配置系统
1、修改文件目录下Kconfig文件
添加:
config HELLO
tristate"just a test hello"
default y
---help---
This is a test
//tristate或 bool表示可选择种类数量3[*][M][ ]、2
//"just a test hello"将作为标题显示在配置的图形界面
2、修改文件目录下makefile文件
obj-$(CONFIG_HELLO)+= hello_drv.o
3、make menuconfig我们会在字符设备驱动的界面看到 ust a test hello并且默认编译进内核
4、make编译内核发现
autoconfig.h自动添加#define CONFIG_HELLO 1
auto.conf自动添加 CONFIG_HELLO=y
Linux系统下ifconfig命令使用说明
ifconfig配置网卡
配置网卡的IP地址
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
在eth0上配置上192.168.0.1的IP地址及24位掩码。若想再在eth0上在配置一个192.168.1.1/24的IP地址怎么办?用下面的命令
ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0
这时再用ifconifg命令查看,就可以看到两个网卡的信息了,分别为:eth0和eth0:0。若还想再增加IP,那网卡的命名就接着是:eth0:1、eth0:2…想要几个就填几个。ok!
配置网卡的硬件地址
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
就将网卡的硬件地址更改了,此时你就可以骗过局域网内的IP地址邦定了。
将网卡禁用
ifconfig eth0 down
将网卡启用
ifconfig eth0 up
ifconfig命令的功能很强大,还可以设置网卡的MTU,混杂模式等。就不一一介绍了,用时间可以自己研究一下。
注意:用Linux ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了
Linux下网卡命名规律:eth0,eth1。第一块以太网卡,第二块。lo为环回接口,它的IP地址固定为127.0.0.1,掩码8位。它代表你的机器本身。
1、ifconfig是查看网卡的信息。
ifconfig [Interface]
Interface是可选项,如果不加此项,则显示系统中所有网卡的信息。如果添加此选项则显示所指定的网卡信息
例如:ifconfig eth0
复制代码
代码如下:
eth0 Link encap:Ethernet
HWaddr 00:0C:29:F3:3B:F2
inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:78 errors:0 dropped:0 overruns:0 frame:0
TX packets:104 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:11679(11.4 Kb)
TX bytes:14077(13.7 Kb)
Interrupt:10 Base address:0x1080
我们可以看到
第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)
第二行:网卡的IP地址、子网、掩码
第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节
第四、五行:接收、发送数据包情况统计
第七行:接收、发送数据字节数统计信息。
2、ifconfig配置网卡
配置网卡的IP地址
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
在eth0上配置上192.168.0.1的IP地址及24位掩码。若想再在eth0上在配置一个192.168.1.1/24的IP地址怎么办?用下面的命令
ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0
这时再用ifconifg命令查看,就可以看到两个网卡的信息了,分别为:eth0和eth0:0。若还想再增加IP,那网卡的命名就接着是:eth0:1、eth0:2...想要几个就填几个。ok!
配置网卡的硬件地址
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
就将网卡的硬件地址更改了,此时你就可以骗过局域网内的IP地址邦定了。
将网卡禁用
ifconfig eth0 down
将网卡启用
ifconfig eth0 up
ifconfig命令的功能很强大,还可以设置网卡的MTU,混杂模式等。就不一一介绍了,用时间可以自己研究一下。
注意:用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。