亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ch14s07.html

?? Linux設備驅動經典
?? HTML
?? 第 1 頁 / 共 2 頁
字號:
<html xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>14.7.&#160;熱插拔-Linux設備驅動第三版(中文版)</title><meta name="description" content="驅動開發" /><meta name="keywords" content="Linux設備驅動,中文版,第三版,ldd,linux device driver,驅動開發,電子版,程序設計,軟件開發,開發頻道" /><meta name="verify-v1" content="5asbXwkS/Vv5OdJbK3Ix0X8osxBUX9hutPyUxoubhes=" /><link rel="stylesheet" href="docbook.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.69.0"><link rel="start" href="index.html" title="Linux 設備驅動 Edition 3"><link rel="up" href="ch14.html" title="第&#160;14&#160;章&#160;Linux 設備模型"><link rel="prev" href="ch14s06.html" title="14.6.&#160;集成起來"><link rel="next" href="ch14s08.html" title="14.8.&#160;處理固件"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">14.7.&#160;熱插拔</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch14s06.html">上一頁</a>&#160;</td><th width="60%" align="center">第&#160;14&#160;章&#160;Linux 設備模型</th><td width="20%" align="right">&#160;<a accesskey="n" href="ch14s08.html">下一頁</a></td></tr></table><hr></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Hotplug.sect1"></a>14.7.&#160;熱插拔</h2></div></div></div><p>有 2 個不同方法來看熱插拔. 內核看待熱插拔為硬件, 內核和內核驅動之間的交互. 用戶看待熱插拔是內核和用戶空間的通過稱為 /sbin/hotplug 的程序的交互. 這個程序被內核調用, 當它想通知用戶空間某種熱插拔事件剛剛在內核中發生.</p><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="DynamicDevices.sect2"></a>14.7.1.&#160;動態設備</h3></div></div></div><p>術語"熱插拔"最普遍使用的意義產生于當討論這樣的事實時, 幾乎所有的計算機系統現在能夠處理當系統有電時設備的出現或消失. 這非常不同于只是幾年前的計算機系統, 那時程序員知道他們只需要在啟動時掃描所有的設備, 并且他們從不必擔心他們的設備消失直到整個機器被關電. 現在, 隨著 USB 的出現, CardBus, PCMCIA, IEEE1394, 和 PCI 熱插拔控制器, Linux 內核需要能夠可靠地運行不管什么硬件從系統中增加或去除. 這產生了一個額外的負擔給設備驅動作者, 因為現在他們必須一直處理一個沒有任何通知而突然從地下冒出來的設備.</p><p>每個不同的總線類型以不同方式處理一個設備的消失. 例如, 當一個 PCI , CardBus, 或者 PCMCIA 設備從系統中去除, 在驅動通過它的去除函數被通知之前常常是一會兒. 在發生這個前, 所有的從 PCI 的讀返回所有的位集合. 這意味著驅動需要一直檢查它們從 PCI 總線讀取的值并且能夠正確處理 0xff 值.</p><p>這個的一個例子可在 drivers/usb/host/ehci-hcd.c 驅動中見到, 它是一個 PCI 驅動給一個 UBS 2.0(高速)控制卡. 它有下面的代碼在它的主握手循環中來探測是否控制塊已經從系統中去除.</p><pre class="programlisting">result = readl(ptr);if (result == ~(u32)0)  /* card removed */ return -ENODEV; </pre><p>對于 USB 驅動, 當一個 USB 驅動被綁定到的設備被從系統中去除, 任何掛起的已被提交給設備的 urbs 以錯誤 -ENODEV 失敗. 如果發生這個情況, 驅動需要識別這個錯誤并且正確清理任何掛起的 I/O .</p><p>可熱插拔的設備不只限于傳統的設備, 例如鼠標, 鍵盤, 和網卡. 有大量的系統現在支持整個 CPU 和內存條的移出. 幸運地, Linux 內核正確處理這些核心"系統"設備的加減, 以至于單個設備驅動不需要注意這些事情.</p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="ThesbinhotplugUtility.sect2"></a>14.7.2.&#160;/sbin/hotplug 工具</h3></div></div></div><p>如同本章中前面提過的, 無論何時一個設備從系統中增刪, 都產生一個"熱插拔事件". 這意味著內核調用用戶空間程序 /sbin/hotplug.  這個程序典型地是一個非常小的 bash 腳本, 只傳遞執行給一系列其他的位于 /etc/hot-plug.d/ 目錄樹的程序. 對于大部分的 Linux 發布, 這個腳本看來如下:</p><pre class="screen">DIR="/etc/hotplug.d"for I in "${DIR}/$1/"*.hotplug "${DIR}/"default/*.hotplug ; do if [ -f $I ]; then test -x $I &amp;&amp; $I $1 ; fidoneexit 1</pre><p>換句話說, 這個腳本搜索所有的有 .hotplug 后綴的可能對這個事件感興趣的程序并調用它們, 傳遞給它們許多不同的環境變量, 這些環境變量已經被內核設置. 更多關于 /sbin/hotplug 腳本如何工作的細節可在程序的注釋中找到, 以及在 hotplug(8)手冊頁中.</p><p>如同前面提到的, /sbin/hotplug 被調用無論何時一個 kobject 被創建或銷毀. 熱插拔程序被用一個提供事件名子的單個命令行參數調用. 核心內核和涉及到的特定子系統也設定一系列帶有關于發生了什么的信息的環境變量(下面描述). 這些變量被熱插拔程序使用來判定剛剛在內核發生了什么, 以及是否有任何特定的動作應當采取.</p><p>傳遞給 /sbin/hotplug 的命令行參數是關聯這個熱插拔事件的名子, 如同分配給 kobject 的 kset 所決定的. 這個名子可通過一個對屬于本章前面描述過的 kset 的 hotplug_ops 結構的 name 函數的調用來設定; 如果那個函數不存在或者從未被調用, 名子是 kset 自身的名子.</p><p>一直為 /sbin/hotplug 設定的缺省的環境變量是:</p><div class="variablelist"><dl><dt><span class="term"><span>ACTION </span></span></dt><dd><p>這個字符串 add 或 remove, 只根據是否這個對象是被創建或者銷毀.</p></dd><dt><span class="term"><span>DEVPATH </span></span></dt><dd><p>一個目錄路徑, 在 sysfs 文件系統中, 它指向在被創建或銷毀的 kobject. 注意 sysfs 文件系統的加載點不是添加到這路徑, 因此是由用戶空間程序來決定這個. </p></dd><dt><span class="term"><span>SEQNUM </span></span></dt><dd><p>這個熱插拔事件的順序號. 順序號是一個 64-位 數, 它每次產生熱插拔事件都遞增. 這允許用戶空間以內核產生它們的順序來排序熱插拔事件, 因為對一個用戶空間程序可能亂序運行.</p></dd><dt><span class="term"><span>SUBSYSTEM </span></span></dt><dd><p>同樣的字符串作為前面描述的命令行參數傳遞.</p></dd></dl></div><p>許多不同的總線子系統都添加它們自己的環境變量到 /sbin/hotplug 調用中, 當關聯到總線的設備被添加或從系統中去除. 它們在它們的熱插拔回調中做這個, 這個回調在分配給它們的總線(如同在"熱插拔操作"一節中描述的)的 struct kset_hotplug_ops 中指定. 這允許用戶空間能夠自動加載必要的可能需要來控制這個被總線發現的設備的模塊. 這里是一個不同總線類型的列表以及它們添加到 /sbin/hotplug 調用中的環境變量. </p><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="IEEE1394FireWire.sect3"></a>14.7.2.1.&#160;IEEE1394(火線)</h4></div></div></div><p>任何在 IEEE1394 總線, 也是火線, 上的設備, 由 /sbin/hotplug 參數名和 SUBSYSTEM 環境變量設置為值 ieee1394. ieee1394 子系統也總是添加下列 4 個環境變量:</p><div class="variablelist"><dl><dt><span class="term"><span>VENDOR_ID </span></span></dt><dd><p>IEEE1394 的 24-位 供應者 ID. </p></dd><dt><span class="term"><span>MODEL_ID </span></span></dt><dd><p>IEEE1394 的 24-位型號 ID.</p></dd><dt><span class="term"><span>GUID </span></span></dt><dd><p>設備的 64-位 GUID.</p></dd><dt><span class="term"><span>SPECIFIER_ID </span></span></dt><dd><p>24-位值, 指定設備的協議規格的擁有者.</p></dd><dt><span class="term"><span>VERSION </span></span></dt><dd><p>指定設備協議規格的版本的值</p></dd></dl></div></div><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="Networking.sect3"></a>14.7.2.2.&#160;網絡</h4></div></div></div><p>所有的網絡設備都創建一個熱插拔事件, 當設備注冊或者注銷在內核. /sbin/hotplug 調用有參數 name 和 SUBSYSTEM 環境變量設置為 net, 并且只添加下列環境變量:</p><div class="variablelist"><dl><dt><span class="term"><span>INTERFACE </span></span></dt><dd><p>已經從內核注冊或注銷的接口的名子. 這個的例子是 lo 和 eth0.</p></dd></dl></div></div><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="PCI.sect3"></a>14.7.2.3.&#160;PCI 總線</h4></div></div></div><p>任何在 PCI 總線上的設備有參數 name 和 SUBSYSTEM 環境變量設置為值 pci. PCI 子系統也一直添加下面 4 個環境變量:</p><div class="variablelist"><dl><dt><span class="term"><span>PCI_CLASS </span></span></dt><dd><p>設備的 PCI 類號, 16 進制.</p></dd><dt><span class="term"><span>PCI_ID </span></span></dt><dd><p>設備的 PCI 供應商和設備 ID, 16進制, 結合成這樣的格式 供應者:設備.</p></dd><dt><span class="term"><span>PCI_SUBSYS_ID </span></span></dt><dd><p>PCI 子系統供應商和子系統設備 ID, 以 子系統供應者:子系統設備 的格式結合.</p></dd><dt><span class="term"><span>PCI_SLOT_NAME </span></span></dt><dd><p>PCI 插口"名", 內核給予這個設備的. 它以這樣的格式 域:總線:插口:功能. 一個例子可能是: 0000:00:0d.0.</p></dd></dl></div></div><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="Input.sect3"></a>14.7.2.4.&#160;輸入</h4></div></div></div><p>對所有的輸入設備(鼠標, 鍵盤, 游戲桿, 等等), 一個熱插拔事件當設備從內核增減時產生. /sbin/hotplug 參數和 SUBSYSTEM 環境變量被設置為值 input. 輸入子系統也總是添加下面的環境變量:</p><div class="variablelist"><dl><dt><span class="term"><span>PRODUCT </span></span></dt><dd><p>一個多值字符串, 用 16 進制列出值沒有前導 0. 它的格式是 bustype:vender:product:version.</p></dd></dl></div><p>下列環境變量可能出現, 如果設備支持它:</p><div class="variablelist"><dl><dt><span class="term"><span>NAME </span></span></dt><dd><p>輸入設備的名子, 如同設備給定的.</p></dd>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产自产2019最新不卡| 91在线国产福利| 99久久精品免费看国产 | 成人av电影免费在线播放| 91麻豆精品在线观看| 久久人人爽人人爽| 亚洲成人综合视频| 99re在线精品| 欧美激情在线一区二区| 久久草av在线| 7777精品伊人久久久大香线蕉经典版下载 | 制服丝袜亚洲网站| 亚洲免费资源在线播放| 国产精品一二三区在线| 日韩一区二区三区观看| 亚洲综合成人在线| kk眼镜猥琐国模调教系列一区二区| 欧美一级二级三级乱码| 亚洲成人自拍一区| 在线免费亚洲电影| 亚洲欧美在线aaa| 成人亚洲精品久久久久软件| 日韩精品专区在线影院重磅| 午夜久久久久久久久| 在线视频一区二区三区| 亚洲精品高清在线| eeuss影院一区二区三区| 国产精品色婷婷| 国产成人超碰人人澡人人澡| 久久久亚洲午夜电影| 极品美女销魂一区二区三区免费| 日韩欧美一区二区在线视频| 日韩在线一区二区| 欧美一区二区三区视频在线| 日韩在线卡一卡二| 日韩欧美一级在线播放| 久久99精品久久久久久动态图| 日韩一区二区三区免费看 | 日韩欧美国产综合一区| 乱一区二区av| 久久免费的精品国产v∧| 国产福利视频一区二区三区| 国产婷婷一区二区| 99久久精品国产麻豆演员表| 亚洲天堂福利av| 在线观看一区二区精品视频| 日韩精品三区四区| 日韩欧美国产精品| 成人影视亚洲图片在线| 日韩一区在线看| 欧美丝袜自拍制服另类| 日韩国产欧美在线播放| 久久亚洲精精品中文字幕早川悠里| 国产精品综合在线视频| 中文字幕中文在线不卡住| 91蝌蚪porny九色| 亚洲成人动漫在线免费观看| 日韩亚洲欧美一区二区三区| 国产麻豆视频一区| 亚洲精品国产a久久久久久| 69堂成人精品免费视频| 国产a级毛片一区| 亚洲精品成人天堂一二三| 91麻豆精品91久久久久同性| 国产盗摄一区二区三区| 尤物在线观看一区| 日韩欧美在线123| 不卡一区二区中文字幕| 日本免费在线视频不卡一不卡二| 国产亚洲自拍一区| 欧美日韩精品免费观看视频| 国产精品99久久久久久久女警| 亚洲激情av在线| 久久午夜色播影院免费高清| 91久久人澡人人添人人爽欧美| 精品影视av免费| 一二三四社区欧美黄| 久久精品男人的天堂| 欧美精品一二三四| 成人免费电影视频| 毛片av一区二区三区| 一区二区三区四区av| 国产婷婷色一区二区三区四区| 欧美日韩和欧美的一区二区| 丁香网亚洲国际| 久久99精品久久久久婷婷| 亚洲一二三四久久| 中文成人综合网| 精品成人私密视频| 制服丝袜在线91| 欧美午夜理伦三级在线观看| 成人一二三区视频| 激情成人午夜视频| 手机精品视频在线观看| 亚洲精品乱码久久久久久久久| 久久久久久久久久看片| 日韩一区二区三区视频在线观看| 色噜噜久久综合| 91香蕉视频黄| 成人激情校园春色| 成人午夜电影久久影院| 国产麻豆精品在线观看| 蜜桃一区二区三区在线| 日韩黄色免费网站| 午夜免费久久看| 亚洲综合另类小说| 亚洲最大的成人av| 亚洲精品亚洲人成人网| 亚洲欧美色图小说| 中文字幕一区二区三区精华液| 国产亚洲综合色| 国产日韩影视精品| 中文字幕第一区二区| 国产欧美精品一区aⅴ影院| 亚洲精品一区二区三区蜜桃下载| 欧美成人r级一区二区三区| 欧美一级艳片视频免费观看| 宅男在线国产精品| 666欧美在线视频| 日韩一区二区精品| 亚洲精品一区二区三区影院 | 国产一区二区三区四| 精品一区二区三区免费视频| 国产一区二区美女| 成人午夜电影久久影院| 色综合一区二区| 欧美亚洲一区二区在线| 欧美剧情电影在线观看完整版免费励志电影 | 久久嫩草精品久久久精品| 国产午夜精品久久久久久免费视| 国产婷婷色一区二区三区在线| 国产女人aaa级久久久级| 日韩毛片在线免费观看| 天天色天天操综合| 久久国产夜色精品鲁鲁99| 国产成人福利片| 色婷婷亚洲婷婷| 91精品国产综合久久久久久久久久| 精品日韩一区二区三区| 国产精品福利影院| 午夜精品一区二区三区免费视频| 精品一区二区在线免费观看| 成年人网站91| 欧美日韩国产系列| 欧美国产欧美综合| 亚洲欧美日本在线| 蜜臀av国产精品久久久久| 成人黄页毛片网站| 欧美人与性动xxxx| 国产欧美综合在线| 午夜精品123| 国产成人免费av在线| 欧美性大战xxxxx久久久| www国产亚洲精品久久麻豆| 亚洲欧美成aⅴ人在线观看| 午夜精品免费在线| 99久久婷婷国产| 欧美一区二区三区四区五区 | 美女视频黄免费的久久| 久久精品综合网| 久久久精品tv| 亚洲高清中文字幕| 国产一区二区三区免费在线观看 | 日本韩国欧美一区二区三区| 国产成人鲁色资源国产91色综| 99视频有精品| 91精品国产综合久久小美女| 国产精品欧美一级免费| 久久国产成人午夜av影院| 91日韩在线专区| 国产喷白浆一区二区三区| 天涯成人国产亚洲精品一区av| 粉嫩av一区二区三区在线播放 | 日本二三区不卡| 国产亚洲精品免费| 男男视频亚洲欧美| 91福利国产精品| 亚洲国产精品成人久久综合一区| 美日韩一区二区| 欧美日韩一区久久| 亚洲精品老司机| 99这里只有精品| 国产精品嫩草影院com| 国产一区二区三区四区在线观看| 欧美精品久久久久久久久老牛影院| 亚洲三级在线看| 成a人片国产精品| 中文字幕不卡的av| 国产麻豆精品在线观看| 精品免费一区二区三区| 日韩和欧美一区二区| 欧美美女直播网站| 亚洲午夜精品一区二区三区他趣| 成人白浆超碰人人人人| 国产精品国产三级国产专播品爱网| 国产精品自拍一区| 久久久久久一二三区| 国产成人精品免费| 中文字幕不卡在线| 91在线一区二区|