LoginSignup
1
0

More than 1 year has passed since last update.

Jetson NanoでCEF (Chromium Embedded Framework)をビルドしてみた

Last updated at Posted at 2021-03-28

はじめに

Jetson Nanoでライブ配信ソフトOBS Studioを"ブラウザソースあり"でビルドできないの?!という質問を受けた。

スクリーンショット 2021-03-28 9.09.16.png

公式ページを参照すると、"ブラウザソースあり"=ブラウザソースプラグインをビルドするためには、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の変更

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

Screenshot from 2021-03-28 09-48-45.png

Screenshot from 2021-03-28 09-49-26.png

参考

  • 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

これ以外の手順は同じです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0