解决Linux问题:mdev s未运行的问题 (linux mdev -s没有运行)

Linux是一款强大的操作系统,但是跟其他任何操作系统一样,也会遇到一些问题。在本文中,我们将解决一个常见的问题:mdev s未运行的问题。mdev是一个Linux系统中的设备管理器。它通过内核hotplug机制来检测和处理插入和删除设备的事件。而当我们出现mdev s未运行的情况时,会导致系统无法管理设备,这将带来很多困难。下面我们将介绍如何解决这个问题。

1. 确认mdev是否在系统中安装

确保mdev已经安装在系统中。mdev通常是与busybox一起发布的,因此请检查busybox是否正确安装。您可以使用以下命令来检查:

$ busybox mdev -h

如果系统没有安装mdev,则需要首先安装mdev。

2. 确认系统配置文件是否正确

如果系统中已经安装了mdev,但仍然遇到mdev s未运行的问题,则可能是系统配置文件的问题。mdev使用配置文件/etc/mdev.conf来配置设备处理规则。检查配置文件是否存在并且是否出现错误。您可以使用以下命令来检查文件是否存在:

$ ls -l /etc/mdev.conf

如果文件不存在,则需要手动创建一个。如果文件存在,请确保它没有任何错误。在某些情况下,即使文件完全正确,也可能会遇到此问题。您可以通过键入以下命令重启mdev来解决此问题:

$ killall mdev && /in/mdev -s

3. 确认内核支持hotplug机制

mdev是通过内核hotplug机制来检测和处理插入和删除设备的事件。因此,如果该机制未启用,则mdev无法正常工作。您可以使用以下命令来检查系统内核是否支持hotplug机制:

$ grep HOTPLUG /usr/src/linux/.config

如果将返回以下文本,则hotplug机制已经启用:

CONFIG_HOTPLUG=y

否则,则需要按照以下步骤打开它:

1. 切换到内核源码目录并编辑.config文件:

$ cd /usr/src/linux

$ sudo nano .config

2. 搜索“CONFIG_HOTPLUG”:

Ctrl + W, CONFIG_HOTPLUG

3. 将配置选项更改为“y”:

CONFIG_HOTPLUG=y

4. 保存更改并退出nano。

5. 重新编译内核。

4. 检查设备是否正确连接

如果系统中已经安装了mdev,并且它已正确配置,并且内核也支持hotplug机制,但仍然出现mdev s未运行的问题,则可能是因为设备没有正确连接。请检查设备是否正确插入,并且是否存在任何设备驱动程序问题。

在本文中,我们探讨了mdev s未运行的问题以及如何解决它。通过确认mdev是否安装,系统配置文件是否正确,内核是否支持hotplug机制以及设备是否正确连接,您可以成功解决这个问题。在Linux系统中,出现问题是很常见的,但是有时问题可以通过花一些时间来解决。希望本文能够帮助您成功解决mdev s未运行的问题!

相关问题拓展阅读:

linux 能创建多少个network namespace

创建Network Namespace

ip netns add

例如:

ip netns add test

查看namespace

ip netns list

给Namespace添加接口

创建的Namespace不能添加真实的物理接口,只能添加虚拟接口veth(virtual Ethernet interface),它们经常成对出现并且像一个管道一样连在一起。

创建一对veth:veth0和veth1

ip link add veth0 type veth peer name veth1

通过命令可以查看我们创建的veth

# ip link list

1: lo: mtuqdisc noqueue state UNKNOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000

link/ether 08:00:27:ec:3c:70 brd ff:ff:ff:ff:ff:ff

3: eth1: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000

link/ether 08:00:27:d1:f2:b3 brd ff:ff:ff:ff:ff:ff

4: eth2: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000

link/ether 08:00:27:ad:03:e8 brd ff:ff:ff:ff:ff:ff

5: eth3: mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 08:00:27:b2:eb:13 brd ff:ff:ff:ff:ff:ff

6: virbr0: mtu 1500 qdisc noqueue state UNKNOWN

link/ether 52:54:00:eb:0e:7e brd ff:ff:ff:ff:ff:ff

7: virbr0-nic: mtu 1500 qdisc noop state DOWN qlen 500

link/ether 52:54:00:eb:0e:7e brd ff:ff:ff:ff:ff:ff

10: veth1: mtu 1500 qdisc noop state DOWN qlen 1000

link/ether 86:e4:2c:b1:77:d0 brd ff:ff:ff:ff:ff:ff

11: veth0: mtu 1500 qdisc noop state DOWN qlen 1000

link/ether 82:bf:54:c0:5c:a9 brd ff:ff:ff:ff:ff:ff

现在这两个veth都是属于默认(global)的Network Namespace,下面我们把veth0放到test的尘高樱namespace里,veth1保留在global的namespace里。

# ip link set veth0 netns test

# ip netns exec test ip a

9: lo: mtuqdisc noop state DOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

11: veth0: mtu 1500 qdisc noop state DOWN qlen 1000

link/ether 82:bf:54:c0:5c:a9 brd ff:ff:ff:ff:ff:ff

发现veth0已经跑到test这个namespace里了念运,全局的network namespace里已没有了veth0.

目前veth0和veth1时down的状态,下面我派丛们为两个veth对配置IP地址

ip netns exec test ip addr add 192.168.10.2/24 dev veth0

ip netns exec test ip link set veth0 up

# ip netns exec test ip a

9: lo: mtuqdisc noop state DOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

11: veth0: mtu 1500 qdisc pfifo_fast state DOWN qlen 1000

link/ether 82:bf:54:c0:5c:a9 brd ff:ff:ff:ff:ff:ff

inet 192.168.10.2/24 scope global veth0

#

给veth1配置IP地址,veth1在global的Network Namespace里

ip addr add 192.168.10.1/24 dev veth1 up

# ip a

10: veth1: mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 86:e4:2c:b1:77:d0 brd ff:ff:ff:ff:ff:ff

inet 192.168.10.1/24 scope global veth1

inet6 fe80::84e4:2cff:feb1:77d0/64 scope link

valid_lft forever preferred_lft forever

# ip netns exec test ip a

9: lo: mtuqdisc noop state DOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

11: veth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 82:bf:54:c0:5c:a9 brd ff:ff:ff:ff:ff:ff

inet 192.168.10.2/24 scope global veth0

inet6 fe80::80bf:54ff:fec0:5ca9/64 scope link

valid_lft forever preferred_lft forever

可以看到veth0和veth1都up了起来。验证一下连通性。

# ping 192.168.10.2

PING 192.168.10.2 (192.168.10.2) 56(84) bytes of data.

64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=0.084 ms

64 bytes from 192.168.10.2: icmp_seq=2 ttl=64 time=0.102 ms

^C

.168.10.2 ping statistics —

2 packets tranitted, 2 received, 0% packet loss, time 1326ms

rtt min/avg/max/mdev = 0.084/0.093/0.102/0.009 ms

# ip netns exec test ping 192.168.10.1

PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.

64 bytes from 192.168.10.1: icmp_seq=1 ttl=64 time=0.076 ms

64 bytes from 192.168.10.1: icmp_seq=2 ttl=64 time=0.076 ms

^C

.168.10.1 ping statistics —

Linux系统\Centos没有网卡eth0配置文件怎么办

修复步骤

1、关闭NetworkManager服务。

2、关闭NetworkManager开机启动

3、添加 /etc/sysconfig/network-scriipts/ifcfg-eth0 文件。

注:文件肆手羡内容的值根据实际情况修改

4、开机启动network。裂拍

5、薯咐开启network服务。

一、配置文件详解

在RHEL或者CentOS等Redhat系的Linux系统里,跟网络有关的主要设置文件如下:

/etc/host.conf配置域名服务客户端的控制文件

/etc/hosts完成主机名映射为IP地址的功能

/etc/resolv.conf域名服务客户端的配置文件,用于指定域名服务器的位置

/etc/sysconfig/郑余network 包含了主机最基本的网络信息,用于系统启动.

/etc/sysconfig/network-script/ 系统启动时初始化网络的一些信息

/etc/xinetd.conf定义了由超级进程xinetd启动的网络服务

/etc/networks完成域名与网络地址的映射

/etc/protocols设定了主机使用的协议以及各个协议的协议号

/etc/services设定主机的不同端口的网络服务

1. /etc/host.conf文件的默认信息如下:

multi on#允许主机拥有多个IP地址

order hosts,bind #主机名解析顺序,即本地解析,DNS域名哪蚂解析的顺序

这个文件一般不需要我们修改,默认的解析顺序是本地解析,DNS服务器解析,也就是说在李丛埋本系统里对于一个主机名首先进行本地解析,如果本地解析没有,然后进行DNS服务器解析。

2. /etc/hosts文件默认的内容大概如下:

127.0.0.1 butbueatiful localhost.localdomain localhost

::localhost6.localdomain6 localhost6

可见,默认的情况是本机ip和本机一些主机名的对应关系,之一行是ipv4信息,第二行是ipv6信息,如果用不上ipv6本机解析,一般把该行注释掉。

之一行的解析效果是,butbueatiful localhost.localdomain localhost都会被解析成127.0.0.1,我们可以用ping试试。

# ping -c 3 butbueatiful

PING butbueatiful (127.0.0.1) 56(84) bytes of data.

64 bytes from butbueatiful (127.0.0.1): icmp_seq=1 ttl=64 time=0.061 ms

64 bytes from butbueatiful (127.0.0.1): icmp_seq=2 ttl=64 time=0.052 ms

64 bytes from butbueatiful (127.0.0.1): icmp_seq=3 ttl=64 time=0.051 ms

— butbueatiful ping statistics —

3 packets tranitted, 3 received, 0% packet loss, time 1999ms

rtt min/avg/max/mdev = 0.051/0.054/0.061/0.009 ms

# ping -c 3 localhost.localdomain

PING butbueatiful (127.0.0.1) 56(84) bytes of data.

64 bytes from butbueatiful (127.0.0.1): icmp_seq=1 ttl=64 time=0.055 ms

64 bytes from butbueatiful (127.0.0.1): icmp_seq=2 ttl=64 time=0.035 ms

64 bytes from butbueatiful (127.0.0.1): icmp_seq=3 ttl=64 time=0.050 ms

— butbueatiful ping statistics —

3 packets tranitted, 3 received, 0% packet loss, time 1999ms

rtt min/avg/max/mdev = 0.035/0.046/0.055/0.011 ms

看到上面的结果,你可能会问为什么ping localhost.localdomain的时候,下面显示的是却是butbueatiful,这是因为之一个主机名butbueatiful后面的那些主机名其实都是butbueatiful的主机别名。

如果我们要追加新的本地解析,比如我们希望在我们的机器里把yyyy.com和

www.yyyy.com

都解析成192.168.0.100,那么就追加如下一句即可:

192.168.0.100 yyyy.com

www.yyyy.com

同样,在这里,

www.yyyy.com

是yyyy.com的主机别名。

如果你仔细一想,会发现,其实这个文件是很危险的,如果有人恶意修改了你这个文件,比如把淘宝的网站域名解析到了他的钓鱼网站,那你就要中招了。

3. /etc/resolv.conf, 指定域名解析的DNS服务器IP等信息, 配置参数一般接触到的有4个:

nameserver 指定DNS服务器的IP地址

domain定义本地域名信息

search定义域名的搜索列表

sortlist 对gethostbyname返回的地址进行排序

但是最常用的配置参数是nameserver,其他的可以不设置,这个参数指定了DNS服务器的IP地址,如果设置不正确,就无法进行正常的域名解析。

一般来说,推荐设置2个DNS服务器,比如我们用google的免费DNS服务器,那么该文件的设置内容如下:

nameserver 8.8.8.8

nameserver 8.8.4.4

同样,这个文件也是危险的,如果被人恶意改成了他自己的DNS服务器,他就可以为所欲为的控制你通过域名访问的每个目的地了,这就是常说的DNS劫持。

4. /etc/sysconfig/network, 典型的配置如下:

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=butbueatiful

GATEWAY=192.168.0.1

参数简要解释:

NETWORK设置网络是否有效,yes有效,no无效

NETWORKING_IPV6 设置ipv6网络是否有效,yes有效,no无效

HOSTNAME设置服务器的主机名,更好和/etc/hosts里设置一样,否则在使用一些程序的时候会有问题。

GATEWAY指定默认网关IP

5. ifcfg-ethX, 设置对应网口的IP等信息, 比如之一个网口, 那么就是/etc/sysconfig/network-scripts/ifcfg-eth0,配置例子:

DEVICE=”eth0″

BOOTPROTO=”static”

BROADCAST=”192.168.0.255″

HWADDR=”00:16:36:1B:BB:74″

IPADDR=”192.168.0.100″

NETMASK=”255.255.255.0″

ONBOOT=”yes”

参数简要解释:

DEVICE设备名,不要自己乱改,和文件ifcfg-ethX里的ethX要一致

BROADCAST 广播地址

HWADDR物理地址,这个你不要乱改

IPADDRIP地址

NETMASK子网掩码

ONBOOT启动或者重启网络时,是否启动该设备,yes是启动,no是不启动

BOOTPROTO 开机协议,最常见的三个参数如下:

static(静态IP)

none(不指定,设置固定ip的情况,这个也行,但是如果要设定多网口绑定bond的时候,必须设成none)

dhcp(动态获得IP相关信息)

6. route-ethX,比如之一个网口eth0的路由信息,那么就是/etc/sysconfig/network-scripts/route-eth0:

比如我们现在有这样一个需求,通过eth0去网络172.17.27.0/24不走默认路由,需要走192.168.0.254,那么我们之一反应,肯定是用route命令追加路由信息:

# route add -net 172.17.27.0 netmask 255.255.255.0 gw 192.168.0.254 dev eth0

可是,你没意识到的是,这样只是动态追加的而已,重启网络后,路由信息就消失了,所以需要设置静态路由,这时候就要设置/etc/sysconfig/network-scripts/route-eth0文件了,如果没有该文件,你就新建一个:

# vi /etc/sysconfig/network-scripts/route-eth0

#追加

172.17.27.0/24via 192.168.0.254

这下即使重启网络,重启系统,该路由也会自动加载,当然了,如果你没有这样的需要,那么这个文件就没必要创建和配置了。

ifconfig

看看网卡信息,centos的网卡好像不叫eth0

如果ifconfig显示的网卡是伏灶厅eth0,你手动创建一个。mac地址别写错了。

然后就辩颤可以对eth0进行操作了。缺隐

自己在/etc/sysconfig/network-scripts/下面创建一个

ifcfg-eth0的文件,把网悉胡卡的配置写到里面就行了。或者携陆握参考下面的配置。

===========================

DEVICE=”eth0″

BOOTPROTO=”static”

HWADDR=”00:0C:29:5E:7F:95″

IPV6INIT=”no”

NM_CONTROLLED=”yes”

ONBOOT=”yes”

TYPE=”Ethernet”

UUID=”c766235cc0b-84b9-8fc4″

IPADDR=”192.168.0.83″辩庆

NETMASK=”255.255.255.0″

GATEWAY=”192.168.0.1″

新建拿渗棚喊腔一个就可以了

vi

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

UUID=5cb2c-4229-aa5f-5b012e9a0899

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=none

IPADDR=192.168.0.35

PREFIX=24

GATEWAY=192.168.0.1

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME=”System

eth0″

HWADDR=MAC地址,请根据你的来写,消则或者不写00:0c:29:83:b3:90

DNS1=114.114.114.114

LAST_CONNECT=

arm板和虚拟机下linux网络ping的速度很慢

在挂在NFS的丛敬时候,使用参数指明镇歼NFS使用TCP连接(NFS默认使用UDP连接)这样渗旅慎稳定性就很好了。

mount -t nfs -o nolock,tcp you_host_ip:host_nfs_path target_mount_path

都有一定程度的丢包啊,你用的是哪家的开发板?建议考虑培银是开发板的网卡接口或者是网卡芯片虚焊导致,因为我就遇到这样的情况,一开始好好的,后来就是NFS时不灶睁时的隐中岁掉了,网卡显示up然后就down再up。反复重新连接。如果发现因为你说linux下能正常上网,就不考虑是linux的问题。着重查看开发板的网卡。或者是你用的网卡驱动不对。DM9000和DM9000A还是有些区别的。

你是经过路由器连接开发板和主机 还裂腊是 用交换机棚稿连接开发板和主机的!?

如果是前者就是你的网速太慢了 可能太多人用一链源孝个路由器上网!

呵呵

linux mdev -s没有运行的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux mdev -s没有运行,解决Linux问题:mdev s未运行的问题,linux 能创建多少个network namespace,Linux系统\Centos没有网卡eth0配置文件怎么办,arm板和虚拟机下linux网络ping的速度很慢的信息别忘了在本站进行查找喔。


数据运维技术 » 解决Linux问题:mdev s未运行的问题 (linux mdev -s没有运行)