Jetson NanoでCEF (Chromium Embedded Framework)をビルドしてみた
はじめに
Jetson Nanoでライブ配信ソフトOBS Studioを"ブラウザソースあり"でビルドできないの?!という質問を受けた。
公式ページを参照すると、"ブラウザソースあり"=ブラウザソースプラグインをビルドするためには、CEF (Chromium Embedded Framework)が必要ということが分かった。
CEF (Chromium Embedded Framework)とは
Google Chromeの表示部分だけを抜き出したフレームワークで、他のアプリ(今回はOBS Studio)に埋め込んで使用する。CEFはChromium本体から作られる=ビルドに時間がかかるので、Spotify社が提供するビルド済ライブラリを利用してビルドしてみた。
ビルド手順
1. ビルドに必要なパッケージのインストール
$ sudo apt install build-essential gtk2.0 libgtk2.0-dev libgtkglext1-dev
2. ソースのダウンロード
$ git clone https://bitbucket.org/chromiumembedded/cef-project
3. CMakeLists.txtの変更
$ sudo apt install build-essential gtk2.0 libgtk2.0-dev libgtkglext1-dev
$ git clone https://bitbucket.org/chromiumembedded/cef-project
Jetson Nano (JetPack 4.5.1)はlinuxarm64アーキテクチャで、CMakeLists.txtはlinuxarm64を想定していないため、CMakeLists.txtの変更が必要になります。
$ cd cef-project
CMakeLists.txtに以下の内容を追加します。
if(PROJECT_ARCH STREQUAL "linuxarm64")
set(CEF_PLATFORM "linuxarm64")
endif()
差分は以下のとおりです。
$ diff CMakeLists.txt CMakeLists.txt_org
36,38d35
< if(PROJECT_ARCH STREQUAL "linuxarm64")
< set(CEF_PLATFORM "linuxarm64")
< endif()
変更したCMakeLists.txtをgithubに置きます。
4. ビルド
$ mkdir build && cd build
$ cmake -G "Unix Makefiles" -DPROJECT_ARCH="linuxarm64" -DCMAKE_BUILD_TYPE=Release ..
$ make -j4
5. cefclientの動作確認
ビルド途中に表示されるchrome-sandboxの所有者と権限を変更します。
$ cd third_party/cef/cef_binary_87.1.12+g03f9336+chromium-87.0.4280.88_linuxarm64/tests/cefclient/Release
$ sudo chown root:root chrome-sandbox
$ sudo chmod 4755 chrome-sandbox
cefclientを起動します。
$ ./cefclient
参考
- 2022/3/21 追記
Jetson Nano JetPack 4.6.1 / cef_binary_96.0.16+g89c902b+chromium-96.0.4664.55_linuxarm64
環境
- Jetson Nano 4GB (A02)
- JetPack 4.6.1
- cef_binary_96.0.16+g89c902b+chromium-96.0.4664.55_linuxarm64
1. ビルドに必要なパッケージのインストール
追加で以下のパッケージのインストールが必要です。
$ sudo apt install libgtk-3-dev
これ以外の手順は同じです。
Author And Source
この問題について(Jetson NanoでCEF (Chromium Embedded Framework)をビルドしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/kitazaki/items/f42a71c25d96fa830551著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .