溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

linux中如何創(chuàng)建/dev/xxx名字

發(fā)布時(shí)間:2022-01-04 09:47:38 來(lái)源:億速云 閱讀:216 作者:小新 欄目:互聯(lián)網(wǎng)科技

小編給大家分享一下linux中如何創(chuàng)建/dev/xxx 名字,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在剛開(kāi)始寫Linux設(shè)備驅(qū)動(dòng)程序的時(shí)候,很多時(shí)候都是利用mknod命令手動(dòng)創(chuàng)建設(shè)備節(jié)點(diǎn),實(shí)際上Linux內(nèi)核為我們提供了一組函數(shù),可以用來(lái)在模塊加載的時(shí)候自動(dòng)在/dev目錄下創(chuàng)建相應(yīng)設(shè)備節(jié)點(diǎn),并在卸載模塊時(shí)刪除該節(jié)點(diǎn),當(dāng)然前提條件是用戶空間移植了udev

內(nèi)核中定義了struct class結(jié)構(gòu)體,顧名思義,一個(gè)struct class結(jié)構(gòu)體類型變量對(duì)應(yīng)一個(gè)類,內(nèi)核同時(shí)提供了class_create(…)函數(shù),可以用它來(lái)創(chuàng)建一個(gè)類,這個(gè)類存放于sysfs下面,一旦創(chuàng)建好了這個(gè)類,再調(diào)用device_create(…)函數(shù)來(lái)在/dev目錄下創(chuàng)建相應(yīng)的設(shè)備節(jié)點(diǎn)。這樣,加載模塊的時(shí)候,用戶空間中的udev會(huì)自動(dòng)響應(yīng)device_create(…)函數(shù),去/sysfs下尋找對(duì)應(yīng)的類從而創(chuàng)建設(shè)備節(jié)點(diǎn)。

注意,在2.6較早的內(nèi)核版本中,device_create(…)函數(shù)名稱不同,是class_device_create(…),所以在新的內(nèi)核中編譯以前的模塊程序有時(shí)會(huì)報(bào)錯(cuò),就是因?yàn)楹瘮?shù)名稱不同,而且里面的參數(shù)設(shè)置也有一些變化。

struct class和device_create(…) 以及device_create(…)都定義在/include/linux/device.h中,使用的時(shí)候一定要包含這個(gè)頭文件,否則編譯器會(huì)報(bào)錯(cuò)。

以上是“l(fā)inux中如何創(chuàng)建/dev/xxx 名字”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI