当前位置:首页 > CN2资讯 > 正文内容

linux缺少java linux缺少libudev

10小时前CN2资讯


linux安装 libudev

什么是libudev

udev使用笔记
参考URL: http://itpcb.com/a/182009

udev是linux kernel的设备管理器,在最新的内核版本中kernel_3.10中udev已经代替了以前devfs、hotplug等功能**,意味着它要处理添加/删除硬件时,所有的用户空间行为。**

实际上为什么我关注这个udev,因为看sysfs的源码时,sysfs完成创建删除一个设备之后,会通过netlink的方式发送uevent通知udevd,udevd守护进程接手sysfs传过来uevent,将完成剩下的工作。

udev由三个部分组成:

  • libudev函数库: /usr/include/libudev.h
  • udevd守护进程,现在已经集成到systemd中,可以使用systemctl命令查看。
  • 管理命令udevadm:/usr/bin/udevadm
root@VM-0-2-ubuntu:~# systemctl |grep udevd systemd-udevd.service loaded active running udev Kernel Device Manager systemd-udevd-control.socket loaded active running udev Control Socket systemd-udevd-kernel.socket loaded active running udev Kernel Socket root@VM-0-2-ubuntu:~#

udev的守护进程在linux的位置在systemd中的位置如下所示,举个例子:如果向pc中插入一个usb设备,kernel在总线上发现这个设备,使用dirver初始化,在sysfs创建device目录等操作之后,将通知用户空间的udev,然后上层的显示层才能看到这个usb设备,并最终将它显示在desktop上:

udevadm命令

udevadm是一个udev的管理工具,可以用来监视和控制udev运行时的行为,请求内核事件,管理事件队列,以及提供简单的调试机制。

udevadm主要命令:

  • info 查询sysfs或者udev的数据库
  • trigger 从内核请求events
  • settle 查看udev事件队列,如果所有的events已处理则退出
  • control 修改udev后台的内部状态信息
  • monitor 监控内核的uevents
  • hwdb 处理硬件数据库索引
  • test

主要学习一下info和monitor命令
udevadm info
这个命令实际上和数据库的sql语句差不多,–query=查询的内容,其他的参数都是查询条件

例1:

udevadm info --query=all --name=sda 查询sda的所有信息
等价于select * from devicedb where name=sda

例2:

udevadm info --query=path --name=sda
out>>/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda
等价于select path from devicedb where name=sda

例3:查看nvme0和nvme0n1的path

udevadm info --query=path --name=nvme0
out>>/devices/pci0000:00/0000:00:03.0/0000:05:00.0/misc/nvme0
udevadm info --query=path --name=nvme0n1
out>>/devices/pci0000:00/0000:00:03.0/0000:05:00.0/block/nvme0n1
//nvme0n1是一个块设备
例4:查看nvme0n1的所有父设备一直到sysfs的根节点

udevadm info --attribute-walk --name=/dev/nvme0n1
out>>nvme0n1–>pci上的nvmedriver–>pci上的pcieport–>pci0000:00

udevadm monitor
使用ldd3的lddbus模块编写lddbus.ko,这个模块会向sysfs中注册一个ldd总线和一个ldd0的device,执行

rmmod lddbus.ko
insmod lddbus.ko
同时,打开udevadm monitor的监控,能够看到sysfs给用户空间发过来的uevent消息:

KERNEL[165.870420] remove /bus/ldd (bus)
KERNEL[165.870456] remove /module/lddbus (module)
UDEV [165.875327] remove /bus/ldd (bus)
UDEV [165.876792] remove /module/lddbus (module)
KERNEL[165.880762] add /module/lddbus (module)
KERNEL[165.880788] add /bus/ldd (bus)
UDEV [165.883520] add /bus/ldd (bus)
UDEV [165.885141] add /module/lddbus (module)
可以看到,一个kernel发上来的uevent,udev都会有一个动作去响应

ubuntu 安装 libudev

ubuntu 安装 libudev,直接由 apt-get install libudev-dev 可以搞定


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/25816.html

    分享给朋友:

    “linux缺少java linux缺少libudev” 的相关文章

    宝塔面板安装指南:轻松搭建与管理云服务器

    宝塔面板是一款专为服务器运维设计的工具,以其简单易用的操作界面受到广泛欢迎。我在使用云服务器建站时,发现宝塔面板让繁琐的服务器管理变得轻松自如。它支持一键安装LAMP和LNMP环境,用户可以在数分钟内搭建出一个完整的网站环境,而且它还集成了监控、数据库管理、FTP等多种功能,真是一个多面手。 无论是...

    如何选择低价域名注册商及推荐后缀

    在如今的互联网时代,拥有一个独特而便宜的域名变得尤为重要。无论你是想开始一个新项目、建立个人博客,还是开设在线商店,低价域名都能为你节省一笔不小的预算。接下来,我会盘点一些国外和国内的低价域名注册商,帮助你做出明智的选择。 一、国外便宜域名注册商概览 GoDaddy 我个人对GoDaddy的印象非...

    如何利用闲置VPS赚钱 - 探索多种盈利方式

    在互联网蓬勃发展的背景下,很多人手中会有闲置的VPS(虚拟私人服务器)。这些资源如果不加利用,往往就是一笔浪费。因此,了解闲置VPS赚钱的方法十分必要。这不仅可以让我们的小投资产生回报,也能为我们探索更广阔的网络世界提供平台。 闲置VPS的定义相对简单,指的是那些未被充分利用的服务器资源。它们通常具...

    GA Cloud:全球化一站式云计算服务,优化您的企业数据管理

    GA Cloud成立于2021年,实际上是我对云计算服务界的一次全新探索。作为一家致力于全球化一站式云计算服务的公司,GA Cloud在市场中逐渐凸显出它的实力和影响力。我们在香港本地拥有8个以上的POP接入点,同时也在马来西亚、美国、日本、欧洲等地设立了多个数据中心。目前,我们的数据机柜数量已超过...

    Rackdog:高性价比的独立服务器租赁和托管解决方案

    Rackdog是一家充满活力的基础设施即服务(IaaS)提供商,成立于2020年。作为互联网时代的重要角色,Rackdog专注于独立服务器出租和托管业务,拥有一系列丰富的服务。通过自己的设备和网络架构,Rackdog正在为客户提供优质的托管解决方案。 Rackdog的AS号是AS398465,拥有多...

    瓦工职业特征与发展前景分析

    瓦工,这个听起来有些古老的职业,实际上在我们的社会中扮演着举足轻重的角色。它主要负责砌筑工作,用砖块、砌块和砂浆等材料建造房屋、烟囱等不同结构。北方地区的人们常常把瓦工称为泥工,虽然这两者有些细微差别,但归根结底,瓦工是建筑行业不可缺少的一个部分。 在瓦工的工作范围里,涉及到建筑砌体、隔墙、瓦片铺装...