konaLinuxPi3.0でkodiビルド手順整理したが、うまくいかない(・・? メモ

前準備

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] で検索、それっぽいのが有った。

github.com

-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書き込みから再現可能か整理してみよう。

./kodi-x11  で実行、アイコン画像が崩れる現象は改善した模様(gitのOmegaソースが改修された?バージョンもRCでは無い21.0となっている。)ただし、androidのfidataアプリが楽曲にアクセス時にクラッシュする現象は改善せず。
追記
アイコンが崩れる現象発生した、画像ファイルが1MB以上の物で発生するかも?要検証。
 
wayland用コンフィグからもビルド実行してみよう。
collect2: error: ld returned 1 exit status
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
で停止、とりあえずx11版での手順整理後にどうするか検討。