AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题

问题[udev](ubuntu)

Martin Hope
dfluff
Asked: 2023-02-20 20:09:02 +0800 CST

与主分区相关的 dbus-daemon 和 systemd-udevd 的高 CPU 使用率

  • 6

我正在运行 Ubuntu 20.04.5 LTS 并使用 gnome-classic 桌面(因为我坚​​持自己的方式)。当我最初登录时,我总是注意到 dbus-daemon 占用了几分钟的高 CPU,但它总是会稳定到可接受的水平。然而,在过去的几天里,dbus-daemon 和 system-udevd 一直占 CPU 的 50%,并且在笔记本电脑运行时没有稳定下来,导致风扇不断运行。

我运行了dbus-monitor --system一个非常快速的消息假脱机运行,如下面的摘录:

signal time=1676894325.355898 sender=org.freedesktop.DBus -> destination=:1.245 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.245"
signal time=1676894325.365912 sender=:1.1 -> destination=(null destination) serial=4880989 path=/org/freedesktop/systemd1/unit/sys_2ddevices_2dvirtual_2dblock_2ddm_5cx2d2_2edevice; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
   string "org.freedesktop.systemd1.Device"
   array [
      dict entry(
         string "SysFSPath"
         variant             string "/sys/devices/virtual/block/dm-2"
      )
   ]
   array [
   ]
signal time=1676894325.366042 sender=:1.1 -> destination=(null destination) serial=4880990 path=/org/freedesktop/systemd1/unit/sys_2ddevices_2dvirtual_2dblock_2ddm_5cx2d2_2edevice; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
   string "org.freedesktop.systemd1.Unit"
   array [
      dict entry(
         string "ActiveState"
         variant             string "active"
      )
      dict entry(
         string "SubState"
         variant             string "plugged"
      )
      dict entry(
         string "StateChangeTimestamp"
         variant             uint64 1676892339266329
      )
      dict entry(
         string "StateChangeTimestampMonotonic"
         variant             uint64 19734942
      )
      dict entry(
         string "InactiveExitTimestamp"
         variant             uint64 1676892339266329
      )
      dict entry(
         string "InactiveExitTimestampMonotonic"
         variant             uint64 19734942
      )
      dict entry(
         string "ActiveEnterTimestamp"
         variant             uint64 1676892339266329
      )
      dict entry(
         string "ActiveEnterTimestampMonotonic"
         variant             uint64 19734942
      )
      dict entry(
         string "ActiveExitTimestamp"
         variant             uint64 0
      )
      dict entry(
         string "ActiveExitTimestampMonotonic"
         variant             uint64 0
      )
      dict entry(
         string "InactiveEnterTimestamp"
         variant             uint64 0
      )
      dict entry(
         string "InactiveEnterTimestampMonotonic"
         variant             uint64 0
      )
      dict entry(
         string "Job"
         variant             struct {
               uint32 0
               object path "/"
            }
      )
      dict entry(
         string "ConditionResult"
         variant             boolean false
      )
      dict entry(
         string "AssertResult"
         variant             boolean false
      )
      dict entry(
         string "ConditionTimestamp"
         variant             uint64 0
      )
      dict entry(
         string "ConditionTimestampMonotonic"
         variant             uint64 0
      )
      dict entry(
         string "AssertTimestamp"
         variant             uint64 0
      )
      dict entry(
         string "AssertTimestampMonotonic"
         variant             uint64 0
      )
      dict entry(
         string "InvocationID"
         variant             array of bytes [
               4c 6f ff 28 3e 58 4e 6e 81 82 b3 1c 0c 83 82 3b
            ]
      )
   ]
   array [
      string "Conditions"
      string "Asserts"
   ]
signal time=1676894325.366191 sender=:1.1 -> destination=(null destination) serial=4880991 path=/org/freedesktop/systemd1/unit/dev_2ddm_5cx2d2_2edevice; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
   string "org.freedesktop.systemd1.Device"
   array [
      dict entry(
         string "SysFSPath"
         variant             string "/sys/devices/virtual/block/dm-2"
      )
   ]
   array [
   ]
signal time=1676894325.366431 sender=:1.1 -> destination=(null destination) serial=4880992 path=/org/freedesktop/systemd1/unit/dev_2ddm_5cx2d2_2edevice; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
   string "org.freedesktop.systemd1.Unit"
   array [
      dict entry(
         string "ActiveState"
         variant             string "active"
      )
      dict entry(
         string "SubState"
         variant             string "plugged"
      )
      dict entry(
         string "StateChangeTimestamp"
         variant             uint64 1676892339266328
      )
      dict entry(
         string "StateChangeTimestampMonotonic"
         variant             uint64 19734941
      )
      dict entry(
         string "InactiveExitTimestamp"
         variant             uint64 1676892339266328
      )
      dict entry(
         string "InactiveExitTimestampMonotonic"
         variant             uint64 19734941
      )
      dict entry(
         string "ActiveEnterTimestamp"
         variant             uint64 1676892339266328
      )
      dict entry(
         string "ActiveEnterTimestampMonotonic"
         variant             uint64 19734941
      )
      dict entry(
         string "ActiveExitTimestamp"
         variant             uint64 0
      )
      dict entry(
         string "ActiveExitTimestampMonotonic"
         variant             uint64 0
      )
      dict entry(
         string "InactiveEnterTimestamp"
         variant             uint64 0
      )
      dict entry(
         string "InactiveEnterTimestampMonotonic"
         variant             uint64 0
      )
      dict entry(
         string "Job"
         variant             struct {
               uint32 0
               object path "/"
            }
      )
      dict entry(
         string "ConditionResult"
         variant             boolean false
      )
      dict entry(
         string "AssertResult"
         variant             boolean false
      )
      dict entry(
         string "ConditionTimestamp"
         variant             uint64 0
      )
      dict entry(
         string "ConditionTimestampMonotonic"
         variant             uint64 0
      )
      dict entry(
         string "AssertTimestamp"
         variant             uint64 0
      )
      dict entry(
         string "AssertTimestampMonotonic"
         variant             uint64 0
      )
      dict entry(
         string "InvocationID"
         variant             array of bytes [
               0c b8 d1 90 42 3e 45 b6 88 f3 71 6e 66 1e 83 c5
            ]
      )
   ]
   array [
      string "Conditions"
      string "Asserts"
   ]

运行udevadm monitor给出了类似的消息流,虽然不是那么快,如下所示:

KERNEL[2188.932041] change   /devices/virtual/block/dm-2 (block)
UDEV  [2188.940914] change   /devices/virtual/block/dm-2 (block)
KERNEL[2188.945441] change   /devices/virtual/block/dm-2 (block)
UDEV  [2188.957689] change   /devices/virtual/block/dm-2 (block)
KERNEL[2188.961225] change   /devices/virtual/block/dm-2 (block)
UDEV  [2188.969813] change   /devices/virtual/block/dm-2 (block)
KERNEL[2188.974779] change   /devices/virtual/block/dm-2 (block)

dm-2显然是出于某种原因。 dm-2是我的主分区:

~$ ls -l /dev/mapper/
total 0
crw------- 1 root root 10, 236 Feb 20 11:25 control
lrwxrwxrwx 1 root root       7 Feb 20 12:02 home -> ../dm-2
lrwxrwxrwx 1 root root       7 Feb 20 11:25 sda3_crypt -> ../dm-0
lrwxrwxrwx 1 root root       7 Feb 20 11:25 swap -> ../dm-1

我对 dbus 和 udev 的理解至少可以说是有限的,但是一些谷歌搜索让我看到了这篇文章,该文章建议我创建一个文件/etc/udev/rulesd/90-fixdm.rules,其中包含

ACTION=="add|change", KERNEL=="dm-*", OPTIONS:="nowatch"

这确实立即使这两个进程平静下来并恢复了我的 CPU 周期(并阻止笔记本电脑风扇持续运行)。然而,第二天笔记本电脑无法启动,挂在一个永远不会启动的“等待/dev/mapper/swap”作业上。一个惊慌失措的使用 Live-Ubuntu 棒从稍后删除文件/etc/udev/rulesd/90-fixdm.rules,我回到原点 - 笔记本电脑再次启动,但高 CPU 使用率已经dbus-daemon恢复system-udevd。

可能发生了什么变化导致了这种新行为,我该怎么做才能解决这个问题?

谢谢。

udev
  • 1 个回答
  • 23 Views
Martin Hope
DottoreM
Asked: 2022-05-08 10:32:48 +0800 CST

在 /dev/ 路径中列出设备

  • 0

我已经尝试了几天让我的 ESP32 在 /dev/ttyUSB* 中显示

我根本无法让它显示

我正在运行 ubuntu

如果我做 lsusb 我得到

Bus 001 Device 006: ID 1a86:55d4 QinHeng Electronics USB Single Serial

如果我运行:

ls -l /dev/ttyUS*
ls: cannot access '/dev/ttyUS*': No such file or directory

sudo dmesg
[ 2453.003616] usb 1-1.1: new full-speed USB device number 8 using xhci_hcd
[ 2453.112386] usb 1-1.1: New USB device found, idVendor=1a86, idProduct=55d4, bcdDevice= 4.43
[ 2453.112403] usb 1-1.1: New USB device strings: Mfr=0, Product=2, SerialNumber=3
[ 2453.112410] usb 1-1.1: Product: USB Single Serial
[ 2453.112416] usb 1-1.1: SerialNumber: [removed by me] 

我究竟做错了什么?有一次我运行了一个 ls /dev/* 并且通过消除我发现该设备是

lrwxrwxrwx 1 root root 18 May  7 20:07 189:5 -> ../bus/usb/001/006

编辑

 ubuntu@raspberrypi:~$ usb-devices | awk '/55d4/' RS=
 T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  8 Spd=12  MxCh= 0
 D:  Ver= 1.10 Cls=02(commc) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
 P:  Vendor=1a86 ProdID=55d4 Rev=04.43
 S:  Product=USB Single Serial
 S:  SerialNumber= Same as the one before
 C:  #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=134mA
 I:  If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=(none)
 I:  If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)

我在跑步 :

 Welcome to Ubuntu 21.10 (GNU/Linux 5.13.0-1025-raspi aarch64)
udev
  • 1 个回答
  • 436 Views
Martin Hope
Bram
Asked: 2021-11-24 10:46:38 +0800 CST

libudev 的静态版本在哪里?

  • 1

因为我希望我的二进制文件在较旧的发行版上运行,所以我决定构建一个静态链接的二进制文件。

我的应用程序依赖于libhid-hidraw并通过它依赖于libudev。

我已经安装了开发包:

sudo apt install libudev-dev libhidapi-dev

当我尝试链接时,我收到此错误:

cc -g -Wall -Wextra -static daemon/turboledzd.c -o daemon/turboledzd -lhidapi-hidraw -ludev
/usr/bin/ld: cannot find -ludev
collect2: error: ld returned 1 exit status

在我的系统上,存在一个libhidapi-hidraw.a文件:

$ dpkg -S hidraw.a
libhidapi-dev:amd64: /usr/lib/x86_64-linux-gnu/libhidapi-hidraw.a

但是udev没有这样的静态库:

$ dpkg -S libudev.
libudev1:i386: /usr/lib/i386-linux-gnu/libudev.so.1
libudev-dev:amd64: /usr/lib/x86_64-linux-gnu/pkgconfig/libudev.pc
python3-pyudev: /usr/lib/python3/dist-packages/pyudev/_ctypeslib/libudev.py
libudev1:amd64: /usr/lib/x86_64-linux-gnu/libudev.so.1.7.1
libudev-dev:amd64: /usr/lib/x86_64-linux-gnu/libudev.so
libudev1:amd64: /usr/lib/x86_64-linux-gnu/libudev.so.1
libudev-dev:amd64: /usr/include/libudev.h
libudev1:i386: /usr/lib/i386-linux-gnu/libudev.so.1.7.1
libudev-dev:amd64: /usr/share/man/man3/libudev.3.gz

哪个 Ubuntu 软件包将包含该libudev.a库?

udev
  • 1 个回答
  • 428 Views
Martin Hope
undercat
Asked: 2020-12-22 05:22:08 +0800 CST

无法使用 HWDB 重新映射 Microsoft 键盘上的键

  • 0

我正在尝试使用 HWDB 在我的 Microsoft 有线键盘 600 上重新映射LCtrl,CapsLock但无论出于何种原因,系统都看不到我所做的更改。

这就是我的hwdb规则的样子:

evdev:input:b*v045Ep07F8*
 KEYBOARD_KEY_3a=leftctrl
 KEYBOARD_KEY_1d=capslock

供应商和型号代码来自lsusb并在/sys/devices/pci0000:00/*

将配置文件复制到 后,在键盘配置中/etc/udev/hwdb.d运行systemd-hwdb update和发出没有任何更改。udevadm trigger

我也试过:

  • 重新启动 - 没有帮助。
  • 将总线明确指定为0003— 没有帮助。
  • 确认evtest我使用的键码对我的键盘是正确的——是的,这些键码是正确的。
  • 确认已应用的规则已在列表中列出sudo udevadm info /sys/class/input/eventX——是的,新规则已列出,这应该意味着它们已成功应用?然而,这些键的行为方式与以前相同。
E: KEYBOARD_KEY_1d=capslock
E: KEYBOARD_KEY_3a=leftctrl
E: ID_USB_DRIVER=usbhid

当我evdev:atkbd:dmi:*用作设备标识符时,更改已正确应用于我的笔记本电脑键盘,因此我知道我用来重新映射键的规则和过程应该是正确的,这一定是标识符错误的问题(尽管我已经检查了五次)。

任何帮助将不胜感激。

keyboard systemd udev 20.04 microsoft-keyboard
  • 1 个回答
  • 335 Views
Martin Hope
timss
Asked: 2020-09-24 04:25:40 +0800 CST

在 20.04 自动安装期间,Netplan 应用在 udevadm 上失败

  • 0

在执行新的 Subiquity 服务器自动安装程序的网络部分期间,它会失败并返回非零代码 on netplan apply,然后它会udevadm settle -t 0一遍又一遍地运行,返回退出代码 1 直到它最终放弃。

来自一份/var/crash报告:

# date/time removed for readability
DEBUG subiquitycore.netplan:111 config for ens2f0 = {}
DEBUG subiquitycore.netplan:111 config for ens2f0 = {}
DEBUG subiquitycore.netplan:135 config for bond0 = 
    {'dhcp4': True, 'interfaces': ['ens2f0', 'ens2f1'], 'parameters': {'lacp-rate': 'slow', 'mode': '802.3ad', 'transmit-hash-policy', 'layer2'}}
DEBUG subiquitycore.utils:74 arun_command called: ['netplan', 'apply']
DEBUG subiquitycore.utils:48 run_command called: ['udevadm', 'settle', '-t', '0']
DEBUG subiquitycore.utils:61 ['udevadm', 'settle', '-t', '0'] exited with code 1
DEBUG subiquitycore.controller.network:196 waiting 0.1 to let udev event queue settle
<repeating udevadm settle commands issued>

(相关)自动安装配置:

#cloud-config
autoinstall:
  version: 1

  # double network due to a bug
  # see https://ubuntu.com/server/docs/install/autoinstall-reference#network
  network:
    network:
      version: 2
      ethernets:
        ens2f0: {}
        ens2f1: {}
      bonds:
        bond0:
          dhcp4: true
          interfaces:
            - ens2f0
            - ens2f1
          parameters:
            mode: 802.3ad
            lacp-rate: slow
            transmit-hash-policy: layer2

这会生成以下 Netplan 配置 ( /etc/netplan/00-installer-config.yaml):

# This is network config written by 'subiquity'
network:
  bonds:
    bond0:
      dhcp4: true
      parameters:
        mode: 802.3ad
        lacp-rate: slow
        transmit-hash-policy: layer2
  ethernets:
    ens2f0: {}
    ens2f1: {}
  version: 2

我还尝试了一个更简单的 netplan 配置,在一个端口 ( ens2f0) 上只有一个静态地址,甚至在任何接口匹配eth*或en*(在本例中ens2f0为ens2f1

我的理论是,有一个模块或其他东西在 udev 中创建了一个未处理甚至可能不相关的事件,但是我将如何调试呢?

此外,即使正确配置了相关设备和接口,如果udev中存在此类未处理的事件,Netplan也不会继续进行下去,这不是很大的侵略性吗?


设置:
Ubuntu 20.04 每日构建 20200923(尝试 20.04.1 和初始 LTS 版本)
Netplan 0.99-ubuntuu3~20.04.2
Systemd 245.4-4ubuntu3.2

Supermicro X11DDW-L
Mellanox ConnectX-5 (PCI-E)
BIOS/旧版启动(由于 UEFI 中此 NIC/主板之间不兼容)

udev netplan 20.04 curtin subiquity
  • 1 个回答
  • 731 Views
Martin Hope
Arko
Asked: 2020-07-13 02:19:09 +0800 CST

sc-controller 在 ubuntu 20.04 中不起作用

  • 0

我按照帖子中提到的关于使 sc-controller 在 ubuntu 20.04 上工作的步骤(如何让 sc-controller 在 20.04 上运行)但它们对我不起作用。

  1. 我/dev/uinput rw,在第 30 行添加到 /var/lib/snapd/apparmor/profiles/snap.sc-controller.sc-controller (前面有两个空格以与其余代码对齐)
  2. 我跑了sudo apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap.sc-controller.sc-controller
  3. 我补充说KERNEL=="uinput", TAG+="snap_sc-controller":/etc/udev/rules.d/70-snap.sc-controller.rules
  4. 我跑了sudo udevadm trigger --subsystem-match=misc
  5. 重新启动后,当我运行时,udevadm info /dev/uinput我有E: TAGS=:uaccess:seat:snap_sc-controller:,但 sc-controller 显示Failed to create uinput device. Error code: -1 任何人都知道我做错了什么?
drivers udev
  • 1 个回答
  • 441 Views
Martin Hope
Stephen Boston
Asked: 2020-07-02 15:56:59 +0800 CST

Brother 打印机 udev 配置错误:: systemd-udevd[514]: /etc/udev/rules.d/60-brother-libsane-type1-inst.rules:14 Invalid key 'SYSFS'

  • 0

我在日记中看到了这个错误。

 systemd-udevd[514]: /etc/udev/rules.d/60-brother-libsane-type1-inst.rules:14 Invalid key 'SYSFS'

规则文件似乎是关于 USB 的,但我不理解它的所有引用,所以我不能肯定地说。

事实:打印机不是通过 USB 而是通过 wifi 连接的,所以我可能不需要这个有问题的文件?或者问题可能是 udev 正在寻找 USB 上的打印机,但没有找到,所以......

打印机工作得很好,没有其他问题的迹象,但我想知道。我不喜欢在日记中看到错误。

usb udev brother
  • 1 个回答
  • 474 Views
Martin Hope
orestisf
Asked: 2020-06-17 00:36:37 +0800 CST

ubuntu 18.04 (gnome) 如何自动检测监视器的变化?

  • 1

在 Ubuntu 18.04 中,当我停靠笔记本电脑时,显示器布局会分配给笔记本电脑未停靠时的先前配置。

最近我改变了发行版和桌面环境,我想在我的新设置上复制它。

我了解了autorandr,但在搜索了我的旧系统后,我发现它没有安装在那里。

那么,GNOME/ubuntu 配置的哪一部分处理了这个变化?它是在某处的代码中烘焙的还是可以提取的?

gnome xorg xrandr monitor udev
  • 1 个回答
  • 141 Views
Martin Hope
Puspam
Asked: 2020-06-07 07:18:24 +0800 CST

如何自动化 usb_modeswitch?

  • 2

我使用 USB LTE 调制解调器连接到互联网。问题是,每次我将它连接到我的 PC 时,它都会首先被识别为大容量存储设备。每次插入时我都需要手动运行此命令:sudo usb_modeswitch -J -v 12d1 -p 14fe将其模式更改为Modem/Networkcard。这不是一个大问题,但每次这些步骤都会变得非常累人。
如何自动化此过程,以便每次插入设备时,它首先被识别为调制解调器?

networking usb usb-modem udev
  • 1 个回答
  • 1665 Views
Martin Hope
Alireza
Asked: 2020-05-26 10:55:26 +0800 CST

开发目录中的橙色文件是什么?

  • 0

我在整个根目录中查找,但我不明白一件事 dev 目录中的橙色是什么意思?我知道它的系统设备目录,但我不明白 ls -l 权限部分中的c以及那是什么类型的文件?这个数据文件是 HAL 用来读取和识别系统设备的吗?这是终端的截图 终端截图

ls udev hal
  • 1 个回答
  • 461 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve