Questions tagged «devices»

设备指的是有关Unix / Linux设备专用文件的问题,通常这些文件在/ dev下。请勿将此标签用于物理设备(例如用于usb或pci的设备)。

2
使用bash的`/ dev / udp`,我怎么知道端口是否打开?
我没有访问netcat或nmap因此我试图使用bash和/dev/udp/特殊文件到测试端口。 我可以做类似的事情: echo "" > /dev/udp/example.com/8000 但是在使用UDP时$?总是如此0。我假设这是因为echo ""命令的返回值正确吗? 我基本上是在尝试复制nmap和能够做的事情netcat: nmap -sU -p 8000 example.com | grep open >/dev/null && echo 'open' nc -z -u example.com 8000 && echo 'open' 我将如何处理/dev/udp?

3
如何让SDL应用程序(不是以root用户身份运行)使用控制台
我想使用基于SDL的程序在控制台上显示图形,而不必从控制台登录,也不需要以root用户身份运行该程序。例如,我希望能够通过ssh运行它。目标操作系统是raspbian。 这是python中的一个简短示例来说明问题: import os, pygame os.environ['SDL_VIDEODRIVER'] = 'fbcon' pygame.init() s = pygame.display.set_mode() print "Success" 如果我从控制台运行它,则可以正常运行(运行到完成,不会引发异常),如果以root用户运行它,则可以通过ssh运行。 我检查了我的用户是否在音频和视频组中。 我已经使用strace来查看从控制台运行它(起作用),通过ssh以root身份运行(也可以工作)以及通过ssh以普通用户身份运行(不起作用)之间的区别。 第一个区别是我的用户没有访问/ dev / tty0的权限。我创建了一个新组(tty0),将用户置于该组中,并添加了udev规则以使该组可以访问/ dev / tty0。 strace输出在此ioctl调用处发散-此处显示失败;当程序从控制台运行或以root身份从ssh运行时,ioctl返回0: open("/dev/tty", O_RDWR) = 4 ioctl(4, VT_GETSTATE, 0xbeaa01f8) = -1 EINVAL (Invalid argument) (地址也有所不同,但这并不重要。) 鉴于我的程序在以root身份运行时可以运行,因此我认为这存在权限问题。如何为我的用户提供必要的权限,使其能够运行该程序而无需在控制台上登录(并且无需以root用户身份运行)?

3
我如何找出正在使用V4L2网络摄像头的进程?
我尝试运行以下命令: $ vlc -I dummy v4l2:///dev/video0 --video-filter scene --no-audio --scene-path webcam.png --scene-prefix image_prefix --scene-format png vlc://quit --run-time=1 VLC media player 2.0.7 Twoflower (revision 2.0.6-54-g7dd7e4d) [0x1f4a1c8] dummy interface: using the dummy interface module... [0x7fc19c001238] v4l2 demux error: VIDIOC_STREAMON failed libv4l2: error setting pixformat: Device or resource busy libv4l2: error setting pixformat: …
14 devices  camera  vlc  v4l 

2
为什么需要<或>使用/ dev / tcp
尝试致电时/dev/tcp/www.google.com/80,输入 /dev/tcp/www.google.com/80 巴什说no such file or directory。在线查看其他人的代码时,他们使用以下语法: 3&lt;&gt;/dev/tcp/www.google.com/80 我注意到这也有效: &lt;/dev/tcp/www.google.com/80 为什么要使用bash调用某些内容,需要使用这些符号?

4
无法理解安装的概念
阅读完这两个书在Linux中安装设备意味着什么?并理解“挂载”作为操作系统中的概念,我遇到了一个问题,即 所有可访问的存储在此单个目录树中必须具有关联的位置。这与Windows不同(在Windows中,文件路径使用最常见的语法),每个存储组件(驱动器)只有一个目录树。安装是将存储设备与目录树中特定位置相关联的动作。 但是/ dev / cdrom下已经有一个可访问的位置,例如cdrom驱动器,该驱动器显然位于目录层次结构中。那么,为什么需要在/ media / cdrom下创建一个单独的“挂载点”呢?为什么不可能直接从/ dev / cdrom访问?听说设备节点文件就像普通文件一样。读写它们就像普通文件一样。那么这是否意味着如果我们从/ dev / cdrom访问cdrom中的文件系统将不可用。当我们“挂载”文件系统层次结构时(在cdrom中),它“活跃起来”了吗?
13 linux  mount  devices 

1
有没有办法在/ dev目录中更改设备名称?
我出于测试目的编写了此规则: SUBSYSTEMS=="usb", ATTRS{manufacturer}=="Kingston", ATTRS{serial}=="001CC0EC34A2BB318709004B", ATTRS{idVendor}=="0951", ATTRS{idProduct}=="1642", SYMLINK+="pen", NAME="pendrak" 根据以下信息: # udevadm info --name=/dev/sdb --attribute-walk Udevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule …
13 devices  udev 

3
从udev规则呼叫通知发送
我使用Linux Mint 13 MATE,并且尝试在插入/拔出设备时设置通知。 首先,我找到了udev-notify软件包,但不幸的是,它几乎对我不起作用:它只用了很少的时间(1-2分钟),然后,如果我连接/断开任何设备,它就会崩溃: Traceback (most recent call last): File "./udev-notify.py", line 319, in &lt;module&gt; notification.show() glib.GError: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name :1.1061 was not provided by any .service files 我没有找到任何解决方案,因此我不得不将其删除。(日提交错误报告也) 令人惊讶的是,到目前为止我还没有找到类似的实用程序。然后,我尝试编写应与所有设备匹配的udev规则。我添加了新文件/etc/udev/rules.d/notify.rules: ACTION=="add", RUN+="/bin/bash /home/dimon/tmp/device_plug.sh" ACTION=="remove", RUN+="/bin/bash /home/dimon/tmp/device_unplug.sh" 还有两个脚本: device_plug.sh: #!/bin/bash export DISPLAY=":0" notify-send "device plugged" /usr/bin/play -q /path/to/plug_sound.wav &amp; device_unplug.sh: …


5
为什么“ cat ttyUSB0”不产生输出?
我将红外线接收器连接到USB端口...(dmesg的最后一行告诉设备文件) $ dmesg [10496.596063] usb 7-2: new full-speed USB device number 2 using uhci_hcd [10496.751112] usb 7-2: New USB device found, idVendor=0df7, idProduct=0620 [10496.751117] usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [10496.751120] usb 7-2: Product: USB-Serial Controller [10496.751124] usb 7-2: Manufacturer: Prolific Technology Inc. [10496.787441] usbcore: registered new …
13 files  usb  devices  cat  input 

5
导致I / O错误的特殊文件
如果要读取的基本SQLite DB文件失败(导致I / O错误),我想自动测试某个软件是否响应预期。确实是几天前在客户那里发生的。我们手动修复了它,但是现在我想创建自动代码来修复它,并且需要访问损坏的文件来进行测试。 由于Unix中的所有内容都是一个文件,因此我怀疑可能存在一个特殊文件,当尝试读取该文件时总是会导致I / O错误(例如,在/ dev中)。 一些类似的文件(imo)将是: /dev/full 如果您尝试写入,则始终显示“设备上没有剩余空间” /dev/null 和 /dev/zero 所以我认为只需要有一个这样的文件(但是还没有找到)。 有谁知道这样的文件或任何其他方法可以让我获得所需的结果(故意有问题的分区图像,使用LD_PRELOAD封装open()的包装程序,等等)? 去这里最好的方法是什么?
13 linux  devices  io  testing 

1
chmod 000 / dev / stdin会永远禁用终端吗?
我正在研究Unix教科书中的问题 (第8章,第16页,第207页): 提供chmod执行与mesg n和mesg y命令相同任务的命令行。(提示:每个硬件设备,包括您的终端,在/dev目录中都有一个关联的文件。) 我相信答案是: mesg n = chmod 770 /dev/stdout mesg y = chmod 777 /dev/stdout 但是我想知道如果您使用该chmod 000 /dev/stdin怎么办? 您是否无法在终端中输入命令而被锁定?

3
为什么Linux不让我玩/ dev / dsp?
我正在研究一本Linux教科书,它在告诉我有关设备的信息。它表示,如果我将适当的输出发送到/dev/dsp,则它将播放声音。示例是cat file.wav &gt; /dev/dsp,其中file.wav只是任何.wav文件。 当我这样做时,我会被拒绝权限。如果我使用sudo运行它,我仍然会被拒绝权限。如果是我su先,没有声音播放。 为什么我的许可被拒绝sudo?为什么即使播放也没有声音su?


2
无线编号分配
Linux如何或在何处确定网络设备的分配?具体而言,wlan0或wlan1对于无线USB设备。 不久前,我插入了TP USB无线设备,并且已分配好wlan0。我删除了 本周,我插入了一个Edimax USB无线设备,它显示为wlan1。我今天将其卸下,尝试使用第二个Edimax USB无线设备(我买了两个),现在它出现了wlan2。 我对Unix / Linux足够了解,可以知道它是在某处配置的,如果删除未使用的配置文件,则可以使最新的Edimax成为wlan0。但是如何/在哪里?

1
设备文件,ioctl,sysfs,netlink之间的用法差异
我试图阐明哪种方法(就功能而言)是与Linux中的设备进行交互的最有用的方法。据我了解,设备文件仅公开部分功能(块设备中的地址块,字符设备中的流等)。 ioctl(2)似乎是最常用的方法,但有人说它不安全,等等。 一些好的文章或其他相关的指针将受到欢迎。
12 devices  sysfs  ioctl 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.