So-net無料ブログ作成

CentOS 7上のxawtvでノイズが発生することへの対応 [Linux]

[ソフトウェアのバージョン]
・xawtv-3.105-2.el7.x86_64
・alsa-lib-1.1.6-2.el7.x86_64
・alsa-plugins-pulseaudio-1.1.6-1.el7.x86_64
・alsa-utils-1.1.6-1.el7.x86_64
・pulseaudio-10.0-5.el7.x86_64
・kernel-3.10.0-957.10.1.el7.x86_64
 (saa7134 モジュール、saa7134_alsa モジュールを使用)

1. 発生事象


xawtv の音声にノイズが発生する。

・起動直後にはノイズは発生しない。
・しばらく使用しているとノイズが発生する。
 (30〜60 分程度の連続使用で、音がこもる/割れる。)
・xawtv を再起動すると改善される。
・xawtv の機能により、ミュート/ミュート解除を行うと改善される。
・改善された後も、しばらく使用していると再発する。
・ノイズが発生する場合には、下記のようなメッセージが出力される。
 ALSA lib pcm.c:8424:(snd_pcm_recover) overrun occurred
 (ただし、当該メッセージが出力されてもノイズが発生するとは限らない。)

(補足)
・/dev/mixer の存在しない状態で使用している。
・xawtv の画像に関しては、問題は発生していない。
・下記のような関係にあると思われる。
 xawtv -> saa7134_alsa モジュール -> alsa-lib


2. 対処方法


現時点では、根本的な解決方法は不明である。
また、取り敢えず、下記の手順により対応可能である。

(1) ~/bin/xawtv-patch の作成


下記の処理を行うスクリプトを作成する。

(a) xawtv の機能により、mute の状態を取得する。

% v4lctl show mute


(補足)
xawtv-remote に同じ引数(同じコマンド)を指定しても何も出力されない。


(b) xawtv の機能により、mute の状態を再設定する。

[mute されている場合]
% xawtv-remote volume mute off; xawtv-remote volume mute on

[mute されていない場合]
% xawtv-remote volume mute on; xawtv-remote volume mute off


(補足)
v4lctl に同じ引数(同じコマンド)を指定しても求める効果が得られない。


(2) cron への ~/bin/xawtv-patch を実行する設定の追加


(例)
20 分毎に ~/bin/xawtv-patch を実行する。


[備考]


nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

Firefoxの中間CA証明書の期限切れへの対応 [Linux]

2019-05-04 に Firefox のアドオンが使用できなくなる不具合が発生した。アドオンの署名に使用する中間 CA 証明書の有効期限切れのためである。

現時点でサポートされているバージョンについては、修正プログラムや更新バージョンのインストールで対応可能である。しかし、サポートの終了したバージョンについては、別途対応が必要である。
以下は、備忘録として、サポートの終了したバージョンへの対応方法をまとめたものである。

1. 発生事象


書名の必要なアドオンが使用できない状態となる。

(例)
Firefox ESR 52.9.0/Firefox ESR 45.9.0 で下記のアドオンが使用できない状態となる。
・Classic Theme Restorer 1.7.7.2
・Tab Mix Plus 0.5.5.0


2. 対処方法


(1) 証明書のダウンロード


http://yahoogeocities.g1.xrea.com/signingca1addonsmozillaorg.crt


(2) 証明書の Firefox へのインストール


(a) メニューから [編集] -> [設定] を選択

(b) 左側の一覧から [詳細] -> [証明書] を選択

(c) 下側の [証明書を表示] を選択

(d) 証明書マネージャー画面で証明書をインストール


・[認証局証明書] タブを選択
・[インポート] を選択
・ダウンロードした証明書を選択
・[証明書のインストール] 画面では、[OK] のみを選択
・[OK] を選択し、証明書マネージャーを終了


(3) アドオンの状態を強制的に再チェック


(a) F12 を押下し、開発者ツールを起動

(b) 右上のギアのアイコンを選択

(c) [ブラウザーとアドオンのデバッガーを有効化] をチェックする。

(d) CTRL+Shift+J でブラウザーコンソールを起動

(e) 下記の 2 行をコピー・ペーストし、Enter を押下


# 1 行目
var { XPIProvider } = Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm", {});
# 2 行目
XPIProvider.verifySignatures();

(補足)
・一行ずつの入力、マルチステートメントでの入力とも可能である。
・複数行を 1 度に入力することも可能である。
 (途中の行の行末では Shift+Enter、最終行の行末では Enter を入力)


(f) ブラウザーコンソールを終了

(g) 上記 (c) の変更を元に戻す。

(h) 開発者ツールを終了


(4) Firefox の再起動


3. 備考


(1) 更新された証明書


[認証局証明書] -> [Mozilla Corporation] -> [signingca1.addons.mozilla.org]


(2) 参考にした情報


http://yahoogeocities.g1.xrea.com/MozillaFirefoxAddonCorruptionHotfix.html
https://nandakke.hatenadiary.com/entry/2019/05/06/043752



nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

Firefox Quantumの使用感 [Linux]

先日 Firefox Quantum を Linux にインストールし、一週間程使用してみた。
 cf. https://dan-project.blog.so-net.ne.jp/2018-09-07
現時点では、予想していた以上に、いい感じである。

なお、上記のインストール後に、下記の設定を追加した。
WebExtensions の制限への対応、Tab Mix Plus が使用できないことへの対応のためである。

1. Browser の UI へのスタイルシートの設定


<profile_dir>/chrome/userChrome.css へ設定を追加する。


2. ビルトインページ(about:addons 等) へのスタイルシートの設定


<profile_dir>/chrome/userContent.css へ設定を追加する。


3. タブバーのカスタマイズ


(1) 新しいタブを作成するボタンの削除


・ツールバー右端のメニューボタンをクリックし、[カスタマイズ] を選択
・該当するアイテムをツールバーから削除


(2) タブの一覧を表示するボタンの常時表示 - userChrome.css への設定の追加

/* always display button to display tab list */
#alltabs-button {
  visibility: visible !important;
}


(3) [タブを閉じる] ボタンの表示の制限 - userChrome.css への設定の追加

/* show close button on only selected tab */
.tabbrowser-tab:not(:hover) .tab-close-button {
  display: none !important;
}
.tabbrowser-tab:not([pinned]):hover .tab-close-button {
  display: block !important;
}


nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

Firefox Quantumへの移行の準備 [Linux]

1. 背景


現在、下記のバージョンの Firefox を使用している(mozilla.org からダウンロード)。
できるなら今後も Firefox を使用したいと思っている。

・Firefox 45.9.0 ESR (on CentOS 6)
・Firefox 52.9.0 ESR (on Debian 8/9、CentOS 7、Windows 7)

また、Firefox Quantum (Firefox 57) より前のバージョンのサポートが終了した。
サポート終了後も上記バージョンを使用しようと思っているが、いずれは移行が必要となる。
よって、現状確認のため、Firefox Quantum の導入テストを行った。
なお、今回使用したバージョンは、Firefox 60.2.0 ESR (on Linux) である。


2. 導入の手順


(1) Firefox Quantum のインストール


インストールの手順は、これまでのバージョンと同様である。


(2) Firefox Quantum の設定


3. Firefox Quantum の設定

3-1. アドオンの更新 (WebExtensions に対応済のアドオン)


(1) Adblock Plus


v3.x で対応済であるが、v2.x に比べ使いづらくなっている。
・[詳細設定] の [マイ フィルターリスト] が強制的にソートされる。
 (このため、設定毎のコメントの追加ができない。)

(補足)
uBlock Origin で代替できる。
・uBlock Origin の方が動作が軽いとの情報もある。


(2) Stylish


v3.x で対応済であるが、ポリシー違反により使用不可となっている。

(補足)
Stylish からフォークされた Stylus で代替できる。
・ブラウザの UI や about:addons 等のビルトインページへのスタイル指定はできない。
 (WebExtensions の制約のため。)
・上記のスタイル指定については、user*.css への設定により対応できる。
 (<profile_dir>/chrome/{userChrome.css,userContent.css})


3-2. アドオンの更新 (WebExtensions に未対応のアドオン)


(1) Classic Theme Restorer


WebExtensions の仕様により、ブラウザの UI を変更できない。
よって、この種のアドオンは存在しない可能性が高いと思われる。


(2) Flashblock


Flash Block (Plus) で代替できる。


(3) gtranslate


Simple Translate で代替できる。


(4) Tab Mix Plus


・Tab Mix Plus WebExtensions 対応版が開発中である。
 (Tab Mix - Links)
・当方の使用環境では、なくてもそれ程不便を感じない。


(5) User Agent Switcher


User-Agent Switcher で代替できる。


(6) Vacuum Places Improved


・代替アドオンなし。
・なくてもそれ程不便を感じない。


3-3. アドオンの追加


(1) Restart Browser


Firefox の再起動ボタンをツールバーに表示する。

(補足)
・Classic Theme Restorer で再起動ボタンを表示できなくなったため。
・アドオンを使用しなくても再起動はできる。
 ([about:profiles] -> [通常の再起動...])


3-4. その他の設定


(1) 起動時に表示するページの変更


Firefox Quantum では、about: は不正な URL となる。
よって、about: を表示していた場合には、変更が必要である。

(a) about: に近い設定にする場合


・Firefox の起動時に表示するページ: ホームページを表示
・ホームページ: about:buildconfig


(b) 空白のページを表示する場合


・Firefox の起動時に表示するページ: 空白のページを表示


(c) その他の設定例


・Firefox の起動時に表示するページ: ホームページを表示
・ホームページ: about:about


(2) ツールバーのアイコン表示のコンパクト化


<profile_dir>/user.js に下記の設定を追加する。

// change UI density in Firefox to compact mode
user_pref("browser.uidensity", 1);


(補足)
ツールバー右端のメニューボタンからも変更可能である。
・[カスタマイズ] -> [UI 密度] において、[コンパクト] を選択



nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

スクリプト内でPulseAudioのミュート状況を確認する方法 [Linux]

スクリプト内で PulseAudio のミュート状況を確認する必要があり、その対応を行った。
詳細は、以下の通りである。

1. スクリプト内で PulseAudio のミュート状況を確認する方法


(1) amixer コマンドを使用する場合

% amixer -c ${ALSA_CARD:-0} -D default get Master | grep -q '\[off\]'
% echo $?


・0: muting is on, 1: muting is off


(2) pactl コマンドを使用する場合

% pactl list | sed -n '/^Sink #0$/,/^$/p' | grep -q 'Mute: yes'
% echo $?


・0: muting is on, 1: muting is off



nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

Linux x86_64でのPDFビューア [Linux]

1. 背景


現在、下記の Linux を使用している。

・Debian GNU Linux 8/9 (32 bit)
・CentOS 6 (32 bit)
・CentOS 7 (64 bit)

また、32 bit 環境では、PDF ビューアに Adobe Reader 9.4.2 を使用している。
64 bit 版でも Adobe Reader を使用できればよいのだが、32 bit 版のライブラリを多数追加インストールする必要があるため、現時点では却下とした。

以下の記載は、64 bit 版 Linux での PDF ビューアを探した時の備忘録である。
なお、要求仕様は、下記の通りである。

・GNOME 等の特定のデスクトップ環境に依存しないこと。
・インストールされるファイルの容量ができるだけ小さいこと。
・日本語の文字化けが発生しないこと。


2. PDF ビューア

2-1. xpdf (xpdf-3.04-9.el7.x86_64)


(1) インストールされるファイルの容量は小さい。

(2) PDF 文書の本文での文字化けは発生しない。

(3) しおりの部分での日本語の文字化けが発生する。


2-2. Firefox のプラグイン


(1) Firefox がインストールされている環境では、別途インストールは不要である。

(2) 本文、しおりとも日本語の文字化けは発生しない。

(3) 現時点では、最も要件に合っていると思われる。



nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

ntfscloneでのNTFSパーティションのバックアップ/リストア [Linux]

1. 背景


Linux と Windows をマルチブートしており、Windows のシステムバックアップは、Linux 上の Partimage での NTFS パーティションのバックアップで対応してきた。
しかし、最近、特定のノードにおいて、リストア時にエラーが度々発生するようになった。

・Partimage のみの問題とも断定できない。
・当該エラー発生前に、バックアップ・データが非常に大きなサイズとなる事象が発生した。
 (これ自体エラーとも考えられる。)
・上記のデータサイズに関する事象の発生後、リストア時のエラーが発生するようになった。

こうなると Partimage が NTFS パーティションを正式にはサポートしておらず、experimental のままで開発が終了していることが気になるようになり、念のため、ntfsclone でのバックアップへの移行を行うことにした。

(補足)
・2 個目以降のファイルの 1 ブロック目を読み飛ばすことで対処できるとの情報もある。
・バックアップ前にデフラグを実施することで改善できるとの情報もある。
・データを gzip で圧縮しているが、このデータの解凍でエラーとなることもある。

(補足-2)
バックアップ時の gzip の integrity チェックでエラーが発生することがある。


2. ntfsclone のインストール


(1) CentOS の場合


ntfsprogs パッケージをインストールする。

(補足)
・ntfsprogs は、EPEL のパッケージである。
・ntfs-3g が依存パッケージとなっている。


(2) Debian の場合


ntfs-3g パッケージをインストールする。


3. 使用方法


(1) バックアップ


(a) NTFS パーティションのデフラグの実施


適度な時間間隔で NTFS パーティションのデフラグを実施する。


(b) NTFS パーティションのバックアップ

(例)
# ntfsclone -s -o - /dev/sda1 | gzip -c > c-drive.img.gz


-s: バックアップ・データの取得
-o: 出力ファイルの指定


(c) gzip の integrity チェック

(例)
# gzip -tv <data-file>


・当該ノードにおいて、稀にエラーを発生することがある。
・エラーとなる場合には、再度バックアップを実施する。
 (現時点では、2 回連続でエラーを発生することはない。)
・この部分でのエラーについては、gzip の問題の可能性もある。


(2) リストア


(a) NTFS パーティションの作成

(例)
# fdisk /dev/sda


(b) NTFS パーティションのフォーマット

(例)
# mkfs.ntfs /dev/sda1


(c) ラベルの設定

(例)
# ntfslabel /dev/sda1 win_1


(d) バックアップ・データのリストア

(例)
# gzip -dc c-drive.img.gz | ntfsclone -r -O /dev/sda1 -


-r: バックアップ・データのリストア
-O: 既存パーテョション/ファイルへの上書きの許可



nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

MDデバイスのアラインメントとサイズの変更 [Linux]

1. 背景


ディスク 2 台を使用し、パーティション毎に RAID 1 を構成(mdadm を使用) している。
/boot は MD デバイス上に直接ファイルシステムを作成し、その他は MD デバイス上に LVM を作成し、LV 上にファイルシステムを作成している。

この環境において、ディスクの 1 台が壊れ、新しいディスクへの交換が必要となった。
新しいディスクは AFT 対応で、他方は AFT 未対応のディスクである。

作業の所要時間を重視するなら、下記のような手順での対応となる。
・新しいディスクのパーティション構成を交換前と全く同じにする。
 (AFT 対応のためのアラインメントの変更を行わない。)
・RAID 1 を構成するパーティション間の同期を行う。

今回は、今後の AFT 対応ディスクへの交換を見据え、パーティション構成(アラインメント、サイズ)の変更を行うことにした。
・パーティションの作成には Debian 8 の fdisk (util-linux 2.25.2) を使用する。

以下は、備忘録として、実施手順をまとめたものである。


2. 実施手順


(1) ディスクの交換


・OS のシャットダウン(電源 OFF を含む)
・ディスクの交換
・電源 ON (OS のブートを含む)

(補足)
交換するディスクが /dev/sda の場合には、ブートローダーのインストール(外部メディアから起動してのブートローダーのインストール等)が必要となる。


(2) 新しいディスクでのパーティションの作成


・セクタの開始位置が 8 の倍数になるようにする。
・サイズは、RAID 1 を構成する他方のパーティションのサイズ以上にする。
・この時点では、パーティションのタイプを指定しない(default: 83)。
・全パーテョションの作成後に、設定を反映するために OS を再起動する。


(3) 新しいディスクのパーティション・タイプの変更


RAID 1 を構成するパーティションについて、タイプを fd に変更する。


(4) MD デバイスへのデバイス(新しいディスク上のパーティション)の追加

# mdadm [--manage] <raid-device> --add <device>


・すべての MD デバイスについて実施する。
・データの同期が順次開始される。
・小さい方のデバイスのサイズ分のみが RAID 1 構成となる。

# cat /proc/mdstat


データの同期が終了するのを待つ。


(5) 既存ディスクでのパーティションの削除

# mdadm [--manage] <raid-device> --fail <device>


・MD デバイスの当該デバイス(パーティション)を切り離す(故障状態にする)。
・すべての MD デバイスについて実施する。

# mdadm [--manage] <raid-device> --remove <device>


・MD デバイスから当該デバイス(パーティション)を削除する。
・すべての MD デバイスについて実施する。

# mdadm --misc --zero-superblock <device>


・MD デバイスから削除したパーティションのスーパー・ブロックを初期化する。
・該当するすべてのパーティションについて実施する。

その後、下記の手順を実施する。
・既存ディスク上の全パーティションを削除する。
・全パーテョションの削除後に、設定を反映するために OS を再起動する。


(6) 既存ディスクでのパーティションの作成


・上記の (2) の手順と同様。
・パーティションのサイズは、RAID 1 構成の他方のパーティションと同じにする。


(7) MD デバイスへのデバイス(既存ディスク上のパーティション)の追加


上記の (3)、(4) の手順と同じ。


(8) MD デバイスのサイズ変更

# mdadm --grow <raid-device> --size=max
または
# mdadm --grow <raid-device> -z max


MD デバイスを構成するデバイス(パーティション)のサイズまで拡張される。


(9) MD デバイス上の PV のサイズ変更(LVM を作成した MD デバイスの場合)

# pvresize <raid-device>


・PV のサイズが、MD デバイスのサイズまで拡張される。
・PV のサイズが拡張されることにより、VG のサイズも拡張される。


nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

ファイルパスの不要な/の削除 [Linux]

シェルスクリプトで、ファイルパスの不要な / を削除しようとして少々手間取ってしまった、
以下は、備忘録としてまとめたものである。

1. 要求仕様


ファイルパスから不要な / を取り除く。
・/ が連続する部分を / に変更
・最後の / を削除


2. 実行例


(1) sed の場合


(a) 基本正規表現を使用する場合

% echo ..//aa//bb//cc// | sed -e 's!/\{2,\}!/!g' -e 's!\([^/]\)/$!\1!'
../aa/bb/cc
% echo /// | sed -e 's!/\{2,\}!/!g' -e 's!\([^/]\)/$!\1!'
/


(b) 拡張正規表現を使用する場合

% echo ..//aa//bb//cc// | sed -r -e 's!/+!/!g' -e 's!([^/])/$!\1!'
../aa/bb/cc
% echo /// | sed -r -e 's!/+!/!g' -e 's!([^/])/$!\1!'
/


(c) 失敗例

% echo ..//aa//bb//cc// | sed -e 's!/*!/!g' -e 's!\([^/]\)/$!\1!'
/././a/a/b/b/c/c


(2) awk の場合

% echo ..//aa//bb//cc// | \
awk '{gsub(/\/+/, "/"); r=gensub(/([^/])\/$/, "\\1", 1); print r}'
../aa/bb/cc
% echo /// | \
awk '{gsub(/\/+/, "/"); r=gensub(/([^/])\/$/, "\\1", 1); print r}'
/


(補足)
・gsub() および sub() では "\\1" が機能しない。
・gensub() の戻り値は変換後の文字列である(元の文字列を変更しない)。


3. sed の正規表現


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Firefoxのファイル入出力の候補に意図しないマウントポイントが表示されることへの対応 [Linux]

以前、Firefox のファイル入出力の候補に意図しないマウントポイントが表示されるため、表示されないように対応を行った。しかし、システムのバージョンアップにより、再発するようになってしまった。
以下は、この発生事象について備忘録としてまとめたものである。

[関係するソフトウェア]
・OS: CentOS 6/7、Debian 8/9
・Firefox 45.9.0 ESR、Firefox 52.4.0 ESR
・gvfs (CentOS の場合: gvfs、Debian の場合: gvfs-daemons)

1. 発生事象


ファイル入出力の候補にに意図しないマウントポイントが表示される。

・候補が多数表示されるため、見づらい。
・ファイルを開く時の候補に表示される。
・名前を付けてページを保存する時の候補に表示される。
・ブックマークのインポート/エクスポート時の候補に表示される。


2. 対処方法

2-1. gvfs 1.30 より前のバージョンの場合


CentOS 6、CentOS 7.3 まで、Debian 8 が該当する。

また、下記の条件により、状況が異なる。
・/usr/share/gvfs/remote-volume-monitors/udisks2.monitor の有無
 (ただし、CentOS 6 の場合では gdu.monitor)


(1) udisks2.monitor 有の場合 (初期状態)


上記のマウントポイントが表示される。


(2) udisks2.monitor 無の場合 (udisks2.monitor.org へのリネーム)


上記のマウントポイントが表示されない。


2-2. gvfs 1.30 以降の場合


CentOS 7.4 以降、Debian 9 が該当する。

また、下記の条件により、状況が異なる。
・Firefox のバージョン
・/usr/share/gvfs/remote-volume-monitors/udisks2.monitor の有無


(1) Firefox 45.9.0 ESR 場合


(a) udisks2.monitor 有の場合 (初期状態)


・/etc/auto.misc で定義されているマウントポイントが表示される。


(b) udisks2.monitor 無の場合 (udisks2.monitor.org へのリネーム)


・/etc/fstab で定義されているマウントポイントが表示される。


(2) Firefox 52.4.0 ESR の場合


(a) udisks2.monitor 有の場合 (初期状態)


・/etc/auto.misc で定義されているマウントポイントが表示される。
・[他の場所] という項目でまとめられるため、見づらくはない。


(b) udisks2.monitor 無の場合 (udisks2.monitor.org へのリネーム)


・/etc/fstab で定義されているマウントポイントが表示される。



nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。