diff --git a/Dockerfile.agnos b/Dockerfile.agnos index 64914f6..f9bc67d 100644 --- a/Dockerfile.agnos +++ b/Dockerfile.agnos @@ -51,14 +51,6 @@ COPY ./userspace/compile-lpac.sh /tmp/agnos/ RUN --mount=type=cache,target=/root/.ccache,id=lpac,sharing=shared \ /tmp/agnos/compile-lpac.sh -# qtwayland5 -FROM agnos-compiler AS agnos-compiler-qtwayland5 -COPY ./userspace/qtwayland/*.deb /tmp/agnos/ -COPY ./userspace/compile-qtwayland5.sh /tmp/agnos/ -COPY ./userspace/qtwayland/patch* /tmp/agnos/ -RUN --mount=type=cache,target=/root/.ccache,id=qtwayland5,sharing=shared \ - /tmp/agnos/compile-qtwayland5.sh - # ################## # # ###### Base ###### # # ################## # @@ -87,15 +79,6 @@ RUN /tmp/agnos/openpilot_dependencies.sh COPY ./userspace/openpilot_python_dependencies.sh /tmp/agnos/ RUN /tmp/agnos/openpilot_python_dependencies.sh -# Install old Qt 5.12.8, libwayland 1.9.0-1 and deps -COPY ./userspace/qtwayland/*.deb /tmp/agnos/ -RUN apt-get -o Dpkg::Options::="--force-overwrite" install -yq \ - /tmp/agnos/qt-5.12.8.deb \ - /tmp/agnos/libwayland-1.9.0-1.deb \ - /tmp/agnos/libicu66_66.1-2ubuntu2.1_arm64.deb \ - /tmp/agnos/libssl1.1_1.1.1f-1ubuntu2.22_arm64.deb \ - /tmp/agnos/libffi6_3.2.1-8_arm64.deb - # ################### # # ###### AGNOS ###### # # ################### # @@ -153,12 +136,6 @@ RUN source $XDG_DATA_HOME/venv/bin/activate && \ COPY ./userspace/install_extras.sh /tmp/agnos/ RUN /tmp/agnos/install_extras.sh -COPY --from=agnos-compiler-qtwayland5 /tmp/qtwayland5.deb /tmp/qtwayland5.deb -RUN cd /tmp && apt-get -o Dpkg::Options::="--force-overwrite" install -yq --allow-downgrades ./qtwayland5.deb - -# Patched libeglSubDriverWayland with fixed nullptr deref in CommitBuffer -COPY ./userspace/files/libeglSubDriverWayland.so.patched /lib/aarch64-linux-gnu/libeglSubDriverWayland.so - COPY ./userspace/home/ /home/$USERNAME/ COPY ./userspace/home/.config/ /root/.config RUN chown -R $USERNAME: /home/$USERNAME/.config @@ -194,10 +171,6 @@ COPY ./userspace/libs32/* /usr/lib/arm-linux-gnueabihf/ #COPY ./userspace/files/linux-headers-4.9.103+_4.9.103+-1_arm64.deb /tmp/ #RUN dpkg -i /tmp/linux-headers-4.9.103+_4.9.103+-1_arm64.deb -# Weston with hacked touch rotate and color correction -COPY ./userspace/files/weston /usr/bin/weston -COPY ./userspace/files/gl-renderer.so /usr/lib/arm-linux-gnueabihf/weston - # Setup systemd services COPY ./userspace/services.sh /tmp/agnos RUN /tmp/agnos/services.sh @@ -226,9 +199,6 @@ COPY ./userspace/files/avahi-override.conf /etc/systemd/system/avahi-daemon.serv # Prevent polkitd memory leak from getting out of hand by restarting it every ~day COPY ./userspace/files/polkit-override.conf /etc/systemd/system/polkit.service.d/override.conf -# Remove qt network bearer plugins -RUN rm -rf /usr/lib/aarch64-linux-gnu/qt5/plugins/bearer - # Add iptable rules to block incoming traffic on wwan0 COPY ./userspace/etc/iptables/rules.v4 /etc/iptables/rules.v4 diff --git a/README.md b/README.md index 31ffd95..f3fa579 100644 --- a/README.md +++ b/README.md @@ -87,4 +87,4 @@ Some concrete things on the roadmap: - [ ] mainline Linux kernel https://github.com/commaai/openpilot/issues/32386 - [ ] fully open source - [ ] anything from `firmware/`: XBL, ABL, etc. - - [ ] Weston https://github.com/commaai/agnos-builder/issues/16 + - [x] Weston https://github.com/commaai/agnos-builder/issues/16 deleted! diff --git a/userspace/.gitattributes b/userspace/.gitattributes index 7db9ea4..ee2edf9 100644 --- a/userspace/.gitattributes +++ b/userspace/.gitattributes @@ -1,7 +1,5 @@ usr/comma/wlan.ko filter=lfs diff=lfs merge=lfs -text usr/comma/wifi filter=lfs diff=lfs merge=lfs -text -files/weston filter=lfs diff=lfs merge=lfs -text -files/libeglSubDriverWayland.so.patched filter=lfs diff=lfs merge=lfs -text usr/comma/reset filter=lfs diff=lfs merge=lfs -text usr/comma/setup filter=lfs diff=lfs merge=lfs -text usr/comma/installer filter=lfs diff=lfs merge=lfs -text diff --git a/userspace/compile-qtwayland5.sh b/userspace/compile-qtwayland5.sh deleted file mode 100755 index 6d5c930..0000000 --- a/userspace/compile-qtwayland5.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -e - -VERSION=5.12.9 - -# Install build requirements -dpkg --add-architecture armhf - -apt-get update && apt-get install -yq --no-install-recommends \ - libc6:armhf \ - libdbus-1-3 \ - libegl-dev \ - libexpat1:armhf \ - libfontconfig-dev \ - libfreetype6 \ - libgles-dev \ - libglib2.0-dev \ - libharfbuzz-dev \ - libpcre2-dev \ - libwayland-dev \ - libxcomposite-dev \ - libxkbcommon-dev \ - zlib1g-dev - -apt-get -o Dpkg::Options::="--force-overwrite" install -yq \ - /tmp/agnos/qt-5.12.8.deb \ - /tmp/agnos/libwayland-1.9.0-1.deb \ - /tmp/agnos/libicu66_66.1-2ubuntu2.1_arm64.deb \ - /tmp/agnos/libssl1.1_1.1.1f-1ubuntu2.22_arm64.deb \ - /tmp/agnos/libffi6_3.2.1-8_arm64.deb - -# Patched qtwayland that outputs a fixed screen size -# Clone qtwayland submodule, checkout, apply patch, qmake, make -cd /tmp -git clone --branch v${VERSION} --depth 1 https://github.com/qt/qtwayland.git -cd qtwayland - -git apply /tmp/agnos/patch-qtwayland-v5.12 - -# qtwayland is incorrectly built against libdl.so instead of libdl.so.2 -# https://stackoverflow.com/a/75855054/639708 -ln -s libdl.so.2 /usr/lib/aarch64-linux-gnu/libdl.so - -qmake -export MAKEFLAGS="-j$(nproc)" -make - -OUTPUT_DIR=/tmp/qtwayland5 -mkdir $OUTPUT_DIR -make install INSTALL_ROOT=$OUTPUT_DIR - -mkdir $OUTPUT_DIR/DEBIAN -cat << EOF > $OUTPUT_DIR/DEBIAN/control -Package: qtwayland5 -Version: ${VERSION}-1 -Architecture: all -Maintainer: Andrei Radulescu -Replaces: qtwayland5, libqt5waylandclient5, libqt5waylandcompositor5 -Installed-Size: `du -s $OUTPUT_DIR | awk '{print $1}'` -Homepage: https://comma.ai -Description: Patched qtwayland that outputs a fixed screen size -EOF - -dpkg-deb --root-owner-group --build $OUTPUT_DIR /tmp/qtwayland5.deb diff --git a/userspace/files/agnos-tests.service b/userspace/files/agnos-tests.service index 5b26bf4..e925dec 100644 --- a/userspace/files/agnos-tests.service +++ b/userspace/files/agnos-tests.service @@ -1,5 +1,5 @@ [Unit] -#After=weston-ready.service +#After= [Service] #Type=simple @@ -10,7 +10,6 @@ Restart=no # exit if connected to 5V ExecStartPre=/bin/bash -c "if [ $(cat /sys/class/hwmon/hwmon1/in1_input) -le 6500 ]; then echo 'Exiting, connected to 5V'; exit 1; fi" -#ExecStart=/bin/bash -c "source /etc/profile && /usr/comma/tests/test_weston.py" ExecStart=/bin/bash -c "source /etc/profile && /usr/comma/tests/test_sounds.py" [Install] diff --git a/userspace/files/gl-renderer.so b/userspace/files/gl-renderer.so deleted file mode 100755 index 8de34bb..0000000 Binary files a/userspace/files/gl-renderer.so and /dev/null differ diff --git a/userspace/files/libeglSubDriverWayland.so.patched b/userspace/files/libeglSubDriverWayland.so.patched deleted file mode 100644 index cd9fbe6..0000000 --- a/userspace/files/libeglSubDriverWayland.so.patched +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:34b01105549bba97710ded5916a24a318d4b7dbe91fe4e617ca320a7d98f6a39 -size 197632 diff --git a/userspace/files/profile b/userspace/files/profile index e6aa526..9363f2a 100644 --- a/userspace/files/profile +++ b/userspace/files/profile @@ -26,9 +26,7 @@ if [ -d /etc/profile.d ]; then unset i fi -# display setup -export XDG_RUNTIME_DIR="/var/tmp/weston" -export QT_QPA_PLATFORM="wayland-egl" +export XDG_RUNTIME_DIR="/var/tmp/xdg" # python setup export PYTHONPATH="/data/pythonpath" diff --git a/userspace/files/weston b/userspace/files/weston deleted file mode 100755 index 7600b66..0000000 --- a/userspace/files/weston +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7e38b2701eaa61471dfb2418b606846c0512afd90f67bfc0d65dcf5178fb51b8 -size 782832 diff --git a/userspace/files/weston-ready.service b/userspace/files/weston-ready.service deleted file mode 100644 index 49b84cf..0000000 --- a/userspace/files/weston-ready.service +++ /dev/null @@ -1,28 +0,0 @@ -[Unit] -PartOf=weston.service - -[Service] -Type=oneshot -RemainAfterExit=yes -Restart=no -Environment="XDG_RUNTIME_DIR=/var/tmp/weston" - -ExecStart=/bin/echo "waiting for wayland socket" -ExecStart=/bin/bash -c "while [ ! -e \"$XDG_RUNTIME_DIR/wayland-0\" ]; do sleep 0.1; done" - -# still starting after socket comes up -ExecStart=/bin/sleep 0.5 - -ExecStart=/bin/echo "fixing permissions" -ExecStart=/bin/bash -c "chown -R comma: $XDG_RUNTIME_DIR" -ExecStart=/bin/bash -c "chmod -R 700 $XDG_RUNTIME_DIR" - -# these are set by udev rules, but udev is slow -ExecStart=/bin/bash -c "chgrp gpu /dev/ion /dev/kgsl-3d0" -ExecStart=/bin/bash -c "chmod 660 /dev/ion /dev/kgsl-3d0" - -ExecStart=/bin/echo "turning on display" -ExecStart=/bin/bash -c "echo 500 > /sys/class/backlight/panel0-backlight/brightness" - -[Install] -WantedBy=multi-user.target diff --git a/userspace/files/weston.service b/userspace/files/weston.service deleted file mode 100644 index 52ecd20..0000000 --- a/userspace/files/weston.service +++ /dev/null @@ -1,31 +0,0 @@ -[Unit] -Description=Weston -Conflicts=getty@tty1.service - -[Service] -Type=simple -Restart=no -KillSignal=SIGKILL -Environment="XDG_RUNTIME_DIR=/var/tmp/weston" - -UtmpIdentifier=tty1 -TTYPath=/dev/tty1 -TTYReset=yes -TTYVHangup=yes -TTYVTDisallocate=yes - -ExecStartPre=/bin/bash -c "/usr/local/venv/bin/python -c 'import fcntl; KDSETMODE = 0x4B3A; KD_TEXT = 0x00; fd = open(\"/dev/tty1\", \"w\"); fcntl.ioctl(fd, KDSETMODE, KD_TEXT); fd.close()'" -ExecStartPre=/bin/bash -c "/usr/local/venv/bin/python -c 'from PIL import Image; img=Image.open(\"/usr/comma/bg.jpg\"); (img.rotate(180) if open(\"/sys/devices/platform/vendor/vendor:gpio-som-id/som_id\").read().strip() == \"1\" else img).save(\"/tmp/bg.jpg\")'" -ExecStartPre=/bin/bash -c "mkdir -p $XDG_RUNTIME_DIR" -ExecStartPre=/bin/bash -c "chown -R comma: $XDG_RUNTIME_DIR" -ExecStartPre=/bin/bash -c "chmod -R 700 $XDG_RUNTIME_DIR" - -ExecStartPre=/bin/bash -c "mkdir -p /data/misc/display || true" -ExecStartPre=/bin/bash -c "echo 0 > /data/misc/display/sdm_dbg_cfg.txt || true" -ExecStartPre=/bin/bash -c "echo 0 > /data/misc/display/gbm_dbg_cfg.txt || true" - -ExecStartPre=/bin/chvt 1 -ExecStart=/usr/bin/weston --idle-time=0 --tty=1 --config=/usr/comma/weston.ini - -[Install] -WantedBy=multi-user.target diff --git a/userspace/libinput/NOTES b/userspace/libinput/NOTES deleted file mode 100644 index e021625..0000000 --- a/userspace/libinput/NOTES +++ /dev/null @@ -1,3 +0,0 @@ -The Thundercomm version of Weston has a bug where it doesn't allow opening the input devices. -This patch bypasses that. -Source used to build: libinput commit f0997536a7a3e384bfe64b67c5c1f874656042c6 diff --git a/userspace/libinput/patch.diff b/userspace/libinput/patch.diff deleted file mode 100644 index ddb09b4..0000000 --- a/userspace/libinput/patch.diff +++ /dev/null @@ -1,97 +0,0 @@ -diff --git a/src/evdev.c b/src/evdev.c -index c3c02d2a..ef773e6a 100644 ---- a/src/evdev.c -+++ b/src/evdev.c -@@ -1991,7 +1991,7 @@ evdev_notify_added_device(struct evdev_device *device) - static bool - evdev_device_have_same_syspath(struct udev_device *udev_device, int fd) - { -- struct udev *udev = udev_device_get_udev(udev_device); -+ struct udev *udev = udev_device_get_udev(udev_device); - struct udev_device *udev_device_new = NULL; - struct stat st; - bool rc = false; -@@ -1999,9 +1999,13 @@ evdev_device_have_same_syspath(struct udev_device *udev_device, int fd) - if (fstat(fd, &st) < 0) - goto out; - -+ printf("st_rdev: %d\n", st.st_rdev); - udev_device_new = udev_device_new_from_devnum(udev, 'c', st.st_rdev); - if (!udev_device_new) - goto out; -+ -+ printf("same syspath: %s %s\n", udev_device_get_syspath(udev_device_new), -+ udev_device_get_syspath(udev_device)); - - rc = streq(udev_device_get_syspath(udev_device_new), - udev_device_get_syspath(udev_device)); -@@ -2174,6 +2178,8 @@ evdev_device_create(struct libinput_seat *seat, - return NULL; - } - -+ log_error(libinput, "%s: evdev_device_create\n", sysname); -+ - if (udev_device_should_be_ignored(udev_device)) { - log_debug(libinput, "%s: device is ignored\n", sysname); - return NULL; -@@ -2182,7 +2188,8 @@ evdev_device_create(struct libinput_seat *seat, - /* Use non-blocking mode so that we can loop on read on - * evdev_device_data() until all events on the fd are - * read. mtdev_get() also expects this. */ -- fd = open_restricted(libinput, devnode, -+ //fd = open_restricted(libinput, devnode, -+ fd = open(devnode, - O_RDWR | O_NONBLOCK | O_CLOEXEC); - if (fd < 0) { - log_info(libinput, -@@ -2193,8 +2200,11 @@ evdev_device_create(struct libinput_seat *seat, - return NULL; - } - -- if (!evdev_device_have_same_syspath(udev_device, fd)) -+ printf("Opened fd: %d from devnode %s\n", fd, devnode); -+ if (!evdev_device_have_same_syspath(udev_device, fd)){ -+ log_error(libinput, "%s: not same syspath\n", sysname); - goto err; -+ } - - device = zalloc(sizeof *device); - -@@ -2204,8 +2214,10 @@ evdev_device_create(struct libinput_seat *seat, - evdev_drain_fd(fd); - - rc = libevdev_new_from_fd(fd, &device->evdev); -- if (rc != 0) -+ if (rc != 0){ -+ log_error(libinput, "%s: new_from_fd failed\n", sysname); - goto err; -+ } - - libevdev_set_clock_id(device->evdev, CLOCK_MONOTONIC); - libevdev_set_device_log_function(device->evdev, -@@ -2241,16 +2253,22 @@ evdev_device_create(struct libinput_seat *seat, - evdev_pre_configure_model_quirks(device); - - device->dispatch = evdev_configure_device(device); -- if (device->dispatch == NULL || device->seat_caps == 0) -+ if (device->dispatch == NULL || device->seat_caps == 0){ -+ log_error(libinput, "%s: device->dispatch or device->seat_caps %d failed\n", sysname, device->seat_caps); - goto err; -+ } - - device->source = - libinput_add_fd(libinput, fd, evdev_device_dispatch, device); -- if (!device->source) -+ if (!device->source){ -+ log_error(libinput, "%s: device->source failed\n", sysname); - goto err; -+ } - -- if (!evdev_set_device_group(device, udev_device)) -+ if (!evdev_set_device_group(device, udev_device)){ -+ log_error(libinput, "%s: set device group failed\n", sysname); - goto err; -+ } - - list_insert(seat->devices_list.prev, &device->base.link); - diff --git a/userspace/libs/libffi.so.6 b/userspace/libs/libffi.so.6 new file mode 120000 index 0000000..c6cc6fd --- /dev/null +++ b/userspace/libs/libffi.so.6 @@ -0,0 +1 @@ +libffi.so.6.0.4 \ No newline at end of file diff --git a/userspace/libs/libffi.so.6.0.4 b/userspace/libs/libffi.so.6.0.4 new file mode 100644 index 0000000..217a6dc Binary files /dev/null and b/userspace/libs/libffi.so.6.0.4 differ diff --git a/userspace/libs/libqmapboxgl.so b/userspace/libs/libqmapboxgl.so deleted file mode 100755 index 99dfaa4..0000000 Binary files a/userspace/libs/libqmapboxgl.so and /dev/null differ diff --git a/userspace/qtwayland/README b/userspace/qtwayland/README deleted file mode 100644 index 1910295..0000000 --- a/userspace/qtwayland/README +++ /dev/null @@ -1,80 +0,0 @@ -# Ubuntu 24.04 + "old" weston - -The following need to work together in Ubuntu 24.04 (noble): -- "old" weston -- libwayland -- qtwayland -- qt - -The "old" weston is built with: -- libwayland-dev_1.9.0-1 -- libwayland-server_1.9.0-1 -- libwayland-client_1.9.0-1 -- libwayland-cursor_1.9.0-1 - -These are roughly from Xenial (16.04 - https://launchpad.net/ubuntu/xenial/arm64/libwayland-dev/1.9.0-1). - -In Ubuntu 20.04 (focal) even if libwayland is 1.18.0-1, the protocol between -the server (1.9.0-1) and client (1.18.0-1) was still compatible. Unfortunately, -this is not the case anymore in Ubuntu 24.04 (noble), where libwayland 1.22.0 -is not compatible anymore with 1.9.0. - -Because of this: -- libwayland-*_1.9.0-1 packages can't be installed anymore from noble, but a -custom deb has been built (libwayland-1.9.0-1.deb) - this includes all -libwayland packages in one package -- libwayland has a dependency (libffi6) -- libwayland-1.9.0-1.deb can be rebuilt with `build-libwayland-deb.sh` - -Also, Qt 5.15 from Ubuntu 24.04 (noble) doesn't compile with these old -dependencies, 5.12 being the last major being able to be compiled, so: -- a custom qt-5.12.8.deb has been built, since qt from focal has a lot of -dependencies not existing in Ubuntu 24.04 (noble) -- qt has two non-qt related dependencies (libicu66, libssl1.1) -- qt-5.12.8.deb can be rebuilt with `build-qt-deb.sh` - -The dependencies for the two custom debs can be downloaded from Launchpad: -``` -curl -LO https://launchpad.net/ubuntu/+archive/primary/+files/libffi6_3.2.1-8_arm64.deb -curl -LO https://launchpad.net/ubuntu/+archive/primary/+files/libicu66_66.1-2ubuntu2.1_arm64.deb -curl -LO https://launchpad.net/ubuntu/+archive/primary/+files/libssl1.1_1.1.1f-1ubuntu2.22_arm64.deb -``` -\* libffi6_armhf is also needed, but already exits in libs32 - -# When updating weston & removing custom debs -After removing qt-5.12.8.deb add these back: -``` -libqt5opengl5-dev \ -libqt5sql5-sqlite \ -libqt5svg5-dev \ -libqt5multimedia5-plugins \ -qml-module-qtquick2 \ -qtbase5-dev \ -qtchooser \ -qt5-qmake \ -qtbase5-dev-tools \ -qtbase5-private-dev \ -qtdeclarative5-dev \ -qtdeclarative5-private-dev \ -qtlocation5-dev \ -qtmultimedia5-dev \ -qtpositioning5-dev \ -qtwayland5 \ -``` - -In case of uncertainty, qt5-default was a metapackage for: -``` -qtbase5-dev -qtchooser -qt5-qmake -qtbase5-dev-tools -``` -More info: https://packages.ubuntu.com/focal/qt5-default - -After removing libwayland-1.9.0-1.deb add these back: -``` -libwayland-client0:armhf \ -libwayland-cursor0:armhf \ -libwayland-server0:armhf \ -libwayland-dev \ -``` diff --git a/userspace/qtwayland/build-libwayland-deb.sh b/userspace/qtwayland/build-libwayland-deb.sh deleted file mode 100755 index 4b2714f..0000000 --- a/userspace/qtwayland/build-libwayland-deb.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash -set -e - -################################################################################ -# Custom libwayland is created by combining libwayland client0, cursor0, server0 -# and dev 1.9.0-1 from Ubuntu 16.04 (xenial) for both aarch64 and armhf, without -# getting into dependency hell. -################################################################################ - -DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" -TMP=$DIR/tmp -TMP_SRC=$TMP/libwayland-src-debs - -# Create a new folder `libwayland-1.9.0-1` and put the metadata in -# `libwayland-1.9.0-1/DEBIAN/control`: - -mkdir -p $TMP -cd $TMP -mkdir -p libwayland-1.9.0-1/DEBIAN - -cat << EOF > libwayland-1.9.0-1/DEBIAN/control -Package: libwayland-xenial -Version: 1.9.0-1 -Architecture: all -Maintainer: Andrei Radulescu andi.radulescu@gmail.com -Depends: libc6 (>= 2.17), libexpat1 (>= 2.0.1), libffi6 (>= 3.2) -Replaces: libwayland-dev, libwayland-client0, libwayland-cursor0, libwayland-server0 -Installed-Size: 0 -Homepage: https://comma.ai -Description: libwayland client0, cursor0, server0 and dev 1.9.0-1 from Ubuntu Xenial -EOF - -# Download the official debs: -mkdir -p $TMP_SRC -cd $TMP_SRC - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libwayland-dev_1.9.0-1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libwayland-dev_1.9.0-1_armhf.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libwayland-client0_1.9.0-1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libwayland-client0_1.9.0-1_armhf.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libwayland-cursor0_1.9.0-1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libwayland-cursor0_1.9.0-1_armhf.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libwayland-server0_1.9.0-1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libwayland-server0_1.9.0-1_armhf.deb - -# And unpack them: -for deb in *.deb; do dpkg-deb -R "$deb" "${deb%.deb}"; done - -# Copy all files in libwayland-1.9.0-1 -cd $TMP -cp -a $TMP_SRC/*/usr libwayland-1.9.0-1 - -# Package the deb and clean up everything else -dpkg-deb --root-owner-group --build "libwayland-1.9.0-1" "libwayland-1.9.0-1.deb" -mv libwayland-1.9.0-1.deb $DIR -rm -rf libwayland-1.9.0-1 $TMP_SRC diff --git a/userspace/qtwayland/build-qt-deb.sh b/userspace/qtwayland/build-qt-deb.sh deleted file mode 100755 index cfa6b45..0000000 --- a/userspace/qtwayland/build-qt-deb.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/bash -set -e - -################################################################################ -# Custom qt is created by combining qt packages from from Ubuntu 20.04 (focal) -# without getting into dependency hell. -################################################################################ - -DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" -TMP=$DIR/tmp -TMP_SRC=$TMP/qt-src-debs - -# Create a new folder `qt-5.12.8` and put the metadata in -# `qt-5.12.8/DEBIAN/control`: - -mkdir -p $TMP -cd $TMP -mkdir -p qt-5.12.8/DEBIAN - -cat << EOF > qt-5.12.8/DEBIAN/control -Package: qt-focal -Version: 5.12.8 -Architecture: all -Maintainer: Andrei Radulescu andi.radulescu@gmail.com -Depends: libicu66 (>= 66.1-1~), libdouble-conversion3 (>= 2.0.0), libssl1.1 -Replaces: qtbase5-dev, qtchooser, qt5-qmake, qtbase5-dev-tools -Installed-Size: 0 -Homepage: https://comma.ai -Description: Qt 5.12.8 from Ubuntu 20.04 -EOF - -# Download the official debs: -mkdir -p $TMP_SRC -cd $TMP_SRC - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qtbase5-dev_5.12.8+dfsg-0ubuntu2.1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qtbase5-dev-tools_5.12.8+dfsg-0ubuntu2.1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qtbase5-private-dev_5.12.8+dfsg-0ubuntu2.1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qt5-qmake_5.12.8+dfsg-0ubuntu2.1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qt5-qmake-bin_5.12.8+dfsg-0ubuntu2.1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qtdeclarative5-dev-tools_5.12.8-0ubuntu1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5core5a_5.12.8+dfsg-0ubuntu2.1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5network5_5.12.8+dfsg-0ubuntu2.1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5gui5_5.12.8+dfsg-0ubuntu2.1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5dbus5_5.12.8+dfsg-0ubuntu2.1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5concurrent5_5.12.8+dfsg-0ubuntu2.1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5widgets5_5.12.8+dfsg-0ubuntu2.1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5xml5_5.12.8+dfsg-0ubuntu2.1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5opengl5-dev_5.12.8+dfsg-0ubuntu2.1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5opengl5_5.12.8+dfsg-0ubuntu2.1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5svg5-dev_5.12.8-0ubuntu1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5svg5_5.12.8-0ubuntu1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5multimedia5-plugins_5.12.8-0ubuntu1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5multimedia5_5.12.8-0ubuntu1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5multimediagsttools5_5.12.8-0ubuntu1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5multimediawidgets5_5.12.8-0ubuntu1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qtdeclarative5-dev_5.12.8-0ubuntu1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qtdeclarative5-private-dev_5.12.8-0ubuntu1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qtlocation5-dev_5.12.8+dfsg-0ubuntu1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5location5_5.12.8+dfsg-0ubuntu1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5location5-plugins_5.12.8+dfsg-0ubuntu1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5location5-plugin-mapboxgl_5.12.8+dfsg-0ubuntu1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qtmultimedia5-dev_5.12.8-0ubuntu1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5multimedia5_5.12.8-0ubuntu1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5multimediaquick5_5.12.8-0ubuntu1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5waylandclient5_5.12.8-0ubuntu1_arm64.deb -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/libqt5waylandcompositor5_5.12.8-0ubuntu1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qtwayland5_5.12.8-0ubuntu1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qt5-default_5.12.8+dfsg-0ubuntu2.1_arm64.deb - -curl -sSLO https://launchpad.net/ubuntu/+archive/primary/+files/qtchooser_66-2build1_arm64.deb - -# And unpack them: -for deb in *.deb; do dpkg-deb -R "$deb" "${deb%.deb}"; done - -# Copy all files in qt-5.12.8 -cd $TMP -cp -a $TMP_SRC/*/usr qt-5.12.8 - -# Package the deb and clean up everything else -dpkg-deb --root-owner-group --build "qt-5.12.8" "qt-5.12.8.deb" -mv qt-5.12.8.deb $DIR -rm -rf qt-5.12.8 $TMP_SRC diff --git a/userspace/qtwayland/libffi6_3.2.1-8_arm64.deb b/userspace/qtwayland/libffi6_3.2.1-8_arm64.deb deleted file mode 100644 index b906114..0000000 --- a/userspace/qtwayland/libffi6_3.2.1-8_arm64.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0f8d2b7613167317ec4f9bf65125a2e13c5f357e5acb5cc1fa9ed488c3c88b0 -size 17016 diff --git a/userspace/qtwayland/libicu66_66.1-2ubuntu2.1_arm64.deb b/userspace/qtwayland/libicu66_66.1-2ubuntu2.1_arm64.deb deleted file mode 100644 index 757254e..0000000 --- a/userspace/qtwayland/libicu66_66.1-2ubuntu2.1_arm64.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ccfbd8e68fadcf4cc3975cdae42d1786733963f75d0b180f96c13782e185635b -size 8359564 diff --git a/userspace/qtwayland/libssl1.1_1.1.1f-1ubuntu2.22_arm64.deb b/userspace/qtwayland/libssl1.1_1.1.1f-1ubuntu2.22_arm64.deb deleted file mode 100644 index c42ff55..0000000 --- a/userspace/qtwayland/libssl1.1_1.1.1f-1ubuntu2.22_arm64.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:36b33bc85a8c75d539f00dcda80cf9d618a0ee56aec46761347409caeebb9028 -size 1158832 diff --git a/userspace/qtwayland/libwayland-1.9.0-1.deb b/userspace/qtwayland/libwayland-1.9.0-1.deb deleted file mode 100644 index 491baa2..0000000 --- a/userspace/qtwayland/libwayland-1.9.0-1.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4b06c0ea60c33fb5bb2e16e0d340296dec22e178af5210b5405d7bf26e1c6527 -size 160312 diff --git a/userspace/qtwayland/patch-qtwayland-v5.12 b/userspace/qtwayland/patch-qtwayland-v5.12 deleted file mode 100644 index ac5024d..0000000 --- a/userspace/qtwayland/patch-qtwayland-v5.12 +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/src/client/qwaylandscreen.cpp b/src/client/qwaylandscreen.cpp -index 1fe0125e..7899c94e 100644 ---- a/src/client/qwaylandscreen.cpp -+++ b/src/client/qwaylandscreen.cpp -@@ -94,6 +94,7 @@ QString QWaylandScreen::model() const - - QRect QWaylandScreen::geometry() const - { -+ return QRect(0, 0, 2160, 1080); - if (zxdg_output_v1::isInitialized()) { - return mXdgGeometry; - } else { -diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.cpp -index 4b3a635c..d0e70f29 100644 ---- a/src/hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.cpp -+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.cpp -@@ -76,7 +76,7 @@ QWaylandEglClientBufferIntegration::~QWaylandEglClientBufferIntegration() - - void QWaylandEglClientBufferIntegration::initialize(QWaylandDisplay *display) - { -- if (q_hasEglExtension(EGL_NO_DISPLAY, "EGL_EXT_platform_base")) { -+ if (false && q_hasEglExtension(EGL_NO_DISPLAY, "EGL_EXT_platform_base")) { - if (q_hasEglExtension(EGL_NO_DISPLAY, "EGL_KHR_platform_wayland") || - q_hasEglExtension(EGL_NO_DISPLAY, "EGL_EXT_platform_wayland") || - q_hasEglExtension(EGL_NO_DISPLAY, "EGL_MESA_platform_wayland")) { diff --git a/userspace/qtwayland/qt-5.12.8.deb b/userspace/qtwayland/qt-5.12.8.deb deleted file mode 100644 index c971fc5..0000000 --- a/userspace/qtwayland/qt-5.12.8.deb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8f10abc73eafab7e1e26a912b0cd5eece3df708f94868cd37b5bb717c6003fac -size 18782360 diff --git a/userspace/usr/comma/power_drop_monitor.py b/userspace/usr/comma/power_drop_monitor.py index 4dd7379..c4c3d45 100755 --- a/userspace/usr/comma/power_drop_monitor.py +++ b/userspace/usr/comma/power_drop_monitor.py @@ -95,7 +95,7 @@ def perform_controlled_shutdown(): # Kill services that draw a lot of power printk("Killing services") - subprocess.call(["/usr/bin/systemctl", "kill", "--signal=9", "weston", "comma"]) + subprocess.call(["/usr/bin/systemctl", "kill", "--signal=9", "comma"]) set_screen_power(False) printk("Halt") diff --git a/userspace/usr/comma/tests/analyze-boot-time.py b/userspace/usr/comma/tests/analyze-boot-time.py index 75e66f2..2bcd15c 100755 --- a/userspace/usr/comma/tests/analyze-boot-time.py +++ b/userspace/usr/comma/tests/analyze-boot-time.py @@ -5,7 +5,6 @@ from tabulate import tabulate # serial with timestamps: # grabserial -d /dev/serial/by-id/usb-FTDI_FT230X* -t -# systemd-analyze critical-chain weston.service # systemd-analyze critical-chain comma.service # boot chart: @@ -36,8 +35,6 @@ if __name__ == "__main__": ts['kernel'] = float(l[3][:-1]) #ts['systemd'] = float(l[6][:-1]) - # includes /sbin/init -> weston being ready to display stuff - ts['weston'] = get_journal_time("Finished weston-ready.service") - tot_since_kern() ts['comma'] = get_journal_time("Starting comma.service") - tot_since_kern() # print diff --git a/userspace/usr/comma/tests/benchmark_weston.py b/userspace/usr/comma/tests/benchmark_weston.py deleted file mode 100755 index 8362f89..0000000 --- a/userspace/usr/comma/tests/benchmark_weston.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env python3 -import os -import time -import subprocess - -def run(cmd): - subprocess.check_call(cmd, shell=True) - -def timestamp_cmd(cmd): - cnt = 0 - while True: - cnt += 1 - print("try ", cnt) - run("sudo chmod -R 700 /var/tmp/weston/") - proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - t = time.monotonic() - time.sleep(0.5) - r = proc.poll() - if r is not None: - continue - break - print("r", r) - return t - -if __name__ == "__main__": - - run("sudo systemctl stop weston") - run("sudo rm -rf /var/tmp/weston/wayland-0") - time.sleep(0.5) - #run("sudo systemctl restart weston-ready") - - run("sudo systemctl restart weston --no-block") - st = time.monotonic() - #ts = defaultdict() - - cnt = 0 - while not os.path.exists("/var/tmp/weston/wayland-0"): - time.sleep(0.1) - cnt += 1 - t = time.monotonic() - print(f"- socket at {t - st:.2f}s") - - t = timestamp_cmd('/usr/comma/setup') - print(f"- setup works {t - st:.2f}s") - - t = timestamp_cmd('cd /data/openpilot/selfdrive/ui/ && ./spinner') - print(f"- spinner works {t - st:.2f}s") diff --git a/userspace/usr/comma/tests/test_agnos.py b/userspace/usr/comma/tests/test_agnos.py index 1db914e..8ca6647 100755 --- a/userspace/usr/comma/tests/test_agnos.py +++ b/userspace/usr/comma/tests/test_agnos.py @@ -44,10 +44,6 @@ def test_wifi(): networks = out.strip().splitlines()[1:] assert len(networks) > 5 -def test_color_calibration(): - out = subprocess.check_output("journalctl -u weston", shell=True, encoding='utf8') - assert out.count("Successfully setup color correction") == 3 - def test_python_shims(): subprocess.check_call("cd /data/openpilot && scons -h", shell=True, stdout=subprocess.DEVNULL) @@ -64,7 +60,4 @@ def test_boot_time(): a = out.splitlines()[0] print(out, a) - # check weston service - # check comma service - diff --git a/userspace/usr/comma/tests/test_weston.py b/userspace/usr/comma/tests/test_weston.py deleted file mode 100755 index 0595577..0000000 --- a/userspace/usr/comma/tests/test_weston.py +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env python3 -import os -import time -import hashlib -import subprocess - -""" -journalctl -o short-monotonic -u weston -u weston-ready -u agnos-tests -""" - -if __name__ == "__main__": - socket_exists = os.path.exists("/var/tmp/weston/wayland-0") - is_active = subprocess.check_output("systemctl is-active weston", shell=True, encoding='utf8').strip() - - d = b"" - for fn in ('/lib/systemd/system/weston.service', '/lib/systemd/system/weston-ready.service'): - with open(fn, 'rb') as f: - d += f.read() - h = hashlib.sha1(d).hexdigest() - - # weston should be ready to go at this point - cmd = '/usr/comma/setup' - cmd = 'cd /data/openpilot/selfdrive/ui/ && ./ui' - proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - for i in range(10): - r = proc.poll() - if r is not None: - break - time.sleep(1) - - rc = proc.returncode - proc.kill() - out, err = proc.stdout.read(), proc.stderr.read() - - with open('/data/weston_log', 'a') as f: - f.write(f"{is_active=}, {socket_exists=}, {rc=} / {h} / {cmd}\n") - if rc is not None: - f.write(f" stdout: {out}\n") - f.write(f" stderr: {err}\n") - os.sync() - - os.system("sudo su -c 'tail /data/weston_log > /dev/console'") - os.system("sudo su -c 'wc -l /data/weston_log > /dev/console'") - - if rc is None: - time.sleep(2) - os.system("sudo reboot") diff --git a/userspace/usr/comma/weston.ini b/userspace/usr/comma/weston.ini deleted file mode 100644 index 9f1f991..0000000 --- a/userspace/usr/comma/weston.ini +++ /dev/null @@ -1,4 +0,0 @@ -[shell] -background-image=/tmp/bg.jpg -background-type=scale-crop -close-animation=none