随身 Wi-Fi 棒子(OpenStick)使用高通串口登录
随身 Wi-Fi 设备上没有线网口,刷了开源棒子(OpenStick)系统后对外通讯的方式有:无线网络(Wi-Fi)、蓝牙、USB(USB 网络和 ADB)。看起来似乎上够用了,但是实际上还是会出现无法连接的情况。
蓝牙上次探索过,虽然可以驱动和连接但是状况不太稳定,剩下 Wi-Fi 成了最常用的连接方式,但有一次安装其他模块的时候导致无线网卡驱动出现了问题不得不使用其他方式连接进行修复,而 USB 接口使用 OTA 模式连接外设的时候就不能同时使用 USB 网口和 ADB,所以想再找一个登陆方式以备不时之需。
恰好,看到随身 Wi-Fi 主板上有标记为 RX、TX 的触点,应该是可以进行串口通讯,于是开始查询资料和探索。
相关资料
- 在高通骁龙410主控的USB网卡上玩 GNU/Linux:这里讲到了可以串口终端,不过未实施
- 在410c上使用UART登录:讲的高通 410c 的串口终端
- 调试串口TTYMSM0的使用:讲的也是高通 410c 串口调试,而且有比较详细的信息,特意注明需要使用 1.8V 的电平
工具准备
- 电烙铁
材料准备
- CH340G 芯片 USB 转 TTL 串口模块:我买的 3.3/5V 版本,价格 1.44 元包邮(原价 3.42元,淘金币抵扣 0.06 元,签到红包 1.92 元)。
- TXS008E 电平转换模块:因为之前买的 USB 串口模块不支持 1.8V 电平,所以又专门买了一个双向电压转换模块,如果买的 USB 串口模块是 1.8V 版本就不需要这个电平转换模块。价格 2 元包邮。
- 杜邦线若干:这个是之前买其他电子产品送的,所以不单独计算价格了。
操作步骤
从随身 Wi-Fi 主板上焊接 4 条线,从左往右依次为 RX、TX、POWER_ON(1.8V)、GND。
将跳线帽接在 USB 串口模块 5V 上,从 上面也接出 4 条线,从上往下依次为 GND、RX、TX、POWER(5V)。
将这些接出来的线都接到电平转换模块上。电平转换模块低压侧和高压侧的 GND 应当接在一起,由于我的 Wi-Fi 棒子实际和 USB 串口模块共用同一个电源所以这一步省略了。
接好以后,将 USB 串口模块以及 Wi-Fi 棒子都接到电脑上。
串口终端登陆
先使用 adb shell 登陆随身 Wi-Fi 执行 dmesg | grep tty
查看一下当前使用的串口波特率:
[ 0.000000] Kernel command line: earlycon root=PARTUUID=a7ab80e8-e9d1-e8cd-f157-93f69b1d141e console=ttyMSM0,115200 no_framebuffer=true rw androidboot.emmc=true androidboot.serialno=7ed44ecc androidboot.baseband=msm mdss_mdp.panel=0:dsi:0:
[ 0.576001] 78b0000.serial: ttyMSM0 at MMIO 0x78b0000 (irq = 30, base_baud = 460800) is a MSM
[ 0.589997] printk: console [ttyMSM0] enabled
[ 3.539641] systemd[1]: Created slice system-getty.slice.
[ 3.586532] systemd[1]: Created slice system-serial\x2dgetty.slice.
可以看到打印的信息:console=ttyMSM0,115200
,其中 ttyMSM0
就是高通的串口,而 115200
就是波特率。
我使用的设备是 Mac 所以可以使用系统自带的终端进行连接和登陆。
退出随身 Wi-Fi 的登陆,直接在 Mac 系统终端执行 ls /dev/tty.*
查看一下 USB 串口模块的信息:
/dev/tty.Bluetooth-Incoming-Port
/dev/tty.usbserial-14230
/dev/tty.pci-serial22
其中 /dev/tty.usbserial-14230
就是 USB 串口模块,然后执行 screen
命令进行连接:
screen /dev/tty.usbserial-14230 115200
连接后输出一堆乱码,按键盘也是仍然输出乱码。
重启一下随身 Wi-Fi,然后重复以上步骤重新连接,这次虽然仍旧输出乱码,不过按了一下回车之后开始了正常输出:
�Є�
B���BR�B�#�=&ĄV�DB2B�!
openstick login:
Debian GNU/Linux 11 openstick ttyMSM0
openstick login:
此时可以输入用户名然后回车,根据提示再输出密码回车,登陆成功:
openstick login: user
Password:
Linux openstick 5.15.0-handsomekernel+ #17 SMP PREEMPT Tue Jun 20 17:10:37 CST 2022 aarch64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Jun 20 16:21:58 UTC 2023 on ttyMSM0
user@openstick:~$
交流
- OpenStick 项目地址:https://github.com/OpenStick/OpenStick
- OpenStick交流群:724443969