linux核心沒有整合對偵錯程式的支援。
指令級的kdb(kernel debudgger 核心偵錯程式)
源**級偵錯程式kgdb(kernel gnu debugger) 核心gnu偵錯程式
udev 工作
1.核心中的sysfs支援,sysfs是linux裝置模型的重要組成部分。位於記憶體中,在啟動時被掛載在/sys目錄下
2.一套使用者空間守護程式和實用工具 ,如udevd 和udeinfo
3.使用者自定義的規則,位於etc/udev/rules.d
如有兩驅動器,乙個usb ***驅動器 另乙個usb cd-rw驅動器。根據熱插拔裝置的順序不同,乙個命名為dev/sr0,l另外乙個dec/sr1
在沒有udev情況下,必須這樣區分對應的裝置。但是有udev後,不管什麼順序都能區分
乙個 命名 dev/usb******
乙個命名dev/usbcdrwcd_rw
首先,從sysfs相應的檔案中提取產品資訊。假定targus ***驅動器被分配的裝置節點為
/dev/sr0
/dev/sr1
使用udevinfo 可收集的裝置資訊:
bash>udevinfo -a -p /sys/block/sro
bash>udevinfo -a -p /sys/block/sr1
looking at the device chain at
'/sys/device/pci000:00/000:00:ld.7/usb1/1-3':
bus=="usb"
id=="1-3"
sysfs=="2"
sysfs=="0302"
sysfs=="0dbf"
sysfs=="addonics"
sysfs=="0"
sfsfs=="usb to ide cable"
根據收集到的產品資訊標識裝置並且新增到udev命名規則
建立/etc/udev/rules.d/40-c***.rules
命令從shell指令碼中掛載裝置
mount/dev//usb***/mnt/***
測試語法規則是否錯誤,用
/sys/blcok/sr* 執行udevtest
核心的結構化裝置模型在使用者空間就稱為 sysfs
procfs是檢視核心的乙個通用視窗。而sysfs則對應特定的裝置模型。
kobject 封裝了一些共用物件屬性,通常嵌入在更大的資料結構中
bus_register()為/sys/bus增加乙個相應的的入口
device_register() 為sys/devices 增加相應的入口
3個結構體
bus_type
匯流排 device裝置
device_driver驅動程式
混雜裝置驅動 (rtc驅動程式)
bash>modproble rtc
bash>ls -lr /sys/class/misc
bash>ls -1/dev/rtc
linux裝置驅動程式除錯
一 寫linux裝置驅動程式最難的地方就是沒有強大的除錯工具,一般間接或者直接的除錯手段 1.利用printk 2.檢視oop訊息 3.利用strace 4.利用核心內建的hacking選項 5.利用ioctl方法 6.利用 proc檔案系統 7.使用kgdb 8.使用systemtap 二 1,利...
如何除錯裝置驅動程式
引 使用 platform builder,可以在驅動程式開發過程中的任意時刻除錯裝置驅動程式。驅動程式除錯是開發用於 windows ce 的驅動程式的更大過程的一部分。有關開發驅動程式的詳細資訊,請參閱如何建立裝置驅動程式。platform builder 提供了用於除錯驅動程式的工具,例如,核...
Linux裝置驅動程式 驅動除錯printk
前一段時間學了一下,printk 列印語句,現在用起來又忘了,看了一下前一段時間做的筆記,不是很詳細,所以決定再寫一下和printk相關的除錯的東西。算是複習一下吧。首先,先熟悉一下printk函式,這個函式和printf函式很類似。只不過乙個執行在使用者態,乙個執行在核心態。此外還是要熟悉一下終端...