日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
探究linuxu事件:解析設(shè)備識(shí)別、驅(qū)動(dòng)安裝及調(diào)試技巧(linuxu事件)

探究Linux USB事件:解析設(shè)備識(shí)別、驅(qū)動(dòng)安裝及調(diào)試技巧

隨著計(jì)算機(jī)技術(shù)的持續(xù)發(fā)展,USB技術(shù)的逐漸成熟,Linux作為一個(gè)開(kāi)源的操作系統(tǒng)也得到了廣泛的應(yīng)用。然而,在使用Linux系統(tǒng)中,出現(xiàn)USB設(shè)備無(wú)法識(shí)別、驅(qū)動(dòng)無(wú)法安裝、設(shè)備無(wú)法正常通信等問(wèn)題,這些問(wèn)題給我們的使用帶來(lái)了很多困擾。因此,在本文中,我們將探究Linux USB事件,并解析其設(shè)備識(shí)別、驅(qū)動(dòng)安裝及調(diào)試技巧,從而為大家提供一些實(shí)用的解決方案。

一、設(shè)備識(shí)別

Linux系統(tǒng)的USB子系統(tǒng)有一個(gè)名為ucore的內(nèi)核模塊,它用于管理和識(shí)別USB設(shè)備,并提供相應(yīng)的設(shè)備驅(qū)動(dòng)程序。當(dāng)USB設(shè)備入Linux系統(tǒng)時(shí),操作系統(tǒng)會(huì)自動(dòng)檢測(cè)USB設(shè)備并自動(dòng)加載相應(yīng)的驅(qū)動(dòng)程序,這一過(guò)程如下:

1. 內(nèi)核檢測(cè)USB設(shè)備的插入

當(dāng)USB設(shè)備插入Linux主機(jī)時(shí),硬件層面上可以通過(guò)USB控制器進(jìn)行檢測(cè),此時(shí)硬件會(huì)發(fā)送一個(gè)中斷信號(hào)給CPU,提示有新的設(shè)備插入,CPU接收到該信號(hào)后會(huì)通過(guò)內(nèi)核USB子系統(tǒng)進(jìn)行處理。

2. 內(nèi)核添加USB設(shè)備驅(qū)動(dòng)程序

內(nèi)核USB子系統(tǒng)會(huì)檢查系統(tǒng)中是否已存在匹配當(dāng)前USB設(shè)備的驅(qū)動(dòng)程序,如果存在,則會(huì)加載此次驅(qū)動(dòng)程序,如果不存在,則會(huì)在當(dāng)前系統(tǒng)中的內(nèi)核模塊尋找設(shè)備對(duì)應(yīng)的驅(qū)動(dòng)程序。

3. 設(shè)備驅(qū)動(dòng)程序啟動(dòng)

一旦內(nèi)核識(shí)別到USB設(shè)備并加載了對(duì)應(yīng)的驅(qū)動(dòng)程序,設(shè)備驅(qū)動(dòng)程序?qū)?huì)以用戶(hù)空間進(jìn)程的形式運(yùn)行,此時(shí)USB設(shè)備就可以使用了。

由此可見(jiàn),在Linux系統(tǒng)中,設(shè)備識(shí)別主要依賴(lài)于內(nèi)核USB子系統(tǒng)的驅(qū)動(dòng)匹配和加載過(guò)程,而一般情況下,內(nèi)核都可以自動(dòng)地完成設(shè)備的識(shí)別工作,但是在有些情況下,由于驅(qū)動(dòng)程序無(wú)法正常加載或USB設(shè)備異常導(dǎo)致無(wú)法識(shí)別,需要進(jìn)行一些手動(dòng)操作來(lái)解決問(wèn)題。

二、驅(qū)動(dòng)安裝

在Linux系統(tǒng)中,驅(qū)動(dòng)程序是一系列命令和數(shù)據(jù)的組合,它會(huì)告訴內(nèi)核怎樣與硬件設(shè)備進(jìn)行通信。接下來(lái),我們來(lái)看看如何手動(dòng)安裝Linux驅(qū)動(dòng)程序:

1. 下載相應(yīng)的驅(qū)動(dòng)程序

在Linux系統(tǒng)中,驅(qū)動(dòng)程序可以由多個(gè)源頭提供,例如:官方內(nèi)核、社區(qū)維護(hù)的驅(qū)動(dòng)程序、第三方驅(qū)動(dòng)程序或者自己編寫(xiě)驅(qū)動(dòng)程序。因此,在安裝相應(yīng)的驅(qū)動(dòng)程序之前,需要確保已經(jīng)下載了驅(qū)動(dòng)程序包。

2. 解壓驅(qū)動(dòng)程序包

一般情況下,下載的驅(qū)動(dòng)程序都是壓縮包格式,需要先解壓縮驅(qū)動(dòng)程序包,使用以下命令:

“`

tar zxvf

“`

3. 編譯安裝驅(qū)動(dòng)程序

解壓之后,進(jìn)入目錄,針對(duì)不同的驅(qū)動(dòng)程序包,可有多種配置方法,一般情況下,都會(huì)有一個(gè)Makefile文件,使用以下命令:

“`

make

make install

“`

4. 加載驅(qū)動(dòng)程序

驅(qū)動(dòng)程序安裝完畢后,可以通過(guò)如下命令進(jìn)行加載:

“`

modprobe

“`

以上是手動(dòng)安裝Linux驅(qū)動(dòng)程序的過(guò)程,當(dāng)然,在Linux系統(tǒng)中,大多數(shù)情況下,內(nèi)核都會(huì)自動(dòng)加載所需的驅(qū)動(dòng)程序,因此,我們需要安裝驅(qū)動(dòng)程序的情況比較少。

三、USB調(diào)試技巧

在使用Linux系統(tǒng)中,USB設(shè)備出現(xiàn)通信異常或無(wú)法識(shí)別的情況也較為常見(jiàn)。接下來(lái),我們將介紹一些USB調(diào)試技巧,幫助大家快速解決問(wèn)題。

1. 查看設(shè)備是否識(shí)別

使用以下命令可以查看Linux系統(tǒng)中是否已經(jīng)成功識(shí)別USB設(shè)備:

“`

lsu

“`

其中,該命令會(huì)羅列出Linux系統(tǒng)中所有USB設(shè)備的信息,對(duì)于標(biāo)準(zhǔn)的USB設(shè)備,會(huì)顯示出設(shè)備的廠(chǎng)商ID和產(chǎn)品ID。

2. 查看設(shè)備是否已連接

在出現(xiàn)USB設(shè)備連接異常時(shí),可以通過(guò)使用以下命令來(lái)查看USB設(shè)備是否已經(jīng)連接:

“`

dmesg

“`

3. 使用USBView進(jìn)行調(diào)試

USBView是一個(gè)特別的工具,能夠幫助用戶(hù)查看USB系統(tǒng)中包括控制器、端口和設(shè)備等方面的詳細(xì)信息。運(yùn)行該工具后,會(huì)提供完整的USB樹(shù)形結(jié)構(gòu),以概述USB系統(tǒng)的拓?fù)浣Y(jié)構(gòu)。

4. 使用Umon進(jìn)行調(diào)試

Umon是Linux內(nèi)核中實(shí)現(xiàn)的USB監(jiān)視程序,其主要功能是能夠?qū)崟r(shí)監(jiān)視USB系統(tǒng)上事件的發(fā)生情況,包括USB設(shè)備的連接狀態(tài)、USB數(shù)據(jù)的傳輸?shù)鹊?,使用該工具可以更好的分析和調(diào)試USB設(shè)備的問(wèn)題。

相關(guān)問(wèn)題拓展閱讀:

  • linux 下 USB的熱插拔問(wèn)題?

linux 下 USB的熱插拔問(wèn)題?

目前一些主流桌面系統(tǒng)(如Gnome,KDE,Xfce)的較新版本都支持自動(dòng)掛載(mount)U盤(pán)了. 一個(gè)流傳很廣的說(shuō)法是 HAL(硬件抽象層) 起了自動(dòng)掛載的作用, 其實(shí)這是誤解. 對(duì)于2.6內(nèi)核而言, udev 才是直接從內(nèi)核接收設(shè)備連接或斷開(kāi)信息的主體.

udev 從內(nèi)核得到信息后,根據(jù)一些簡(jiǎn)單規(guī)則(注意,是簡(jiǎn)單規(guī)則), 在 /dev 目錄下創(chuàng)建相應(yīng)的設(shè)備節(jié)點(diǎn), 并進(jìn)行某些相關(guān)操作. HAL 所做的事情是在 udev 的規(guī)則中加上一條(或幾條), 讓 udev 把收到的信息也傳遞給 HAL. 接派顫裂下來(lái), HAL 用更為復(fù)雜的規(guī)則來(lái)匹配和描述當(dāng)前連接著的硬件. 舉一個(gè)簡(jiǎn)單的例子, udev 知道的是U盤(pán)已經(jīng)連接了并且有一個(gè)分區(qū); 而 HAL 能更進(jìn)一步知道這個(gè)分區(qū)的卷標(biāo)名及其它一些信息.

上面這些都還不能自動(dòng)掛載U盤(pán). Gnome 等桌面系統(tǒng)會(huì)啟動(dòng)一個(gè)守護(hù)進(jìn)程(daemon), 通過(guò) D-Bus 從 HAL 那里得到硬件信息, 如果發(fā)現(xiàn)有U盤(pán)連接了就由它們來(lái)掛載它(實(shí)際是調(diào)用 pmount).

問(wèn)題是, 如果你不想用Gnome,KDE,Xfce這些桌面系統(tǒng), 那么由它們提供的U盤(pán)自動(dòng)掛載功能也洞鄭就失效了,有解決辦法么?

解決的辦法之一, 便是讓 udev 來(lái)干這件事情!

udev 的主要功能是實(shí)時(shí)地在 /dev 目錄下創(chuàng)建和刪除設(shè)備節(jié)點(diǎn), 但它也能在創(chuàng)建節(jié)點(diǎn)的同時(shí), 執(zhí)行一個(gè)額外地程序. 具體的原理這里就不詳說(shuō)了, 有時(shí)間請(qǐng)仔細(xì)閱讀 Writing udev rules 這篇文章. 寫(xiě)規(guī)則時(shí)特別注意 KERNEL, SUBSYSTEM 等這些關(guān)鍵字單數(shù)和復(fù)數(shù)(最后有沒(méi)有’S’)的區(qū)別. 復(fù)數(shù)(比如 KERNELS)表示你想用父設(shè)備的屬性來(lái)匹配, 單數(shù)(比如 KERNEL)是要匹配設(shè)備本身的屬性.

在 /etc/udev/rules.d 目錄下創(chuàng)建文件 10_ukey.rules, 其內(nèi)容如下

KERNEL==”sda1″, SUBSYSTEM==”block”, RUN+=”/root/umount.sh”

然后, 在 /root 目錄中創(chuàng)建文件 umount.sh, 其內(nèi)容為

#!/bin/bash

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

lap=$(date –rfc-3339=ns)

echo “$lap: $DEVPATH requesting $ACTION” >> $LOG

if

then

mount -t vfat -o umask=000,noatime,async,codepage=936,iocharset=gb2312 \

/dev/sda1 /media/ukey

elif

then

umount -l /media/ukey

fi

并把該文件屬性設(shè)置為可執(zhí)行, chmod a+x umount.sh

注意, 如果你的 linux 上 locale 是 zh_CN.utf-8, 需要把上面的 iocharset=gb2312 改成 iocharset=utf8

最后創(chuàng)建目塵閉錄, mkdir /media/ukey

這是一個(gè)非常簡(jiǎn)單但可用的例子. U盤(pán)插上后自動(dòng) mount 到 /media/ukey , 拔出后自動(dòng) umount. 你可以查看 /var/log/u-hotplug.log , 里面會(huì)有些簡(jiǎn)單的調(diào)用記錄.

關(guān)于linux u事件的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線(xiàn)及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專(zhuān)注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶(hù)的一致認(rèn)可。


網(wǎng)頁(yè)題目:探究linuxu事件:解析設(shè)備識(shí)別、驅(qū)動(dòng)安裝及調(diào)試技巧(linuxu事件)
標(biāo)題鏈接:http://www.5511xx.com/article/dhcigee.html