让我们谈谈我的尝试过程

发布时间:2025-06-24 19:36:40  作者:北方职教升学中心  阅读量:813


linux-orangepi。sudo。sudo。理论上不能编译这个模块,但是这里的安全起见󿀌或者编译进去)。

mkinitramfs 5.16.17+ -o initrd.imgmkimage -A arm64 -T ramdisk -C none -n uInitrd -d initrd.img uInitrd。ln。和。sudo。

重启后:

sudo。mv。

Step 1: 当然,让我们谈谈我的尝试过程。麻麻的,还要看log:sudo。

/boot/config-5.16.17-sun50iw9 ./.config。
在这里插入图片描述
根据上述log(逃),可以得出lmkd问题,去仓库issue搜索󿼌#293。

docker pull redroid/redroid:13.0.0-arm64。

也搞定了。

redroid13 logcat。

offline连接提示。

做好之后󿀌打开内核配置界面:make。docker pull redroid/redroid:11.0.0-arm64。PSI。cp。
分支。

安装scrcpy:。模块被编译成。

然后重启。#xff0c;后面在zero2上粗浅部署,虽然容器在运行,但scrcpy连接始终是黑屏,在那之后,我把编译好的内核和模块放在上面,如下:
123盘链接。勾上,弹出来。

Step 2: 自定义内核�开搓!
先去香橙派官方核源码:GitHub。redroid还提供androidbot.use_memfd=1.启用memfd支持󿼌因此,#什么是dri࿰?c;是drm的东西,这与GPU有关。,把。tnnd,原来还要。
由于众所周知的原因,克隆过程又花了几分钟,心中一万只羊驼奔腾而过..

随后,把系统已经带来的config搞过去:cd。docker run -itd --privileged -v ~/data11:/data -p 5555:5555 --name redroid11 redroid/redroid:11.0.0-arm64 androidboot.use_memfd。uInitrd-5.16.17+ vmlinuz-5.16.17+ /boot。阅读Readme是很好的.md。rm。4.9核心系统不能运行,这一点需要注意。=1 androidboot.redroid_gpu_mode。(5.16.17)。ln。
然后开始长时间等待...

大约5小时后,编译结束,首先安装模块,然后摩擦initrd镜像:sudo。~/linux-orangepi/uInitrd ./uInitrd-5.16.17+sudo。=guest。。ps。=

guest。

,不能编译,所以只能自定义内核。然后开始一个漫长的编译过程。redroid_modules。sudo。

起因。ln。

docker.io。还勾上,这样。

-a。

一句废话。我试图帮助一个群友部署,部署失败了。进入下一个环节:Debug(笑)。
,勾上。AIC(Android in Cloud)。在这里插入图片描述
支持,为什么不早说!(抓狂)。-rf Image uInitrd。docker run -itd --privileged -v ~/data13:/data -p 5555:5555 --name redroid13 redroid/redroid:13.0.0-arm64 androidboot.use_memfd。 docker。

Step 4: 连接。sudo。cd。
为什么不在这里写PSI支持…麻。 install。sudo。 docker。reboot。没办法,只能启动logcat查看Whats happening:sudo。另一种写作风格,尝试轻松的写作方法。我看到一些朋友讨论docker部署Redroid󿀌挂机玩游戏。

对照官方文件󿀌跑个容器试试水:sudo。sudo。使用新编译的内核:sudo。

~/linux-orangepi/arch/arm64/boot/Image ./vmlinuz-5.16.17+

做好之后󿀌ln󿼌当系统重启时,binder ipc driver。

Windows下scrcpy参考官方GitHub即可。
General Setup -> CPU/Task time and stats accounting -> Pressure stall information tracking。apt。ln。rm。连接方法见文末。
Staging Drivers。

Step 0: 我不想读那么多废话,只想跑,怎样做࿱?f;

在这里,mv。adb。binder。=1 androidboot.redroid_gpu_mode。那怎么办࿰呢?c;只能使用软件渲染:sudo。dmesg。-s vmlinuz-5.16.17+ Image。勾上,binderfs filesystem。

在这里插入图片描述
scrcpyadb connect localhost:5555scrcpy。还勾上,这样。OK,容器真的Run起来了,但是。

完成后,还是一样的启动容器,还是offline..拿出log仔细研究󿀌也没有研究出为什么,只能试试另一个版本:sudo。

根据上述log�可以知道󿀌GPU问题(雾)。redroid13。Android。

接下来,rm。-rf Image uInitrd。-s uInitrd-5.16.17+ uInitrd。make。#再次假装log,一般是lmkd问题,可以看见。exec。 docker。 sudo。打开后󿀌Device Drivers -> Android -> Android Drivers。 apt。是一种。

我使用的系统是官方的5.16核心系统。

-s uInitrd-5.16.17+ uInitrd。虽然作者也提供了。= 1docker。

Step 3.1: Debug。git。

-j8。docker.io。和。
仔细研究readme发现󿀌这个小玩意󿀌需要两个核心模块支持:ashmem(注:5.18主线内核 drop这个模块,官方替代方案是memfd,此外,

run起床后,adb连接,提示连接成功。
项目地址:GitHub。

随后,Android13镜像试水:sudo。boot。-s vmlinuz-5.16.17+ Image。=1 androidboot.redroid_gpu_mode。=

guest。binder。sudo。

clone -b orange-pi-5.16-sunxi644 https://github.com/orangepi-xunlong/linux-orangepi。docker run -itd --pull always -v ~/data13:/data -p 5555:5555 --name redroid13 redroid/redroid:13.0.0-arm64 androidboot.use_memfd。ashmem。sudo。cp。

然后将内核和initrd镜像放在/boot目录下:cd。sudo。modules_install -j8。sudo。 redroid13。orange-pi-5.16-sunxi64。install。#既然知道是GPU的问题,看文档就可以了。Enable the Anonymous Shared Memory Subsystem。docker stop redroid13。

此时�我只记得,我手里没有服务器编译,只能在本机上编译,想了想4个a53的弱性能…只能忍受。docker run -itd --privileged -v ~/data11:/data -p 5555:5555 --name redroid11 redroid/redroid:11.0.0-arm64 androidboot.use_memfd。 apt。
下载后:

unzip opi_zero2____kernel_redroid.zip。

Step -1: 系统环境描述。然后回到上一级�去。里面,进入。

Step 3:没有docker怎么玩?

答案是安装:sudo。

这一次,

#lmkd以每分钟30次的速度重启(约每2秒一次)。

Redroid(remote android)。然后开始编译:make。哦豁,有搞头。
编译后,安装内核的步骤仍然相同。install。

OK,重新启动容器󿀌连接或报offline。sudo。

这样就部署好了。当时觉得很有意思,,多个Android容器࿰可以方便地部署c;非常适合云游戏等应用…(以上废话,一个词总结:云手机)。exec。安装树外模块,但是我的核心版本太高了。cp。sudo。

不看不知道󿀌看起来很震惊:

#这里有log,但是我怎么能保留当时的log呢!#反正是/vendor下面的driso,报道segmentation fault。

很久以前,

menuconfig。/boot。5.16.17+ /lib/modules。sudo。最近又想起了这件事,所以我决定再试一次。docker pull redroid/redroid:11.0.0-arm64。打开看,我选择了。