導航:首頁 > 器材知識 > 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設備熱插拔如何檢測相關的資料

熱點內容
什麼地方有超聲波碎膽結石的 瀏覽:610
韓國電影 國語 瀏覽:810
交換朋友 李采譚 瀏覽:402
汽車儀表盤擦膠掉色了怎麼辦 瀏覽:873
學生和老師產生的情的電影 瀏覽:354
機械圖紙尺寸rc是什麼意思 瀏覽:912
機械硬碟無法識別如何格式化 瀏覽:273
數字儀表的分辨力如何確定 瀏覽:135
好看的愛情電影網網址 瀏覽:539
腫瘤超聲波檢查是什麼作用 瀏覽:922
防雷裝置設計所需材料 瀏覽:906
哪裡免費看電影院正在上映的電影 瀏覽:788
不卡的電影 瀏覽:455
用內褲做發帶哪部電影 瀏覽:388
壓力檢測簡易裝置 瀏覽:335
機械設計與製造怎麼沒了 瀏覽:654
兩個小時的愛情電影 瀏覽:336
劍三鑄造台怎麼了鑄造 瀏覽:657
煤氣罐減壓閥門漏氣怎麼判定 瀏覽:30
八仙飯店3滅門案在線觀看 瀏覽:317