linux網絡設備中的加載與卸載方法
學習linux網絡設備時,你可能會遇到加載與卸載的問題,這里列舉了多種加載與卸載的命令,在這里小編拿出來和大家分享一下。望能給大家一些幫助。
如果linux網絡設備(包括wireless)是PCI規范的,則先是向內核注冊該PCI設備(pci_register_driver),然后由pci_driver數據結構中的probe函數指針所指向的偵測函數來初始化該PCI設備,并且同時注冊和初始化該linux網絡設備。
如果linux網絡設備(包括wireless)是PCMCIA規范的,則先是向內核注冊該PCMCIA設備(register_pccard_driver),然后driver_info_t數據結構中的attach函數指針所指向的偵測函數來初始化該PCMCIA設備,并且同時注冊和初始化該linux網絡設備。
- static int __init tg3_init(void)
- {
- //先注冊成PCI設備,并初始化,如果是其他的ESIA,PCMCIA,用其他函數
- return pci_module_init(&tg3_driver);
- }
- static void __exit tg3_cleanup(void)
- {
- pci_unregister_driver(&tg3_driver);//注銷PCI設備
- }
- module_init(tg3_init); //驅動模塊的加載
- module_exit(tg3_cleanup); //驅動模塊的卸載
linux網絡設備申明為PCI設備:
- static struct pci_driver tg3_driver = {
- .name = DRV_MODULE_NAME,
- .id_table = tg3_pci_tbl, //此驅動所支持的網卡系列,vendor_id, device_id
- .probe = tg3_init_one, //初始化linux網絡設備的回調函數
- .remove = __devexit_p(tg3_remove_one), //注銷linux網絡設備的回調函數
- .suspend = tg3_suspend, //設備掛起函數
- .resume = tg3_resume //設備恢復函數
- };
【編輯推薦】