あれこれ備忘録@はてなブログ

勉強したことやニュースや出来事を備忘録として書いていきます

このブログには広告が含まれます

XenialPup64(Puppy Linux)がバージョン7.5として公式に。安定動作している。ハングする原因らしきものも調べてみた

Index of /puppylinux/puppy-xenial/

Puppy Linux Release Announcement

これまでテスト版のみだった、32bitのXenialPupと64bit版のXenialPup64がバージョン7.5で公式版になった。

カーネルが4.9だったことがあって、きっと動かないんだろうな・・・と思っていたのだが、一応、試してみた。

意外なことに安定動作している。


4.9のカーネルで動かない問題については以前、記事に書いた。

arekorebibouroku.hateblo.jp


さっそく、いろいろとセットアップした。

arekorebibouroku.hateblo.jp

前からあったのかちょっとわからないが調べてみたら、標準でapulseが入っていたので、Puppy Linux日本語版フォーラムにあるapulseはインストールする必要はない。

about:configのsecurity.sandbox.content.write_path_whitelistの設定をするだけでよい。

ここにあるZStepさんのfcitx-mozcが入った日本語化パックを使わせてもらった。

sakurapup.browserloadofcoolness.com • トピック - Xenialpup64用ランゲージパック(fcitx-mozc)

ただ、fcitxが自動起動しなかった。

自分で起動するように設定する必要があると思う。

ホームディレクトリの.profileに以下を追加した。

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export QT4_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

この下に

fcitx -d

を入れても自動起動すると思う。

しかし、せっかくPuppy LinuxにはBootManagerがあるのだから、そこで起動の設定をしたほうが良いと思う。


関係があるかどうかわからないが、Puppy Linuxの日本語フォーラムにこんなスレッドがあった。

sakurapup.browserloadofcoolness.com • トピック - tahr605simple カーネルパニック

カーネルパニックで落ちるらしい。

うちの記事が紹介されていた。

arekorebibouroku.hateblo.jp

xenial781(多分、7.0.8.1)では起きていないというから、うちの問題とは違うのだろう。

うちでは結局、4.4系のカーネルが使われているSlacko 6.9.9.9を使うことにして対応した。

しかし、ちょっと気になって調べてみた。

intel - intel_iommu , what is it? - Stack Overflow

FS#55629 : [linux] Intel i915 driver issue in kernel 4.13 requiring restart.

なんだかこの辺が怪しいという気がした。

IOMMU - Wikipedia

IOMMU は周辺機器から見える仮想アドレス(デバイスアドレスとかI/Oアドレスと呼ぶ)を物理アドレスに変換する。

仮想化に使うのに、仮想化でなく直接起動しているOSでなぜ不具合が起きるのかちょっとわからないが。

XenialPup64の起動オプションに

intel_iommu=off

を加えて起動したところ、ちょっと使っている範囲ではフリーズしなかった。

試していないが

intel_iommu=igfx_off

という、GPUについてのみIOMMUを無効にする指定もある。

もうちょっと使ってこのオプションが原因かどうか確かめてみようと思う。


追記

これが原因の可能性が高い。

7.0.8.6も7.5もカーネルのバージョンは4.9.58だ。

しかし、7.0.8.6の場合、

dmesg |grep iommu

とすると

iommu: Adding device 0000:00:00.0 to group 0

などのメッセージが数行出る。

しかし、7.5では出ない。

カーネルをビルドするときにIOMMUを無効にしている可能性が高い。

7.5が安定しているのはこのせいなのだろう。

原因がわかって良かった。(確実ではないが)

なお、仮想化に関係するので、もしかするとこれを無効にするとVirtualBoxなどで仮想化オプションが使えなくなる可能性がある。

Virtualization Technology for Directed I/O (VT-d)が使えないということだと思う。

また、Wikipediaによれば

例えば、最近のx86系プロセッサはPAE機能によって 4GiB 以上のメモリ空間を扱える。しかし、32ビットのPCIバイスは 4GiB を越えるアドレスにあるメモリには単純にはアクセスできない。IOMMU がない場合、OS は double buffering(Windows用語)とか bounce buffers(Linux用語)と呼ばれる時間のかかる処理を必要とする。

とある。

マシンによっては、このIOMMUを無効にすることでパフォーマンスが低下したり、かえって起動できないなどマシンが不安定になる可能性もある。

カーネル4.13ではあるが、同じようなエラーである可能性が高い記事。

技術者見習いの独り言: 最近 Vivaldi とか Slack が Linux と GNOME でよく刺さる [一応解決?]

intel_iommu=igfx_off とすると改善するらしいから、そちらのほうが良いかもしれない。

GPU以外にはIOMMUが使われるはずなので、上で説明した動作が遅くなる可能性を避けられるかもしれない。

ただIOMMUはdisk controllerにも使われているらしいので、それが不安定の原因だとするとintel_iommu=off して完全に無効にする必要があるだろう。


もう2018年1月号が出ている。

時間がすぎるのは早いものだ。


あと5年ほどでADSLのサービス提供が終了するというニュースがあった。

光はADSLよりも割高だし、光ほど高速である必要性も感じない。

ただ、通信容量に制限があるのは困るので格安SIMのモバイルWiFiというのもちょっとむずかしい。

ぷららモバイルは3Mbpsが出て、通信容量に制限も無かったので良かったのだが、やっぱり続けていくのは難しかったらしく終了してしまった。

となるとWiMAXしか選択肢はないんじゃないかと思っている。

前から思っているのだが、光回線を家の近くの電柱辺りまでにして、そこからマンションタイプと同じようにVDSLにして各家に配信してくれれば、既存の回線が使えて工事不要だし、マンションタイプ程度には安くできるはず。

なぜ、それをしないんだろうか?

ISDNにこだわってADSL普及が遅れたように、FTTHにこだわって新しい方式ができてもサービス提供をしないのではないか?とちょっと思っている。

既存のメタル回線で数十Mbps、あるいはもっと遅くても良いから通信容量に制限がないサービスを提供してほしい。