注意:ipv6部分未完篇,但方法可行,如有建议可评论区留言,后面随缘更新...
本来这篇文章是为了ipv6热点而写的教程,后面发现方法很多但是争议也多,因此干脆作为日常使用及优化的记录篇,在本篇可以看到使用sim卡、切卡、网桥、led控制、更改usb模式等多个玩法,可按需学习使用...
环境与工具
本文使用 酷安@jsbsbxjxh66 大佬的ufi001b-debian超频版1.2Ghz Debian进行修改
使用esim卡环境(如使用实体卡可跳过切esim卡步骤)
使用电脑进行连接(需打开cmd进行adb操作,以及ssh工具)
制作网桥
本节修改内容:
网关:192.168.2.1
选卡:esim
网桥:br0
新建网桥br0
先使用 adb shell
删除全部的连接,如 nmcli c del wifi usb
使用ssh或者adb shell连接后,使用指令新建个网桥,并新建两个从机,为usb与wifi,执行指令:
nmcli c add type bridge ifname br0 con-name br0 ipv4.method manual ipv4.addresses 192.168.2.1/24 ipv4.gateway '' ipv4.dns '223.5.5.5'
nmcli c add type ethernet ifname usb0 con-name usb-share
nmcli c add type bridge-slave ifname usb-share con-name usb-share master br0
修改默认网关
修改 /etc/dnsmasq.conf
最后两行
listen-address=192.168.2.1
dhcp-range=192.168.2.10,192.168.2.254,12h
执行重启 adb reboot
,重启后再次输入 adb shell
进入终端,此时usb是无IPV4分配的,执行指令
systemctl enable dnsmasq.service
systemctl start dnsmasq.service
再次重启后,即可分配到usb的ipv4,可以通过ssh连接
添加wifi网络
通过ssh连接debian后,执行 nmtui ,选择 编辑连接 ,选择网桥br0点进去,手动添加一个wifi连接。
常用修正
接下来的内容按需采取,ipv6部分存在争议,可自行尝试
替换 HT40 驱动(可选)
将驱动文件上传到root目录,执行指令覆盖原驱动即可
mv wcn36xx.ko /lib/modules/5.15.0-handsomekernel+/kernel/drivers/net/wireless/ath/wcn36xx/
替换基带文件
使用sftp连接至debian,将之前全分区备份中的 NON-HLOS.bin 文件使用7z打开或者软碟通打开,将里面的IMAGE拖出来,并通过sftp上传到debina root目录
执行指令,替换 /lib/firmware
内的驱动文件
mv IMAGE/* /lib/firmware/
切换esim卡
sim:sel
为esim卡的位置,如果要切换到sim卡槽,一般为 sim:sel2
,可以用指令看一下列表内是否有sim:sel2
ls /sys/class/leds/
如果没有 sim:sel2
则默认外置卡槽,可按需切换esim
输入指令 mmcli -m 0
,如果显示有内容但显示 sim-missing
,此时则为卡槽模式,可插入自己的卡。
切换esim卡可直接修改 /etc/rc.local 文件,使开机自动修改
!/bin/sh -e
echo 255 > /sys/class/leds/sim\:sel/brightness
modprobe -r qcom-q6v5-mss
sleep 1
modprobe qcom-q6v5-mss
sleep 1
systemctl restart rmtfs
sleep 1
systemctl restart ModemManager
exit
保存后输入 reboot
重启系统,重启后输入 mmcli -m 0
,如出现 state: connected
即为连接正常。
同时在重启后检查wifi是否以及开启,执行 nmcli
后是否出现modem连接信息,如果出现连接ip等信息即为一切顺利(如下图)。如果前面不顺利,后面设置ipv6转发会出问题。
重启sim卡
如果出现输入 mmcli -m 0
后,显示卡未连接disconnect或者未发现卡,可以使用sim卡重启大法尝试一下。如果多次出现,可以试试看加入到开机启动脚本中 rc.local(自行添加sleep 1延时)
systemctl stop ModemManager
qmicli -d /dev/wwan0qmi0 --uim-sim-power-off=1
qmicli -d /dev/wwan0qmi0 --uim-sim-power-on=1
systemctl start ModemManager
查看emmc芯片寿命
棒子debian系统可通过执行指令查看emmc寿命,数值仅参考,也有部分型号查看为0x00的,为芯片未定义,0x01为最佳寿命,同理数值越大寿命越低,该值仅供参考
cat /sys/class/mmc_host/mmc0/mmc0\:0001/life_time
切换为USB模式
执行指令可断开棒子usb共享,更改为host主机模式,可用于棒子专用拓展坞使用
echo host > /sys/kernel/debug/usb/ci_hdrc.0/role
相反的,也可以切换回网络共享模式
echo gadget > /sys/kernel/debug/usb/ci_hdrc.0/role
快速开启一个wifi
如果棒子无wifi或者误删,可以用这个指令在adb shell内快速创建一个wifi热点,名字为4G-wifi,密码为123456789
nmcli d wifi hotspot ifname wlan0 con-name wifi ssid 4G-wifi band bg channel 11 password 123456789
关闭全部led指示灯
如果觉得led灯太闪(没壳的会显得很亮),可以执行指令关闭led,同时可以放rc.local开机启动自动关闭led灯
echo none > /sys/class/leds/red\:os/trigger
echo none > /sys/class/leds/blue\:wifi/trigger
echo none > /sys/class/leds/green\:internet/trigger
AP启用ipv6共享(待补充)
输入指令启用ipv6转发,执行过程中可能会掉线ssh,建议在 adb shell
内执行
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.proxy_ndp=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.accept_ra=2" >> /etc/sysctl.conf
sysctl -p
nmcli connection up br0
systemctl restart dnsmasq.service
nmcli connection up usb
安装依赖
apt install radvd ndppd dhcpcd5
编写配置文件
br0为要监听的网络
/etc/radvd.conf.demo
interface br0 {
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
AdvManagedFlag off;
AdvOtherConfigFlag off;
prefix REPLACEIPV6 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
};
};
/etc/ndppd.conf.demo
route-ttl 30000
proxy wlan0 {
router yes
timeout 500
rule REPLACEIPV6 {
auto
}
}
/etc/dhcpcd.conf
interface br0
ipv6
ipv6rs
ipv6ra_other_information
启动服务
systemctl restart radvd
systemctl restart ndppd
systemctl restart dhcpcd
理论上v6部分就结束了,但是试过不同设备有几率并不能分发地址,还存在争议,也可以参考这位大佬的文章开启v6共享:https://zyyme.com/msm8916-wifi.html
本篇暂时完结,不研究debian了,后续随缘更新...