懒得再去snap上下载了,我选择搬仓库源码编译。
首先是把仓库搬下来。
国内搬github仓库很慢,安装一下fastgithub加速clone速度。
代码: 全选
cd ~
wget https://gitee.com/chcrazy/FastGithub/releases/download/2.1.4/fastgithub_linux-x64.zip
7z x fastgithub_linux-x64.zip
cd fastgithub_linux-x64
./fastgithub
完成
然后需要安装一下前置
代码: 全选
sudo apt install build-essential cmake cmake-data debhelper dbus google-mock \
libboost-dev libboost-filesystem-dev libboost-log-dev libboost-iostreams-dev \
libboost-program-options-dev libboost-system-dev libboost-test-dev \
libboost-thread-dev libcap-dev libexpat1-dev libsystemd-dev libegl1-mesa-dev \
libgles2-mesa-dev libglm-dev libgtest-dev liblxc1 \
libproperties-cpp-dev libprotobuf-dev libsdl2-dev libsdl2-image-dev lxc-dev \
pkg-config protobuf-compiler python3-minimal
代码: 全选
cd ~
git clone https://github.com/anbox/anbox.git --recurse-submodules
cd anbox
自动:
代码: 全选
./build.sh
代码: 全选
mkdir build
cmake ..
make
make install
出现的问题可能有:
1.cmake阶段有文件缺失:
检查git clone最后有没有加--recurse-submodules
检查网络环境,fastgithb是否正确启动,网络全局代理是否启用
2.make出现:
代码: 全选
[src/CMakeFiles/anbox-core.dir/build.make:1268:src/CMakeFiles/ax-core.dir/anbox/platform/sdl/window.cpp.o] 错误 1
最后,install完无法启动?
检查环境:
代码: 全选
anbox check-features
代码: 全选
ls /dev/{binder,ashmem}
没有这两个设备请看:
代码: 全选
cd ~
git clone https://github.com/anbox/anbox-modules.git
cd anbox-modules
sudo cp anbox.conf /etc/modules-load.d/
sudo cp 99-anbox.rules /lib/udev/rules.d/
sudo cp -rT ashmem /usr/src/anbox-ashmem-1
sudo cp -rT binder /usr/src/anbox-binder-1
sudo dkms install anbox-ashmem/1 //我在这步出问题
sudo dkms install anbox-binder/1
sudo modprobe ashmem_linux
sudo modprobe binder_linux
lsmod | grep -e ashmem_linux -e binder_linux
ls -alh /dev/binder /dev/ashmem
正常来说到~/anbox-modules/ashmem下make & make install就好了
我在make时遇到两个编译错误:
代码: 全选
/home/sakitsuki_asahi/anbox-modules/ashmem/ashmem.c: In function ‘ashmem_mmap’:
/home/sakitsuki_asahi/anbox-modules/ashmem/ashmem.c:393:23: error: assignment of read-only member ‘vm_flags’
393 | vma->vm_flags &= ~calc_vm_may_flags(~asma->prot_mask);
| ^~
/home/sakitsuki_asahi/anbox-modules/ashmem/ashmem.c: In function ‘ashmem_init’:
/home/sakitsuki_asahi/anbox-modules/ashmem/ashmem.c:877:9: error: too few arguments to function ‘register_shrinker’
877 | register_shrinker(&ashmem_shrinker);
| ^~~~~~~~~~~~~~~~~
/home/sakitsuki_asahi/anbox-modules/ashmem/ashmem.c:877:9这个问题我通过修改源代码成功解决,原因在于gcc从不知道哪个版本开始,register_shrinker函数变成两个输入了。所以把
代码: 全选
register_shrinker(&ashmem_shrinker);
代码: 全选
register_shrinker(&ashmem_shrinker, "ashmem");
上面那个/home/sakitsuki_asahi/anbox-modules/ashmem/ashmem.c:393:23问题还没法解决。
上网查了一圈,没人和我有一样的问题。。。
官方github项目早在今年2月份就已经被archive了,我也提交不上issue。
现来求助!
求求了!