2019年7月30日火曜日

トンボ

オオシオカラトンボ
ギンヤンマ♂♀
ウチワヤンマ

ウスバキトンボ?



2019年7月25日木曜日

たまにひっかかる、改行DOS

症状:
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) 確認 :
$ 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なのかtimidity-daemonなのか、まだわからないが、他のプログラムが接続できないのは自明。

 2) timidityプロセス停止 :
とりあえず止めてみる。
$ sudo systemctl stop timidity     停止
$ sudo systemctl disable timidity  自動起動停止
(systemctlのほか、fuser, kill,や、システムモニタで検索して終了させる等の方法がある。)

システムモニタ KSysGuard

 3) 再確認 :
$ 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
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]と[出力]を合わせれば音が鳴る。
・・・と思う。