这篇文章上次修改于 613 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
先上个效果图
实操提示
- 该上代理的上代理
- 有的命令权限不够,记得加sudo
docker run
一次产生一个实例,有了一个之后后面用docker exec
进入- 编译的时候要散热,不然指不定什么时候就挂了
- scrcpy操作很卡,主要是redroid不支持rk3588的gpu,cpu渲染就比较卡,散热散热散热,from B哥
- Ubuntu
redroid官方指南在此,开头的几个命令其实就挺懵(如下)
apt install linux-modules-extra-`uname -r`
modprobe binder_linux devices="binder,hwbinder,vndbinder"
modprobe ashmem_linux
尝试执行发现各种不行,差点放弃,后面又摸索到redroid-modules的说明
看了半天才发现最后写着自定义内核直接开启CONFIG_ASHMEM
和CONFIG_ANDROID_BINDERFS
就完事儿了
If use custom kernel (5.0+), you can enable binderfs and ashmem configs; So the kernel modules in this repo are not needed any more.
补充:如果编译有问题可以试试开启PSI
建议先sudo apt upgrade
一把,然后重启,把内核升级到最新
话不多说,我们自己开启选项,编译内核
官方的教程还是比较清晰的,前面按照wiki来就行,我这里列一下我的命令
安装必要库
sudo apt-get update
sudo apt-get install -y git device-tree-compiler libncurses5 libncurses5-dev build-essential libssl-dev mtools bc python dosfstools bison flex rsync u-boot-tools
同步内核等源代码,这里加个--depth=1
节省点时间
mkdir ~/rk3588-sdk && cd ~/rk3588-sdk
git clone -b linux-5.10-gen-rkr3.4 https://github.com/radxa/kernel.git --depth=1
git clone -b master https://github.com/radxa/rkbin.git --depth=1
git clone -b debian https://github.com/radxa/build.git --depth=1
然后使用下面的命令生成内核配置,先不要急着复制执行,记得在make menuconfig
这一步的时候打开CONFIG_ASHMEM
和CONFIG_ANDROID_BINDERFS
cd ~/rk3588-sdk
cd kernel
make rockchip_linux_defconfig
make menuconfig
make savedefconfig
cp defconfig arch/arm64/configs/rockchip_linux_defconfig
具体怎么操作呢,就是在执行了make menuconfig
之后,会弹出一个类图形界面让你操作
然后按/
即可进行关键词搜索,输入后回车即可,就可以找到相关选项在哪些位置可以进行配置(按ESC退出搜索结果界面)
通过上下键进行浏览,回车进入子一级,按空格切换选项配置,一般星号就是生效的意思
选好之后,按TAB切换最下面的选项,先save
然后exit
就可以执行下一步命令了
后面就是按照官方wiki进行编译
编译内核(散热散热散热
cd ~/rk3588-sdk
./build/mk-kernel.sh rk3588-rock-5b
打包内核相关的内容,这一步也是会很耗时的(散热散热散热
./build/pack-kernel.sh -d rockchip_linux_defconfig -r 10 # rockchip_linux_defconfig: kernel defconfig; 1: release number
长久的等待之后,终于得到了内核和内核dbg的镜像产物等等,然后就是按照官方wiki的命令安装这个名字带有dbg的deb包
dpkg -i linux-image-5.10.66-10-rockchip-ge5013df5e066-dbg_5.10.66-10-rockchip_arm64.deb
不过这样操作之后/boot/extlinux/extlinux.conf并没有新内容,然后把名字不带dbg的也安装一下就可以了
可以看到/boot/extlinux/extlinux.conf出现了刚才安装的内核
然后修改/boot/extlinux/extlinux.conf,添加下面这样的内容,即default
后面跟的是label
后面对应的名字,保存然后重启即可
default kernel-5.10.110-10-rockchip-gd962a3675
可以看到重启后内核是新的了
有了新的内核之后,就不需要管最开始那几个命令了,直接docker run开一个实例即可
当然,在这之前,还需要安装docker
参考官方blog即可,Getting started with Docker for Arm on Linux
不过要注意的是,官方给的命令里面,用proxychains之类的没效果,建议搞成全局代理,或者直接使用国内源进行安装
有一点需要注意,那就是sudo usermod -aG docker $USER
这个命令执行后,要退出当前用户再进入才有效(直接退出shell再进即可)
docker配置好了之后,直接使用下面的命令即可运行redroid(散热散热散热
docker run -itd --rm --privileged \
--pull always \
-v ~/data:/data \
-p 5555:5555 \
redroid/redroid:12.0.0-arm64
5555端口会转发到宿主机,默认是监听0.0.0.0上的,所以我们可以远程adb连上rock5b的ip:5555
然后使用scrcpy投屏即可,就是文章开头的效果了
已有 9 条评论
So... wheres the rest of how to start redroid?
I did installed it yes but how do I ignite it?
@DarkevilPT when you run docker success, you can use adb (local version) to connect it. if you can connect it ok, then you can use scrcpy to remote connect redroid
牛逼,linux-modules-extra折磨了一下午,还跑去研究armbian的build工具,还好搜索到这个文章了,省事一波,谢谢博主
显卡驱动好像有,https://github.com/remote-android/redroid-doc/issues/228
打包内核相关的内容,这一步有问题,执行之后出现mkfs.vfat:未找到命令,需要sudo,才能正确运行,
打包内核相关的内容,这一步也是会很耗时的(散热散热散热
其中的红色数字,是版本号的意思,得先通过uname -r,
同时不使用散热器,温度直接飙到80°C
https://github.com/ChisBread/malior#malior-redroid 这个可以直接调用gpu,丝般顺滑
5.10.110-36-rockchip-g0a544b8c7,简直无语了,重新换了一个新版本,然后编译,结果不行了,
rk3566能搞么