2012-06-22 51 views
1

我讀了關於懷疑的主要和次要設備的動態分配numbers.They說主要和次要設備編號

rubini,科比特和hartmen.I的Linux設備驅動的書動態分配的缺點是你不能在 中預先創建設備節點,因爲分配給您模塊的主號碼會有所不同。對於正常的 使用該驅動程序,這很難,因爲一旦指定了號碼 ,您可以從中讀取它的/ proc /設備。

1)這是什麼意思?

2)爲什麼主要和次要號碼必須從當功能alloc_chrdev_region在發送給it.can這樣的說法發送,不能直接使用的參數提供主次編號的/ proc /設備讀取?

在此先感謝

回答

2

1)動態分配將意味着在加載驅動程序之前,您不能創建設備節點,例如讓他們的文件系統中的系統啓動時的靜態部分。相反,只有在發現他們的主要/次要號碼是這次後,才能創建它們。

2)驅動程序可能知道主要和次要的數字是什麼,但設備節點應該由用戶空間中的某些東西創建。他們建議,如果這些信息無法事先與內核驅動程序和用戶空間同時提供,那麼用戶空間必須在運行時從諸如/ proc/devices之類的東西中發現它。

+0

明白了..謝謝.... – Dhatri

0
  1. 當我們動態地分配一個主設備號的設備驅動程序,我們不知道有主設備號,直到alloc_chrdev_region函數執行結束後還是讓我們說,你不會知道主號碼插入前該模塊進入內核(爲此我們使用insmod)。因此,除非您加載設備驅動程序,否則您無法爲您的驅動程序創建節點(我們使用該節點,我們使用mknod),這被稱爲作者先進的。

  2. 當不同的設備/程序需要它們時,我們讀取一個設備驅動程序的主要和次要編號爲/proc/devices