修复mpp驱动不匹配的问题
This commit is contained in:
parent
2885b69f4b
commit
dff8b1abf0
|
|
@ -7,6 +7,7 @@ services:
|
||||||
container_name: edge-proxy-shared-dev
|
container_name: edge-proxy-shared-dev
|
||||||
image: edge-proxy-edge-proxy-dev:latest
|
image: edge-proxy-edge-proxy-dev:latest
|
||||||
platform: linux/arm64
|
platform: linux/arm64
|
||||||
|
privileged: true
|
||||||
devices:
|
devices:
|
||||||
- /dev/ttyS7:/dev/ttyS7
|
- /dev/ttyS7:/dev/ttyS7
|
||||||
- /dev/ttyS9:/dev/ttyS9
|
- /dev/ttyS9:/dev/ttyS9
|
||||||
|
|
@ -22,7 +23,6 @@ services:
|
||||||
- "110"
|
- "110"
|
||||||
volumes:
|
volumes:
|
||||||
- .:/app
|
- .:/app
|
||||||
- /proc/device-tree:/proc/device-tree:ro
|
|
||||||
|
|
||||||
ports:
|
ports:
|
||||||
- "8888:8888"
|
- "8888:8888"
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,5 @@
|
||||||
# =================================================================
|
|
||||||
# Edge Proxy - 开发环境 Dockerfile (V9 - 源码编译版)
|
|
||||||
# 严格遵循 "边带配置.docx" 文档 (MPP/RGA/GStreamer 均使用本地包)
|
|
||||||
# =================================================================
|
|
||||||
|
|
||||||
FROM arm64v8/ubuntu:22.04
|
FROM arm64v8/ubuntu:22.04
|
||||||
|
|
||||||
# 1. 基础环境设置
|
|
||||||
# =================================
|
|
||||||
WORKDIR /app
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
# 2. 安装依赖、创建用户和组
|
|
||||||
# =================================
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
# 基础工具
|
# 基础工具
|
||||||
|
|
@ -23,25 +11,26 @@ RUN apt-get update && \
|
||||||
vim \
|
vim \
|
||||||
unzip \
|
unzip \
|
||||||
pkg-config \
|
pkg-config \
|
||||||
# 添加 'universe' 仓库
|
# PPA 管理工具
|
||||||
software-properties-common \
|
software-properties-common \
|
||||||
|
gpg-agent \
|
||||||
&& \
|
&& \
|
||||||
# 添加 universe 仓库并再次更新
|
add-apt-repository -y ppa:jjriek/panfork-mesa && \
|
||||||
add-apt-repository universe && \
|
add-apt-repository -y ppa:jjriek/rockchip && \
|
||||||
|
add-apt-repository -y ppa:jjriek/rockchip-multimedia && \
|
||||||
apt-get update && \
|
apt-get update && \
|
||||||
# 一次性安装所有依赖 (综合 "边带配置.docx" 的所有 apt install)
|
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
# Piper TTS 所需
|
|
||||||
espeak-ng-data \
|
espeak-ng-data \
|
||||||
libespeak1 \
|
libespeak1 \
|
||||||
python3 \
|
python3 \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
# C++ 开发库
|
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libspdlog-dev \
|
libspdlog-dev \
|
||||||
libsqlite3-dev \
|
libsqlite3-dev \
|
||||||
libboost-all-dev \
|
libboost-all-dev \
|
||||||
# GStreamer 核心
|
librockchip-mpp-dev \
|
||||||
|
librga-dev \
|
||||||
|
gstreamer1.0-rockchip \
|
||||||
libgstreamer1.0-dev \
|
libgstreamer1.0-dev \
|
||||||
libgstreamer-plugins-base1.0-dev \
|
libgstreamer-plugins-base1.0-dev \
|
||||||
gstreamer1.0-plugins-base \
|
gstreamer1.0-plugins-base \
|
||||||
|
|
@ -53,22 +42,8 @@ RUN apt-get update && \
|
||||||
gstreamer1.0-x \
|
gstreamer1.0-x \
|
||||||
gstreamer1.0-alsa \
|
gstreamer1.0-alsa \
|
||||||
gstreamer1.0-pulseaudio \
|
gstreamer1.0-pulseaudio \
|
||||||
# 编译工具
|
|
||||||
meson \
|
|
||||||
ninja-build \
|
|
||||||
# Rockchip 硬件库依赖
|
|
||||||
libdrm-dev \
|
|
||||||
libavcodec-dev \
|
|
||||||
libavformat-dev \
|
|
||||||
libjpeg-dev \
|
|
||||||
libv4l-dev \
|
|
||||||
libx11-dev \
|
|
||||||
libegl1-mesa-dev \
|
|
||||||
libgles2-mesa-dev \
|
|
||||||
&& \
|
&& \
|
||||||
pip3 install --no-cache-dir onvif_zeep && \
|
pip3 install --no-cache-dir onvif_zeep && \
|
||||||
\
|
|
||||||
# 用户和组创建
|
|
||||||
groupadd -r developers && \
|
groupadd -r developers && \
|
||||||
useradd -ms /bin/bash -g developers -G sudo dev && \
|
useradd -ms /bin/bash -g developers -G sudo dev && \
|
||||||
groupadd -g 20 dialout || true && \
|
groupadd -g 20 dialout || true && \
|
||||||
|
|
@ -79,109 +54,21 @@ RUN apt-get update && \
|
||||||
usermod -a -G render dev && \
|
usermod -a -G render dev && \
|
||||||
echo "dev ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/dev-nopasswd
|
echo "dev ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/dev-nopasswd
|
||||||
|
|
||||||
# 权限和协作设置
|
|
||||||
# =================================
|
|
||||||
RUN echo "umask 0002" > /etc/profile.d/99-shared-umask.sh && \
|
RUN echo "umask 0002" > /etc/profile.d/99-shared-umask.sh && \
|
||||||
chmod +x /etc/profile.d/99-shared-umask.sh
|
chmod +x /etc/profile.d/99-shared-umask.sh
|
||||||
|
|
||||||
# 编译并安装 Paho MQTT 库
|
|
||||||
# =================================
|
|
||||||
COPY . /tmp/build-context
|
COPY . /tmp/build-context
|
||||||
RUN cd /tmp/build-context/external/paho.mqtt.c && \
|
RUN cd /tmp/build-context/external/paho.mqtt.c && \
|
||||||
cmake -Bbuild -H. \
|
cmake -Bbuild -H. -DPAHO_WITH_SSL=ON -DPAHO_BUILD_SAMPLES=OFF -DPAHO_BUILD_DOCUMENTATION=OFF && \
|
||||||
-DPAHO_WITH_SSL=ON \
|
|
||||||
-DPAHO_BUILD_SAMPLES=OFF \
|
|
||||||
-DPAHO_BUILD_DOCUMENTATION=OFF && \
|
|
||||||
cmake --build build --target install && \
|
cmake --build build --target install && \
|
||||||
\
|
|
||||||
cd /tmp/build-context/external/paho.mqtt.cpp && \
|
cd /tmp/build-context/external/paho.mqtt.cpp && \
|
||||||
cmake -Bbuild -H. \
|
cmake -Bbuild -H. -DPAHO_WITH_SSL=ON -DPAHO_BUILD_SAMPLES=OFF -DPAHO_BUILD_DOCUMENTATION=OFF && \
|
||||||
-DPAHO_WITH_SSL=ON \
|
|
||||||
-DPAHO_BUILD_SAMPLES=OFF \
|
|
||||||
-DPAHO_BUILD_DOCUMENTATION=OFF && \
|
|
||||||
cmake --build build --target install && \
|
cmake --build build --target install && \
|
||||||
rm -rf /tmp/build-context
|
rm -rf /tmp/build-context
|
||||||
|
RUN rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# 编译 MPP
|
|
||||||
COPY mpp-develop.zip /tmp/
|
|
||||||
RUN cd /tmp && \
|
|
||||||
unzip mpp-develop.zip && \
|
|
||||||
cd mpp-develop && \
|
|
||||||
mkdir rkmpp_build && \
|
|
||||||
cd rkmpp_build && \
|
|
||||||
cmake \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DCMAKE_C_FLAGS="-O3 -march=armv8.2-a+simd+crypto -mtune=cortex-a76" \
|
|
||||||
-DCMAKE_CXX_FLAGS="-O3 -march=armv8.2-a+simd+crypto -mtune=cortex-a76" \
|
|
||||||
-DBUILD_SHARED_LIBS=ON \
|
|
||||||
-DBUILD_TEST=OFF \
|
|
||||||
-DHAVE_DRM=ON \
|
|
||||||
-DHAVE_AVCODEC=ON \
|
|
||||||
-DHAVE_AVFORMAT=ON \
|
|
||||||
-DHAVE_LIBV4L2=ON \
|
|
||||||
-DHAVE_JPEGD=ON \
|
|
||||||
-DHAVE_RKVDEC=ON \
|
|
||||||
-DHAVE_RKVENC=ON \
|
|
||||||
-DHAVE_MPP_RGA=ON \
|
|
||||||
.. && \
|
|
||||||
make -j$(nproc) && \
|
|
||||||
make install && \
|
|
||||||
cd / && \
|
|
||||||
rm -rf /tmp/mpp-develop*
|
|
||||||
|
|
||||||
# 编译 RGA
|
|
||||||
COPY rk-mirrors-linux-rga-multi.zip /tmp/
|
|
||||||
|
|
||||||
RUN cd /tmp && \
|
|
||||||
unzip rk-mirrors-linux-rga-multi.zip && \
|
|
||||||
cd rk-mirrors-linux-rga-multi && \
|
|
||||||
meson setup . rkrga_build \
|
|
||||||
--prefix=/usr \
|
|
||||||
--libdir=lib \
|
|
||||||
--buildtype=release \
|
|
||||||
--default-library=shared \
|
|
||||||
-Dcpp_args=-fpermissive \
|
|
||||||
-Dlibdrm=false \
|
|
||||||
-Dlibrga_demo=false && \
|
|
||||||
meson configure rkrga_build && \
|
|
||||||
ninja -C rkrga_build install && \
|
|
||||||
cd / && \
|
|
||||||
rm -rf /tmp/rk-mirrors-linux-rga-multi*
|
|
||||||
|
|
||||||
# 编译 GStreamer 插件
|
|
||||||
COPY gstreamer-rockchip-master.zip /tmp/
|
|
||||||
RUN cd /tmp && \
|
|
||||||
unzip gstreamer-rockchip-master.zip && \
|
|
||||||
cd gstreamer-rockchip-master && \
|
|
||||||
mkdir build && \
|
|
||||||
cd build && \
|
|
||||||
meson setup .. \
|
|
||||||
--prefix=/usr \
|
|
||||||
--libdir=lib/aarch64-linux-gnu \
|
|
||||||
--buildtype=release \
|
|
||||||
--optimization=3 \
|
|
||||||
--default-library=shared \
|
|
||||||
-Dc_args="-I/usr/include/rga -I/usr/include/rockchip -I/usr/include/drm -O3 -march=armv8.2-a+simd+crypto -mtune=cortex-a76 -fPIC" \
|
|
||||||
-Dc_link_args="-Wl,-Bsymbolic -Wl,-O3" \
|
|
||||||
-Dpackage-name="GStreamer Rockchip RK3588" \
|
|
||||||
-Dpackage-origin="https://github.com/rockchip-linux/gst-rockchip" \
|
|
||||||
-Drockchipmpp=enabled \
|
|
||||||
-Drga=enabled && \
|
|
||||||
ninja -j$(nproc) && \
|
|
||||||
ninja install && \
|
|
||||||
ldconfig && \
|
|
||||||
cd / && \
|
|
||||||
rm -rf /tmp/gstreamer-rockchip-master* && \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# 8. 安装 Piper TTS
|
|
||||||
COPY piper_models/ /app/piper_models/
|
COPY piper_models/ /app/piper_models/
|
||||||
USER dev
|
USER dev
|
||||||
RUN pip install --no-cache-dir --user -i https://mirrors.aliyun.com/pypi/simple/ piper-tts
|
RUN pip install --no-cache-dir --user -i https://mirrors.aliyun.com/pypi/simple/ piper-tts
|
||||||
RUN echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile
|
RUN echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile
|
||||||
|
|
||||||
# 9. 设置默认用户
|
|
||||||
USER dev
|
USER dev
|
||||||
CMD ["/bin/bash"]
|
CMD ["/bin/bash"]
|
||||||
BIN
mpp-develop.zip
BIN
mpp-develop.zip
Binary file not shown.
Loading…
Reference in New Issue