教程1,直接本地安装
安装过程
1.安装waydroid
sudo apt install curl ca-certificates -y
curl -s https://repo.waydro.id | sudo bash
sudo apt install waydroid -y
2.启动waydroid
sudo waydroid container start
waydroid session start
waydroid show-full-ui
参照: https://docs.waydro.id/usage/install-on-desktops
出错
部分命令行log
waydroid session start
[01:52:28] RuntimeError: Command failed: % mv /var/lib/waydroid/config_session /var/lib/waydroid/lxc/waydroid
sudo waydroid init
[01:54:45] Already initialized
sudo waydroid container stop
[01:55:21] NOTE: The failed command's output is above the ^^^ line in the log file: /var/lib/waydroid/waydroid.log
[01:55:21] Couldn't get LXC status. Assuming STOPPED.
sudo proxychains waydroid init -f
waydroid session start
[gbinder] Service manager /dev/anbox-binder has appeared
[02:18:53] Android with user 0 is ready
waydroid show-full-ui
[02:20:33] Starting waydroid session
[gbinder] Service manager /dev/anbox-binder has appeared
[02:20:42] Android with user 0 is ready
问题1
waydroid session start
[01:59:32] FileNotFoundError: [Errno 2] No such file or directory: '/var/lib/waydroid/lxc/waydroid/config'
waydroid show-full-ui
[12:31:46] Starting waydroid session
[12:31:46] RuntimeError: Command failed: % mv /var/lib/waydroid/config_session /var/lib/waydroid/lxc/waydroid
sudo proxychains waydroid init -f
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.16
[proxychains] Strict chain ... 127.0.0.1:1080 ... ota.waydro.id:443 ... OK
[proxychains] Strict chain ... 127.0.0.1:1080 ... ota.waydro.id:443 ... OK
[proxychains] Strict chain ... 127.0.0.1:1080 ... ota.waydro.id:443 ... OK
[proxychains] Strict chain ... 127.0.0.1:1080 ... ota.waydro.id:443 ... OK
[proxychains] Strict chain ... 127.0.0.1:1080 ... ota.waydro.id:443 ... OK
[12:30:00] ERROR: invalid literal for int() with base 10: '['
[12:30:00] See also: <https://github.com/waydroid>
Run 'waydroid log' for details.
查看日志:
waydroid log
(000672) [12:27:25] % systemctl is-active -q nfcd
(000672) [12:27:25] % chmod 777 -R /dev/dri/renderD128
(000672) [12:27:25] % chmod 777 -R /dev/fb0
(000672) [12:27:25] % mv /var/lib/waydroid/config_session /var/lib/waydroid/lxc/waydroid
mv: cannot move '/var/lib/waydroid/config_session' to '/var/lib/waydroid/lxc/waydroid': No such file or directory
(000672) [12:27:25] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(000672) [12:27:25] NOTE: The failed command's output is above the ^^^ line in the log file: /var/lib/waydroid/waydroid.log
(001975) [12:27:25] org.freedesktop.DBus.Python.RuntimeError: Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/dbus/service.py", line 712, in _message_cb
retval = candidate_method(self, *args, **keywords)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/waydroid/tools/actions/container_manager.py", line 34, in Start
do_start(self.args, session)
File "/usr/lib/waydroid/tools/actions/container_manager.py", line 179, in do_start
helpers.lxc.generate_session_lxc_config(args, session)
File "/usr/lib/waydroid/tools/helpers/lxc.py", line 218, in generate_session_lxc_config
tools.helpers.run.user(args, command)
File "/usr/lib/waydroid/tools/helpers/run.py", line 58, in user
return tools.helpers.run_core.core(args, msg, cmd, working_dir, output,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/waydroid/tools/helpers/run_core.py", line 343, in core
check_return_code(args, code, log_message)
File "/usr/lib/waydroid/tools/helpers/run_core.py", line 219, in check_return_code
raise RuntimeError("Command failed: " + log_message)
RuntimeError: Command failed: % mv /var/lib/waydroid/config_session /var/lib/waydroid/lxc/waydroid
(001975) [12:27:25] RuntimeError: Command failed: % mv /var/lib/waydroid/config_session /var/lib/waydroid/lxc/waydroid
(002648) [12:28:50] Already initialized
(002691) [12:28:56] ERROR: Action "init" needs root access
(002691) [12:28:56] See also: <https://github.com/waydroid>
(002691) [12:28:56] Traceback (most recent call last):
File "/usr/lib/waydroid/tools/__init__.py", line 63, in main
actionNeedRoot(args.action)
File "/usr/lib/waydroid/tools/__init__.py", line 21, in actionNeedRoot
raise RuntimeError(
RuntimeError: Action "init" needs root access
(002884) [12:29:52] Save config: /var/lib/waydroid/waydroid.cfg
(002884) [12:30:00] % modprobe -q ashmem_linux
[proxychains] DLL init: proxychains-ng 4.16
(002884) [12:30:00] % lxc-info --version
[proxychains] DLL init: proxychains-ng 4.16
5.0.2
(002884) [12:30:00] ERROR: invalid literal for int() with base 10: '['
(002884) [12:30:00] See also: <https://github.com/waydroid>
(002884) [12:30:00] Traceback (most recent call last):
File "/usr/lib/waydroid/tools/__init__.py", line 64, in main
actions.init(args)
File "/usr/lib/waydroid/tools/actions/initializer.py", line 155, in init
helpers.lxc.set_lxc_config(args)
File "/usr/lib/waydroid/tools/helpers/lxc.py", line 142, in set_lxc_config
lxc_ver = get_lxc_version(args)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/waydroid/tools/helpers/lxc.py", line 19, in get_lxc_version
return int(version_str[0])
^^^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: '['
(003101) [12:30:28] % tail -n 60 -F /var/lib/waydroid/waydroid.log
(003101) [12:30:28] *** output passed to waydroid stdout, not to this log ***
分析原因:
大概是 return int(version_str[0]) 没能正确返回
解决:
lxc-info --version
5.0.2
将/usr/lib/waydroid/tools/helpers/lxc.py的 return int(version_str[0]) 改成 return 5(也就是上面5.0.2中的5)
sudo nvim /usr/lib/waydroid/tools/helpers/lxc.py
最后
运行命令强制重新初始化容器:
sudo waydroid init -f
问题2
ERROR: Binder node "vndbinder" for waydroid not found
解决:
可能是重启电脑
也可能是清除waydroid文件再重启电脑
也可能是清除waydroid文件,重装waydroid,再重启电脑
清除waydroid文件的命令,
sudo rm -rf /var/lib/waydroid /home/.waydroid ~/waydroid ~/.share/waydroid ~/.local/share/applications/*aydroid* ~/.local/share/waydroid
源自官方文档
问题3
sudo waydroid init 卡住不动
需要加代理
以上问题基本由ai解决
教程2,使用distrobox安装使用
安装过程
distrobox create --root \
--image ghcr.io/vanilla-os/waydroid:main \
--init \
--unshare-all \
--name waydroid
distrobox enter --root waydroid
参照:https://distrobox.it/useful_tips/
之后参照教程1
问题1
distrobox create 时拉取镜像时太慢了
解决:
使用代理
sudo HTTPS_PROXY="http://127.0.0.1:1080/" podman pull ghcr.io/vanilla-os/waydroid:main
http://127.0.0.1:1080/ 是你自己的代理
然后再distrobox create
问题2
sudo waydroid container start
[01:32:29] ERROR: org.freedesktop.DBus.Error.FileNotFound: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[01:32:29] See also: <https://github.com/waydroid>
Run 'waydroid log' for details.
解决:
sudo systemctl unmask dbus.service
sudo systemctl start dbus
问题2 问ai解决的
问题3
waydroid show-full-ui
[05:01:58] Starting waydroid session
[05:02:08] OSError: container failed to start
解决:
sudo HTTPS_PROXY="http://127.0.0.1:1080/" waydroid init