0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

radxa に tileserver-gl を動作させた際の手順

Last updated at Posted at 2023-06-12

rasberry pi zero に似た radxa zero に tileserver-gl をインストールした際の手順を記録しています。

  • タイル画像を生成する時にエラーになってしまう問題ができない (2023/06)
terminate called after throwing an instance of 'std::runtime_error'
  what():  Cannot read GLX extensions.

手元のハードウェアスペック/OSイメージ

tileserver-gl のインストール

  • tileserver-gl のインストール手順として3つ(docker, npm, from source)の案内があるが, npm からパッケージをインストールをしている

  • nodesource を使い、nodejs18 系をインストールしている

  • 事前に環境変数 LD_PRELOAD 変数のセットしている

# ~/.bashrc
export LD_PRELOAD=/lib/aarch64-linux-gnu/libGLdispatch.so

環境変数をセットしない場合, tileserver-gl 実行時に次のエラーを得る

node:internal/modules/cjs/loader:1338
  return process.dlopen(module, path.toNamespacedPath(filename));
                 ^

Error: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block
}

Xvfb

  • tileserver-gl インストール時に Xvfb (X virtual frame buffer) が一緒にインストールされている
  • タイルイメージのレンダリングには仮想ディスプレイが必要
  • 事前に Xvfb (xvfb-run) コマンドで仮想ディスプレイを作成する必要がある
  • ただし,レンダリング時に GLX に関してエラーが出てしまうので, virtualgl (bumblebee) package をインストールする必要があった
$sudo apt install -y bumblebee
  • 仮想ディスプレイの作成は次の要領で行う
Xvfb :1 -screen 0 1024x768x24 +extension GLX +render -noreset &
  • 環境変数 DISPLAY に仮想ディスプレイを指定する
export DISPLAY=:1
  • 仮想ディスプレイのテストをするには glxinfo が利用できる
    • mesa-utils package を次の手順でインストールする
$ sudo apt install -y mesa-utils

以下のようにエラーが表示されなければ、正常に仮想ディスプレイが作られている

rock@radxa-zero:~/$ glxinfo -display :1 | head
name of display: :1
display: :1  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_context_flush_control, GLX_ARB_create_context, 
    GLX_ARB_create_context_no_error, GLX_ARB_create_context_profile, 
    GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile,

タイルイメージのレンダリングテスト

  • ブラウザから http://127.0.0.1:8080/ を開き、「Viewer」 のボタンを押下
  • 地図が表示されることが期待される
$ wget https://github.com/maptiler/tileserver-gl/releases/download/v1.3.0/test_data.zip
$ unzip -q test_data.zip -d test_data
$ cd test_data
$ tileserver-gl -c config.json

現在見えている問題

  • index ページでリロードすると次のエラーが表示される
    • virtualgl 関係なかった?
terminate called after throwing an instance of 'std::runtime_error'
  what():  Cannot read GLX extensions.
Aborted (core dumped)
  • maptiler-log.svg などの一部の画像アセットが読み込まれない 
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?