Linux 设备驱动管理与 GPIO 操作全解析
1. 网络设备
网络设备与普通设备不同,它不通过设备节点访问,也没有主设备号和次设备号。内核会根据字符串和实例编号为网络设备分配名称。以下是网络驱动注册接口的示例代码:
my_netdev = alloc_netdev(0, "net%d", NET_NAME_UNKNOWN, netdev_setup);
ret = register_netdev(my_netdev);
首次调用时会创建名为 net0 的网络设备,第二次调用创建 net1 ,依此类推。常见的网络设备名还有 lo 、 eth0 和 wlan0 ,不过设备管理器(如 udev )可能会更改这些名称。
通常,网络接口名仅在使用 ip 和 ifconfig 等工具配置网络、设置网络地址和路由时使用。之后,通过打开套接字间接与网络驱动交互,由网络层决定如何将数据包路由到正确的接口。
也可以在用户空间直接访问网络设备,方法是创建套接字并使用 include/linux/sockios.h 中列出的 ioctl 命令。以下是一个使用 SIOCGIFHWADDR 查询驱动硬件(MAC)地址的程序:
超级会员免费看
订阅专栏 解锁全文
3289

被折叠的 条评论
为什么被折叠?



