学习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 //设备恢复函数
- };
【编辑推荐】