Iphone 通过USB共享网络给Linux, IOS14+不能使用的解决方法

Iphone 通过USB共享网络给Linux, IOS14+不能使用的解决方法

1. 安装libimobiledevice

其实本来很简单,只需要:

sudo apt-get install ipheth-utils libimobiledevice-dev libimobiledevice-utils

然后在你的手机设置->热点,开启,然后插上数据线就行了。

2. 解决IOS14+不能用

从IOS14之后,我发现这个工具不能用了,Github有讨论过这个问题:libimobiledevice issue,由于苹果并不开放这个协议,社区基本上也只能算抹石头过河,最后有人发现,只需要改一下缓冲区大小就行了,即ipheth.c驱动中:

//#define IPHETH_BUF_SIZE         1516
#define IPHETH_BUF_SIZE         1514

这时有两种快速解决方案:

(1) Linux 5.10.4已经修复这个问题

如果你的工作对Linux内核版本没有要求,升级吧。

(2)编译驱动替换

为了方便大家使用,我把需要的东西都准备好了,放在github上,执行以下步骤就行了,都是简单的英文,我就懒得重新打一次了。注意如果将来升级了内核,这些步骤应该要重新执行一次。

  • Clone the project:
git clone https://github.com/potato1992/Iphone_usb_tethering_fix.git
  • Enter the project folder and make the ko file:
cd Iphone_usb_tethering_fix/
chmod +x ./install.sh
sudo bash ./install.sh
  • 根据向导,如果自动安装成功,就可以不往后面看了

(3)如果手动安装

  • Backup your original driver:
sudo cp /lib/modules/$(uname -r)/kernel/drivers/net/usb/ipheth.ko /lib/modules/$(uname -r)/kernel/drivers/net/usb/ipheth.ko.bak
  • Remove the old driver:
sudo rmmod ipheth
  • Copy the built driver
sudo cp ipheth.ko /lib/modules/$(uname -r)/kernel/drivers/net/usb/
  • Reload the new driver
sudo modprobe ipheth

应该就可以了。

编译失败了怎么办

换个版本试试,工程里面附带的从Linux3.1开始到5.9所有的ipheth驱动版本,如果还是编译不成功,有两种可能:

1. 说明我附上的这些驱动不适合你的版本,你需要自己从你的Linux发行商去下载Linux内核代码,版本要和你用的一致(uname -r 可以看内核版本),然后复制drivers/net/usb/ipheth.c  这个文件扔进pathes文件夹,然后做如下更改:

//#define IPHETH_BUF_SIZE         1516
//替换为
#define IPHETH_BUF_SIZE         1514

重新运行脚本,应该就可以了。

2. 你的Linux 发行版缺失编译kernel module必要的文件,运行以下命令检查:

ls -l /lib/modules/$(uname -r)/build

输出应该是类似这样的:

lrwxrwxrwx 1 root root 39 Jan 19 01:34 /lib/modules/5.4.0-65-generic/build -> /usr/src/linux-headers-5.4.0-65-generic

有两种可能可以解决的办法:

(1) 安装 Linux header,版本要和你的uname -r 显示的一致。

(2) 换个机器(虚拟机),安装官方版本ubuntu/debian,切换内核到待修复电脑的版本,然后运行这个脚本得到 ipheth.ko 驱动,复制到待修复电脑手动安装驱动。

这个脚本是不支持openwrt的,openwrt缺乏编译kernel module的必要组件,需要你下载openwrt代码,按照上面问题1的说明修改ipheth.c代码,然后用你的openwrt发行商提供的编译工具编译出驱动,再扔进路由器安装。

其实是非常没有技术含量的事情,写出来给大家一个思路。

 

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值