1.以usb-storage.ko模块为例。修改usb-storage.ko模块的源代码, 新增一条日志打印。
源码路径: kernel/linux-5.19/drivers/usb/storage/usb.c
|
2.重新编译该模块。在此命令中,是包含usb-storage.ko模块源码的drivers/usb/storage目录。此命令将构建所有在该目录中启用的内核模块,而不仅仅是usb-storage.ko。由于我们修改的代码属于usb-storage.ko,所以我们只需要加载生成的usb-storage.ko模块即可。
~/kernel/linux-5.19$ pwd /home/meetabs/kernel/linux-5.19 ~/kernel/linux-5.19$ make -C . M=drivers/usb/storage
~/kernel/linux-5.19/drivers/usb/storage$ ll *.ko -rw-rw-r-- 1 meetabs meetabs 439K 6月 4 14:48 uas.ko -rw-rw-r-- 1 meetabs meetabs 392K 6月 4 14:48 ums-alauda.ko -rw-rw-r-- 1 meetabs meetabs 315K 6月 4 14:48 ums-cypress.ko -rw-rw-r-- 1 meetabs meetabs 331K 6月 4 14:48 ums-datafab.ko -rw-rw-r-- 1 meetabs meetabs 409K 6月 4 14:48 ums-eneub6250.ko -rw-rw-r-- 1 meetabs meetabs 297K 6月 4 14:48 ums-freecom.ko -rw-rw-r-- 1 meetabs meetabs 360K 6月 4 14:48 ums-isd200.ko -rw-rw-r-- 1 meetabs meetabs 320K 6月 4 14:48 ums-jumpshot.ko -rw-rw-r-- 1 meetabs meetabs 296K 6月 4 14:48 ums-karma.ko -rw-rw-r-- 1 meetabs meetabs 319K 6月 4 14:48 ums-onetouch.ko -rw-rw-r-- 1 meetabs meetabs 351K 6月 4 14:48 ums-realtek.ko -rw-rw-r-- 1 meetabs meetabs 399K 6月 4 14:48 ums-sddr09.ko -rw-rw-r-- 1 meetabs meetabs 348K 6月 4 14:48 ums-sddr55.ko -rw-rw-r-- 1 meetabs meetabs 382K 6月 4 14:48 ums-usbat.ko -rw-rw-r-- 1 meetabs meetabs 2.2M 6月 4 14:48 usb-storage.ko
|
3.卸载原有usb-storage.ko,加载重新编译的usb-storage.ko。加载成功后,插拔一下U盘就可以看到在usb-storage.ko模块里面添加的日志信息。
meetabs@testing:~$ sudo modprobe -r uas meetabs@testing:~$ sudo modprobe -r usb_storage
meetabs@testing:~$ dmesg [ 1375.323686] usbcore: registered new interface driver usb-storage [ 1385.595336] uas: disagrees about version of symbol usb_stor_adjust_quirks [ 1385.595341] uas: Unknown symbol usb_stor_adjust_quirks (err -22) [ 1409.955361] usb 2-3: new SuperSpeed USB device number 3 using xhci_hcd [ 1409.984471] usb 2-3: New USB device found, idVendor=0951, idProduct=1666, bcdDevice= 1.00 [ 1409.984477] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 1409.984479] usb 2-3: Product: DataTraveler 3.0 [ 1409.984481] usb 2-3: Manufacturer: Kingston [ 1409.984503] usb 2-3: SerialNumber: 0019E06B588FBF10D7BE4C1B [ 1409.987217] usb-storage 2-3:1.0: USB Mass Storage device detected [ 1409.987233] usb-storage 2-3:1.0: [meetabs]hook it with print [ 1409.988124] scsi host6: usb-storage 2-3:1.0 [ 1410.004717] uas: disagrees about version of symbol usb_stor_adjust_quirks [ 1410.004721] uas: Unknown symbol usb_stor_adjust_quirks (err -22)
|