我是一个C编程新手,在这里我想检测一下Linux中是否插入了USB,我想在我的嵌入式linux设备上检测这个东西。它们都有定制的linux。所以我想要检测USB的块,在那里我必须挂载这个块。比如sda,sdb or sdc。我想用linux下的C编程来解决这个问题。
这里我有usb设备的路径/sys/bus/usb/devices,我可以看到usb的信息在这里,/sys/bus/usb/devices/1-x,所以我想获取这个usb插入位置的地址,比如sda,sdb or sdc。因此,在获取这个地址名称之后,我必须在特定的路径上挂载usb。
那么,有谁可以建议我如何检测usb是否插入?如果插
我想在AIX第3行的"Textfile.txt“文件中插入一行”新行“。
插入之前,Textfile.txt看起来像
one
two
four
插入后,Textfile.txt看起来像
one
two
new line
four
我已经在Linux上完成了它,无论如何使用AIX,我都发现它无法使用Linux的解决方案。
令人惊讶的是,我在任何地方都找不到解决这个问题的简单办法。
我在Linux中使用这个命令,并且正在工作。
echo "target_node = ${arr[0]}"
echo "target_file = ${arr[1]}"
echo
我试图打开我的SD记忆卡,但它没有显示时,插入。虽然当我看USB设备时,它被检测到了。
lsusb
然后我得到:
Bus 001 Device 002: ID 0ac8:c33e Z-Star Microelectronics Corp.
Bus 002 Device 010: ID 058f:6335 Alcor Micro Corp. SD/MMC Card Reader
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundat
我正在尝试检测USB插入,而不管它是什么设备。例如:一个电话,一个电池组,一个生物识别系统等,这可能是或不可能被Linux所识别(没有驱动器,也没有任何“驱动/运行”)。据推测,Linux将检测USB插入(独立于设备),然后继续注册并仅对已识别的设备进行操作。例如,它将在/dev/bus/ USB / etc中列出已识别的USB设备详细信息。相反,我想捕获/处理插入到USB插槽中的所有内容。这大概意味着,我不能依赖像udevadm这样的东西,因为它只会影响到公认的设备。这也意味着我需要在曲线的早期捕获插入事件。我该怎么做?
我正在从事linux内核开发,并试图制作自己的模块用于测试目的。但是,对于最新的内核源代码,linux-headers并不存在。它只存在于4.9.0-7。
我在谷歌上找到了一种方法,我们可以根据我们想要的内核源代码树对模块进行make (例如:4.18)为我的模块生成.ko的make -C /home/prasad/linux-4.18/ M=$(PWD)。然而,当我加载我的内核并insmod它时,它会说
insmod: ERROR: could not insert module test.ko: Unknown symbol in module
那么,如何从我的主机生成可以插入到4.18内
当我打开一个100MB的文件,在文件开头附近插入1个字节,然后保存它时,会发生什么?Linux内核是否真的将所有内容都向后移动了1个字节(从而改变了每一页),然后在插入后重新保存每个字节?这似乎是非常低效的!
或者,我假设内核可以插入一个1字节的页面来保存这种插入,但我从来没有听说过这种情况。我认为所有页面都必须是标准大小(例如,4KB或4MB,但不是1字节)
我检查了许多linux/OS bk (bovet/cesati、kerrisk、tanenbaum),并尝试了一下内核代码,但似乎无法弄清楚这一点。