動機
HDMI接続のディスプレイスピーカーだと、
・ディスプレイ側の少電力モード
・PCのスリープや復帰のタイミング
などで、音の出力先が変わってしまい。手動で設定し直さないといけない。
対策
面倒なので、出力先をHDMIに固定する。
めったに使わない外付けスピーカー使用時には、システム「設定」からアナログ出力に手動変更とする。
環境
Debian GNU/Linux 10 (Buster+backports), KDEディスクトップ
サウンドカードはM/Bオンチップのみ
$ cat /proc/asound/cards
0 [PCH ]: HDA-Intel - HDA Intel PCH ←M/Bのサウンドカード
HDA Intel PCH at 0xf7140000 irq 138
方法
概要:/etc/pulse/default.pa の最後にHDMI接続を書き込む。
書き込む内容を調べる例
1, HDMIから音が出てる間に index番号(name)とprofileを取得。
index)
$ pacmd list-cards
1 card(s) available.
index: 0
name: <alsa_card.pci-0000_00_1f.3> ←"alsa_card.pci-0000_00_1f.3"必要
driver: <module-alsa-card.c>
owner module: 6
properties:
alsa.card = "0"
alsa.card_name = "HDA Intel PCH" ← M/Bのサウンドカード
alsa.long_card_name = "HDA Intel PCH at 0xf7140000 irq 138"
... 略 ...
profile)
$ pacmd list-cards | grep active
active profile: <output:hdmi-stereo> ←"output:hdmi-stereo"必要
2, 上記の情報を /etc/pulse/default.pa の最後に書き込む
a) set-card-profile 0 output:hdmi-stereo
b) set-card-profile alsa_card.pci-0000_00_1f.3 output:hdmi-stereo+input:analog-stereo
どちらかを書き込む。
("+input:analog-stereo"の部分は任意。使わないなら書かない)
3, load-module module-switch-on-port-available"コメントアウトして、
#load-module module-switch-on-port-available
4, 念の為
~/.config/pulse/以下を一度全部削除して、
5, 再起動。
今の所うまく行ってます・・・素人処方です。
おまけ
・~/.config/pulse/以下の削除後、pulseaudio -k pulseaudio --start では、cookieのみ作成されて、pulseaudio サーバーとして認識される。
・alsa-base.conf (asound.conf) は buster では使われていない?
2019年8月14日水曜日
Debian KDEで AudioCDを開く
目的:
音楽CDから、256kbps以上の mp3を作成したかった。
CDを挿入→アプリから[ファイルマネージャで開く]を選択すると→Dolphin 起動→"Audio CD"グループができて、WAVファイルやCDA,FLAC,MP3ディレクトリができている (これは仮想ファイル)。
これらの中から 目的楽曲.mp3を選択して、別ディレクトリにコピペすると初めて作業を開始して mp3ファイルができる。
ところが、ffprobeやexiftoolでビットレート見るとちょっと低い。
疑問:
上記方法でビットーレート設定はどうやる?
答え:
システム設定→マルチメディア→オーディオCD [オーディオ CD/IO スレーブ設定]→MP3エンコーダ で調整。
備考:
以上の働きは KF5 (もしくは KF4): KDE Frameworks という仕組みが関係している。
$ kcmshell5 または kcmshell4 (ヘルプ出力)
sage: kcmshell4 [Qt-options] [KDE-options] [options] module
A tool to start single KDE control modules
...略
$ kcmshell5 -list ← 使えるモジュールのリスト表示
次のモジュールが利用できます:
about-distro - Information About This System
audiocd - オーディオ CD I/O スレーブの設定
autostart - 自動的に起動されるアプリケーション
...略
$ kcmshell5 audiocd
"答え"と同じ[オーディオ CD/IO スレーブ設定]ウインドウが表示
[MP3エンコーダ]可変ビットレートの設定 のデフォルト
■ XingのVBR タグを書き込む ←これのみデフォルトで青チェック済
□平均ビットレート:192 kbs ←これをチェックするとその他もチェックできる。
□最高ビットレー: 320 bps
□最低値を絶対的な下限にする
□最低ビットレート:320 bps
* Xing (VBRではビットレートが一様でないのでXingヘッダーを付けて総時間を計算する)
* 固定ビットレート constant bitrate:CBR, 可変ビットレート Variable Bitrate:VBR,
平均ビットレート Averate Bitrate:ABR. VBRの平均をABRと呼ぶこともあり、VBRとABRはほぼ同じと思っていい(?)
音楽CDから、256kbps以上の mp3を作成したかった。
普通、KDEならAudexを使うのだが、現状 busterには KDE multimedia も Audexもないので、soundKonverter が残っている。作業:
CDを挿入→アプリから[ファイルマネージャで開く]を選択すると→Dolphin 起動→"Audio CD"グループができて、WAVファイルやCDA,FLAC,MP3ディレクトリができている (これは仮想ファイル)。
ところが、ffprobeやexiftoolでビットレート見るとちょっと低い。
疑問:
上記方法でビットーレート設定はどうやる?
答え:
システム設定→マルチメディア→オーディオCD [オーディオ CD/IO スレーブ設定]→MP3エンコーダ で調整。
備考:
以上の働きは KF5 (もしくは KF4): KDE Frameworks という仕組みが関係している。
$ kcmshell5 または kcmshell4 (ヘルプ出力)
sage: kcmshell4 [Qt-options] [KDE-options] [options] module
A tool to start single KDE control modules
...略
$ kcmshell5 -list ← 使えるモジュールのリスト表示
次のモジュールが利用できます:
about-distro - Information About This System
audiocd - オーディオ CD I/O スレーブの設定
autostart - 自動的に起動されるアプリケーション
...略
$ kcmshell5 audiocd
"答え"と同じ[オーディオ CD/IO スレーブ設定]ウインドウが表示
実は kcmshell5 --list で表示されたモジュール名を使うということは、KDE システム設定 と同じ。補足:
例
$ kcmshell5 about-distro
$ kcmshell5 componentchooser
$ kcmshell5 filetypes
など
[MP3エンコーダ]可変ビットレートの設定 のデフォルト
■ XingのVBR タグを書き込む ←これのみデフォルトで青チェック済
□平均ビットレート:192 kbs ←これをチェックするとその他もチェックできる。
□最高ビットレー: 320 bps
□最低値を絶対的な下限にする
□最低ビットレート:320 bps
* Xing (VBRではビットレートが一様でないのでXingヘッダーを付けて総時間を計算する)
* 固定ビットレート constant bitrate:CBR, 可変ビットレート Variable Bitrate:VBR,
平均ビットレート Averate Bitrate:ABR. VBRの平均をABRと呼ぶこともあり、VBRとABRはほぼ同じと思っていい(?)
2019年8月5日月曜日
ExiftoolでGPSタグを付ける
GPSタグを付ける
Debian GNU/Linux 10 Busterにて
目的 :
カメラの操作忘れで、GPSデータが未記録だった写真(jpg)に、
他の写真のデータを利用して ExifにGPSデータを書き込む。
結論 :
コマンドラインexiftoolを使って、
$ exiftool -tagsfromfile GPS有り.JPG -gps* -gpsmeasuremode= GPS無し.JPG
exiftooは、変更前の画像を `GPS無し.JPG_original' 名で保存する。
参考ファイルと、GPS Time Stampが全く同じで、違和感が残る。
色々 :
・Exiftool
Debianでは、libimage-exiftool-perl をインストール。
マニュアル/説明(英語) https://sno.phy.queensu.ca/~phil/exiftool/exiftool_pod.html
かなり守備範囲の広いプログラム。
・exiftoolのコマンド例。
GPS有り.JPGからGPSというワードを含むタグを探す。
出力は、タグ : データ の形で表示。exiftoolによる書き込みは、
exiftool -タグ="データ" 目的.jpg が基本。
タグ : データ オプションを利用するときの注意
* タグの空白は省く。
* データは""で囲む。エスケープも使う。
* タグ:データ の削除は -タグ= とする (上記結論の -gpsmeasuremode= のところ)。
* タグ GPS Position は、GPS Latitudeと GPS Longitudeの値があれば書き込まなくても自動生成される。無理に指定しても warningで無視される。
* タグ GPS Date/Time も、GPS Date StampとGPS Time Stampの値から自動生成。
・・・ということで、GPS Time Stampを変更しつつ、手書きコマンドの例。
$ exiftool -w txt IMG.JPG Exif ← 内容をIMG.txtに出力
$ exiftool -htmlDump IMG.JPG > img.html ← htmlに出力。見ても意味わからん
$ exiftool -lang ja -GPS IMG.JPG ← 日本語で表示。北緯 GPS Latitude / 東経 GPS Longitude などの検索が辛い
Debian GNU/Linux 10 Busterにて
目的 :
カメラの操作忘れで、GPSデータが未記録だった写真(jpg)に、
他の写真のデータを利用して ExifにGPSデータを書き込む。
結論 :
コマンドラインexiftoolを使って、
$ exiftool -tagsfromfile GPS有り.JPG -gps* -gpsmeasuremode= GPS無し.JPG
exiftooは、変更前の画像を `GPS無し.JPG_original' 名で保存する。
参考ファイルと、GPS Time Stampが全く同じで、違和感が残る。
色々 :
・Exiftool
Debianでは、libimage-exiftool-perl をインストール。
マニュアル/説明(英語) https://sno.phy.queensu.ca/~phil/exiftool/exiftool_pod.html
かなり守備範囲の広いプログラム。
・exiftoolのコマンド例。
GPS有り.JPGからGPSというワードを含むタグを探す。
$ exiftool GPS有り.JPG | grep GPS または $ exiftool -gps* GPS有り.JPG GPS Version ID : 2.3.0.0 GPS Latitude Ref : North GPS Longitude Ref : East GPS Altitude Ref : Above Sea Level GPS Time Stamp : 10:19:54 GPS Satellites : GPS Status : Measurement Active GPS Map Datum : WGS-84 GPS Date Stamp : 2019:07:31 GPS Altitude : 37.5 m Above Sea Level GPS Date/Time : 2019:07:31 10:19:54Z GPS Latitude : 33 deg 11' 18.23" N GPS Longitude : 130 deg 21' 30.01" E GPS Position : 33 deg 11' 18.23" N, 130 deg 21' 30.01" E $ exiftool GPS無し.JPG | grep GPS または $ exiftool -gps* GPS無し.JPG GPS Version ID : 2.3.0.0 GPS Altitude Ref : Above Sea Level GPS Satellites : GPS Status : Unknown () GPS Measure Mode : Unknown ()
出力は、タグ : データ の形で表示。exiftoolによる書き込みは、
exiftool -タグ="データ" 目的.jpg が基本。
タグ : データ オプションを利用するときの注意
* タグの空白は省く。
* データは""で囲む。エスケープも使う。
* タグ:データ の削除は -タグ= とする (上記結論の -gpsmeasuremode= のところ)。
* タグ GPS Position は、GPS Latitudeと GPS Longitudeの値があれば書き込まなくても自動生成される。無理に指定しても warningで無視される。
* タグ GPS Date/Time も、GPS Date StampとGPS Time Stampの値から自動生成。
・・・ということで、GPS Time Stampを変更しつつ、手書きコマンドの例。
$ exiftool -gpslatituderef="North" -gpslongituderef="East" \ -gpstimestamp="10:19:46" -gpssatellites=" " -gpsstatus="Measurement Active" \ -gpsmapdatum="WGS-84" -gpsdatestamp="2019:07:31" \ -gpsaltitude="37.5 m Above Sea Level" -gpslatitude="33 deg 11\' 18.23\" N" \ -gpslongitude="130 deg 21\' 30.01\" E" -gpsmeasuremode= GPS無し.JPG 1 image files updatedちなみに
$ exiftool -w txt IMG.JPG Exif ← 内容をIMG.txtに出力
$ exiftool -htmlDump IMG.JPG > img.html ← htmlに出力。見ても意味わからん
$ exiftool -lang ja -GPS IMG.JPG ← 日本語で表示。北緯 GPS Latitude / 東経 GPS Longitude などの検索が辛い
2019年7月25日木曜日
たまにひっかかる、改行DOS
症状:
Debian/LinuxのPCを起動して、最初にコンソールを開くと、何もしてないのにエラー表示。
原因:
.bashrcを編集した際、Dos/Windows改行で保存してしまった。
対応:
改行\r\nを \r にすればいい。
確認:
・file コマンドで見てみる。
'CRLF'となってる。通常のUNIX系CR キャリッジ・リターンだけなら、
"with CRLF line terminators"は表示されない。
(LFは ラインフィード)
・catで見てみる
'^M$' が、Windows/Dosの改行
作業:
dos2unix をinstallして\r\nを\rにする ( unix2dosというコマンドも有る)。
たぶん、sed, awk, perl でも簡単に置換できる。
お手軽に、KDEのエディタ Kate (≒KWrite)から ツール→行末→UNIX→保存 してログアウト、ログイン という対処で済ました。
付録:
立ち上がりは ash? dashと思っていた。
やっぱり dash?
本来の ashをカスタマイズした dash (debian ash)というのが別にあるらしい。
Debian/LinuxのPCを起動して、最初にコンソールを開くと、何もしてないのにエラー表示。
: command not found bash: /home/xxxx/.bashrc: 行 6: 予期しないトークン `$'in\r'' 周辺に構文エラーがあります 'ash: /home/xxxx/.bashrc: 行 6: `case $- in $
原因:
.bashrcを編集した際、Dos/Windows改行で保存してしまった。
対応:
改行\r\nを \r にすればいい。
確認:
・file コマンドで見てみる。
$ file .bashrc
.bashrc: UTF-8 Unicode text, with CRLF line terminators
'CRLF'となってる。通常のUNIX系CR キャリッジ・リターンだけなら、
"with CRLF line terminators"は表示されない。
(LFは ラインフィード)
・catで見てみる
$ cat -e .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.^M$
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)^M$
# for examples^M$
^M$.....略
'^M$' が、Windows/Dosの改行
作業:
dos2unix をinstallして\r\nを\rにする ( unix2dosというコマンドも有る)。
たぶん、sed, awk, perl でも簡単に置換できる。
お手軽に、KDEのエディタ Kate (≒KWrite)から ツール→行末→UNIX→保存 してログアウト、ログイン という対処で済ました。
付録:
立ち上がりは ash? dashと思っていた。
$ ls -l /bin/sh ...略... /bin/sh -> dash
やっぱり dash?
本来の ashをカスタマイズした dash (debian ash)というのが別にあるらしい。
2019年7月12日金曜日
timidity-daemon に注意
症状
Debian 10 (buster)にupgrade後、音が鳴らない。
Audio Volume (plasma-pa)や システム設定→マルチメディアで見ると、Devices: OutPuts が [ダミー出力 / Dummy output]のみで、コントロール不能。
環境
Debian/GNU Linux 10 (Buster) + KDE。
音源はMBの Intel Corporation 200 Series PCH HD Audio.
HDMIディスプレイスピーカーがメイン。手動切り替えで、外付けアナログスピーカー。
原因
timidity-daemonをインストールしてしまった。
起動時にtimidity-daemonがサウンドデバイスを乗っ取ってた。
timidityとtimidity-daemonは別パッケージdeb。
対応例
1) 確認 :
timidityがサウンド関係を乗っ取った状態。
timidityなのかtimidity-daemonなのか、まだわからないが、他のプログラムが接続できないのは自明。
2) timidityプロセス停止 :
とりあえず止めてみる。
$ sudo systemctl stop timidity 停止
$ sudo systemctl disable timidity 自動起動停止
(systemctlのほか、fuser, kill,や、システムモニタで検索して終了させる等の方法がある。)
3) 再確認 :
timidity → pulseaudio になった!
4) 再々確認 :
さらに、再起動して同じ症状なら、timidity-daemonのインストールを疑う。その前に、
$ apt list timidity* --installed
で確認しておく。timidity-daemonがあったら、
$ sudo apt remove timidity-daemon で、削除。
musescoreやtuxguitarなどのmidi音源なら、素のtimidityで音は出る。
おまけ :
・Debianに alsa-base...パッケージはない。
・KDEでは、Kmixを使わないようになってきている。代わりに plasma-pa パッケージ(タスクバーに出るスピーカ印)を使用。
・Debianではモジュールとしてサウンドドライバ(*_snd_*)が読み込まれる。サウンドドライバ用のパッケージdebは無い。
・alsaとかpulseaudio, jackなどが無くても、直接サウンドモジュールを触わる VLCや Audacityは、上記のような[dummy output]状態でも、設定で[Device]と[出力]を合わせれば音が鳴る。
Debian 10 (buster)にupgrade後、音が鳴らない。
Audio Volume (plasma-pa)や システム設定→マルチメディアで見ると、Devices: OutPuts が [ダミー出力 / Dummy output]のみで、コントロール不能。
環境
Debian/GNU Linux 10 (Buster) + KDE。
音源はMBの Intel Corporation 200 Series PCH HD Audio.
HDMIディスプレイスピーカーがメイン。手動切り替えで、外付けアナログスピーカー。
原因
timidity-daemonをインストールしてしまった。
起動時にtimidity-daemonがサウンドデバイスを乗っ取ってた。
timidityとtimidity-daemonは別パッケージdeb。
対応例
1) 確認 :
$ sudo fuser -v /dev/snd/* USER PID ACCESS COMMAND /dev/snd/controlC0: timidity 759 F.... timidity /dev/snd/pcmC0D0p: timidity 759 F...m timidity /dev/snd/seq: timidity 759 F.... timidity /dev/snd/timer: timidity 759 f.... timidity
timidityなのかtimidity-daemonなのか、まだわからないが、他のプログラムが接続できないのは自明。
2) timidityプロセス停止 :
とりあえず止めてみる。
$ sudo systemctl stop timidity 停止
$ sudo systemctl disable timidity 自動起動停止
(systemctlのほか、fuser, kill,や、システムモニタで検索して終了させる等の方法がある。)
![]() |
システムモニタ KSysGuard |
$ sudo fuser -v /dev/snd/* USER PID ACCESS COMMAND /dev/snd/controlC0: XXXXX 1436 F.... pulseaudio /dev/snd/pcmC0D3p: XXXXX 1436 F...m pulseaudio XXXXX はUSERname
4) 再々確認 :
さらに、再起動して同じ症状なら、timidity-daemonのインストールを疑う。その前に、
$ apt list timidity* --installed
で確認しておく。timidity-daemonがあったら、
$ sudo apt remove timidity-daemon で、削除。
musescoreやtuxguitarなどのmidi音源なら、素のtimidityで音は出る。
おまけ :
・Debianに alsa-base...パッケージはない。
・KDEでは、Kmixを使わないようになってきている。代わりに plasma-pa パッケージ(タスクバーに出るスピーカ印)を使用。
・Debianではモジュールとしてサウンドドライバ(*_snd_*)が読み込まれる。サウンドドライバ用のパッケージdebは無い。
・alsaとかpulseaudio, jackなどが無くても、直接サウンドモジュールを触わる VLCや Audacityは、上記のような[dummy output]状態でも、設定で[Device]と[出力]を合わせれば音が鳴る。
・・・と思う。
2019年6月19日水曜日
GmailとThunderbird
## 現状
ThunderbirdでGmailを利用するメイン情報は、
- gmailより [Thunderbird を Gmail と同期](https://www.appsupport.jp/gmail/sync-thunderbird/)
- mozillaより [Thunderbird で Gmail を使う](https://support.mozilla.org/ja/kb/thunderbird-and-gmail)
ところが、説明に従っても、
「安全性の低いアクセスの無効化」
「重大なセキュリティー通知 : ログインをブロックしました」
...などの警告を受けてしまう。その対処。
> 以下の例は GNU/Debian Linux stretch 上の Thunderbird 60.7.1 にて
## 対策
### 概要
上記の設定情報であやふやになっている **ログイン** 関係を見直す。具体的には、__Googleアカウントへのアクセス許可__ を得ればエラーや警告はなくなる。
#### ログイン設定
* (Thunderbird gmail) xxx@gmail.com : アカウント設定 → 送信(SMTP)サーバー : SMTPサーバーを編集 → セキュリティと認証
接続の保護 : SSL/TLS
認証方式 : OAuth2
ユーザー名 : (任意)
* (Thunderbird gmail) xxx@gmail.com → サーバー設定
セキュリティ設定 : SSL/TLS
認証方式 : OAuth2
#### アカウントアクセス許可
以上の設定で、自動的にディフォルトブラウザが開いて、googleへのログインと__アカウントへのアクセス許可__が求められる。
以上。
ThunderbirdでGmailを利用するメイン情報は、
- gmailより [Thunderbird を Gmail と同期](https://www.appsupport.jp/gmail/sync-thunderbird/)
- mozillaより [Thunderbird で Gmail を使う](https://support.mozilla.org/ja/kb/thunderbird-and-gmail)
ところが、説明に従っても、
「安全性の低いアクセスの無効化」
「重大なセキュリティー通知 : ログインをブロックしました」
...などの警告を受けてしまう。その対処。
> 以下の例は GNU/Debian Linux stretch 上の Thunderbird 60.7.1 にて
## 対策
### 概要
上記の設定情報であやふやになっている **ログイン** 関係を見直す。具体的には、__Googleアカウントへのアクセス許可__ を得ればエラーや警告はなくなる。
#### ログイン設定
* (Thunderbird gmail) xxx@gmail.com : アカウント設定 → 送信(SMTP)サーバー : SMTPサーバーを編集 → セキュリティと認証
接続の保護 : SSL/TLS
認証方式 : OAuth2
ユーザー名 : (任意)
* (Thunderbird gmail) xxx@gmail.com → サーバー設定
セキュリティ設定 : SSL/TLS
認証方式 : OAuth2
#### アカウントアクセス許可
以上の設定で、自動的にディフォルトブラウザが開いて、googleへのログインと__アカウントへのアクセス許可__が求められる。
以上。
(↑ 変な表示のままアップ ... Markdownじゃい)
登録:
投稿 (Atom)