Articles of UDEV

如何在USB闪存驱动器插入上运行Python脚本

我的目标是在USB闪存驱动器插入上运行Python脚本。 我写了一个udev规则和一个在该规则中调用的shell脚本。 udev规则:/etc/udev/rules.d/10-usb.rules KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", RUN+="/home/Hypotheron/Desktop/script.sh" script.sh: #!/bin/sh echo 'Hello, world.' > /home/Hypotheron/Desktop/foo.txt #/home/Hypotheron/Desktop/job.py & exit 我的Python文件的第一行是: #!/usr/bin/python 我也做了以下这些命令: chmod +x job.py chmod +x script.sh 在写入foo.txt的行被取消注释的script.sh中,每个闪存驱动器插入都将创buildfoo.txt文件。 当我注释该行并取消注释运行Python文件的行时,它不起作用。 在两种情况下,通过terminal运行script.sh工作,但插入闪存驱动器只有foo.txt的情况下工作。 任何帮助,将不胜感激。

如何创build一个英特尔graphics“监视器插入”的callback?

我有一个英特尔graphicseeepc。 我想钩上一个脚本,通过VGA插入显示器事件。 怎么做?

从udev启动的脚本不再有DISPLAY访问?

当我插入外部驱动器时,我有一个从udev运行的脚本。 它一直工作。 但从Linux 3.8 / Xorg 1.12 / Mint 14 ( Ubuntu 12.10兼容)升级到Linux 3.11 / Xorg 1.14 / Mint 16 ( Ubuntu 13.10兼容)后,它不再工作。 该脚本仍然运行,但没有任何需要显示的命令工作。 我想通过退出udev守护进程并手动运行udevd –debug进行详细输出(更多下面)。 这个脚本用于Mint 14 / 12.10 : export DISPLAY=:0 UUID=$1 DEV=$2 notify-send -t 700 "mounting $DEV ($UUID)" gnome-terminal -t "Backing up home…" -x rsync long line of data zenity –warning –text="Done." […]

如何获得SD卡事件的通知?

我想检查一下SD卡的存在,并接收SD卡添加/删除的通知。 到目前为止,我已经使用了libudev ,并且制作了一个侦听SD卡事件的小应用程序。 代码如下: #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stddef.h> #include <errno.h> #include <sys/time.h> //debug -> remove me #include <libudev.h> #define ADD_FILTER "add" #define REMOVE_FILTER "remove" #define SUBSYSTEM_FILTER "block" #define ATTR_FILTER "ID_MODEL" #define SD_ATTR_VALUE "SD_MMC" #define ATTR_ACTIVE_SD "ID_PART_TABLE_TYPE" static bool isDeviceSD(struct udev_device *device); static bool isDevPresent(struct udev *device); static void print_device(struct […]

python udisks – 枚举设备信息

很显然,使用udisks二进制可以获得大量有关连接磁盘的信息: udisks –show-info /dev/sda1 udisks显然只是列举了可用的udev数据。 是否有可能使用python获取这些信息? 说例如,如果我只是想检索设备的序列号,安装点和大小。

Bash脚本来检测我的USB插入,然后与目录同步

有一个Bash脚本和/或守护进程,我可以写,将检测特定的USB驱动器,然后同步该驱动器与目录?

以编程方式获取链接速度?

我正在编写一个报告本地机器上networking设备属性的应用程序。 我需要的MAC地址,MTU,链接速度和其他一些。 我正在使用udev。 我已经想出了如何获得mac地址和mtu,但不知道如何获得链接速度。 我可以从terminal使用ethtool,但我需要一种方式来获得它的编程。 有谁知道我可以如何获得与udev或其他库的链接速度属性?

uevent从内核发送到用户空间(udev)

我知道udev在linux系统上播放,它通过netlink socket接收内核发来的uevents。 不过,我的问题是: 内核如何发送事件? 它必须是由添加/删除设备触发的事件,然后发送事件给udev。 内核如何做到这一点? (有没有我能find的代码示例?) udev只通过netlink套接字接收这些事件。 这是udev做的唯一方法。 它是否正确? 当uevent从内核发出时,我知道它可以做广播。 但是,它可以做单播吗? 感谢您的任何反馈。

USB设备UDev和D-BUS

我正在尝试获取Ubuntu 10.10中当前插入USB设备的列表,并监视发生的更改,如使用UDev和D-BUS插入或插入设备。 我是使用D-BUS进行编程的新手。 我看到一个例子: Linux:如何检测是USB键盘插入和拔出只有一个使用HAL,我知道HAL已弃用。 我发现一些工作代码,修改了一下,只有它不适用于任何设备的唯一存储设备,如USB棒,媒体播放器或光盘设备。 我想整个事情鼠标,键盘,USB相机充电器插入USB的任何东西我希望我的程序知道它。 这基本上是我的( http://moserei.de/2010/01/08/accessing-devicekit-with-dbus-and-python.html ): import dbus import gobject from dbus.mainloop.glib import DBusGMainLoop def device_added_callback(device): print 'Device %s was added' % (device) def device_changed_callback(device): print 'Device %s was changed' % (device) #must be done before connecting to DBus DBusGMainLoop(set_as_default=True) bus = dbus.SystemBus() proxy = bus.get_object("org.freedesktop.UDisks", "/org/freedesktop/UDisks") iface = dbus.Interface(proxy, "org.freedesktop.UDisks.Device") […]