- 重新编译镜像
因为redroid要用到binder_linux内核模块,但是truenas默认的内核并没有这玩意,需要重新编译。
- 可以下载我编译好的自编译truenas_scale,然后手动安装/更新
- 也可以自己编译
#进入truenas你的一个目录位置 cd /mnt/p4510 #安装开发者工具 install-dev-tools sudo mount -o remount,rw / sudo apt install build-essential debootstrap git python3-pip squashfs-tools unzip libjson-perl rsync libarchive-tools wget https://wx.scjtqs.com/downloads/%E8%87%AA%E7%BC%96%E8%AF%91truenas_scale/python3.11-venv.deb # 因为truenas的apt源里面的python3-venv无法安装,这里我手动打包了个可用的deb出来 sudo apt install ./python3.11-venv.deb # 拉取编译脚本,这里可以用我改过(添加了蓝牙和binder的内核支持)的脚本来编 git clone https://github.com/scjtqs2/scale-build.git -b stable/fangtooth cd scale-build # 拉取依赖 make checkout # 编译需要的deb包 make packages # 创建update升级包 make update # 创建iso安装镜像 make iso
- 当然,你也可以用docker环境来编译,不安装开发者套件
### create a docker runner cd /mnt/p4510 git clone https://github.com/scjtqs2/scale-build.git -b stable/fangtooth docker run --rm -d \ --name truenas-builder \ --privileged \ -v /mnt/p4510/scale-builder:/workspace \ scjtqs/truenas-build:bookworm ## build docker exec -it truenas-builder bash # 拉取依赖 make checkout # 编译需要的deb包 make packages # 创建update升级包 make update # 创建iso安装镜像 make iso
- 创建binderfs,把这个脚本保存好,配置成
开机执行
#!/bin/zsh
# 确保 binderfs 挂载
mkdir -p /dev/binderfs
mount -t binder binder /dev/binderfs || true
# 修改权限,避免 "Permission denied"
chmod -R 666 /dev/binderfs
创建redroid
- 先用docker run 测试一下效果
docker run -itd --rm --privileged \ --name redroid \ -v /mnt/app/data/redroid/data:/data \ -v /dev/binderfs:/dev/binderfs \ -v /dev/binderfs/binder:/dev/binder \ -v /dev/binderfs/hwbinder:/dev/hwbinder \ -v /dev/binderfs/vndbinder:/dev/vndbinder \ -p 5555:5555 \ redroid/redroid:13.0.0_64only-latest \ androidboot.redroid_width=1080 \ androidboot.redroid_height=1920 \ androidboot.redroid_dpi=480 \ androidboot.redroid_gpu_mode=guest
- 用scrcpy验证没问题的化,可以上docker-compose的了
services: redroid: image: redroid/redroid:13.0.0_64only-latest container_name: redroid privileged: true tty: true stdin_open: true restart: unless-stopped volumes: - /mnt/app/data/redroid/data:/data - /dev/binderfs:/dev/binderfs - /dev/binderfs/binder:/dev/binder - /dev/binderfs/hwbinder:/dev/hwbinder - /dev/binderfs/vndbinder:/dev/vndbinder ports: - "5555:5555" command: > androidboot.redroid_width=1080 androidboot.redroid_height=1920 androidboot.redroid_dpi=480 androidboot.redroid_gpu_mode=guest