前準備
OSインストール直後はディスク容量に空きが少ないので、gpartedをインストールして、パーテション拡張しておく。
swapファイル確認。
sudo swapon --show
100MBなので、拡大
swap停止
sudo dphys-swapfile swapoff
設定ファイル変更
sudo nano /etc/dphys-swapfile
例
CONF_SWAPSIZE=100
100=100MB なので、数値を変更
めんどいので、2000に設定
swapファイルを再作成
sudo dphys-swapfile setup
作成したswap機能を有効化
sudo dphys-swapfile swapon
再起動
sudo reboot
確認
sudo swapon --show
でSIZEを確認
必要なパッケージのインストール
sudo apt update
sudo apt -y upgrade
sudo apt install -y autoconf automake autopoint gettext autotools-dev cmake curl
sudo apt install -y default-jre gawk gcc g++ cpp gdc gperf
sudo apt install -y libasound2-dev libass-dev libavahi-client-dev libavahi-common-dev libbluetooth-dev libbluray-dev libbz2-dev libcdio-dev libcec-dev
sudo apt install -y libp8-platform-dev libcrossguid-dev libcurl4-openssl-dev libdbus-1-dev libegl1-mesa-dev
sudo apt install -y libenca-dev libflac-dev libfontconfig-dev libfmt-dev libfreetype6-dev libfribidi-dev libfstrcmp-dev libgcrypt-dev
sudo apt install -y libgif-dev libgles2-mesa-dev libglew-dev libglu1-mesa-dev libgnutls28-dev
sudo apt install -y libgpg-error-dev libgtest-dev libiso9660-dev libjpeg-dev liblcms2-dev liblirc-dev libltdl-dev liblzo2-dev libmicrohttpd-dev libnfs-dev
sudo apt install -y libogg-dev libomxil-bellagio-dev libpcre3-dev libplist-dev libpng-dev libpulse-dev libshairplay-dev libsmbclient-dev libspdlog-dev
sudo apt install -y libsqlite3-dev libssl-dev libtag1-dev libtiff5-dev libtinyxml-dev libtinyxml2-dev libtool libudev-dev libunistring-dev
sudo apt install -y libva-dev libvdpau-dev libvorbis-dev libxkbcommon-dev libxmu-dev libxrandr-dev libxslt1-dev libxt-dev waylandpp-dev wayland-protocols
sudo apt install -y lsb-release meson nasm ninja-build python3-dev python3-pil python3-minimal rapidjson-dev swig unzip uuid-dev zip zlib1g-dev
sudo apt install -y scons libwayland-egl1-mesa
sudo apt install -y libpugixml-dev libpugixml1v5 pugixml-doc
sudo apt install -y libcdio++-dev libdrm-dev libcurl4-gnutls-dev
sudo apt install -y generate-ninja yasm wipe cmake-doc
sudo apt install -y libssl-dev libffi-dev libncurses5-dev zlib1g zlib1g-dev libreadline-dev libbz2-dev libsqlite3-dev make gcc
sudo apt install -y libcwiid-dev
ホームディレクトリを起点にする。
cd $HOME
gitから、必要なファイル取得(ホームディレクトリ配下にkodiフォルダを作成してgit cloneしている。)
git clone https://github.com/xbmc/xbmc kodi
2024/05/25 追記
*****
手順修正 ソース変更?でNGなので、Omegaを指定
git clone -b Omega https://github.com/xbmc/xbmc kodi
*****
ビルド前にMakefileファイルの修正が必要。
*一括置き換えコマンド追記したので、nanoで修正不要。
sudo nano kodi/tools/depends/target/crossguid/Makefile
sudo nano kodi/tools/depends/target/flatbuffers/Makefile
sudo nano kodi/tools/depends/target/fmt/Makefile
sudo nano kodi/tools/depends/target/spdlog/Makefile
sudo nano kodi/tools/depends/target/wayland-protocols/Makefile
sudo nano kodi/tools/depends/target/waylandpp/Makefile
各内容の
BASE_URL := http://mirrors.kodi・・・
を
BASE_URL := https://mirrors.kodi・・・
httpをhttpsにするだけ。
一応.orgでコピー
cp kodi/tools/depends/target/crossguid/Makefile kodi/tools/depends/target/crossguid/Makefile.org
cp kodi/tools/depends/target/flatbuffers/Makefile kodi/tools/depends/target/flatbuffers/Makefile.org
cp kodi/tools/depends/target/fmt/Makefile kodi/tools/depends/target/fmt/Makefile.org
cp kodi/tools/depends/target/spdlog/Makefile kodi/tools/depends/target/spdlog/Makefile.org
cp kodi/tools/depends/target/wayland-protocols/Makefile kodi/tools/depends/target/wayland-protocols/Makefile.org
cp kodi/tools/depends/target/waylandpp/Makefile kodi/tools/depends/target/waylandpp/Makefile.org
戻す場合
cp kodi/tools/depends/target/crossguid/Makefile.org kodi/tools/depends/target/crossguid/Makefile
cp kodi/tools/depends/target/flatbuffers/Makefile.org kodi/tools/depends/target/flatbuffers/Makefile
cp kodi/tools/depends/target/fmt/Makefile.org kodi/tools/depends/target/fmt/Makefile
cp kodi/tools/depends/target/spdlog/Makefile.org kodi/tools/depends/target/spdlog/Makefile
cp kodi/tools/depends/target/wayland-protocols/Makefile.org kodi/tools/depends/target/wayland-protocols/Makefile
cp kodi/tools/depends/target/waylandpp/Makefile.org kodi/tools/depends/target/waylandpp/Makefile
置き換え
sudo sed -i -e s/http:/https:/g kodi/tools/depends/target/crossguid/Makefile
sudo sed -i -e s/http:/https:/g kodi/tools/depends/target/flatbuffers/Makefile
sudo sed -i -e s/http:/https:/g kodi/tools/depends/target/fmt/Makefile
sudo sed -i -e s/http:/https:/g kodi/tools/depends/target/spdlog/Makefile
sudo sed -i -e s/http:/https:/g kodi/tools/depends/target/wayland-protocols/Makefile
sudo sed -i -e s/http:i/https:/g kodi/tools/depends/target/waylandpp/Makefile
置き換え sed -i で実ファイルを書き換える、リダイレクト> ではファイルが初期化されるので不可。
sed -i -e 's/secret_password/dummy_password/' sample.txt
作業用ディレクトリに移動し各ブロック毎のビルドを実行。
cd $HOME/kodi
sudo make -C tools/depends/target/crossguid PREFIX=/usr/local
sudo make -C tools/depends/target/flatbuffers PREFIX=/usr/local
sudo make -C tools/depends/target/fmt PREFIX=/usr/local
sudo make -C tools/depends/target/spdlog PREFIX=/usr/local
sudo make -C tools/depends/target/wayland-protocols PREFIX=/usr/local
sudo make -C tools/depends/target/waylandpp PREFIX=/usr/local
*エラーした場合末尾に-B付けて再度強制ビルドする必要が有るかも
例 sudo make -C tools/depends/target/waylandpp PREFIX=/usr/local -B
ホームディレクトリ配下に本体ビルド用ディレクトリ作成し、x11用のビルドコンフィグ作成。
mkdir $HOME/kodi-build
cd $HOME/kodi-build
cmake ../kodi -DCMAKE_INSTALL_PREFIX=/usr/local -DCORE_PLATFORM_NAME=x11 -DAPP_RENDER_SYSTEM=gl
エラー時の修正版
cmake ../kodi -DCMAKE_INSTALL_PREFIX=/usr/local -DCORE_PLATFORM_NAME=x11 -DAPP_RENDER_SYSTEM=gl -DENABLE_INTERNAL_FLATBUFFERS=ON
kodi gmake: *** [Makefile:146: all] で検索、それっぽいのが有った。
-DENABLE_INTERNAL_FLATBUFFERS=ON
を付ける
*ネットワーク状態によっては、エラーする場合がある?再実行でOKになることもあるので何回か実行してみる。
エラー発生、前回成功した手順を全て見たが不明。
CMake Error at /usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Curl (missing: CURL_LIBRARY CURL_INCLUDE_DIR) (found version
"")
Call Stack (most recent call first):
/usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
cmake/modules/FindCurl.cmake:153 (find_package_handle_standard_args)
cmake/scripts/common/Macros.cmake:404 (find_package)
cmake/scripts/common/Macros.cmake:418 (find_package_with_ver)
CMakeLists.txt:261 (core_require_dep)
AI(マイクロソフトCOPILOT)にメッセージをコピペしたら、回答が出力された。
”sudo apt-get install libcurl4-openssl-dev”との回答上記手順には反映済み。
再度、OS書き込みから実施時に最初はエラーするが、2度目以降は成功する何処かに手順不備がある?
ビルド実行。
cmake --build . -- VERBOSE=1 -j$(getconf _NPROCESSORS_ONLN)
エラー
/home/kona/kodi/xbmc/windowing/X11/GLContextEGL.h:21:10: fatal error: EGL/eglextchromium.h: そのようなファイルやディレクトリはありません
21 | #include <EGL/eglextchromium.h>
waylandに切り替えてたり、x11に戻したりしていたので、wayland環境で実施してみる。
sudo raspi-config
でadvanced optionから、waylandに切り替え。
結果変わらず、x11に戻す。
"21 | #include <EGL/eglextchromium.h>" で検索
参考になりそう。
lore.kernel.orgmesa3dのパッケージが関係してそう、
apt list mesa*
で関係ありそうなパッケージをリストアップ
mesa-common-dev/stable 23.2.1-1~bpo12+rpt3 arm64
mesa-common-dev/stable 23.2.1-1~bpo12+rpt3 armhf
mesa-drm-shim-dbgsym/stable 23.2.1-1~bpo12+rpt3 arm64
mesa-drm-shim-dbgsym/stable 23.2.1-1~bpo12+rpt3 armhf
mesa-drm-shim/stable 23.2.1-1~bpo12+rpt3 arm64
mesa-drm-shim/stable 23.2.1-1~bpo12+rpt3 armhf
mesa-opencl-icd-dbgsym/stable 23.2.1-1~bpo12+rpt3 arm64
mesa-opencl-icd-dbgsym/stable 23.2.1-1~bpo12+rpt3 armhf
mesa-opencl-icd/stable 23.2.1-1~bpo12+rpt3 arm64
mesa-opencl-icd/stable 23.2.1-1~bpo12+rpt3 armhf
mesa-utils-bin/stable 8.5.0-1 arm64
mesa-utils-bin/stable 8.5.0-1 armhf
mesa-utils/stable 8.5.0-1 arm64
mesa-utils/stable 8.5.0-1 armhf
mesa-va-drivers-dbgsym/stable 23.2.1-1~bpo12+rpt3 arm64
mesa-va-drivers-dbgsym/stable 23.2.1-1~bpo12+rpt3 armhf
mesa-va-drivers/stable 23.2.1-1~bpo12+rpt3 arm64
mesa-va-drivers/stable 23.2.1-1~bpo12+rpt3 armhf
mesa-vdpau-drivers-dbgsym/stable 23.2.1-1~bpo12+rpt3 arm64
mesa-vdpau-drivers-dbgsym/stable 23.2.1-1~bpo12+rpt3 armhf
mesa-vdpau-drivers/stable,now 23.2.1-1~bpo12+rpt3 arm64 [インストール済み、自動]
mesa-vdpau-drivers/stable 23.2.1-1~bpo12+rpt3 armhf
mesa-vulkan-drivers-dbgsym/stable 23.2.1-1~bpo12+rpt3 arm64
mesa-vulkan-drivers-dbgsym/stable 23.2.1-1~bpo12+rpt3 armhf
mesa-vulkan-drivers/stable 23.2.1-1~bpo12+rpt3 arm64
mesa-vulkan-drivers/stable 23.2.1-1~bpo12+rpt3 armhf
mesaflash/stable 3.4.6-1 arm64
mesaflash/stable 3.4.6-1 armhf
とりあえず、
sudo apt install mesa-va-drivers
変わらず、mesa-****-driversとmesa-****-drivers-dbgsymはセットっぽいので
sudo apt install mesa-vdpau-drivers-dbgsym
変わらず、EGL/eglextchromium.h: そのようなファイルやディレクトリはありませんなので、kodi-buildに何らかの反映が実施されなければパッケージのインストールで改善されていたとしても反映されないのでビルドコンフィグ作成から再度実行。
変わらず、手詰まりなのでwaylandのコンフィグビルド(前環境でもx11で失敗時にwaylandも実施していた、どちらが先か不明なので実施してNGでも再度x11を実施してみる。)
cmake ../kodi -DCMAKE_INSTALL_PREFIX=/usr/local -DCORE_PLATFORM_NAME=wayland -DAPP_RENDER_SYSTEM=gl
ビルド実行
cmake --build . -- VERBOSE=1 -j$(getconf _NPROCESSORS_ONLN)
NG
collect2: error: ld returned 1 exit status
gmake[2]: *** [CMakeFiles/kodi.dir/build.make:554: kodi-wayland] エラー 1
gmake[2]: ディレクトリ '/home/kona/kodi-build' から出ます
gmake[1]: *** [CMakeFiles/Makefile2:5405: CMakeFiles/kodi.dir/all] エラー 2
gmake[1]: ディレクトリ '/home/kona/kodi-build' から出ます
gmake: *** [Makefile:146: all] エラー 2
で止まる。(x11と同じMakefile:146:)だが、その前の ”EGL/eglextchromium.h: そのようなファイルやディレクトリはありません”は発生していない。
前回やっていて、今回やっていない事
git clone https://github.com/xbmc/xbmc kodi
をOmega指定していた、その後失敗するのでデフォルトで実行していた。
git clone -b Omega https://github.com/xbmc/xbmc kodi
から、実施してみるとできた。
後でOS書き込みから再現可能か整理してみよう。
gmake[2]: *** [CMakeFiles/kodi.dir/build.make:556: kodi-wayland] エラー 1
gmake[2]: ディレクトリ '/home/kona/kodi-build' から出ます
gmake[1]: *** [CMakeFiles/Makefile2:5377: CMakeFiles/kodi.dir/all] エラー 2
gmake[1]: ディレクトリ '/home/kona/kodi-build' から出ます
gmake: *** [Makefile:146: all] エラー 2