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命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

阅读剩余
THE END