前提
- 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 models
とAppArmor support
を有効にします。最後に
AppArmor boot parameter default value
に0
を指定して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
をインストールすることで最終的に解決されました。フォルダを開くと、ちょっと時間がかかりますが、サムネイルが表示されるようになりました。
リンク
コメント