关于一加平板2(天玑9400+)和一加13T(骁龙8E)的AVF踩坑 #1
Replies: 4 comments 7 replies
-
|
仓库里设置网络的脚本是从AOSP的一个beta分支拿来的(后面谷歌也删掉了这个脚本),好像有些过时了。现在可以试试酷安的一篇教程,也不太稳定:https://www.coolapk.com/feed/66660385 而且OPPO系在Android 16砍掉了Linux终端App,即使Root了也不补全:https://www.coolapk.com/feed/69209897 之前看了看AVF的源代码,有很多关键的原生库用命令都调用不了,所以配置文件的network目前在Shell环境下基本就是摆设。 |
Beta Was this translation helpful? Give feedback.
-
|
我又调整了一下参数,把共享文件夹搞定了: crosvm run \
--disable-sandbox \
--no-balloon \
--protected-vm-without-firmware \
--swiotlb 64 \
--params 'root=/dev/vda' \
--mem 8192 \
--cpus 4 \
--gpu backend=virglrenderer \
--shared-dir /storage/emulated:emulated:type=fs \
--net tap-name=crosvm_tap \
--initrd /data/local/tmp/initrd.img \
--rwdisk /data/local/tmp/root_part \
--disk /data/local/tmp/kernel_extras_part \
/data/local/tmp/vmlinuzvm里每次开机需要执行(第一次执行要建目录) mount -t virtiofs emulated /mnt/shared然后宿主机侧创建网卡的这个脚本,宿主机重启完要重新执行一次才行。 我还在折腾GPU加速和桌面环境,要是真的能全部搞定可以弄个开机脚本,甚至写个APP管理VM,这样就不用依赖Google那个Linux终端了 |
Beta Was this translation helpful? Give feedback.
-
|
只能说这玩意离能用都差得很远,动不动就死机,只能重启,甚至还有开机到一半dmesg都卡住,只能杀crosvm进程的。。 然后每次宿主机开机还要跑这个脚本,关键是偶尔还会在切wifi之类的时候断网,在VM里ping外网, ip route add 192.168.1.0/24 dev crosvm_tap table wlan0才能让VM上网,GPT老师的说法是Android作为宿主机,在IP规则这块不稳定,这个脚本不太合适,但是我压力了它几轮,最后也没给出真正能用的脚本来。 准备把平板卖了,想想也是,这玩意要是没有坑,国内厂商早就当卖点拿出来卖了,不至于藏着掖着,甚至直接把GUI入口砍掉,还要我一点点啃manual去找用法。 然后我又用一加13T+ColorOS 16.0.301试了一下(8e的soc)。 8e这边,可以用系统自带的crosvm程序,但是必须用https://github.com/polygraphene/gunyah-on-sd-guide 这个release的内核才能启动,如果直接用压缩包里解压出来的内核启动,会直接让手机死机重启; 死前跑码大概在这: 手机上 用他的内核的话,initrd和kernel_extra_part都不需要了,然后不能用 --rwdisk 来挂载可读写文件系统,最后用的命令是: crosvm run \
--disable-sandbox \
--no-balloon \
--protected-vm-without-firmware \
--swiotlb 64 \
--params "root=/dev/vda init=/lib/systemd/systemd" \
--mem 8192 \
--cpus 4 \
--gpu backend=2d\
--shared-dir /storage/emulated:emulated:type=fs \
--net tap-name=crosvm_tap \
--block path=/data/local/tmp/root_part,root=true \
/data/local/tmp/kernel但是高通的虚拟机又会经常崩掉 盲猜是因为内存不够了,毕竟是手机,日常跑了一堆APP的。。 |
Beta Was this translation helpful? Give feedback.
-
|
那这么看来还是我的项目支持度更高啊🥺。目前lxc有jni的api,APP管理器 |
Beta Was this translation helpful? Give feedback.


Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
2025-12-25结论和一些误区的澄清
AVF基本处于不可用的状态,看到这儿的赶紧跑!
设备必须Root,否则你连创建网卡的权限都没有,跑起来也是残废,更不好说GPU加速之类的了;
Pixel和AOSP自带的【Linux终端】应用,如果被OEM砍了(目前看到的情报是O系砍了,红米留着),没必要尝试去补;这个应用会尝试启动一个非保护虚拟机(non-protected vm),然后高通不支持这个模式的虚拟机,很多人就以为高通的CPU没法运行虚拟机;实际上crosvm支持高通和联发科的虚拟机管理器,这点可以翻crosvm的文档查阅得知;而且VM是否受保护对VM的运行其实不重要,只影响宿主机能否直接读取虚拟机内存+镜像是不是经过签名,在 8e、9400+的设备上你完全可以手动用crosvm来启动 不带固件的受保护的虚拟机 ,在8gen2和gen3则必须启动 带固件的受保护的虚拟机 ,但可以过掉pvmfw的检验,总之就是可以绕过【Linux终端】应用;
但是,AVF在你手上的设备,有哪些CLI程序、App能用,怎么用,这个领域几乎无文档(可以认为只有crosvm命令的manual有价值),而且也没什么人研究;OEM给你提供的crosvm的版本也不一定一样;就连AI都知道的不多,Claude和DeepSeek(免费版能用的模型)只会给出幻觉,目前ChatGPT可以辅助我做一些有用的分析,Gemini还没试过;
然后,就算用crosvm成功启动了虚拟机系统,配网,共享目录,GPU加速,桌面环境也需要慢慢摸索可以用的命令,我是因为已经习惯用libvert和qemu在服务器上手动运维KVM虚拟机所以才敢冲一冲;
然后的然后,就算虚拟机的共享目录配好了,网也通了,Android作为一个移动端的宿主机系统,网络情况复杂,不是Google官方给的那个示例脚本(也就是本仓库的)能完全覆盖住的,(我估计这也是Google后面把这个脚本删掉的原因); 目前这个脚本假设设备连着WIFI,如果要用流量、其他上网方式,还要折腾,例如我的平板支持手机共享网络,如果再装个clash之类的,一大堆网络设备,你会在
iptable/ip route/ip rule里面一头栽进去;最恶心的是,就算你真的配好了网,也可能因为WIFI重连啥的VM突然断网,要重写ip rule才可能会恢复;就算你搞定了一切,也愿意经常重启宿主设备然后重新创建正确的转发规则,虚拟机本身也会经常突然死机、开机失败,dmesg跑一半卡住是常态,一天要重启十几次虚拟机,几次宿主机,主力设备根本没法这么玩;
←我在这儿
XFCE桌面环境安装完之后,实际上也没几个软件能用,很多软件Linux端只有x86架构,最要命的问题是,Chromium装上之后,打开bing搜索东西过几秒必然死机;
这个我是真排查不动了,花2200买个能root的平板,不玩调度,不搞工作室护航打单赚钱,在这里折腾这个破B虚拟机, 妄想着这玩意能成为我随身的(vibe) coding生产力工具,我买个掌机,或者干脆用termux,或者直接远程连回家的电脑不好吗????
连Google在亲儿子设备上都只是作为开发者的特性提供了个终端(好像最新版有窗口了?),无论是软件生态,还是基础设施的稳定性,现在完全都达不到能用的级别,更算不上好用,Windows的WSL打磨了10年现在才算好用,M1的MacOS用了两三年才不怎么出现紫屏崩溃死机的问题,有些时候个人的生产力就算被Agent和LLM大幅度加强,很多东西没有厂商支持就是碰都别碰,Windows Phone就是前车之鉴;
手持一加平板2,处理器是9400+,ColorOS 16.0.401, 用KernelSU Root了,下载了debian镜像扔到/data/local/tmp,用命令
vm run --cpu-topology cpu_count=4 -m 8192 --network-supported ./vm_config.json启动,但是虚拟机里好像不会有网卡我看vm_config.json里有
"network": true,这一项配置,启动选项里也加了 --network-supportedBeta Was this translation helpful? Give feedback.
All reactions