こちらは、Z.OOL.ネット信託統治領 Qrunch 諸島です。

追記 (2019/03/18)

本稿について、共有メモリに関するディレクトリ /dev/shm の作成に関して、誤りがありました。

ディレクトリ /dev/shm の作成を行わなくても、内部ストレージ領域上のディレクトリ /var/shm をディレクトリ /dev/shm にバインドする事は可能です。ここに、本稿を訂正の上で改稿を行いました。

以上、心より御詫びして訂正致します。

概要

Debian noroot とは、 Android OS 上において root 権限を取ることなく Debian 環境を構築するためのアプリケーションです。

CPU の性能とメモリ容量が潤沢にある Android OS 端末であれば、 Debian noroot の導入によって Android OS 端末上で非常に軽快な Debian 環境を実現することが出来ます。

Debian noroot 環境において Firefox ESR を導入した場合、最新の Firefox ESR を起動すると、 Firefox ESR の画面が何も表示されない障害について、拙稿 “Debian noroot 環境において Firefox の動作に関する問題とその回避策について“ にて Firefox ESR のダウングレードに基づく手法を示しました。

しかしここで、 Firefox ESR のバージョンが最新版である 60 以降の場合は、共有メモリに関するディレクトリ /dev/shm の領域を Android OS の内部ストレージ領域内に擬似的に作成する事により、Firefox ESR の画面が何も表示されない障害が回避出来る事が判りました。

本稿では、 Firefox ESR の起動時に参照する共有メモリに関するディレクトリ /dev/shm の領域を擬似的に作成する事によって Firefox ESR の問題を回避する手法について述べます。

内部ストレージ領域上のディレクトリ /var/shm の作成

まず最初に、 Debian noroot 環境の内部ストレージ領域上にディレクトリ /var/shm を以下の通りにして作成します。

このディレクトリは、共有メモリに関するディレクトリ /dev/shm の実体となるディレクトリです。

なお、ディレクトリ /var/shm 以下は、全てのユーザに対して読み書き及び実行権限を付与し、なおかつ Stickey bit も付与しておく必要があります。

$ sudo mkdir /var/shm  
$ sudo chmod 0777 /var/shm  
$ sudo chmod +t /var/shm

初期設定スクリプト /proot.sh の修正

次に、 Debian noroot 環境の起動時に実行される初期設定スクリプト /proot.sh を以下の通りに修正します。

...(略)...  
# ↓既存の ./proot を起動する行をコメントアウト  
# ./proot.link2symlink --link2symlink -r `pwd` -w / -b /dev -b /proc -b /sys -b /system $STORAGE "$@"  
# ↓ -b /system の直後に -b `pwd`/var/shm:/dev/shm を追記  
./proot.link2symlink --link2symlink -r `pwd` -w / -b /dev -b /proc -b /sys -b /system -b `pwd`/var/shm:/dev/shm $STORAGE "$@"

即ち、ディレクトリ /var/shm の内容を共有メモリに関するディレクトリ /dev/shm にバインドし、共有メモリに関するディレクトリ /dev/shm から、ディレクトリ /var/shm を参照するようにします。

Firefox ESR の動作確認

以上の設定が完了した後、以下の通りにして Firefox ESR を起動して、正常に Firefox ESR が起動する事を確認します。

$ firefox &

現時点での留意点

本稿で述べた Firefox ESR の障害回避に関しては、以下の点について留意する必要があります。

  • 現時点において本稿の手法で問題の回避が確認されたのは、最新版のバージョン 60 以降の場合のみです。その他のバージョンに関しては確認が取れていませんので御了承下さい。
  • 本稿の手法においては、 Firefox ESR 上での動画の再生に問題があります。原因は調査中ですのでどうか御了承下さい。

この記事へのコメント

まだコメントはありません