mirror of
https://github.com/commaai/agnos-builder.git
synced 2026-10-01 03:43:49 +08:00
stash
This commit is contained in:
+249
-248
@@ -27,252 +27,253 @@ COPY ./userspace/compile-capnp.sh /tmp/agnos/
|
||||
RUN --mount=type=cache,target=/root/.ccache,id=capnp,sharing=shared \
|
||||
/tmp/agnos/compile-capnp.sh
|
||||
|
||||
# ffmpeg
|
||||
FROM agnos-compiler AS agnos-compiler-ffmpeg
|
||||
COPY ./userspace/compile-ffmpeg.sh /tmp/agnos/
|
||||
RUN --mount=type=cache,target=/root/.ccache,id=ffmpeg,sharing=shared \
|
||||
/tmp/agnos/compile-ffmpeg.sh
|
||||
|
||||
# libqmi
|
||||
FROM agnos-compiler AS agnos-compiler-libqmi
|
||||
COPY ./userspace/compile-libqmi.sh /tmp/agnos/
|
||||
RUN --mount=type=cache,target=/root/.ccache,id=libqmi,sharing=shared \
|
||||
/tmp/agnos/compile-libqmi.sh
|
||||
|
||||
# ModemManager
|
||||
FROM agnos-compiler-libqmi AS agnos-compiler-modemmanager
|
||||
COPY ./userspace/compile-modemmanager.sh /tmp/agnos/
|
||||
RUN --mount=type=cache,target=/root/.ccache,id=modemmanager,sharing=shared \
|
||||
/tmp/agnos/compile-modemmanager.sh
|
||||
|
||||
# lpac
|
||||
FROM agnos-compiler-libqmi AS agnos-compiler-lpac
|
||||
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 ###### #
|
||||
# ################## #
|
||||
FROM scratch AS agnos-base
|
||||
|
||||
# Add Ubuntu Base image files
|
||||
ARG UBUNTU_BASE_IMAGE
|
||||
ADD ${UBUNTU_BASE_IMAGE} /
|
||||
|
||||
# Build folder
|
||||
RUN mkdir -p /tmp/agnos
|
||||
|
||||
# Stop on error
|
||||
RUN set -xe
|
||||
|
||||
ARG USERNAME=comma
|
||||
|
||||
# Base system setup
|
||||
RUN echo "resolvconf resolvconf/linkify-resolvconf boolean false" | debconf-set-selections
|
||||
COPY ./userspace/base_setup.sh /tmp/agnos
|
||||
RUN /tmp/agnos/base_setup.sh
|
||||
|
||||
# Install openpilot dependencies
|
||||
COPY ./userspace/openpilot_dependencies.sh /tmp/agnos/
|
||||
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 ###### #
|
||||
# ################### #
|
||||
FROM agnos-base
|
||||
|
||||
# Hardware setup
|
||||
RUN mkdir -p /tmp/agnos/debs
|
||||
COPY ./userspace/debs /tmp/agnos/debs
|
||||
COPY ./userspace/hardware_setup.sh /tmp/agnos
|
||||
RUN /tmp/agnos/hardware_setup.sh
|
||||
RUN mv /data/persist /system/ && rm -rf /data/*
|
||||
|
||||
COPY --from=agnos-compiler-libqmi /tmp/libqmi.deb /tmp/
|
||||
COPY --from=agnos-compiler-modemmanager /tmp/modemmanager.deb /tmp/
|
||||
COPY --from=agnos-compiler-lpac /tmp/lpac.deb /tmp/
|
||||
|
||||
RUN cd /tmp && \
|
||||
apt-get update && \
|
||||
apt-get install -yq --no-install-recommends \
|
||||
python3 \
|
||||
python3-dev \
|
||||
gir1.2-qmi-1.0 \
|
||||
libglib2.0-dev \
|
||||
libqmi-glib5 \
|
||||
libc6 \
|
||||
libglib2.0-0t64 \
|
||||
libgudev-1.0-0 \
|
||||
libmm-glib0 \
|
||||
libpolkit-gobject-1-0 \
|
||||
libsystemd0 \
|
||||
polkitd \
|
||||
polkitd-pkla \
|
||||
mobile-broadband-provider-info && \
|
||||
apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./libqmi.deb && \
|
||||
apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./modemmanager.deb && \
|
||||
apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./lpac.deb
|
||||
|
||||
# Pre-compiled capnp (must be before python install)
|
||||
COPY --from=agnos-compiler-capnp /tmp/capnproto.deb /tmp/capnproto.deb
|
||||
RUN cd /tmp && apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./capnproto.deb
|
||||
|
||||
# Use other pre-compiled packages
|
||||
COPY --from=agnos-compiler-ffmpeg /tmp/ffmpeg.deb /tmp/ffmpeg.deb
|
||||
RUN cd /tmp && apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./ffmpeg.deb
|
||||
|
||||
ARG XDG_DATA_HOME="/usr/local"
|
||||
|
||||
# Install openpilot python packages
|
||||
COPY ./userspace/uv /tmp/agnos/uv
|
||||
RUN source $XDG_DATA_HOME/venv/bin/activate && \
|
||||
cd /tmp/agnos/uv && \
|
||||
export PYOPENCL_CL_PRETEND_VERSION="2.0" && \
|
||||
MAKEFLAGS="-j$(nproc)" UV_NO_CACHE=1 UV_PROJECT_ENVIRONMENT=$XDG_DATA_HOME/venv uv sync --frozen --inexact --compile-bytecode
|
||||
|
||||
# Install nice to haves
|
||||
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
|
||||
|
||||
# populate /lib
|
||||
COPY ./userspace/files/*.path /lib/systemd/system/
|
||||
COPY ./userspace/files/*.mount /lib/systemd/system/
|
||||
COPY ./userspace/files/*.service /lib/systemd/system/
|
||||
COPY ./userspace/files/*.timer /lib/systemd/system/
|
||||
COPY ./userspace/files/serial-getty@ttyMSM0_override.conf /lib/systemd/system/serial-getty@ttyMSM0.service.d/serial-getty@ttyMSM0_override.conf
|
||||
COPY ./userspace/files/ssh_override.conf /lib/systemd/system/ssh.service.d/override.conf
|
||||
COPY ./userspace/firmware/* /lib/firmware/
|
||||
|
||||
# populate /etc
|
||||
COPY ./userspace/files/fstab /etc
|
||||
COPY ./userspace/files/profile /etc/profile
|
||||
COPY ./userspace/files/allow-network-control.pkla /etc/polkit-1/localauthority/50-local.d/allow-network-control.pkla
|
||||
COPY ./userspace/files/allow-modem-control.pkla /etc/polkit-1/localauthority/50-local.d/allow-modem-control.pkla
|
||||
COPY ./userspace/files/*.rules /etc/udev/rules.d/
|
||||
COPY ./userspace/files/ssh*_config /etc/ssh/
|
||||
COPY ./userspace/files/logrotate.conf /etc/
|
||||
COPY ./userspace/files/rsyslog /etc/logrotate.d/
|
||||
RUN chmod 644 /etc/logrotate.conf
|
||||
RUN touch -r /lib/systemd/systemd /etc/fstab
|
||||
|
||||
# populate /usr
|
||||
COPY ./userspace/usr/comma/ /usr/$USERNAME/
|
||||
COPY ./userspace/usr/share/fonts/* /usr/share/fonts/
|
||||
COPY ./userspace/libs/* /usr/lib/aarch64-linux-gnu/
|
||||
COPY ./userspace/libs32/* /usr/lib/arm-linux-gnueabihf/
|
||||
|
||||
# this is big, only enable when we need it
|
||||
# kernel headers for the AGNOS kernel (built on device)
|
||||
#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
|
||||
|
||||
# MOTD
|
||||
RUN rm -r /etc/update-motd.d/*
|
||||
COPY --chown=root:root ./userspace/motd/* /etc/update-motd.d/
|
||||
|
||||
# Let NetworkManager manage eth0
|
||||
COPY ./userspace/files/10-globally-managed-devices.conf /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
|
||||
COPY ./userspace/files/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf
|
||||
|
||||
# Add cellular connections
|
||||
COPY ./userspace/files/*.nmconnection /usr/lib/NetworkManager/system-connections/
|
||||
RUN chmod 600 /usr/lib/NetworkManager/system-connections/*.nmconnection
|
||||
|
||||
# Prefer ipv4 over ipv6
|
||||
RUN echo "precedence ::ffff:0:0/96 100" >> /etc/gai.conf
|
||||
|
||||
# Don't let logind delete /dev/shm
|
||||
COPY ./userspace/files/logind.conf /etc/systemd/logind.conf
|
||||
|
||||
# Copy Avahi daemon override
|
||||
COPY ./userspace/files/avahi-override.conf /etc/systemd/system/avahi-daemon.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
|
||||
|
||||
# Run ModemManager in debug mode to allow AT commands
|
||||
COPY ./userspace/files/ModemManager.service /lib/systemd/system/
|
||||
RUN systemctl enable ModemManager
|
||||
|
||||
# Add more T-Mobile networks to mobile-broadband-provider-info (do we still need the package?)
|
||||
COPY ./userspace/files/serviceproviders.xml /usr/share/mobile-broadband-provider-info/serviceproviders.xml
|
||||
|
||||
# Copy extra FW, rest comes from debs
|
||||
COPY ./userspace/files/CAMERA_ICP.elf /usr/lib/firmware
|
||||
|
||||
# Setup hostname resolution for our custom hostname
|
||||
RUN sed -i 's/hosts: files dns myhostname/hosts: files myhostname dns/g' /etc/nsswitch.conf
|
||||
|
||||
# TODO: move this to base_setup.sh or build gcc from source
|
||||
# Remove unused architectures & bins from arm-none-eabi
|
||||
RUN cd /usr/lib/gcc/arm-none-eabi/* && \
|
||||
rm -rf arm/ && \
|
||||
find thumb/ -maxdepth 1 -type d ! \( -name 'thumb' -o -name 'v7e-m+fp' -o -name 'v7e-m+dp' \) -exec rm -rf {} + && \
|
||||
rm cc1plus g++-mapper-server && \
|
||||
find /usr/bin -maxdepth 1 -type f -name 'arm-none-eabi-*' ! \( -name 'arm-none-eabi-gcc' -o -name 'arm-none-eabi-objcopy' -o -name 'arm-none-eabi-objdump' \) -delete
|
||||
|
||||
# keep this last
|
||||
RUN ldconfig
|
||||
|
||||
# Setup RO rootfs
|
||||
RUN mkdir -p /rwtmp
|
||||
RUN mkdir -p /tmptmp
|
||||
COPY ./userspace/readonly_setup.sh /tmptmp/readonly_setup.sh
|
||||
RUN /tmptmp/readonly_setup.sh && rm -rf /tmptmp
|
||||
|
||||
# copy at the end, after all apt usage
|
||||
COPY ./userspace/files/apt.conf /etc/apt/apt.conf
|
||||
|
||||
# copy version file
|
||||
COPY VERSION /VERSION
|
||||
|
||||
# ################# #
|
||||
# #### Cleanup #### #
|
||||
# ################# #
|
||||
|
||||
RUN rm -rf /usr/share/icons/* && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
rm -rf /home/$USERNAME/.cache && \
|
||||
rm -rf /root/.cache && \
|
||||
apt-get clean
|
||||
## ffmpeg
|
||||
#FROM agnos-compiler AS agnos-compiler-ffmpeg
|
||||
#COPY ./userspace/compile-ffmpeg.sh /tmp/agnos/
|
||||
#RUN --mount=type=cache,target=/root/.ccache,id=ffmpeg,sharing=shared \
|
||||
# /tmp/agnos/compile-ffmpeg.sh
|
||||
#
|
||||
## libqmi
|
||||
#FROM agnos-compiler AS agnos-compiler-libqmi
|
||||
#COPY ./userspace/compile-libqmi.sh /tmp/agnos/
|
||||
#RUN --mount=type=cache,target=/root/.ccache,id=libqmi,sharing=shared \
|
||||
# /tmp/agnos/compile-libqmi.sh
|
||||
#
|
||||
## ModemManager
|
||||
#FROM agnos-compiler-libqmi AS agnos-compiler-modemmanager
|
||||
#COPY ./userspace/compile-modemmanager.sh /tmp/agnos/
|
||||
#RUN --mount=type=cache,target=/root/.ccache,id=modemmanager,sharing=shared \
|
||||
# /tmp/agnos/compile-modemmanager.sh
|
||||
#
|
||||
## lpac
|
||||
#FROM agnos-compiler-libqmi AS agnos-compiler-lpac
|
||||
#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 ###### #
|
||||
## ################## #
|
||||
#FROM scratch AS agnos-base
|
||||
#
|
||||
## Add Ubuntu Base image files
|
||||
#ARG UBUNTU_BASE_IMAGE
|
||||
#ADD ${UBUNTU_BASE_IMAGE} /
|
||||
#
|
||||
## Build folder
|
||||
#RUN mkdir -p /tmp/agnos
|
||||
#
|
||||
## Stop on error
|
||||
#RUN set -xe
|
||||
#
|
||||
#ARG USERNAME=comma
|
||||
#
|
||||
## Base system setup
|
||||
#RUN echo "resolvconf resolvconf/linkify-resolvconf boolean false" | debconf-set-selections
|
||||
#COPY ./userspace/base_setup.sh /tmp/agnos
|
||||
#RUN /tmp/agnos/base_setup.sh
|
||||
#
|
||||
## Install openpilot dependencies
|
||||
#COPY ./userspace/openpilot_dependencies.sh /tmp/agnos/
|
||||
#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 ###### #
|
||||
## ################### #
|
||||
#FROM agnos-base
|
||||
#
|
||||
## Hardware setup
|
||||
#RUN mkdir -p /tmp/agnos/debs
|
||||
#COPY ./userspace/debs /tmp/agnos/debs
|
||||
#COPY ./userspace/hardware_setup.sh /tmp/agnos
|
||||
#RUN /tmp/agnos/hardware_setup.sh
|
||||
#RUN mv /data/persist /system/ && rm -rf /data/*
|
||||
#
|
||||
#COPY --from=agnos-compiler-libqmi /tmp/libqmi.deb /tmp/
|
||||
#COPY --from=agnos-compiler-modemmanager /tmp/modemmanager.deb /tmp/
|
||||
#COPY --from=agnos-compiler-lpac /tmp/lpac.deb /tmp/
|
||||
#
|
||||
#RUN cd /tmp && \
|
||||
# apt-get update && \
|
||||
# apt-get install -yq --no-install-recommends \
|
||||
# python3 \
|
||||
# python3-dev \
|
||||
# gir1.2-qmi-1.0 \
|
||||
# libglib2.0-dev \
|
||||
# libqmi-glib5 \
|
||||
# libc6 \
|
||||
# libglib2.0-0t64 \
|
||||
# libgudev-1.0-0 \
|
||||
# libmm-glib0 \
|
||||
# libpolkit-gobject-1-0 \
|
||||
# libsystemd0 \
|
||||
# polkitd \
|
||||
# polkitd-pkla \
|
||||
# mobile-broadband-provider-info && \
|
||||
# apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./libqmi.deb && \
|
||||
# apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./modemmanager.deb && \
|
||||
# apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./lpac.deb
|
||||
#
|
||||
## Pre-compiled capnp (must be before python install)
|
||||
#COPY --from=agnos-compiler-capnp /tmp/capnproto.deb /tmp/capnproto.deb
|
||||
#RUN cd /tmp && apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./capnproto.deb
|
||||
#
|
||||
## Use other pre-compiled packages
|
||||
#COPY --from=agnos-compiler-ffmpeg /tmp/ffmpeg.deb /tmp/ffmpeg.deb
|
||||
#RUN cd /tmp && apt-get -o Dpkg::Options::="--force-overwrite" install -yq ./ffmpeg.deb
|
||||
#
|
||||
#ARG XDG_DATA_HOME="/usr/local"
|
||||
#
|
||||
## Install openpilot python packages
|
||||
#COPY ./userspace/uv /tmp/agnos/uv
|
||||
#RUN source $XDG_DATA_HOME/venv/bin/activate && \
|
||||
# cd /tmp/agnos/uv && \
|
||||
# export PYOPENCL_CL_PRETEND_VERSION="2.0" && \
|
||||
# MAKEFLAGS="-j$(nproc)" UV_NO_CACHE=1 UV_PROJECT_ENVIRONMENT=$XDG_DATA_HOME/venv uv sync --frozen --inexact --compile-bytecode
|
||||
#
|
||||
## Install nice to haves
|
||||
#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
|
||||
#
|
||||
## populate /lib
|
||||
#COPY ./userspace/files/*.path /lib/systemd/system/
|
||||
#COPY ./userspace/files/*.mount /lib/systemd/system/
|
||||
#COPY ./userspace/files/*.service /lib/systemd/system/
|
||||
#COPY ./userspace/files/*.timer /lib/systemd/system/
|
||||
#COPY ./userspace/files/serial-getty@ttyMSM0_override.conf /lib/systemd/system/serial-getty@ttyMSM0.service.d/serial-getty@ttyMSM0_override.conf
|
||||
#COPY ./userspace/files/ssh_override.conf /lib/systemd/system/ssh.service.d/override.conf
|
||||
#COPY ./userspace/firmware/* /lib/firmware/
|
||||
#
|
||||
## populate /etc
|
||||
#COPY ./userspace/files/fstab /etc
|
||||
#COPY ./userspace/files/profile /etc/profile
|
||||
#COPY ./userspace/files/allow-network-control.pkla /etc/polkit-1/localauthority/50-local.d/allow-network-control.pkla
|
||||
#COPY ./userspace/files/allow-modem-control.pkla /etc/polkit-1/localauthority/50-local.d/allow-modem-control.pkla
|
||||
#COPY ./userspace/files/*.rules /etc/udev/rules.d/
|
||||
#COPY ./userspace/files/ssh*_config /etc/ssh/
|
||||
#COPY ./userspace/files/logrotate.conf /etc/
|
||||
#COPY ./userspace/files/rsyslog /etc/logrotate.d/
|
||||
#RUN chmod 644 /etc/logrotate.conf
|
||||
#RUN touch -r /lib/systemd/systemd /etc/fstab
|
||||
#
|
||||
## populate /usr
|
||||
#COPY ./userspace/usr/comma/ /usr/$USERNAME/
|
||||
#COPY ./userspace/usr/share/fonts/* /usr/share/fonts/
|
||||
#COPY ./userspace/libs/* /usr/lib/aarch64-linux-gnu/
|
||||
#COPY ./userspace/libs32/* /usr/lib/arm-linux-gnueabihf/
|
||||
#
|
||||
## this is big, only enable when we need it
|
||||
## kernel headers for the AGNOS kernel (built on device)
|
||||
##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
|
||||
#
|
||||
## MOTD
|
||||
#RUN rm -r /etc/update-motd.d/*
|
||||
#COPY --chown=root:root ./userspace/motd/* /etc/update-motd.d/
|
||||
#
|
||||
## Let NetworkManager manage eth0
|
||||
#COPY ./userspace/files/10-globally-managed-devices.conf /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
|
||||
#COPY ./userspace/files/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf
|
||||
#
|
||||
## Add cellular connections
|
||||
#COPY ./userspace/files/*.nmconnection /usr/lib/NetworkManager/system-connections/
|
||||
#RUN chmod 600 /usr/lib/NetworkManager/system-connections/*.nmconnection
|
||||
#
|
||||
## Prefer ipv4 over ipv6
|
||||
#RUN echo "precedence ::ffff:0:0/96 100" >> /etc/gai.conf
|
||||
#
|
||||
## Don't let logind delete /dev/shm
|
||||
#COPY ./userspace/files/logind.conf /etc/systemd/logind.conf
|
||||
#
|
||||
## Copy Avahi daemon override
|
||||
#COPY ./userspace/files/avahi-override.conf /etc/systemd/system/avahi-daemon.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
|
||||
#
|
||||
## Run ModemManager in debug mode to allow AT commands
|
||||
#COPY ./userspace/files/ModemManager.service /lib/systemd/system/
|
||||
#RUN systemctl enable ModemManager
|
||||
#
|
||||
## Add more T-Mobile networks to mobile-broadband-provider-info (do we still need the package?)
|
||||
#COPY ./userspace/files/serviceproviders.xml /usr/share/mobile-broadband-provider-info/serviceproviders.xml
|
||||
#
|
||||
## Copy extra FW, rest comes from debs
|
||||
#COPY ./userspace/files/CAMERA_ICP.elf /usr/lib/firmware
|
||||
#
|
||||
## Setup hostname resolution for our custom hostname
|
||||
#RUN sed -i 's/hosts: files dns myhostname/hosts: files myhostname dns/g' /etc/nsswitch.conf
|
||||
#
|
||||
## TODO: move this to base_setup.sh or build gcc from source
|
||||
## Remove unused architectures & bins from arm-none-eabi
|
||||
#RUN cd /usr/lib/gcc/arm-none-eabi/* && \
|
||||
# rm -rf arm/ && \
|
||||
# find thumb/ -maxdepth 1 -type d ! \( -name 'thumb' -o -name 'v7e-m+fp' -o -name 'v7e-m+dp' \) -exec rm -rf {} + && \
|
||||
# rm cc1plus g++-mapper-server && \
|
||||
# find /usr/bin -maxdepth 1 -type f -name 'arm-none-eabi-*' ! \( -name 'arm-none-eabi-gcc' -o -name 'arm-none-eabi-objcopy' -o -name 'arm-none-eabi-objdump' \) -delete
|
||||
#
|
||||
## keep this last
|
||||
#RUN ldconfig
|
||||
#
|
||||
## Setup RO rootfs
|
||||
#RUN mkdir -p /rwtmp
|
||||
#RUN mkdir -p /tmptmp
|
||||
#COPY ./userspace/readonly_setup.sh /tmptmp/readonly_setup.sh
|
||||
#RUN /tmptmp/readonly_setup.sh && rm -rf /tmptmp
|
||||
#
|
||||
## copy at the end, after all apt usage
|
||||
#COPY ./userspace/files/apt.conf /etc/apt/apt.conf
|
||||
#
|
||||
## copy version file
|
||||
#COPY VERSION /VERSION
|
||||
#
|
||||
## ################# #
|
||||
## #### Cleanup #### #
|
||||
## ################# #
|
||||
#
|
||||
#RUN rm -rf /usr/share/icons/* && \
|
||||
# rm -rf /var/lib/apt/lists/* && \
|
||||
# rm -rf /home/$USERNAME/.cache && \
|
||||
# rm -rf /root/.cache && \
|
||||
# apt-get clean
|
||||
|
||||
Executable
+23
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
VERSION=1.0.2
|
||||
|
||||
# Install build requirements
|
||||
apt-get update && apt-get install -yq --no-install-recommends \
|
||||
libc6-dev \
|
||||
libssl-dev \
|
||||
zlib1g-dev
|
||||
|
||||
# Build capnproto
|
||||
cd /tmp
|
||||
wget https://capnproto.org/capnproto-c++-${VERSION}.tar.gz
|
||||
tar xvf capnproto-c++-${VERSION}.tar.gz
|
||||
cd capnproto-c++-${VERSION}
|
||||
CXXFLAGS="-fPIC -O2" ./configure
|
||||
|
||||
make -j$(nproc)
|
||||
|
||||
# remove "--fstrans=no" when checkinstall is fixed (still not fixed in 24.04)
|
||||
# https://bugs.launchpad.net/ubuntu/+source/checkinstall/+bug/78455
|
||||
checkinstall -yD --install=no --fstrans=no --pkgname=capnproto
|
||||
mv capnproto*.deb /tmp/capnproto.deb
|
||||
Reference in New Issue
Block a user