克隆指定Git仓库时出现gnutls_handshake错误如何解决?
解决gitorious仓库克隆失败并安装SocketCAN ISO-TP模块
这个问题的核心原因其实不是防火墙或者握手配置的问题——gitorious.org早在2016年就已经停止服务了,你要克隆的那个仓库地址已经完全失效了。别担心,我们有几个靠谱的替代方案来获取ISO-TP模块:
方法1:使用GitHub官方镜像仓库克隆
Linux CAN项目的代码已经迁移到了GitHub,你可以直接克隆官方镜像:
git clone https://github.com/linux-can/can-modules.git
克隆完成后,进入目录编译安装模块:
cd can-modules make sudo make install sudo modprobe can-isotp
安装完成后,用lsmod | grep can-isotp验证模块是否加载成功。
方法2:从当前系统内核源码编译ISO-TP模块
现在ISO-TP模块已经合并到Linux主线内核中,如果你使用的是较新的内核(通常3.15及以上),可以直接从内核头文件编译:
- 首先安装当前内核的头文件:
sudo apt install linux-headers-$(uname -r) - 进入内核头文件目录:
cd /usr/src/linux-headers-$(uname -r) - 打开内核配置界面,找到CAN相关选项:
在界面中依次导航到:sudo make menuconfigNetworking support→CAN bus subsystem support→CAN Transport Layer,勾选ISO 15765-2 CAN Transport Layer (ISO-TP)为模块(M选项)。 - 编译并安装模块:
sudo make modules_prepare sudo make modules SUBDIRS=drivers/net/can/isotp sudo cp drivers/net/can/isotp/can-isotp.ko /lib/modules/$(uname -r)/kernel/drivers/net/can/isotp/ sudo depmod -a sudo modprobe can-isotp
方法3:检查系统是否已自带ISO-TP模块
很多现代Linux发行版已经默认包含了ISO-TP模块,你可以先尝试直接加载:
sudo modprobe can-isotp
如果没有报错,执行lsmod | grep can-isotp能看到模块信息,说明系统已经自带,不需要额外克隆编译。
内容的提问来源于stack exchange,提问作者annonymous
相关产品推荐
相关产品推荐

