/ Equipment

一加3T安装dragonpilot 0.8.1过程(结尾附0.8.13刷机成功)

概要

一加3T,刷openpilot的分支dragonpilot各种尝试,最终安装成功neos15.1+dp0.8.1因为各种细节卡壳,而记录整个过程,供参考。另外,咨询了neos项目人员,答复的是一加3T最高支持到15.1
参考:http://wiki.dragonpilot.cn op和dp的软硬安装知识
资源:https://pan.baidu.com/s/1TRyCBePNyppAyUH2fyLmwA 提取码: ep6k

升级记录

->裸机
->【0.8.1】
刷neos15.1+dp0.8.1+开机漫长编译成功
->【0.8.9】
在0.8.1的情况下,用本文结尾oneplus_update_neos.sh方式拉取0.8.9+按提示完成neos升级+recovery手动安装update.zip+开机漫长自动编译成功
->【0.8.13】
在0.8.1或裸机下,升级0.8.13,安装neos时,会报错找不到libqt5widgets.so.5,
在0.8.9下,与上同再来一次0.8.13升级,开机漫长等待编译后搞定

目录

1.一加3T准备
2.刷NEOS系统
3.安装dragonpilot程序
4.界面设置及车辆连接
5.初次行驶学习

1.一加3T手机刷机整备

a. 按攻略,把手机整成android8.0版本
b. 手机oem解锁
c. 手机用usb接电脑,能够识别fastboot模式下的手机
d. 手机recovery可以不用neos recovery,刷的twrp-3.3.1-0-   oneplus3t.img一样ok
这个过程fastboot usb的手机驱动是难点,仅仅是因为网络攻略资源太多,有些亲测无效,试了很多种,最后咋成功了我也弄不清楚了,反正搞定就行了。

2.刷入NEOS系统

a. 下载neos 15.1包
 网盘里有,永久分享
b. usb连手机fastboot模式
手机重启时按住音量下,等待出现start选择文字画面松开按键,再按音量键选择fastboot,手机就进入了fastboot模式,这时电脑打开powershell终端,输入fastboot devicecs 能看到一个设备编码即可
c.刷入neos

刷新recovery区,fastboot flash recovery recovery.img
刷写boot区,fastboot flash boot files\boot.img
刷写system区,fastboot flash system files\system.img
清除data数据,fastboot erase userdata
清除cache缓存,fastboot erase cache
重启,fastboot reboot

d. ssh连接手机的neos系统(可以理解为另一种android)
neos界面连wifi后,xshell客户端,添加站点:局域网ip+密钥文件,用户名为root,使用的密钥文件网盘有。从这开始就不需要usb线了,全部通过wifi ssh和界面控制手机。
说明:neos各版本rom下载地址怎么找?除了上文提及2个地址外,还可以从官方github里扒拉出来,打开https://github.com/commaai/eon-neos/commits/34e1e3be47aa3c3fb3928a985b2e88dd1ea66a33/update.json 从不同的版本提交记录打开,可以看到类似 "ota_url": "https://commadist.azureedge.net/neosupdate/ota-signed-5dc2575d713977666a8e14ae1b43a04d7f63123934c80fa10751d949a107653e.zip", 红色标记为旧内容,绿色标记为本次commit提交版本对应的内容,下载它就行。

3.安装openpilot分支dragonpilot

简单介绍一下openpilot分支(fork),即演变版本
openpilot,简称op,为官方原版,安装启动后,我没折腾下去,无法评价。目前最新版为0.8.10,需要neos16以上,支持neos18,因为neos16和18我都没刷成功,所以选择neos15.1支持的最高版本0.8.1
dragonpilot,简称dp,为国内演变版,在wiki的结尾“非常感谢afaaaaaaaaaaa授权Dragonpilot使用他的wiki知识库”,拉取代码时,有国内镜像,也可以通过界面安装。这个安装成功了,并且有clone_dp.sh这样的无脑安装脚本,爽。--后续过程都是关于它的安装
keyman,介绍称对本田支持最好,但我没安装成功
mypilot,介绍为买买熊新搞出来的分支,但网页没打开,不知道什么情况

3.a. 方式一:手机在neos可视界面安装

按install选择custom输入https://wiki.dpp.cool/dp1/081 #我没折腾成功,看不到过程,焦虑,还是ssh操作适合我。

3.b. 方式二:ssh连接neos,安装dp0.8.1

无脑脚本一行命令解决:wget "http://wiki.dragonpilot.cn/files/software/clone_dp.sh" -O clone_dp.sh && dos2unix clone_dp.sh && sh clone_dp.sh
选择 0.8.1(要求黑熊以上,要求neos 15.1)
#说明一下,这个脚本的大致过程是,从dragopilot仓库查到所有版本,展示出列表让你选择,你输入选择后,它自动git clone拉取仓库代码,并且判断dp版本是否与你的neos版本匹配,不匹配则更新你的neos,然后重启,手机会自动编译安装dp,然后自动开启dragonpilot的可视界面,就成功了。唯一需要你做的就是输入选择版本号
#再说明一下,这个脚本预留了三个git仓库,github国外原仓库速度不行,国内镜像github.com.cnpmjs.org和hub.fastgit.org,但是吧我试下来也就cnpmjs快一点,而这个脚本不知道为啥总是走github仓库,所以我就改了一下,只用cnpmjs。修改后的clone_dp.sh在网盘可以找到。
#20220717说明:两个国内镜像源都挂了,github国外源可用,慢点,自己修改一下clone_dp.sh的"git clone xxxxxxxx" 2行,都追加 "-c http.proxy="http://192.168.1.120:7890" #指定代理提速 ,地址示例请用自己的代理
#再再说明一下,dp版本(应用)与neos版本(系统)的对应关系

	# neos与openpilot对应版本关系
	openpilot 版本		NEOS 版本
	0.5.xx			9
	0.6.0 ~ 0.6.3		10.3
	0.6.4			10.4
	0.6.5 ~ 0.6.6		12
	0.7.0			13
	0.7.1 ~ 0.7.3		14
	0.7.4 ~ 0.7.9		14.1
	0.7.10 ~ 0.82		15.1
	0.8.3 ~ 0.8.4		16.2
	0.8.5 ~	0.8.13		17	 # 一加0.8.13+17成功 #20220718

4.程序设置和车辆连接

a. 硬件安装:包括acc协议接入和支架等安装直接看wiki的原文有图
b. 参数设置:在刷dp成功并且硬件也安装在车上,并接线连接后,需要在界面做些开关设置,如果介意方向盘监控和驾驶员监控,还可以在neos终端里修改param参数配置文件(定时的探活判断,否则停止自动巡航)

参数路径:
root@localhost:/data/params/d$ ls

关闭驾驶监控:
echo -n 0 > dp_driver_monitor && echo -n 0 > dp_steering_monitor && echo -n `date +%s` > dp_last_modified
# 0.8.1之前好使
# 0.8.4之后,dp_conf.py移除了这几个参数,且manager.py升级了,该法失效
# 0.8.9 selfdrive/monitoring/driver_monitor.py update()方法 237行左右的if语句(if self.face_detected ........),给加 "or True"全通过的条件,搞定

关闭录制记录:
echo -n 0 > dp_logger && echo -n 0 > dp_uploader

重启貌似可以了吧,这步我不确定

c. 车辆识别:界面上手动选择一下雅阁混动车型就ok了,反正我是折腾了好一些,攻略没说这个细节,需要你自己翻一下设置菜单。

5. 初次车辆学习

需要开一段时间让dp程序适配学习一下就可以了,至此全部搞定

=========== 一加3T刷入dp0.8.9+neos17成功 =========

一加3T刷入0.8.9成功步骤

oneplus 3T flash install openpilot0.8.9 + neos17
oneplus 3T flash install dragonpilot 0.8.9 + neos 17
oneplus 3T flash install dragonpilot 0.8.13 + neos 17

3.c 方式三:oneplus_update_neos.sh方式

参考高手的教程,一加3T刷0.8.4,再查看dp项目的installer文件,判断一加3T应该能刷0.8.9,并且最终刷机成功。(参考教程 http://wiki.dragonpilot.cn/cn/HOWTO-ONEPLUS.html
#20220718更新:按此方法刷新到0.8.13+neos17成功

  1. 拉取代码:进ssh终端,并执行命令如下
cd /data/ && rm -rf openpilot && cd /data/ && git clone https://github.com/dragonpilot-community/dragonpilot.git openpilot -b 0.8.13 --depth=1
# 如果无法访问或过忙,自己搞一个代理,结尾加上 -c http.proxy="http://192.168.1.125:7890"

2. 更新neos:终端执行命令如下,注意手机画面,出现升级提示点continue,
然后手机画面变成漫长的下载进度条,大概一个小时后,安装,并重启进入机器人画面在自动刷入boot和system(即适配版的neos),完成后进入下一步

cd /data/openpilot/scripts/ && ./oneplus_update_neos.sh

3. 再手动更新一下:手机完成重启时,进recovery模式,apply update -> Choose from emulated -> 0/ -> `update.zip,完成后再次重启,搞定

4. 这时候重启进入的画面是dp自动编译的进度条,完成即看到dp界面了