我想在我的C / C ++应用程序中获得USB驱动器的标签。 我正在使用libudev来获取USB细节。 但它不提供驱动器标签。 有没有人有关于如何获得驱动器标签的想法。 我正在开发embedded式平台,它没有一个/ dev / disk文件夹。 请帮忙。 内核版本:3.3.8
我并没有像Gnome或KDE那样使用巨大的DE,而是用xset命令改变键盘速率: xset r rate 250 70 但是在系统挂起( pm-suspend )之后,这个设置会丢失,因为udev会删除并重新添加所有设备。 我试图使用udev规则: # /etc/udev/rules.d/00-custom-keyboard.rules ACTION=="add", SUBSYSTEM=="usb", RUN+="/usr/bin/xset r rate 250 70" # Not working ACTION=="add", SUBSYSTEM=="usb", RUN+="touch /tmp/test" # Working pretty! 我认为第一个规则不起作用,因为xset实用程序需要一些在evdev上下文中不可用的上下文数据。 我试图使用xorgconfiguration,但只发现改变键盘布局的选项,即XkbLayout和XkbOptions 有没有办法在系统暂停后自动恢复键盘设置?
我在/etc/udev/rules.d/local.rules中创build了一个脚本 SUBSYSTEM=="usb", SYSFS{idVendor=="b58e"}, SYSFS{idProduct=="9e84"}, ACTION=="add", RUN+="notify-send USB" 然后我重新加载udev sudo udevadm control –reload-rules 我试图删除一切,但子系统和运行。 我已经尝试了运行'='而不是'+ =',我厌倦了ATTR而不是SYSFS。 我试过“sudo service udev restart”和“sudo reload udev”。 我拔下设备,然后再次插入,它不运行的行动。 我尝试将其重命名为70-local.rules并将权限更改为+ x。 我试过把“子系统”改成“公交车”。 我试过将运行设置为“/path/test.sh”,它具有相同的命令。
如何从Linux的人使/dev文件。 你可以写信给他们,并立即删除。 我可以想象一些不断读取一些开发文件的程序: FILE *fp; char buffer[255]; int result; fp = fopen(fileName, "r"); if (!fp) { printf("Open file error"); return; } while (1) { result = fscanf(fp, "%254c", buffer); printf("%s", buffer); memset(buffer, 0, 255); fflush(stdout); sleep(1); } fclose(fp); 但如何删除那里的内容? closures一个文件并以“w”模式再次打开它们并不是他们如何完成的,因为你可以这样做,即cat > /dev/tty
我按照build议( udevadm monitor )尝试udev。 VGA插头报告后大约。 两秒钟。 如果我进行调查,变化几乎立即报告。 这里发生了什么?
假设我想按照/ dev / zero的精神创build一个文件/ dev / seven,每当读取它时都会产生字符“7”。 我应该如何去做这样的事情? 我需要修改内核吗?
我想使用libudev来监视某些设备。 具体而言,我想监视可移动存储:USB硬盘驱动器,USB钥匙,SD卡等。libudev API可以让您find设备,如果您知道设备的父系的“子系统”和“devtype”。 我尝试了我的电脑上的设备,并使用udevadm发现所有的存储types都有'block' – >'scsi'的设备子系统,但是我不知道这些设备具有哪些设备types。 有一个devTYpes和子系统的列表,我可以用作参考的地方,或更好的方法来查找devtype?
我正在使用udev来检测我的Ubuntu 10.04 LTS x64服务器上的USB驱动器连接和断开连接。 在机器运行时连接USB设备时一切正常,但是如果在启动时已经有USB设备存在,我的脚本就不能完成,显然是因为mkdir /tmp/blah不起作用。 如果我随后在terminal键入sudo udevadm trigger ,一切都可以。 我假设,在udev首先评估连接的设备违反其规则,根文件系统尚未安装。 我的问题是: 我有没有正确识别这个问题? 有没有一个标准的方法来解决它 – 即有/tmp/我可以使用之前和之后/已经装载的替代?
我正在进行一个多元文化教育项目,我们需要将36个键盘和36个USB声卡连接到一台计算机上。 我们正在运行Ubuntu Linux 12.04和3.6.3-030603-通用内核。 到目前为止,我们已经设法从36个键盘获得input,并且识别了36个声卡,而没有发生内核恐慌(在更新内核之前发生)。 我们知道36声卡已被识别,因为$ lsusb | grep "Audio" -c $ lsusb | grep "Audio" -c输出36 。 但是, $ aplay -l总共列出了32个播放设备(包括“内部”声卡)。 另外, $ alsamixer -c 32表示“无效卡片索引:32”(只能从0到31; 32也是)。 所以我的问题是,如果他们甚至没有列出这些命令,我怎样才能访问其他声卡? 我正在用python编写一个应用程序,并且有一些库可供select,但是恐怕也会因为这个原因而限制在32个设备上。 任何指导都是有用的。 谢谢。
编辑:这发生在我试图使用任何安装点,而不是/var单独的分区。 我正在使用Buildroot构build一个embedded式Linux系统。 我正在尝试为/ var使用单独的分区,但是对于任何挂载点都会发生这种情况。 我的init系统是systemd,udev用于设备pipe理。 我已经编辑我的fstab: # <file system> <mount pt> <type> <options> <dump> <pass> /dev/root / ext2 rw,noauto 0 1 /dev/mmcblk0p4 /var ext2 defaults 0 2 proc /proc proc defaults 0 0 devpts /dev/pts devpts defaults,gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs mode=0777 0 0 tmpfs /tmp tmpfs defaults 0 0 sysfs /sys sysfs defaults […]