sailfishos-open / waydroid

Waydroid packaging for Sailfish OS
34 stars 8 forks source link

waydroid-container doesn't start - probably due to iptables-issue #13

Open knoffman opened 2 years ago

knoffman commented 2 years ago

I have SailfishOS Verla (v. 4.2.0.21) on a Fairphone2. For using apk-apps I installed actual waydroid-settings (1.2.0+git6) from the chum-repository, as described in the README. No issues with the installation and initiation, but I didn't get it started until today. Trying to start it via terminal, it told me, that XDG Session is not "wayland" (but sailfish only uses wayland). Fresh waydroid.log looks like this:

(018395) [19:10:38] UserMonitor service is not even started
(018395) [19:10:38] Clipboard service is not even started
(013330) [19:12:01] XDG Session is not "wayland"
(013330) [19:12:01] Save session config: /var/lib/waydroid/session.cfg
(013330) [19:12:01] UserMonitor service is not even started
(013330) [19:12:01] Clipboard service is not even started
(014833) [19:12:15] % chmod 666 -R /dev/binder
(014833) [19:12:16] % chmod 666 -R /dev/vndbinder
(014833) [19:12:16] % chmod 666 -R /dev/hwbinder
(014833) [19:12:16] Container manager is waiting for session to load
(014833) [19:12:16] % /opt/waydroid/data/scripts/waydroid-net.sh start
iptables v1.8.2 (legacy): unknown option "--checksum-fill"
Try 'iptables -h' or 'iptables --help' for more information.
Failed to setup waydroid-net.
iptables v1.8.2 (legacy): unknown option "--checksum-fill"
Try 'iptables -h' or 'iptables --help' for more information.
(014833) [19:12:16] % waydroid-sensord /dev/hwbinder
(014833) [19:12:16] New background process: pid=14939, output=background
(014833) [19:12:16] % mount /var/lib/waydroid/images/system.img /var/lib/waydroid/rootfs
[waydroid-sensors-daemon] Got new plugin for accelerometersensor with pid 14939 and session 6
[waydroid-sensors-daemon] Got plugin_string accelerometersensor
[waydroid-sensors-daemon] Got plugin_interface local.AccelerometerSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/accelerometersensor
(014833) [19:12:16] % mount -o remount,ro /var/lib/waydroid/images/system.img /var/lib/waydroid/rootfs
[waydroid-sensors-daemon] Got new plugin for gyroscopesensor with pid 14939 and session 7
[waydroid-sensors-daemon] Got plugin_string gyroscopesensor
[waydroid-sensors-daemon] Got plugin_interface local.GyroscopeSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/gyroscopesensor
(014833) [19:12:16] % mount /var/lib/waydroid/images/vendor.img /var/lib/waydroid/rootfs/vendor
[waydroid-sensors-daemon] Failed to create SensorfwHumiditySensor: Could not create sensorfw backend
[waydroid-sensors-daemon] Got new plugin for alssensor with pid 14939 and session 8
[waydroid-sensors-daemon] Got plugin_string alssensor
[waydroid-sensors-daemon] Got plugin_interface local.ALSSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/alssensor
(014833) [19:12:16] % mount -o remount,ro /var/lib/waydroid/images/vendor.img /var/lib/waydroid/rootfs/vendor
[waydroid-sensors-daemon] Got new plugin for magnetometersensor with pid 14939 and session 9
[waydroid-sensors-daemon] Got plugin_string magnetometersensor
[waydroid-sensors-daemon] Got plugin_interface local.MagnetometerSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/magnetometersensor
(014833) [19:12:18] % mount -o bind /vendor/lib/egl /var/lib/waydroid/rootfs/vendor/lib/egl
[waydroid-sensors-daemon] Got new plugin for orientationsensor with pid 14939 and session 10
[waydroid-sensors-daemon] Got plugin_string orientationsensor
[waydroid-sensors-daemon] Got plugin_interface local.OrientationSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/orientationsensor
(014833) [19:12:18] % mount -o bind /var/lib/waydroid/waydroid.prop /var/lib/waydroid/rootfs/vendor/waydroid.prop
(014833) [19:12:18] % mount -o bind /home/defaultuser/.local/share/waydroid/data /var/lib/waydroid/data
(014833) [19:12:18] % umount -l /sys/fs/cgroup/schedtune
umount: /sys/fs/cgroup/schedtune: no mount point specified.
(014833) [19:12:18] % chmod 777 -R /dev/ashmem
(014833) [19:12:18] % chmod 777 -R /dev/graphics
[waydroid-sensors-daemon] Got new plugin for pressuresensor with pid 14939 and session 12
[waydroid-sensors-daemon] Got plugin_string pressuresensor
[waydroid-sensors-daemon] Got plugin_interface local.PressureSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/pressuresensor
(014833) [19:12:18] % chmod 777 -R /dev/ion
[waydroid-sensors-daemon] Got new plugin for proximitysensor with pid 14939 and session 13
[waydroid-sensors-daemon] Got plugin_string proximitysensor
[waydroid-sensors-daemon] Got plugin_interface local.ProximitySensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/proximitysensor
(014833) [19:12:18] % chmod 777 -R /dev/fb1
(014833) [19:12:18] % chmod 777 -R /dev/fb0
[waydroid-sensors-daemon] Got new plugin for stepcountersensor with pid 14939 and session 15
[waydroid-sensors-daemon] Got plugin_string stepcountersensor
[waydroid-sensors-daemon] Got plugin_interface local.StepCounterSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/stepcountersensor
(014833) [19:12:18] % chmod 777 -R /dev/video2
(014833) [19:12:18] % chmod 777 -R /dev/video1
[waydroid-sensors-daemon] Failed to create SensorfwTemperatureSensor: Could not create sensorfw backend
(014833) [19:12:18] % chmod 777 -R /dev/video
(014833) [19:12:18] % chmod 777 -R /dev/video0
(014833) [19:12:18] % chmod 777 -R /dev/video39
(014833) [19:12:18] % chmod 777 -R /dev/video38
(014833) [19:12:18] % chmod 777 -R /dev/video35
(014833) [19:12:18] % chmod 777 -R /dev/video34
(014833) [19:12:18] % chmod 777 -R /dev/video33
(014833) [19:12:18] % chmod 777 -R /dev/video32
(014833) [19:12:18] % lxc-start -P /var/lib/waydroid/lxc -F -n waydroid -- /init
(014833) [19:12:18] New background process: pid=15022, output=background
The container failed to start.
Additional information can be obtained by setting the --logfile and --logpriority options.
(014833) [19:12:18] waiting 10 seconds for container to start...
(014833) [19:12:19] waiting 9 seconds for container to start...
(014833) [19:12:20] waiting 8 seconds for container to start...
(014833) [19:12:21] waiting 7 seconds for container to start...
(014833) [19:12:22] waiting 6 seconds for container to start...
(014833) [19:12:23] waiting 5 seconds for container to start...
(014833) [19:12:24] waiting 4 seconds for container to start...
(014833) [19:12:25] waiting 3 seconds for container to start...
(014833) [19:12:26] waiting 2 seconds for container to start...
(014833) [19:12:27] waiting 1 seconds for container to start...
(014833) [19:12:28] ERROR: container failed to start
(014833) [19:12:28] See also: <https://github.com/waydroid>
(014833) [19:12:28] Traceback (most recent call last):
  File "/opt/waydroid/tools/__init__.py", line 69, in main
    actions.container_manager.start(args)
  File "/opt/waydroid/tools/actions/container_manager.py", line 163, in start
    raise OSError("container failed to start")
OSError: container failed to start

Looking for solutions, I run into #178 and #105. Sadly, there is no nftables package in the sailfish-repo, so setting LXC_USE_NFT in waydroid-net.sh to true didn't solve it. I suppose, the iptables-problem is due to the lack of xt_CHECKSUM in the Sailfish-kernel. I met a possible workaround in a very old redhat-bugreport. Because I'm not an IT-specialist but a physician and do not know how to undo it, if it doesn't work, I didn't apply it. Could Comment 3 of the linked bugreport work as a solution? Or do you have any other ideas?

piggz commented 2 years ago

You could possibly try editing the script to remove the --checksum-fill paramters? Maybe also need to remove the -j CHECKSUM, but maybe things wont work so well without this?

knoffman commented 2 years ago

Thank you for your suggestion! I'll try it as soon as I find some time for it - which can last a couple of days. Then I'll let hear from me again.

knoffman commented 2 years ago

After a completely new installation of Waydroid (incl. removal of user-directories before) and removing both the --checksum-fill parameters and the -j CHECKSUM, there weren't any longer issues with the waydroid-net.sh. But Waydroid refused to start further. The first recorded log after this was the following:

(018099) [20:28:18] UserMonitor service is not even started
(018099) [20:28:18] Clipboard service is not even started
(013408) [20:29:16] XDG Session is not "wayland"
(013408) [20:29:16] Save session config: /var/lib/waydroid/session.cfg
(013408) [20:29:16] UserMonitor service is not even started
(013408) [20:29:16] Clipboard service is not even started
(015012) [20:29:31] % chmod 666 -R /dev/binder
(015012) [20:29:31] % chmod 666 -R /dev/vndbinder
(015012) [20:29:31] % chmod 666 -R /dev/hwbinder
(015012) [20:29:31] Container manager is waiting for session to load
(015012) [20:29:31] % /opt/waydroid/data/scripts/waydroid-net.sh start
(015012) [20:29:31] % waydroid-sensord /dev/hwbinder
(015012) [20:29:31] New background process: pid=15064, output=background
(015012) [20:29:31] % mount /var/lib/waydroid/images/system.img /var/lib/waydroid/rootfs
[waydroid-sensors-daemon] Got new plugin for accelerometersensor with pid 15064 and session 6
[waydroid-sensors-daemon] Got plugin_string accelerometersensor
[waydroid-sensors-daemon] Got plugin_interface local.AccelerometerSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/accelerometersensor
[waydroid-sensors-daemon] Got new plugin for gyroscopesensor with pid 15064 and session 7
[waydroid-sensors-daemon] Got plugin_string gyroscopesensor
[waydroid-sensors-daemon] Got plugin_interface local.GyroscopeSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/gyroscopesensor
(015012) [20:29:31] % mount -o remount,ro /var/lib/waydroid/images/system.img /var/lib/waydroid/rootfs
[waydroid-sensors-daemon] Failed to create SensorfwHumiditySensor: Could not create sensorfw backend
[waydroid-sensors-daemon] Got new plugin for alssensor with pid 15064 and session 8
[waydroid-sensors-daemon] Got plugin_string alssensor
[waydroid-sensors-daemon] Got plugin_interface local.ALSSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/alssensor
(015012) [20:29:32] % mount /var/lib/waydroid/images/vendor.img /var/lib/waydroid/rootfs/vendor
[waydroid-sensors-daemon] Got new plugin for magnetometersensor with pid 15064 and session 9
[waydroid-sensors-daemon] Got plugin_string magnetometersensor
[waydroid-sensors-daemon] Got plugin_interface local.MagnetometerSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/magnetometersensor
[waydroid-sensors-daemon] Got new plugin for orientationsensor with pid 15064 and session 10
[waydroid-sensors-daemon] Got plugin_string orientationsensor
[waydroid-sensors-daemon] Got plugin_interface local.OrientationSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/orientationsensor
(015012) [20:29:32] % mount -o remount,ro /var/lib/waydroid/images/vendor.img /var/lib/waydroid/rootfs/vendor
[waydroid-sensors-daemon] failed to call load_plugin
[waydroid-sensors-daemon] Failed to create SensorfwPressureSensor: Could not create sensorfw backend
(015012) [20:29:32] % mount -o bind /vendor/lib/egl /var/lib/waydroid/rootfs/vendor/lib/egl
[waydroid-sensors-daemon] Got new plugin for proximitysensor with pid 15064 and session 12
[waydroid-sensors-daemon] Got plugin_string proximitysensor
[waydroid-sensors-daemon] Got plugin_interface local.ProximitySensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/proximitysensor
(015012) [20:29:32] % mount -o bind /var/lib/waydroid/waydroid.prop /var/lib/waydroid/rootfs/vendor/waydroid.prop
[waydroid-sensors-daemon] Got new plugin for stepcountersensor with pid 15064 and session 14
[waydroid-sensors-daemon] Got plugin_string stepcountersensor
[waydroid-sensors-daemon] Got plugin_interface local.StepCounterSensor
[waydroid-sensors-daemon] Got plugin_path /SensorManager/stepcountersensor
(015012) [20:29:32] % mount -o bind /home/defaultuser/.local/share/waydroid/data /var/lib/waydroid/data
[waydroid-sensors-daemon] Failed to create SensorfwTemperatureSensor: Could not create sensorfw backend
(015012) [20:29:32] % umount -l /sys/fs/cgroup/schedtune
umount: /sys/fs/cgroup/schedtune: no mount point specified.
(015012) [20:29:32] % chmod 777 -R /dev/ashmem
(015012) [20:29:32] % chmod 777 -R /dev/graphics
(015012) [20:29:32] % chmod 777 -R /dev/ion
(015012) [20:29:32] % chmod 777 -R /dev/fb1
(015012) [20:29:32] % chmod 777 -R /dev/fb0
(015012) [20:29:32] % chmod 777 -R /dev/video2
(015012) [20:29:32] % chmod 777 -R /dev/video1
(015012) [20:29:32] % chmod 777 -R /dev/video
(015012) [20:29:32] % chmod 777 -R /dev/video0
(015012) [20:29:32] % chmod 777 -R /dev/video39
(015012) [20:29:32] % chmod 777 -R /dev/video38
(015012) [20:29:32] % chmod 777 -R /dev/video35
(015012) [20:29:32] % chmod 777 -R /dev/video34
(015012) [20:29:32] % chmod 777 -R /dev/video33
(015012) [20:29:32] % chmod 777 -R /dev/video32
(015012) [20:29:32] % lxc-start -P /var/lib/waydroid/lxc -F -n waydroid -- /init
(015012) [20:29:32] New background process: pid=15145, output=background
The container failed to start.
Additional information can be obtained by setting the --logfile and --logpriority options.
(015012) [20:29:32] waiting 10 seconds for container to start...
(015012) [20:29:33] waiting 9 seconds for container to start...
(015012) [20:29:34] waiting 8 seconds for container to start...
(015012) [20:29:35] waiting 7 seconds for container to start...
(015012) [20:29:36] waiting 6 seconds for container to start...
(015012) [20:29:37] waiting 5 seconds for container to start...
(015012) [20:29:38] waiting 4 seconds for container to start...
(015012) [20:29:39] waiting 3 seconds for container to start...
(015012) [20:29:40] waiting 2 seconds for container to start...
(015012) [20:29:41] waiting 1 seconds for container to start...
(015012) [20:29:42] ERROR: container failed to start
(015012) [20:29:42] See also: <https://github.com/waydroid>
(015012) [20:29:42] Traceback (most recent call last):
  File "/opt/waydroid/tools/__init__.py", line 69, in main
    actions.container_manager.start(args)
  File "/opt/waydroid/tools/actions/container_manager.py", line 163, in start
    raise OSError("container failed to start")
OSError: container failed to start

I cannot really find any suspicious terms in that log, apart from perhaps [waydroid-sensors-daemon] failed to call load_plugin. But in the next (otherwise quite similar) log with the next system-start, this line didn't appear. Do you have any more ideas, what this behavior of Waydroid could be due to?