update dockerfile
This commit is contained in:
18
Dockerfile
18
Dockerfile
@@ -9,20 +9,18 @@ RUN apt-get update && apt-get install -y gnupg wget \
|
||||
&& wget -qO- https://apt.kitware.com/keys/kitware-archive-latest.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/kitware.gpg \
|
||||
&& echo > /etc/apt/sources.list.d/kitware.list "deb https://apt.kitware.com/ubuntu/ bionic main" \
|
||||
&& wget -qO- https://repo.download.nvidia.com/jetson/jetson-ota-public.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/jetson.gpg \
|
||||
&& echo >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list "deb https://repo.download.nvidia.com/jetson/common r32.7 main" \
|
||||
&& echo >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list "deb https://repo.download.nvidia.com/jetson/t210 r32.7 main" \
|
||||
&& echo >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list "deb https://repo.download.nvidia.com/jetson/common r32.6 main" \
|
||||
&& echo >> /etc/apt/sources.list.d/nvidia-l4t-apt-source.list "deb https://repo.download.nvidia.com/jetson/t210 r32.6 main" \
|
||||
&& mkdir -p /opt/nvidia/l4t-packages && touch /opt/nvidia/l4t-packages/.nv-l4t-disable-boot-fw-update-in-preinstall /etc/nv_boot_control.conf \
|
||||
&& apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends nvidia-l4t-jetson-multimedia-api \
|
||||
g++-8 nasm cmake pkgconf make nano sudo git python3.8 python3-setuptools ninja-build xz-utils \
|
||||
&& wget -qO- https://github.com/mesonbuild/meson/archive/1.8.5.tar.gz | tar zxf - -C /tmp && cd /tmp/meson-1.8.5 && python3.8 setup.py install \
|
||||
&& cp -r /usr/lib/python3/dist-packages/pkg_resources /usr/local/lib/python3.8/dist-packages/ && apt-get remove -y gnupg python3-setuptools \
|
||||
&& apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /usr/share/man/* /usr/src/tensorrt/* /tmp/meson-1.8.5 \
|
||||
g++-8 nasm cmake pkgconf make sudo git meson xz-utils libssl-dev \
|
||||
&& apt-get remove -y gnupg && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* /usr/share/man/* /usr/src/tensorrt/* \
|
||||
&& update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 --slave /usr/bin/cc cc /usr/bin/gcc-8 \
|
||||
&& update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60 --slave /usr/bin/cpp cpp /usr/bin/g++-8 \
|
||||
&& update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 60
|
||||
&& update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60 --slave /usr/bin/cpp cpp /usr/bin/g++-8
|
||||
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends xorg-dev libdbus-1-dev libssl-dev libv4l-dev libpulse-dev libuchardet-dev \
|
||||
# && rm -rf /var/lib/apt/lists/* /usr/share/man/*
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends xorg-dev libwayland-dev libdbus-1-dev \
|
||||
libv4l-dev libpulse-dev libuchardet-dev libass-dev libwebp-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* /usr/share/man/*
|
||||
|
||||
RUN adduser --gecos '' --disabled-password ubuntu \
|
||||
&& echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/ubuntu
|
||||
|
||||
70
Makefile
70
Makefile
@@ -1,59 +1,39 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
PREFIX ?= /usr/local
|
||||
TMPDIR ?= /tmp
|
||||
TMPDIR ?= $(CURDIR)/src
|
||||
|
||||
export PKG_CONFIG_PATH=$(PREFIX)/lib/pkgconfig
|
||||
export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu/tegra
|
||||
|
||||
all:
|
||||
|
||||
download:
|
||||
git clone https://gitlab.com/switchroot/switch-l4t-multimedia/FFmpeg.git --depth=1 $(TMPDIR)/ffmpeg
|
||||
git clone https://gitlab.com/switchroot/switch-l4t-multimedia/mpv.git --depth=1 $(TMPDIR)/mpv
|
||||
wget -qO- https://curl.se/download/curl-8.13.0.tar.xz | tar Jxf - -C $(TMPDIR)
|
||||
|
||||
dav1d:
|
||||
wget -qO- https://downloads.videolan.org/pub/videolan/dav1d/1.5.2/dav1d-1.5.2.tar.xz | tar Jxf - -C $(TMPDIR)
|
||||
meson setup build/dav1d $(TMPDIR)/dav1d-1.5.2 --prefix=$(PREFIX) \
|
||||
--buildtype=release --default-library=static -Denable_tools=false \
|
||||
-Denable_examples=false -Denable_tests=false -Denable_docs=false
|
||||
meson compile -C build/dav1d
|
||||
meson install -C build/dav1d
|
||||
|
||||
harfbuzz:
|
||||
wget -qO- https://github.com/harfbuzz/harfbuzz/releases/download/12.1.0/harfbuzz-12.1.0.tar.xz | tar Jxf - -C $(TMPDIR)
|
||||
meson setup build/harfbuzz $(TMPDIR)/harfbuzz-12.1.0 --prefix=$(PREFIX) --libdir=lib \
|
||||
--buildtype=release --default-library=static -Dtests=disabled -Ddocs=disabled -Dicu=disabled \
|
||||
-Dcairo=disabled -Dgobject=disabled -Dbenchmark=disabled -Dutilities=disabled
|
||||
meson compile -C build/harfbuzz
|
||||
meson install -C build/harfbuzz
|
||||
|
||||
fribidi:
|
||||
wget -qO- https://github.com/fribidi/fribidi/releases/download/v1.0.16/fribidi-1.0.16.tar.xz | tar Jxf - -C $(TMPDIR)
|
||||
meson setup build/fribidi $(TMPDIR)/fribidi-1.0.16 --prefix=$(PREFIX) --libdir=lib \
|
||||
--buildtype=release --default-library=static -Dbin=false -Ddocs=false -Dtests=false
|
||||
meson compile -C build/fribidi
|
||||
meson install -C build/fribidi
|
||||
|
||||
libass: harfbuzz fribidi
|
||||
wget -qO- https://github.com/libass/libass/releases/download/0.17.4/libass-0.17.4.tar.xz | tar Jxf - -C $(TMPDIR)
|
||||
meson setup build/libass $(TMPDIR)/libass-0.17.4 --prefix=$(PREFIX) --libdir=lib \
|
||||
--buildtype=release --default-library=static
|
||||
meson compile -C build/libass
|
||||
meson install -C build/libass
|
||||
curl:
|
||||
cmake -B build/curl -S $(TMPDIR)/curl-8.13.0 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$(PREFIX) \
|
||||
-DBUILD_SHARED_LIBS=OFF -DCURL_USE_OPENSSL=ON -DHTTP_ONLY=ON -DCURL_DISABLE_PROGRESS_METER=ON \
|
||||
-DUSE_LIBIDN2=OFF -DUSE_NGHTTP2=OFF -DCURL_BROTLI=OFF -DCURL_ZSTD=OFF -DCURL_USE_LIBSSH2=OFF \
|
||||
-DBUILD_CURL_EXE=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DCURL_USE_PKGCONFIG=ON \
|
||||
-DBUILD_LIBCURL_DOCS=OFF -DBUILD_MISC_DOCS=OFF -DENABLE_CURL_MANUAL=OFF -DCURL_USE_LIBPSL=OFF
|
||||
|
||||
cmake --build build/curl -j$(shell nproc)
|
||||
sudo cmake --install build/curl
|
||||
|
||||
ffmpeg:
|
||||
wget -qO- https://github.com/theofficialgman/FFmpeg/archive/6.1.1-nvv4l2.tar.gz | tar zxf - -C $(TMPDIR)
|
||||
mkdir -p build/ffmpeg && cd build/ffmpeg && $(TMPDIR)/FFmpeg-6.1.1-nvv4l2/configure --prefix=$(PREFIX) \
|
||||
cd $(TMPDIR)/ffmpeg && ./configure --prefix=$(PREFIX) --disable-shared --enable-static \
|
||||
--extra-cflags='-march=armv8-a+simd+crypto+crc -mtune=cortex-a57 -I/usr/src/jetson_multimedia_api/include' \
|
||||
--extra-ldflags='-L/usr/lib/aarch64-linux-gnu/tegra' --extra-libs='-lpthread -lm -lv4l2' \
|
||||
--disable-shared --enable-static --ld=g++ --enable-neon --disable-debug --disable-doc --disable-avdevice \
|
||||
--enable-nonfree --enable-openssl --enable-libv4l2 --enable-nvv4l2 --enable-libass --enable-libdav1d \
|
||||
--disable-muxers --disable-encoders --disable-programs --enable-zlib
|
||||
make -C build/ffmpeg -j$(shell nproc)
|
||||
make -C build/ffmpeg install
|
||||
--extra-ldflags='-L/usr/lib/aarch64-linux-gnu/tegra' --extra-libs='-lpthread -lm -lnvbuf_utils -lv4l2' \
|
||||
--ld=g++ --enable-neon --disable-debug --disable-doc --disable-avdevice --disable-programs \
|
||||
--enable-nonfree --enable-openssl --enable-libv4l2 --enable-nvv4l2 --enable-libass --enable-opengl \
|
||||
--disable-muxers --disable-encoders
|
||||
make -C $(TMPDIR)/ffmpeg -j$(shell nproc)
|
||||
sudo make -C $(TMPDIR)/ffmpeg install
|
||||
|
||||
mpv:
|
||||
wget -qO- https://github.com/mpv-player/mpv/archive/v0.36.0.tar.gz | tar zxf - -C $(TMPDIR)
|
||||
meson setup build/mpv $(TMPDIR)/mpv-0.36.0 --prefix=$(PREFIX) --libdir=lib \
|
||||
--buildtype=release --default-library=shared -Dlibmpv=true -Dcplayer=false -Dtests=false \
|
||||
-Dlibarchive=disabled -Dlua=disabled -Dvulkan=disabled -Dwayland=disabled
|
||||
meson compile -C build/mpv
|
||||
meson install -C build/mpv
|
||||
cd $(TMPDIR)/mpv && ./bootstrap.py && LIBDIR=/usr/lib/aarch64-linux-gnu/tegra \
|
||||
./waf configure --prefix=$(PREFIX) --enable-libmpv-static --disable-debug-build \
|
||||
--disable-libavdevice --disable-cplayer --disable-lua && \
|
||||
./waf build && sudo ./waf install
|
||||
Reference in New Issue
Block a user