CentOS 7でgpmが機能しない問題の再発 [CentOS]
gpm-1.20.7-6.el7.x86_64
gpm-libs-1.20.7-6.el7.x86_64
kernel-3.10.0-1160.25.1.el7.x86_64
1. 発生事象
CentOS 7 で gpm が機能しない。
・マウスカーソルが表示されず、使用できない。
・カーネルのアップデートにより、再度、再発するようになった。
必ず発生するわけではなく、発生頻度は 10% 未満と思われる。
(以前よりは発生頻度が低くなっている。)
cf. https://dan-project.blog.ss-blog.jp/2019-10-16
・関係するようなエラー・メッセージは、出力されていない。
(補足)
・2 ノードでディスプレイを共有している(切替器で切り替えて使用)。
・同一ノードでマルチ・ブートする Debian 10 では、発生しない。
(systemd ではなく、rc ファイルで起動している点が異なる。)
gpm 1.20.7-5
linux-image-3.16.0-4-686-pae 3.16.43-2
・systemd での起動を無効化し、/etc/rc.local で起動しても改善されない。
'gpm -m /dev/input/mice -t exps2' で起動。
2. 対処方法
現時点では、根本的な原因を特定できていない。
また、使用頻度、発生頻度ともに低いため、取り敢えずは下記の手順で対応を行う。
(1) ディスプレイの接続状態の維持
ディスプレイを共有する環境では、ブート完了までディスプレイを占有する。
(2) 上記の問題が発生した場合には、X Window System を起動
X Window System を起動し、X のコピー・ペースト機能を使用する。
尚、どうしてもコンソールを使用したい場合には、リブートを実施する。
ほとんどの場合、1-2 回のリブートで改善される。
Mewのメール返信で引用する送信日付のフォーマット変更 [Linux]
Mew 6.8 on Emacs 26.1
Mew 6.3 on Emacs 24.3.1
Mew のメール返信で、mew-cite-fields、mew-cite-format を使用して送信日時を引用する場合、メールヘッダーの Date: 行の値が使用される。
今回は、これを 'YYYY-MM-DD hh:mm:ss tz' のように変更する。
(理由)
・曜日の情報が不要。
・日付のフォーマットが複数存在。
(曜日の有無、秒の有無)
詳細は、以下の通りである。
1. 変更前後での引用のイメージの違い(例)
(1) 変更前
On Tue, 8 Jun 2021 01:23:34 +0900 : From: xxx Subject: xxx > ...
(2) 変更後
On 2021-06-08 01:23:34 +0900 : From: xxx Subject: xxx > ...
2. 設定
~/.mew.el の mew-cite-format の設定の後に、下記の設定を追加する。
(setq mew-cite-strings-function 'my-mew-cite-strings) (defun my-mew-cite-strings () (let ((date (mew-cite-get-value mew-date:)) (str (mew-cite-strings)) item tmzn) (if (not (string-match mew-time-rfc-regex date)) str (setq item (parse-time-string date)) (setq date (format "%04d-%02d-%02d %02d:%02d:%02d" (nth 5 item) (nth 4 item) (nth 3 item) (nth 2 item) (nth 1 item) (nth 0 item))) (when (setq tmzn (nth 8 item)) (setq tmzn (format "%+03d%02d" (/ tmzn 3600) (/ (% tmzn 3600) 60))) (setq date (concat date " " tmzn))) (replace-regexp-in-string "^On [^\n]+" (format "On %s :" date) str))))
・mew-time-rfc-regex を使用するチェックは、異常な値を除外するためである。
・mew-time-rfc-regex は、有効なデータを下記のように定義している。
下記の項目を空白文字で連結した文字列
日(数字)
月(文字列)
時分秒(数字を : で接続。秒は省略可。)
タイムゾーン(符号付きの数字、または文字列。省略可。)
AFN 360のURLの変更 [misc]
[AFN(American Forces Network)]
米軍が駐留する地に設けられた基地関係者とその家族向けの放送局である。
日本では、1997 年まで FEN(Far East Network) と呼ばれていた。
(変更前)
https://afn360.afnpacific.net/afnp_tko
(変更後)
https://www.afnpacific.net/Portals/101/360/AudioPlayer2.html#AFNP_TKO
再生ボタンを選択できない場合には、下記の手順を実施すること。
・右側下部の (L) のアイコンをクリックし、Lite Player を選択する。
Thunderbirdの返信ヘッダーのカスタマイズ(アドオンの使用) [misc]
また、この機会に有用なアドオンがないかを検索したところ、changeQuote をいうアドオンに行き着いた。返信ヘッダーをカスタマイズするアドオンである。
個人的には、簡単な設定で、十分な効果が得られた。
尚、Thunderbird 78.11.0 も試したが、 I/F が好きになれず、アンインストールした。
・スケジュール管理等、本来のメール以外の機能が目立ち過ぎるように思われる。
・Content-Language: の設定を無効化できるようなので、出来れば使用したかった。
(無視しても問題ないヘッダー項目とは思うが、出来るなら無くしたい。)
設定方法と出力される返信ヘッダーは、以下の通りである。
1. ソフトウェアのバージョン
changeQuote 1.4
https://addons.thunderbird.net/ja/thunderbird/addon/changequote/versions/
2. 設定(例)
・[返信ヘッダ] タブで、下記の設定を行う。
・その他については、初期値を使用する。
(1) 返信ヘッダーのフォーマット
(a) type-1 (必要最小限の情報にする場合)
[返信ヘッダのカスタマイズ] を選択し、下記のように指定する。 On %%5, %%7 wrote:
(b) type-2 (主要なヘッダー項目を使用する場合)
[返信ヘッダの拡張] を選択し、オプション項目は何も選択しない。
(c) 追加オプションの選択
何も選択しない。
(2) 返信ヘッダーで使用する日付のフォーマット
[長い日付形式にする] を選択を選択する。 また、[形式のカスタマイズ(受取人ロケール時間)] で下記のように指定する。 %Y-%m-%d %H:%i:%s %z
3. 返信ヘッダーの出力(例)
(1) type-1 の場合
On 2021-06-05 01:23:45 +0900, sender-address wrote: > ...
(2) type-2 の場合
-------- Original Message -------- Subject: xxx From: xxx To: xxx Date: 2021-06-05 01:23:45 +0900 > ...
EmacsでのPDFファイルの表示 [Linux]
・Emacs のバージョン:
Emacs 26.1 (on Debian 10)、Emacs 24.3.1 (on CentOS 7)
・DocView mode を使用する。
1. PDF ファイルの表示
*.pdf ファイルを開く。
2. DocView の主な機能
(1) 表示位置の変更
# 次ページ doc-view-next-page (n) # 前ページ doc-view-previous-page (p) # 次の行 doc-view-next-line-or-next-page (C-n, <down>) # 前の行 doc-view-previous-line-or-previous-page (C-p, <up>) # 上方にスクロール doc-view-scroll-up-or-next-page (SPC) # 下方にスクロール doc-view-scroll-down-or-previous-page (S-SPC) # 最初のページ doc-view-first-page (M-<) # 最後のページ doc-view-last-page (M->)
(2) 表示の拡大/縮小
# 拡大 doc-view-enlarge (+, =) # 縮小 doc-view-shrink (-) # リセット doc-view-scale-reset (0) # 縦方向のサイズをウィンドウに合わせる doc-view-fit-height-to-window (H) # 横方向のサイズをウィンドウに合わせる doc-view-fit-width-to-window (W) # ページ全体がウィンドウに収まるサイズに変更 doc-view-fit-page-to-window (P)
(3) 表示方法の変更
# テキストのみの表示 doc-view-open-text (C-c C-t)
・Emacs のバージョンにより、実現方法が異なる。
Emacs 26.1 (on Debian 10) の場合: 表示データの変更
Emacs 24.3.1 (on CentOS 7) の場合: バッファーの追加
・表示されたテキストについては、通常の検索が可能である。
# ドキュメント編集、ドキュメント閲覧の切替 doc-view-toggle-display (C-c C-c) # テキストのみの表示の終了 Emacs のバージョンにより、手順が異なる。 ・Emacs 26.1 (on Debian 10) の場合: doc-view-toggle-display (C-c C-c) 2 回実行し、ドキュメント閲覧に切り替える。 ・Emacs 24.3.1 (on CentOS 7) の場合: DocView モードのバッファーを選択
(4) DocView モードでの検索
doc-view-show-tooltip (C-t) doc-view-search (C-s) または doc-view-search-backward (C-r)
・ドキュメント閲覧において、ツールチップを有効にし、検索を実施する。
・検索結果は、マウス位置のツールチップに表示される。
・ドキュメント閲覧のバッファーでは、検索結果を表示できない。
(5) キャッシュのクリア
# キャッシュ・ディレクトリの確認 C-h v doc-view-cache-directory を指定 # キャッシュのクリア M-x doc-view-clear-cache
xpdfで複数ファイルを表示するスクリプトの作成 [Linux]
・xpdf の起動後に追加選択できるが、ファイル選択が面倒なのでスクリプトで対応。
・xpdf の特定の機能で文字化けが発生するが、動作が軽快なため時々使用している。
しおりの表示(左側のペイン)で日本語が文字化けする。
検索時のキーワード入力で日本語が文字化けするため、日本語の検索ができない。
詳細は、以下の通りである。
1. スクリプト (Xpdf)
#!/bin/bash # # View PDF files with xpdf. # usage: Xpdf [file ...] # # check existence of PDF files check_pdf_file() { local status=0 local i for i in $*; do case $i in *.pdf) if [ ! -f $i ] || [ ! -r $i ]; then echo ">> $i: no such file" status=1 break fi ;; *) echo ">> $i: not PDF file" status=1 break ;; esac done return $status } # execute xpdf exec_xpdf() { local x_gap=20 pos local a_pid=() local status=0 local i j if [ $# != 0 ]; then j=`ps acx | grep -c "xpdf$"` for i in $*; do pos="+$(($x_gap * $j))+0" xpdf -g $pos $i 2> /dev/null & a_pid+=($!) j=$(($j +1)) sleep 0.2 done # get status of background jobs for i in ${a_pid[*]}; do wait $i j=$? if [ $status = 0 ]; then status=$j fi done else xpdf -g +0+0 2> /dev/null status=$? fi return $status } if ! which xpdf >/dev/null 2>&1; then echo "xpdf: command not found" exit 1 elif [ $# = 0 ] || check_pdf_file $*; then exec_xpdf $* fi exit $?
2. 使用方法
% Xpdf [file ...]
Emacsの小ネタ(3個) [Linux]
1. PDF の Viewer としての Emacs の使用
(1) 発生事象
近頃の Firefox では、PDF Viewer でエラーが発生することがある。
(例) Firefox 78.10.1 ESR
[エラー・メッセージ] この PDF 文書はサポートされていないため正しく表示できない可能性があります。
・文書の全部または一部が表示されないことがある。
・エラー・メッセージが表示されるだけのこともある。
・設定で [ウェブページが指定したフォントを優先する] を選択すると発生しない。
しかし、指定されているフォントによっては、とても見づらい状態となる。
(補足)
・すべてのアドオンを無効化しても状況は変わらない。
・Firefox 52.9.0 ESR の PDF viewer では発生しない。
(2) 対処方法
上記の問題が発生した場合、[ほかのビューアーで開く] ボタンが表示される。
よって、表示されたボタンをクリックし、他のビューアーを選択する。
また、最近の Emacs では、DocView で PDF を表示できる。
起動に要する時間が短く、動作も軽快である。
(例)
Emacs 26.1 on Debian 10
Emacs 24.3.1 on CentOS 7
2. Emacs の起動時の Gtk-WARNING の出力の抑制
(1) 発生事象
Emacs の起動時に Gtk-WARNING が出力されることがある。
(Emacs 26.1 on Debian 10)
[ワーニング・メッセージ] Gtk-WARNING **: ...: Theme parsing error: \ gtk-widgets.css:1214:18: Not using units is deprecated. Assuming 'px'.
(2) 対処方法
下記の手順を実施する。
(情報源は、ワーニング・メッセージのネット検索。)
(a) ~/.config/gtk-3.0/settings.ini での gtk-theme-name の設定値の取得
現在の設定は、'gtk-theme-name = Clearlooks-Phenix' となっている。
(b) /usr/share/themes/Clearlooks-Phenix/gtk-3.0/gtk-widgets.css の編集
# cd /usr/share/themes/Clearlooks-Phenix/gtk-3.0 # diff gtk-widgets.css gtk-widgets.css.org 1214c1214 < border-width: 0 1px; --- > border-width: 0 1;
(補足)
・ワーニング・メッセージから、該当する行とカラムがわかる。
・アップグレードを繰り返した環境では、古い設定が残っていることがある。
3. Emacs の起動時の dbind-WARNING の出力の抑制
(1) 発生事象
Emacs の起動時に dbind-WARNING が出力されることがある。
(Emacs 26.1 on Debian 10)
[ワーニング・メッセージ-1] dbind-WARNING **: ...: Couldn't connect to accessibility bus: \ Failed to connect to socket /tmp/dbus-c5SNKQfNzx: Connection refused [ワーニング・メッセージ-2] dbind-WARNING **: ...: Couldn't register with accessibility bus: \ Did not receive a reply. Possible causes include: the remote \ application did not send a reply, the message bus security policy \ blocked the reply, the reply timeout expired, or the network \ connection was broken.
(2) 対処方法
~/.bashrc 等に、下記の設定を行う。
(情報源は、ワーニング・メッセージのネット検索。)
# disable to display dbind-WARNING export NO_AT_BRIDGE=1
clamdscanがエラーを発生することがある (Debian 10) [Debian]
clamdscan 0.103.2+dfsg-0+deb10u1
anacron 2.3-28
1. 発生事象
clamdscan がエラーを発生することがある。
[エラーメッセージ] ERROR: Could not connect to clamd on LocalSocket /var/run/clamav/clamd.ctl: \ Connection refused
2. 原因
下記のいずれかの事象が発生したためと思われる。
(1) clamdscan の実行中に shutdown が実施された。
この場合にも上記のエラーメッセージが出力される。
現在の設定やコマンドの実行履歴から考えて、こちらの可能性が高い。
(2) clamd が正常に稼働していない状態で clamdscan が実行された。
(補足)
・clamdscan を anacron から実行している。
/etc/cron.daily/clamav-scan を追加している。
(clamav-daemon.service が active の場合にのみ cladscan を実行する。)
/etc/cron.daily/* は、anacron の起動の 5 分後に順次実行される。
(cf. /etc/anacrontab)
・anacron は /lib/systemd/system/anacron.timer から実行される。
通常は時刻指定で、07..23:30 に最大で 5 分の待機後実行される。
前回の実施状況により、ブート直後に実行されることがある。
・clamd の /var/run/clamav/clamd.ctl の作成には、通常 40〜45 秒を要する。
3. 対処方法
(1) clamdscan を実行中の shutdown を回避
shutdown の前に clamdscan プロセスの有無を確認する。
(例) % ps c -C clamdscan
(2) clamd が正常に稼働していない状態での clamdscan の実行の回避
上記の (1) の対応で改善しない場合には、下記の手順を実施する。
(a) /etc/cron.daily/* が実行されるまでの待機時間の延長
/etc/anacrontab の cron.daily の行を編集する。
(例)
5 分(初期値)から 10 分に延長する。
待機時間の重複排除のため、cron.{weekly,monthly} について調整する。
(b) ブート直後の anacron の実行の回避
・/lib/systemd/system/anacron.timer を編集する。
[Timer] 欄の 'Persistent=true' を削除する。
・変更内容の反映
# systemctl daemon-reload
(補足)
下記のような事象を想定した対応である。
・実行環境により、clamd の動作が安定するまでに想定外の時間を要する。
・実行環境により、socket file の作成に想定外の時間を要する。
/proc/mdstatのデバイス名でのソート [Linux]
しかし、/proc/mdstat はデバイス名でソートされておらず、少々見づらい。
このため、/proc/mdstat をデバイス名でソートするスクリプトを作成した。
詳細は、以下の通りである。
1. スクリプト (mdstat)
#!/bin/sh # # Get status of MD devices sorted by device name. # usage: mdstat # # - MD is an abbreviation for "multiple device". # - The most common use case is commonly known as "Software RAID". # export LC_ALL=C # sort status of MD devices by device path sort_md_status() { local info=$1 local first_line last_line md_dev local i # get first line, last line, list of MD device first_line=`echo "$info" | sed -n 1p` last_line=`echo "$info" | sed -n \\$p` md_dev=`echo "$info" | grep '^md[0-9]\+ :' | sed 's/ :.*//' | sort -n` # sort data by device path echo "$first_line" for i in $md_dev; do echo "$info" | grep -A2 $i done echo "$last_line" } sort_md_status "`cat /proc/mdstat`" exit $?
2. 使用方法
% mdstat
3. 実行例
% mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] \ [raid10] md0 : active raid1 sda5[0] sdb5[1] 20971456 blocks [2/2] [UU] md1 : active raid1 sda6[0] sdb6[1] 20971456 blocks [2/2] [UU] md2 : active raid1 sda7[0] sdb7[1] 204736 blocks [2/2] [UU] md3 : active raid1 sda8[0] sdb8[1] 204736 blocks [2/2] [UU] md4 : active raid1 sda9[0] sdb9[1] 41942976 blocks [2/2] [UU] md5 : active raid1 sda10[0] sdb10[1] 204736 blocks [2/2] [UU] md6 : active raid1 sda11[0] sdb11[1] 204736 blocks [2/2] [UU] md7 : active raid1 sda3[0] sdb1[1] 83886016 blocks [2/2] [UU] unused devices:
% cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] \ [raid10] md2 : active raid1 sda7[0] sdb7[1] 204736 blocks [2/2] [UU] md5 : active raid1 sda10[0] sdb10[1] 204736 blocks [2/2] [UU] md1 : active raid1 sda6[0] sdb6[1] 20971456 blocks [2/2] [UU] md3 : active raid1 sda8[0] sdb8[1] 204736 blocks [2/2] [UU] md7 : active raid1 sda3[0] sdb1[1] 83886016 blocks [2/2] [UU] md6 : active raid1 sda11[0] sdb11[1] 204736 blocks [2/2] [UU] md4 : active raid1 sda9[0] sdb9[1] 41942976 blocks [2/2] [UU] md0 : active raid1 sda5[0] sdb5[1] 20971456 blocks [2/2] [UU] unused devices:
Windows 7 Home EditionのWindows 10への無償アップグレード [Windows]
下記の理由から、サポート終了後も Windows 7 を使用している。
・Windows 環境は MS Office 文書の編集くらいにしか使用していない。 ・MS のサポートを使用することはない。 ネット検索や自身での調査により、ほとんどの問題を解決できる。 また、解決できない問題が残る場合は、その部分を使用しないだけである。
しかし、Windows 10 の下記の情報を見て、アップグレードを検討するようになった。
・MS の方針変更があり、以降は OS の新規購入の必要がない。 Windows 10 内でのバージョンアップとなる。 ・Windows 7 から Windows 10 への無償アップグレードが 2021-01 でも実施できる。 無償アップグレードの期限終了後もアップグレードができている。 ・現在の PC 環境が Windows 10 のハードウェア要件を満たしている。
以下は、下記の項目についてまとめたものである。
・Windows 10 への無償アップグレードを実現するまでの経過
・現状と今後の予定
1. Windows 7 の Windows 10 への無償アップグレードの実現までの経過
1-1. 通常の無償アップグレード手順の実施 (2021-03 上旬に実施) → 異常終了
下記のエラーが発生し、Windows 10 をインストールできない。
[エラーメッセージ] この PC で Windows 10 を実行できるかを判断できません。 セットアップをやめてやり直してください。
(1) 実施方法
・MediaCreationTool20H2.exe を使用。 ・Windows 7 の Product Code を入力せずに実施。 (インストール終了後にライセンス認証を行うため。) ・データの引き継ぎ/クリーンインストールのいずれでも実施。 [この PC を今すぐアップグレードする] を選択の場合 ・Windows 7 のデータが引き継がれる。 [別の PC のインストール メディアを作成する] を選択の場合 ・Windows 10 がクリーンインストールされる。
(補足)
上記の曖昧なエラーメッセージからは、下記のいずれなのかが判断できない。
・Windows 10 への無償アップグレードに該当する環境ではない。
・Windows 10 に対応した環境ではない。
1-2. Windows 10 評価版のインストール (2021-04 上旬に実施) → 正常終了
Windows 10 Enterprise Edition の評価版が存在することを知り、インストールを実施。
(その後、Windows 10 評価版をバックアップし、パーティションの初期化を実施。)
(1) 目的
Windows 10 に対応した環境かどうかを確認するため。
(2) 結果
インストールできたため、Windows 10 に対応した環境であると確認できた。
1-3. Windows 10 への無償アップグレードの再実行 (2021-04 上旬に実施) → 正常終了
下記の手順により、アップグレードできる。
(1) Windows 10 のクリーン・インストール
・パーティション、ファイルシステム(NTFS)は事前に作成する。 ・ダウンロードした iso ファイルを書き込んだ DVD でブートする。 ・インストール時には、Windows 7 の Product Code を入力しない。
(2) インストール後のライセンス認証
・インストール後に、Windows 7 の Product Code でライセンス認証を行う。
2. 現状 (2021-05 下旬)
下記の理由により、パックアップ・データから Windows 7 をリストアし、Windows 7 を使用している。
(尚、Windows 10 は、現在のイメージをバックアップしている。)
理由は、下記の通りである。
(1) Windows 10 の Windows Update の終了に非常に時間を要することがある。
Windows 10 では、Windows Update が強制実行される。
また、エラーの発生、およびその取消のために 最大で 2時間程度、shutdown が終了しないことがあった。
(2) Windows 10 のディスク使用量が想定を遥かに越える。
・Windows 7 では、C: 20GB、D: 10GB で運用できていた。 ・Windows XP では、C: 10GB、D: 10GB で運用できていた。 ・Windows 10 では、C: 30GB、D: 10GB でも余裕がない。 Windows Update が実施された後にこの傾向が堅調となる。
(3) 不要なアプリケーションが多数インストールされる。
これまでの Windows 以上にインストールされる。
また、アン・インストールの手順が面倒なアプリケーションが多数存在する。
3. 今後の予定
(1) Windows 10 の再使用
1 年の半期毎にあるバージョンアップのタイミングで、Windows 10 の更新と状況確認を確認し、再使用の有無を検討しようと思う。
ライセンス的にはグレーゾーンではあるが、Windows 7 と同時に使用しない限り問題ないように思われる。
・Windows 10 が快適に使用できるなら、移行したいと思っている。 ・現在の Windows 10 は快適ではない。 Windows Update を強制するが、更新プログラムの完成度が低く快適ではない。 ・仕方なくWindows 7 に戻し、Windows 10 の改善を待っているような状況である。
(2) Windows 10 での Windows Update の無効化
・サービスやタスクの無効化では効果がない。 ・Home Edition では、Windows Update を無効化するソフトウェアを使用する。 (例) win-updates-disabler