Raspberry Pi 3 Model B+で、PDFファイルをサムネイルで表示されるようにする

スポンサーリンク
Raspberry Pi
Raspberry Pi 3 Model B+をNASのかわりに使っているのですが、PDFファイルをファイルマネージャーで表示した時に、サムネイルが表示されなかったので、表示できないか、調べてみました。

前提

  • Raspberry Pi 3 Model B+
  • Raspberry 4.19.79-v7+

やったこと

1.何となく、evinceを入れ直してみる

sudo apt update
sudo apt purge evince
sudo apt install evince
効果がないです。

2./usr/share/thumbnailersをのぞいてみる

evinceをインストールすると自動的に作成されるというevince.thumbnailerというファイルをのぞいてみます。
[Thumbnailer Entry]
TryExec=evince-thumbnailer
Exec=evince-thumbnailer -s %s %u %o
MimeType=application/pdf;application/x-bzpdf;application/x-gzpdf;application/x-xzpdf;application/x-ext-pdf;application/postscript;application/x-bzpostscript;application/x-gzpostscr$
次の部分が肝のようです。
Exec=evince-thumbnailer -s %s %u %o
ファイル自体、問題なさそうです。

3.evinceを起動するときのエラーを調査する

ただ、ターミナルでevinceを起動すると、必要なものが足りなさそうなエラーが出ていた。画面キャプチャーを取り忘れたのですが、検索すると、apparmorが必要とのこと。
あと、あまり関係ないかもしれませんが、at-spi2-coreをインストールしてみましたが、改善しませんでした。
sudo apt-get install at-spi2-core

4.apparmorを入れてみる

apparmorをRaspberry Piへ入れる方法を調べていたら、Raspberry Piのフォーラムで議論されていました。
apparmorは、apt-getできるようなものではなく、apparmorを含むカーネルをリコンパイルする必要があるようです。
カーネルのビルド方法は、こちらに詳しく書いてあります。

リコンパイルに必要なライブラリをインストール

sudo apt install git bc bison flex libssl-dev

ソースをgit cloneする

git clone —depth=1 https://github.com/raspberrypi/linux

カーネルの設定を行う

Raspberry Piのモデルによって設定内容は異なるようですが、私のRaspberry Pi 3 Model B+は次の通りでした。
cd linux
KERNEL=kernel7
make bcm2709_defconfig
make menuconfig
なお、make menuconfigをすると、libncurses-devが足らないとエラーが出るので、インストールします。
sudo apt install libncurses-dev
make menuconfig

Security optionsを選択します。

Enable different security modelsAppArmor supportを有効にします。
最後にAppArmor boot parameter default value0を指定してSaveします。

ビルド

ものすごく時間がかかります。ご覚悟を。
make -j4 zImage modules dtbs
sudo make modules_install
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/$KERNEL.img

カーネルオプションを設定

/boot/cmdline.txtに以下を追加します。
apparmor=1 security=apparmor

rebootして、AppArmorが有効になっているか、確認

rebootした後、次を入力してAppArmorが有効になっているか、確認します。
aa-status
わかりづらいですが、有効になっています。

結論

私の環境の場合、AppArmorをインストールすることで最終的に解決されました。フォルダを開くと、ちょっと時間がかかりますが、サムネイルが表示されるようになりました。
タイトルとURLをコピーしました