だいぶ前に秋葉原の中古携帯ショップで買った NEC のモバイルルーター、Aterm MR04LN。USB テザリング機能があるのですが、接続してもネットワークデバイスとして認識してくれません。

必要なカーネルモジュール (rndis_host) が自動で読み込まれていないようなので、以下のコマンドで手動で読み込み解決しました。

sudo modprobe rndis_host

この記事は openSUSE Advent Calendar 2022 の21日目です。

openSUSE、というかKDEを使ってる方なら、手軽に外観をがらりと変えることが出来ます。

事実、僕は月に一回変更して、都度新しいイメージを楽しんでいます。

ではさっそく方法ですが、メニューから「設定」->「KDE設定」を選んでKDE設定を開きます。

その中から、「外観」を選びます。

外観

ここからGlobal Themeを選ぶと、がらりとイメージが変わります。アイコン、起動時の画面、ウィンドウのデザインと変わるので、別OSになった気分です。

え?これだけ?と思われるかもしれませんが、ご安心ください。有志の方が作成された多くのテーマを右下の「Get New Themes…」から選ぶことが出来ます。

テーマ

ドラッグすれば結構な数のテーマが表示されていきます。中にはvistaライクな外観も・・・

なお、上に表示されているように、openSUSEがレビューしたりしているわけではない、有志の作ということを留意してください。

たまに切り替え直後にアイコンが表示されなかったり(何かの拍子に直ります)、テーマによってはLibreOfficeのアイコンがみずらくなったりしてしまうのですが、元に戻すのも簡単ですのでぜひいろいろと試して新しい風をopenSUSEデスクトップに吹かせてみてください。

なお、自分のテーマを作成してアップロードすることもできますので、「俺の考えた最強のデスクトップ」をお持ちの方はぜひアップロードしてみてください。

openSUSEで手軽にZoomを使う

By Syuta Hashimoto @ 2022-12-20 08:01

この記事は openSUSE Advent Calendar 2022 の20日目です。

オンラインカンファレンスなどで広く使われてるZoomをopenSUSEで手軽に使おうと思います。

そう、もうおわかりですね。Flatpakで導入します。

Flatpakとはコンテナ技術をデスクトップアプリに応用したユーティリティで、隔離環境でデスクトップアプリを使うことができます。

つまり、ホストの環境に依存しないので、僕のようにあれこれしてしまっているホストでも安心して使うことが出来ます。

まず、Flatpakがインストールされてなければインストールします。

sudo zypper in flatpak

そして、Flathubという、パッケージのリポジトリを登録します。

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

登録したらアップデートを行います。

flatpak update

後はFlathubの公式ページ通りにすればすべてOKです。

Zoomのインストール

flatpak install flathub us.zoom.Zoom

Zoomの起動

flatpak run us.zoom.Zoom

これだけで比較的新しいバージョンのZoomを使うことが出来ます。

僕の所にパッケージで入っていたZoomがあったのですが、ある日「バージョン上げないとログインできないよ」と出てしまい、さっと思いついたのがFlatpakの利用でした。確か、30分後にZoomが必要、な時で、ちょっと焦ったのを覚えています。Flatpakを抑えておくと、こういう時に助かったりします。

また、skypeもslackもdiscordも、僕はFlatpakで快適に運用しています。

隔離環境のため、ローカルファイルとの連携などに多少流儀がありますが、環境を気にせず使える利点はありがたいです。いずれ、Flatpakを深堀してみたいと思います。

この記事は openSUSE Advent Calendar 2022 の14日目です。

大分遅くなりましたが、先月、自宅のopenSUSEを15.4にアップデートしました。なお、SLES15 サービスパック3(Leap 15.3のベース)は、2022年12月でサポートが切れる(セキュリティパッチの提供などが終了する)ので、皆さん15.4にアップデートすることをおすすめします。

さて、15.4にアップデートしたところ、emacsを起動した時に初期設定が反映されなくなりました。

そこでXDDCのもくもく会で力を貸して頂いて対処したので、書いてみます。なお、最終的な解決までには至りませんでした。

結論

/usr/share/hunspell に、ja_JP.affとja_JP.dicを配置する(中身は何でも良い)

症状

emacsを起動しても初期設定が反映されない

*Messages*に以下のメッセージが表示されている

ispell-find-hunspell-dictionaries: Can’t find Hunspell dictionary with a .aff affix file

教えてくださった方法

Ubuntuの開発者の方に、まずstraceでemacs.d/init.el読んでるかみてみたら?と教えて頂きました。

strace -f emacs > strace.log

straceはシステムコールやシグナルをトレースするプログラムです。

このログをinit.elでgrepしても、ヒットしませんでした。なので、そもそもinit.elを読んで無いようです。

どうやら、メッセージにある通り、hunspellの起動が失敗していて、init.elの読み込みまで進んでないようです。

それでhunspellでログをgrepしていると、/usr/share/hunspell/ja_JP.affと/usr/share/hunspell/ja_JP.dicを読みに行く跡がありました。

そこで、/usr/share/hunspell/en_US.affと/usr/share/hunspell/en_US.dicをそれぞれコピーして/usr/share/hunspell/ja_JP.affと/usr/share/hunspell/ja_JP.dicとして配置した所、無事init.elを読み込みました。

hunspellは日本語チェックをする事はないので、このファイルがあることは問題にならないのですが、回避策にしかならないですね・・・

hunspellはどうやらLANGの値を見ているらしく、以下のように起動するとエラーなく起動できました。

LANG=en_US.UTF-8 emacs 

hunspellがLANGの値を見る所を探っていけば、根本解決までいけそうですね。

Linodeでスピードテスト

By Syuta Hashimoto @ 2022-12-13 08:38

この記事は openSUSE Advent Calendar 2022 の13日目です。

さて、前回 AkamaiさんがLinodeサービスアピールしてますと紹介させて頂いたのですが、各リージョンのスピードテストが出来る場所があったので紹介させて頂きます。

なお、ちゃんとリージョンに日本もありました。

このページはログインせずとも使えるみたいですね。

日本で測定してみました。

試しに、ムンバイで測定してみました。

それぞれ一回測定しただけなので信憑性は微妙ですが、確かにpingやDLで差が出ていますね。

Akamaiが親会社なので、近いところのリージョンへのアクセスは期待できるのでは無いでしょうか。

LinodeにopenSUSEがあった

By Syuta Hashimoto @ 2022-12-11 14:26

この記事は openSUSE Advent Calendar 2022 の11日目です。

12/4(日)の前日設営と、12/5(月)、6(火)に、Open Source Summit Japan 2022にボランティアスタッフとして参加してきました。

そこでCDN大手のAkamaiさんがブースを出していて、Linodeというクラウドプロバイダーを買収してクラウドサービスを始めたとアピールされていました。クーポン頂いちゃいました。

そしてなんとそのLinodeのイメージにopenSUSE Leapが入っていました。

(クラウドでサーバー用途で使うならMicroOSがいいですが、さすがに利用者が遠ざかってしまいますかね・・・)

他にも、AlmaLinux、Alpine、Arch、CentOS、Debian、Fedora、Gentoo、Kali、Rocky、Slackware、Ubuntuと、一通り揃っているのでは無いでしょうか。(さすがにミラクルはない模様・・・ここはプッシュのチャンスかも)

お値段はこんな感じです。

Shared CPUだとかなりお安い感じで使えるのでは無いでしょうか。パフォーマンスがどれくらい出るものなのか、興味深いですね。なお、GPUは日本だと選べませんでした。

作成時にsshキーを登録できるので、すぐにssh接続で使えます。IPもグローバルを振ってくれます。

podmanをインストールしてnginxを動かしてみました。

いつも通りの操作で普通に動きました。

せっかくなので、クラウドで遊ぶ時は使わせて頂こうと思います。

あと、各リージョンのベンチマークができるサービスもあったので、後日紹介させて頂きます。

この記事は openSUSE Advent Calendar 2022 の4日目です。

systemd が使われるようになると、daemon の制御とかのやり方は大きく変わりました。/etc/init.d にあるスクリプトから、systemd パッケージに含まれるコマンドを使うようになってきました。それらのコマンドは、xxxxxctl という、末尾に ctl が含まれるものが多いように感じました。そこで、/usr/bin/ の中にある、末尾が ctl なプログラムがどんなものかを簡単に調べて見ることにしました。

今回は、busctl を紹介します。

コマンド名: busctl
パッケージ: systemd-249.12-150400.8.13.1.x86_64
動作: ○

詳細:
busctl は、D-Bus の状態を表示させたり、設定を行ったりするためのツールです。取りあえず起動してみると、

NAME                                  PID PROCESS         USER    CONNECTION    UNIT                          SESSION DESCRIPTION
:1.0                                    1 systemd         root    :1.0          init.scope                    -       -
:1.1                                  632 wickedd-dhcp6   root    :1.1          wickedd-dhcp6.service         -       -
:1.10                                 705 wickedd-nanny   root    :1.10         wickedd-nanny.service         -       -
:1.105                               3249 busctl          ribbon  :1.105        session-4.scope               4       -
:1.13                                 720 ModemManager    root    :1.13         ModemManager.service          -       -
:1.16                                1120 gdm             root    :1.16         display-manager.service       -       -
:1.17                                1128 accounts-daemon root    :1.17         accounts-daemon.service       -       -
:1.2                                  618 avahi-daemon    avahi   :1.2          avahi-daemon.service          -       -
:1.24                                1275 power-profiles- root    :1.24         power-profiles-daemon.service -       -
:1.26                                1280 rtkit-daemon    root    :1.26         rtkit-daemon.service          -       -
:1.27                                1274 upowerd         root    :1.27         upower.service                -       -
:1.3                                  628 wickedd-auto4   root    :1.3          wickedd-auto4.service         -       -
:1.32                                1324 wpa_supplicant  root    :1.32         wpa_supplicant.service        -       -
:1.4                                  630 wickedd-dhcp4   root    :1.4          wickedd-dhcp4.service         -       -
:1.45                                1437 colord          colord  :1.45         colord.service                -       -

のように、現在のバスの一覧が表示されます。とは言っても、D-bus がどういう物で、何をしているかを分かっていないと、この表示の意味も分かりませんね。Wikipedia先生に聞いてみると、

D-Bus(Desktop Bus、ディーバス)は、メッセージバスと呼ばれる、アプリケーション間でやりとりを行うための、プロセス間通信 (IPC) 実装の1つである。

なのだそうです。
Unix系のプロセス間通信としては、パイプ、シグナル、ソケットとかいろいろありました。また、KDE や Gnome も独自のプロセス間通信機能を持っていました。それらの乱立を統一化するために作られたのが D-Bus ということになります。
ただ、D-Bus そのものは、ユーザが直接さわる物ではありません。あくまでもプロセス(プログラム)の世界で使われるものです。そのため、busctl も、D-Bus の動作の確認やデバッグ、テスト用に使われるものと思った方がよいでしょう。