配置的网卡 配置文件在什么地方

配置的网卡 配置文件在什么地方,第1张

linux系统看不到对应网卡的配置文件是怎么回事?如下图:查看系统有eth1这块网卡,但当我进入/etc/sysconfig/network-scripts/时只看到有ifcfg-eth0网卡配置文件,并没有看到ifcfg-eth1网卡配置文件?

 截图20150328104148png (3646 KB)

2015-3-28 10:51

 QQ截图20150328104502png (2189 KB)

2015-3-28 10:51

引用:

原帖由 bianlimit 于 2015-3-28 12:46 发表 

自己创建一个

自己创建一个修改网卡后也无效,而且报错。问题如下:

 截图20150328135035png (3855 KB)

2015-3-28 13:59

 截图20150328135445png (2803 KB)

2015-3-28 13:59

 截图20150328135743png (2083 KB)

2015-3-28 13:59

LZ的机器应该是虚拟机吧。 如果是虚拟机的话 你把HWADDR删除试下 看看行不行

如果还不行

/etc/udev/rulesd/70-persistent-netrules 删除后重启机器

udev配置信息截图看下:

cat /etc/udev/rulesd/70-persistent-netrules 

另外,楼主先标注好自己的linux系统版本、虚拟机还是实体机

引用:

原帖由 phanx 于 2015-3-29 08:59 发表 

NAME改成 System eth1

HWADDR的值改成eth1的MAC地址

修改后还是不行,报错如下:

 截图20150330211711png (1514 KB)

2015-3-30 21:21

原帖由 kuaileshijie 于 2015-3-30 21:21 发表 

修改后还是不行,报错如下:从你贴图看来 NAME还是 System eth0 啊。

vi ifcfg-eth1

删除

NAME

LAST_CONNECT

UUID 这三行

vi ifcfg-eth0

ONBOOT=no

cat ifcfg-eth1 出来看看。

然后 service NetworkManager stop

chkconfig NetworkManager off

然后 service network restart

引用:

原帖由 Shell_2015 于 2015-3-30 17:26 发表 

udev配置信息截图看下:

cat /etc/udev/rulesd/70-persistent-netrules 

另外,楼主先标注好自己的linux系统版本、虚拟机还是实体机是虚拟机,而且按照你提供的方法,已经成功启动了网卡,谢谢!

引用:

原帖由 phanx 于 2015-3-30 21:43 发表 

从你贴图看来 NAME还是 System eth0 啊。

vi ifcfg-eth1

删除

NAME

LAST_CONNECT

UUID 这三行

vi ifcfg-eth0

ONBOOT=no

cat ifcfg-eth1 出来看看。

然后 service NetworkManager stop

chkconfig NetworkMan

即使你更改了,启动网卡是仍然会报那错误,

截图20150330233041png (2134 KB)

引用:

原帖由 kuaileshijie 于 2015-3-30 23:21 发表 

即使你更改了,启动网卡是仍然会报那错误,不会的,只要DEVICE=eth1

以及HWADDR匹配上,在关闭NetwokManager的情况下就可以激活网卡了。

你开始不行是因为你的eth1 里面HWADDR地址写的是原来eth0的MAC,而不是eth1的MAC。

然后,如果在NetworkManager服务不关闭的情况下,只是更改ifcfg-eth1文件,是不会生效的。所以,让你关闭NetworkManager服务,然后删掉

NAME,UUID,LAST_CONNECT三行,再重启network服务,就一定没有问题了。

udev的rules定制和调试

在定制项目中,对外设的热插拔的管理基本都在udev/systemd-udev来管理。这里没有对基本的udev使用/rules书写进行介绍。

1 udev的rules可能的位置

/lib/udev/rulesd -- udev默认/预置的rules

/etc/udev/rulesd/ -- 定制的rules, 优先级高于/lib/udev/rulesd,官方建议客户写的rules都放这里

至于放在哪个位置,自己决定就好,既然你在修改系统就应该知道你在做什么

2 定制自己的rules

定制热插拔的事件,具体到rules就是:

  1)过滤到正确的udev事件。

  2)指定执行的动作,rules里的“RUN”,通常是脚本(毕竟要完成一个功能,绝大多数场景都不是一个命令能搞定的)

3到这里就要设计到rules的调试了

  1)如何知道要过滤的是条件?

  2)如何将必要的参数传递给RUN执行的脚本?

方法1:

udevadm monitor -p

-- 监测所以的kernel/udevd的热插拔事件, -p选项很有必要,打印出本次热插拔事件的一些属性

这里就是比较设备插入和拔出时的事件属性的不同,可作为过滤的条件

比如:

rules文件对于规则:

到这里很多时候就能满足要求了,如果还有解决不里的场景,就要进一步修改过滤条件。

man udev里会有绝大部分的关键字的信息(想全部的就只能去撸源码)。

方法2:

通过在RUN指定的脚本里传递参数,来找到设备存在和不存在的属性差异。

比如:

参考信息:

a)、udev 规则的匹配键

ACTION: 事件 (uevent) 的行为,例如:add( 添加设备 )、remove( 删除设备 )。

KERNEL: 内核设备名称,例如:sda, cdrom。

DEVPATH:   设备的 devpath 路径。

SUBSYSTEM: 设备的子系统名称,例如:sda 的子系统为 block。

BUS: 设备在 devpath 里的总线名称,例如:usb。

DRIVER: 设备在 devpath 里的设备驱动名称,例如:ide-cdrom。

ID: 设备在 devpath 里的识别号。

SYSFS{filename}: 设备的 devpath 路径下,设备的属性文件“filename”里的内容。

例如:SYSFS{model}==“ST936701SS”表示:如果设备的型号为 ST936701SS,则该设备匹配该 匹配键。

在一条规则中,可以设定最多五条 SYSFS 的 匹配键。

ENV{key}: 环境变量。在一条规则中,可以设定最多五条环境变量的 匹配键。

PROGRAM:调用外部命令。

RESULT:   外部命令 PROGRAM 的返回结果。

b)、udev 的重要赋值键

NAME: 在 /dev下产生的设备文件名。只有第一次对某个设备的 NAME 的赋值行为生效,之后匹配的规则再对该设备的 NAME 赋值行为将被忽略。如果没有任何规则对设备的 NAME 赋值,udev 将使用内核设备名称来产生设备文件。

SYMLINK:  为 /dev/下的设备文件产生符号链接。由于 udev 只能为某个设备产生一个设备文件,所以为了不覆盖系统默认的 udev 规则所产生的文件,推荐使用符号链接。

OWNER, GROUP, MODE:为设备设定权限。

ENV{key}: 导入一个环境变量。

c)、udev 的值和可调用的替换 *** 作符

Linux 用户可以随意地定制 udev 规则文件的值。例如:my_root_disk, my_printer。同时也可以引用下面的替换 *** 作符:

$kernel, %k:设备的内核设备名称,例如:sda、cdrom。

$number, %n:  设备的内核号码,例如:sda3 的内核号码是 3。

$devpath, %p: 设备的 devpath路径。

$id, %b:设备在 devpath里的 ID 号。

$sysfs{file}, %s{file}:  设备的 sysfs里 file 的内容。其实就是设备的属性值。

$env{key}, %E{key}: 一个环境变量的值。

$major, %M:设备的 major 号。

$minor %m:设备的 minor 号。

$result, %c:PROGRAM 返回的结果。

$parent, %P:    父设备的设备文件名。

$root, %r:  udev_root的值,默认是 /dev/。

$tempnode, %N:临时设备名。

%%:符号 % 本身。

$$: 符号 $ 本身。

对比一下和man里的差别,$sysfs{file},这个在实际解决问题的时候是很有用的。

这种方法适合调试系统启动的时候对rules的调试,这个过程中是没得udevadmin monitor使用的。(当然,可以尝试自己写一个systemd启动服务,这就涉及到启动的时机、关联、影响,实际 *** 作会比预想的复杂)

这里提两个点:

1 env - 可以是udev事件里的属性(-p打印的)

2 $sysfs{file}, 这里的file就是在系统/sys目录下对应的节点下的文件,有些情况下只能在sysfs的file的内存才能准确区分事件。

1、修改config:

make menuconfig选择:

Base system ---> udev

Kernel modules ---> USB Support ---> kmod-usb-acm kmod-usb-net kmod-usb-net-qmi-wwan kmod-usb-ohci kmod-usb-serial kmod-usb-serial-option

LuCI ---> Protocols ---> luci-proto-3g luci-proto-qmi

Network ---> uqmi

Utilities ---> usb-modeswitch usbutils

make kernel_menuconfig

进入device drivers->usb support->support for host-side usb选择USB Modem (CDC ACM) support

进入USB Serial Converter support选择:

2、修改optionc: build_dir/target-x86_64_musl/linux-x86_64/linux-49146/drivers/usb/serial/optionc ,加入8300的pid和vid

static const struct usb_device_id option_ids[] = {

加入

drivers/network/usb/qmiw_wanc文件添加其USB ID,只有这样当modem插入时内核根据其id就可以加载qmi_wwan驱动了。

3、编译后发现/dev下多了ttyUSB1234四个节点和cdc-wan0,ifconfig -a多出一个wwan0。

修改路由配置文件vi /etc/config/network

添加如下内容

打开接口界面,wan点击连接,发现拨号成功,可以上网了。

vi

/etc/udev/rule/70-persistent-netrules

(查看eth0的mac地址是多少,将ifcfg-eth0

mac地址修改为相同,删除uuid行,hyper-v虚拟机的网卡也设置为该数值,安装linux集成服务,重启虚拟机后重启服务即可连通网络)

虚拟机网卡设置为静态地址,将ifcfg-eth0的配置通过:cat

/etc/sysconfig/network-script/ifcfg-eth0

>>/etc/sysconfig/network-script/ifcfg-eth1

追加到eth1中,并且将mac地址修改为网卡中的静态地址,删除eth0,重启服务

以上就是关于配置的网卡 配置文件在什么地方全部的内容,包括:配置的网卡 配置文件在什么地方、udev的rules定制和调试、openwrt编译加载龙尚U8300 4G网卡等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9472851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存