东风帅客,车载电脑坏了两年了,终于抽空给做了一个,windows 11 arm64 + raspberry pi 4b。
原厂
diy
实现功能:
- 电子模块外置,原来的机位改成了收纳空间
- 屏幕采用10.1英寸电容屏。微雪的屏不支持lineageOS。
- windows系统。对比了ubuntu、rasbian、android【国外的一个开源组弄的lineageOS,还蛮有名】,感觉这个windows 11 arm64最流畅,而且目前也没有哪家的车载电脑采用windows
模块:
- 屏幕 * 1
- 树莓派4b * 2,一块用来装系统,一块用来做路由器。操作系统的树莓派4b 8G内存版,做路由器的树莓派4b 2G内存版。
- 功放模块 * 1
- 电源模块 * 3,把车载12v降压到5V3A,分别给树莓派主板和屏幕供电
- 开关模块,用洞洞板飞线
其他结构件均废物利用,如:
- 收纳空间的外壳是学校里面工业设计实习学生用剩下的木板
- 树莓派3b的支撑板是从废的亚克力板上裁下来的一块
- 屏幕的支持结构是报废笔记本屏幕上拆下来的
问题与解决
对比尝试了raspbian arm32、ubuntu 21.04 arm64和window 11 arm64,还是windows最流畅,但是Windows由于不是官方发布,是国外的大神从预览版修改而来的,没有预置wifi的驱动,所以不支持无线网卡。为了解决这个问题,将一块2G内存的树莓派刷openwrt做路由,wifi用client模式接手机热点,桥接到以太网口,windows通过以太网口接入。
update 2021.7.31.
bug:
关机的时候直接切断电源导致
1、windows 11某应用程序配置文件丢失
2、树莓派3b上的openwrt的sd卡被置为只读,下次开机无法连接手机热点,且无法修改配置
上述问题,判断皆由非安全关机导致,解决办法:
1、开启openwrt的root账户ssh登录,且使用公钥和私钥,不用密码,这样可以实现在命令行用ssh命令免密码自动登录,适用于批处理。
2、用poweroff指令远程关机openwrt。尝试中发现openwrt的关闭过程很漫长,所以后续批处理需要判断openwrt是否已经关闭。如果不做判断,windows关闭后将失去对openwrt的控制
3、判断openwrt是否成功关闭,我采用ping命令,并判断回显中是否带有TTL字符串,如果能够ping通,则回显字符串中包含TTL,如果ping不同,则不包含TTL。
4、当openwrt关闭后,批处理关闭windows 11。
脚本代码如下:
rem @ echo off
title poweroff monitor
set ip=192.168.1.1
ssh root@%ip% poweroff:p
timeout /nobreak /t 5
ping %ip% | find “TTL”
if %errorlevel% == 0 (
echo remote poweroff failed
goto p
)echo remote poweroff success, shutdown local immediately
timeout /nobreak /t 3
shutdown /t 0 /f /s
最后,批处理执行关机,需要给管理员权限,这个失误耽误了我个把小时。