导航:首页 > 器材知识 > linux下usb设备热插拔如何检测

linux下usb设备热插拔如何检测

发布时间:2022-11-28 17:13:54

『壹』 linux上怎样检测U盘的插入

linux 支持热插拔事件,通过udev可以管理u盘的插入和拔出,具体的可以多网络看看udev相关知识

『贰』 在linux系统里,如何检查新插入的USB设备是否被系统识别

方法一:在/etc/init.d/rcS中添加mount -t usbfs none /proc/bus/usb.
方法二:在shell中输入mount -t usbfs /proc/bus/usb /proc/bus/usb.
前提是在编译内核时选中usb device filesystem。
#cat /proc/bus/usb /device
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 1, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0001 Rev= 2.06
S: Manufacturer=Linux 2.6.32.2-ltls ohci_hcd
S: Proct=S3C24XX OHCI
S: SerialNumber=s3c24xx
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 4
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 1.25
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=255ms
T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 7 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=160a ProdID=3184 Rev= 2.05
S: Manufacturer=VIA Networking Technologies, Inc.
S: Proct=VNT USB-802.11 Wireless LAN Adapter
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=vntwusb
E: Ad=81(I) Atr=03(Int.) MxPS= 32 Ivl=1ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms

『叁』 linux USB设备的自动检测U盘

在linux环境下的话插入U盘后应该输入fdisk
-l
找到U盘设备
然后用cp
命令复制就可以了,如果是x-windows下操作的话和windows没有什么不同,熟练的话写个shell脚本。那就写个自动化的脚本哟。

『肆』 linux下USB设备热插拔怎么检测

1.插上USB设备。 2.用root帐号执行 fdisk -l 3.命令行会显示USB设备清单,如果是U盘,注意看看容量一下就看出来了。

『伍』 热插拔过u盘后,linux就识别不出来u盘了,怎么办啊

安全删除u盘时,大家常常会遇到提示“无法停止‘通用卷’设备,请稍候再停止该设备。”
这种情况下可以强行拔下u盘吗?当然不可以!这时候如果强行拔除的话,很容易损坏计算机u口或者你的u盘。如果你的u盘上有重要的资料,很有可能就此毁坏了。那么应该怎么办呢?
在这里我写几种常用的解决方法,希望对大家有所帮助。
第一种方法(这也是我建议大家最常用的方法):
往往我们在把u盘的文件或者数据取出来的时候,都是用的“复制”“粘贴”方式,而如果复制的是u盘上的文件,这个文件就会一直放在系统的剪切板里,处于待用状态。而如果这种情况下我们要删除u盘的话,就会出现上面的无法停止u盘的提示。
相应的解决办法就是:清空你的剪切板,或者在你的硬盘上随便进行一下复制某文件再粘贴的操作,这时候你再去删除u盘提示符,看看是不是顺利删除了?
第二种方法:
如果觉得上面那种方法还无效的话,可以使用下面这个方法:
同时按下键盘的"ctrl"+"alt"+"del"组合键,这时会出现"任务管理器"的窗口,单击"进程"标签,在"映像名称"中寻找"rundll32.exe"进程,选择"rundll32.exe"进程,然后点击"结束进程",这时会弹出任务管理器警告,问你确定是否关闭此进程,点击"是",即关闭了"rundll32.exe"进程。再删除u盘就可以正常删除了。
使用这种方法时请注意:如果有多个"rundll32.exe"进程,需要将多个"rundll32.exe"进程全部关闭。
第三种方法:
这种方法同样是借助了任务管理器,同时按下键盘的"ctrl"+"alt"+"del"组合键,出现"任务管理器"的窗口,单击"进程",寻找"explorer.exe"进程并结束它。这时候你会发现你的桌面不见了,请不要惊慌,继续进行下面的操作,在任务管理器中点击“文件”——“新建任务”——输入explorer.exe——确定。再删除u盘,你会发现可以安全删除了。
第四种方法:
这种方法最简单,但最耗时,那就是,重启你的电脑。
如果觉得出现问题的时候才解决有些麻烦,可以采用下面这个提前的预防措施:
关闭系统的预览功能。
方法:双击我的电脑——工具——文件夹选项——常规——任务——使用windows传统风格的文件夹,然后点击确定就行了。这样一劳永逸了。
小窍门:目前有些u盘的技术很到位了,有的u盘直接插拔也可以的。但无论是多好的u盘,有一种时候是绝对不能直接插拔的,那就是仔细看你u盘的那个小红灯,小灯在不停闪的时候表示正在不停地读写数据,这时候千万不能拔,否则轻则损坏数据,重则u盘报废。
详细的可以参考易修网
www.easiu.com
,希望能帮到你

『陆』 linux下热插拔事件的产生是怎样通知到用户空间

linux所设备都文件所摄像操作其实文件操作USB摄像设备文件/dev目录video0(假摄像)linux操作摄像使用v4l2摄像进行视频操作操作步骤1. 打设备文件
int fd=open(/dev/video0″,O_RDWR);
2. 取设备capability看看设备具功能比否具视频输入,或者音频输入输等VIDIOC_QUERYCAP,struct v4l2_capability
1
2
3
4
5
6
7
8
9
10
v4l2_std_id std;
do {
ret= ioctl(fd, VIDIOC_QUERYSTD, &std);
} while (ret == -1 && errno == EAGAIN);
switch (std) {
case V4L2_STD_NTSC:
//……
case V4L2_STD_PAL:
//……
}
3. 选择视频输入视频设备视频输入VIDIOC_S_INPUT,struct v4l2_input(要)
4. 设置视频制式帧格式制式包括PALNTSC帧格式包括宽度高度等
VIDIOC_S_STD,VIDIOC_S_FMT,struct v4l2_std_id,struct v4l2_format
1
2
3
4
5
6
7
8
9
10
11
struct v4l2_format fmt;
memset ( &fmt, 0, sizeof(fmt) );
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width = 320;
fmt.fmt.pix.height = 240;
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_JPEG;
if (ioctl(fd, VIDIOC_S_FMT, &fmt) < 0)
{
printf("set format failed\n");
//return 0;
}
5. 向驱申请帧缓冲般超5struct v4l2_requestbuffers
1
2
3
4
5
6
7
8
9
10
struct v4l2_requestbuffers req;
memset(&req, 0, sizeof (req));
req.count = 4;
req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
req.memory = V4L2_MEMORY_MMAP;
if (ioctl(fd,VIDIOC_REQBUFS,&req) == -1)
{
perror("VIDIOC_REQBUFS error \n");
//return -1;
}
6.申请物理内存
申请帧缓冲映射用户空间直接操作采集帧必复制申请帧缓冲全部入队列便存放采集数据.VIDIOC_QBUF,struct v4l2_buffer

『柒』 本人linux小菜,现遇到要在linux下对磁盘进行热插拔的问题,求高人指教!!!

RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能

RAID 1又称为Mirror或Mirroring,它的宗旨是最大限度的保证用户数据的可用性和可修复性。 RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而,Mirror的磁盘空间利用率低,存储成本高。

Mirror虽不能提高存储性能,但由于其具有的高数据安全性,使其尤其适用于存放重要数据,如服务器和数据库存储等领域。

RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。

RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。

一般做冗余不会用0了,也不支持热插拔,装系统时可以选择磁盘类型的

『捌』 linux环境下,Qt怎么检测USB的插入和拔出

Qt那一层是不会检测的,检测是在linux内核层,linux内核支持USB热插拔,然后在插入时,在/dev/目录下,会出现sda(或sdb,sdc等)的字样,可以做一个脚本自动挂载U盘,Qt可用于U盘挂载后的应用开发,比如U盘文件拷贝,修改等等

『玖』 linux 下 USB的热插拔问题

目前一些主流桌面系统(如Gnome,KDE,Xfce)的较新版本都支持自动挂载(mount)U盘了. 一个流传很广的说法是 HAL(硬件抽象层) 起了自动挂载的作用, 其实这是误解. 对于2.6内核而言, udev 才是直接从内核接收设备连接或断开信息的主体.

udev 从内核得到信息后,根据一些简单规则(注意,是简单规则), 在 /dev 目录下创建相应的设备节点, 并进行某些相关操作. HAL 所做的事情是在 udev 的规则中加上一条(或几条), 让 udev 把收到的信息也传递给 HAL. 接下来, HAL 用更为复杂的规则来匹配和描述当前连接着的硬件. 举一个简单的例子, udev 知道的是U盘已经连接了并且有一个分区; 而 HAL 能更进一步知道这个分区的卷标名及其它一些信息.

上面这些都还不能自动挂载U盘. Gnome 等桌面系统会启动一个守护进程(daemon), 通过 D-Bus 从 HAL 那里得到硬件信息, 如果发现有U盘连接了就由它们来挂载它(实际是调用 pmount).

问题是, 如果你不想用Gnome,KDE,Xfce这些桌面系统, 那么由它们提供的U盘自动挂载功能也就失效了,有解决办法么?

解决的办法之一, 便是让 udev 来干这件事情!

udev 的主要功能是实时地在 /dev 目录下创建和删除设备节点, 但它也能在创建节点的同时, 执行一个额外地程序. 具体的原理这里就不详说了, 有时间请仔细阅读 Writing udev rules 这篇文章. 写规则时特别注意 KERNEL, SUBSYSTEM 等这些关键字单数和复数(最后有没有'S')的区别. 复数(比如 KERNELS)表示你想用父设备的属性来匹配, 单数(比如 KERNEL)是要匹配设备本身的属性.

在 /etc/udev/rules.d 目录下创建文件 10_usbkey.rules, 其内容如下

KERNEL=="sda1", SUBSYSTEM=="block", RUN+="/root/usbmount.sh"

然后, 在 /root 目录中创建文件 usbmount.sh, 其内容为

#!/bin/bash

LOG=/var/log/usb-hotplug.log

lap=$(date --rfc-3339=ns)
echo "$lap: $DEVPATH requesting $ACTION" >> $LOG

if [ $ACTION == "add" ]
then
mount -t vfat -o umask=000,noatime,async,codepage=936,iocharset=gb2312 \
/dev/sda1 /media/usbkey
elif [ $ACTION == "remove" ]
then
umount -l /media/usbkey
fi

并把该文件属性设置为可执行, chmod a+x usbmount.sh
注意, 如果你的 linux 上 locale 是 zh_CN.utf-8, 需要把上面的 iocharset=gb2312 改成 iocharset=utf8

最后创建目录, mkdir /media/usbkey

这是一个非常简单但可用的例子. U盘插上后自动 mount 到 /media/usbkey , 拔出后自动 umount. 你可以查看 /var/log/usb-hotplug.log , 里面会有些简单的调用记录.

『拾』 嵌入式linux gadget开发中,usb设备插入PC时,在设备端怎么捕捉跟主机的连接和断开

linux 本身就已经有支持热插拔设备,并在插入和拔出后调用你指定的脚本,google里以linux hotplug做关键字搜索即可。

阅读全文

与linux下usb设备热插拔如何检测相关的资料

热点内容
周香允演过的电影有哪些 浏览:571
MsD宣宣好看的台湾电影 浏览:680
女主是顶级设计师姓顾 浏览:832
功夫电影在线免费观看 浏览:650
色戒类似中国电影 浏览:1
电影华 浏览:227
一个小女孩很厉害的美国电影 浏览:447
可以看红嫁衣的网站 浏览:433
修真片 浏览:762
许愿神龙为什么被禁播了 浏览:238
腾讯恐怖片推荐 浏览:933
电影院的屏幕多少钱一个 浏览:42
小美大壮是什么电视剧 浏览:254
古墓电影大全50部免费 浏览:229
猫妖传资源 浏览:689
大尺度文艺片百合 浏览:742
你看什么啊肥婆 浏览:702
我唾弃你的坟墓类似电影 浏览:730
丁巴度全部电影名字 浏览:888
高清岛国动作片 浏览:93