openSUSEで画面が点滅して使えなくなった

#opensuse

適当にopenSUSEで遊んでいたら突然このような画面に切り替わった。

(https://forums.opensuse.org/showthread.php/518831-The-screen-locker-is-broken-and-unlocking-is-not-possible-anymore より)

そのときちょうど用事が入ったので、数時間してからもう一度PCを開いてみるとCUIの画面が点滅していた。文字もうまく打てない。よく見ると点滅していたのではなく、2つのシェルが交互に切り替わっていた。画面が見づらいだけでなく、キーボードの入力先も切り替わるのでパスワードが打てずにsudoできない。

結論から述べると、再起動してsnapperから数日前のsnapshotに戻すことで適当に解決した。snapperサイコー!

X server segfaulting since 4.14.13によるとシェルが高速に切り替わるのはX.orgのサーバにうまく接続できずに、リトライを繰り返しているのが原因っぽい。
GRUBから起動するときにeキーを押して設定エディタを開きlinuxefiから始まる行の末尾に3をつけてrunlevelを変更すると、デスクトップ環境なしで起動できるので点滅も止まる。改めてログインすると、Failed to connect to X Serverと表示されているのが確認できた。Have a lot of fun...じゃあないんだよ。

普通にCUIが使えるようになったので、$ sudo zypper dupからパッケージをいろいろ更新することにした。上記サイトにはそれで解決したと書かれていたので。

しかし、実行するとzypper: symbol lookup error: /usr/lib64/libproxy.so.1: undefined symbol: ... のように表示されうまくいかない。

zypper: symbol lookup error: /usr/lib64/libproxy.so.1: undefined symbol:によると、Tumbleweed向けとLeap向けのパッケージが混ざってしまっているのが原因だった。以下のようにしてTumbleweed向けのリポジトリから再インストールする。

$ sudo rpm -i --force http://download.opensuse.org/tumbleweed/repo/oss/suse/x86_64/libmodman1-2.0.1-17.7.x86_64.rpm

ネットに接続するのを忘れていたので、とりあえず学校の有線LANが使える場所に駆け込みケーブルを差したが接続できなかった。インターフェースは認識されていたので、調べてみるとNetworkManagerの設定が必要らしい。NetworkManagerはTUI版を提供していて、$ nmtuiで起動できる( Wireless in terminalより)。無線も設定すれば普通に使えた。ただ普段パスワードはKDE Walletに保管しているのでKDE上でない端末では毎回パスワードを打つ必要があって面倒。

それに加え、学校のLANにはcaptive portal (Wi2-premiumとかに引っかかったときに出てくるログイン画面などのアレ)が設定されているので、$ w3m google.comからログインした。数週間前にいた留学生用に英語表記が追加されていたので、日本語を表示できない状態では非常に役立って面白かった。

ところがまだzypper dupは失敗する。non-ossのリポジトリのrepomd.xmlが見つからないという感じのエラーが出た(うろ覚え)。 Can't update openSuse 12.3: /repodata/repomd.xml not found を見ると、リポジトリのURLが間違っているらしい。

/etc/zypp/repos.d/repo-non-oss.repobaseurlを編集して以下のようにする。suse/を追記。

baseurl=http://download.opensuse.org/distribution/leap/42.3/repo/non-oss/suse/

自分のマシンではrepo-oss.repoについても編集する必要があった。

もう一度 $ sudo zypper dupを試すと成功した。もともと使っていたLeap 42.3からTumbleweedに勝手に更新されてちょっと驚いた。Tumbleweedにしようかなと思っていたのでちょうどよかった。

ただ結果として、マウスポインタは表示されるようになったが他のタスクバーやウィンドウは一切表示されない変な状態になってしまった。

よくわからない状態になったため潔く諦めてsnapperから2日前ぐらいのsnapshotを回復した。初めて知ったときは「こんなのいるのか〜?」と思っていたが便利だ…。

(追記: 2018/06/09) どうやらwireshark-ui-qtパッケージをインストールしてグラフィック関係のパッケージを書き換えてしまったのが根本的な原因だとわかった。 以下のプロンプトでyesを入れると負け。

File /usr/lib64/libGL.so.1
  from install of
     libglvnd-1.0.0-1.1.x86_64 (openSUSE:Factory)
  conflicts with file from package
     Mesa-libGL1-17.0.5-176.1.x86_64 (@System)

File /usr/lib64/libGLESv2.so.2.0.0
  from install of
     libglvnd-1.0.0-1.1.x86_64 (openSUSE:Factory)
  conflicts with file from package
     Mesa-libGLESv2-2-17.0.5-176.1.x86_64 (@System)

File conflicts happen when two packages attempt to install files with the same name but different contents. If you continue, conflicting files will be replaced losing the previous content.
Continue? [yes/no] (no):