Remove Qt + weston (#502)

* bye bye

* add libwayland-egl.so.1, libeglSubDriverWayland.so(.patched) back to agnos-display 0.0.2

* moved libffi6 to libs/

* revert deb for now, too hard to review

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
This commit is contained in:
Andrei Radulescu
2025-10-25 23:05:26 +03:00
committed by GitHub
parent fe0712dc54
commit 3762ea1e3f
31 changed files with 5 additions and 649 deletions
-30
View File
@@ -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
+1 -1
View File
@@ -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] <s>Weston https://github.com/commaai/agnos-builder/issues/16</s> deleted!
-2
View File
@@ -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
-63
View File
@@ -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 <andi.radulescu@gmail.com>
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
+1 -2
View File
@@ -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]
Binary file not shown.
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:34b01105549bba97710ded5916a24a318d4b7dbe91fe4e617ca320a7d98f6a39
size 197632
+1 -3
View File
@@ -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"
-3
View File
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7e38b2701eaa61471dfb2418b606846c0512afd90f67bfc0d65dcf5178fb51b8
size 782832
-28
View File
@@ -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
-31
View File
@@ -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
-3
View File
@@ -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
-97
View File
@@ -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);
+1
View File
@@ -0,0 +1 @@
libffi.so.6.0.4
Binary file not shown.
Binary file not shown.
-80
View File
@@ -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 \
```
@@ -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
-95
View File
@@ -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
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d0f8d2b7613167317ec4f9bf65125a2e13c5f357e5acb5cc1fa9ed488c3c88b0
size 17016
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ccfbd8e68fadcf4cc3975cdae42d1786733963f75d0b180f96c13782e185635b
size 8359564
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:36b33bc85a8c75d539f00dcda80cf9d618a0ee56aec46761347409caeebb9028
size 1158832
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4b06c0ea60c33fb5bb2e16e0d340296dec22e178af5210b5405d7bf26e1c6527
size 160312
-25
View File
@@ -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")) {
-3
View File
@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8f10abc73eafab7e1e26a912b0cd5eece3df708f94868cd37b5bb717c6003fac
size 18782360
+1 -1
View File
@@ -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")
@@ -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
@@ -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")
-7
View File
@@ -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
-47
View File
@@ -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")
-4
View File
@@ -1,4 +0,0 @@
[shell]
background-image=/tmp/bg.jpg
background-type=scale-crop
close-animation=none