‘struct net_device’ has no member named ‘trans_start’ ubuntu16.04

在编译usb-to-can_v2_socketcan时遇到错误:'struct net_device' has no member named 'trans_start'。解决方案是将netdev->trans_start = jiffies;替换为netdev_get_tx_queue(netdev,0)->trans_start = jiffies;。问题源于Linux 4.10内核中netdevice结构的变化。系统内核版本为4.10.0-38-generic。" 111745070,8605356,Java框架:CSFramwork客户端详解,"['Java', '框架', '客户端开发']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译usb-to-can_v2_socketcan,出现一下错误:

‘struct net_device’ has no member named ‘trans_start’
  netdev->trans_start = jiffies;

解决办法:

打开ixx_usb_core.c 找到netdev->trans_start = jiffies;这句代码,更换成一下代码:

netdev_get_tx_queue(netdev,0)->trans_start = jiffies;


出现这个问题的原因可能是,linux内核版本不相同,Linux 4.10内核的netdevice结构重新编写了的,与以前的很不一样.

`struct net_device_ops` 是 Linux 内核中的一个结构体,用于定义网络设备驱动程序的操作函数。它包含了多个函数指针,这些函数指针指向网络设备驱动程序需要实现的各种操作函数。以下是 `struct net_device_ops` 的一个典型定义: ```c struct net_device_ops { int (*ndo_init)(struct net_device *dev); void (*ndo_uninit)(struct net_device *dev); int (*ndo_open)(struct net_device *dev); int (*ndo_stop)(struct net_device *dev); netdev_tx_t (*ndo_start_xmit)(struct sk_buff *skb, struct net_device *dev); u16 (*ndo_select_queue)(struct net_device *dev, struct sk_buff *skb, void *accel_priv); void (*ndo_change_rx_flags)(struct net_device *dev, int flags); void (*ndo_set_rx_mode)(struct net_device *dev); int (*ndo_set_mac_address)(struct net_device *dev, void *addr); int (*ndo_do_ioctl)(struct net_device *dev, struct ifreq *ifr, int cmd); int (*ndo_set_config)(struct net_device *dev, struct net_device *dev_old); int (*ndo_change_mtu)(struct net_device *dev, int new_mtu); int (*ndo_neigh_setup)(struct net_device *dev, struct neigh_parms *); void (*ndo_tx_timeout)(struct net_device *dev, unsigned int txqueue); struct rtnl_link_stats64* (*ndo_get_stats64)(struct net_device *dev, struct rtnl_link_stats64 *storage); // ... 其他函数指针 }; ``` 这个结构体中的每个函数指针都对应一个特定的网络设备操作,例如初始化设备、打开设备、发送数据包等。驱动程序需要实现这些函数,并在注册网络设备时将其传递给内核。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值