ホーム » コンピュータ » Linux (ページ 20)

Linux」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

IPv6パススルーをOFF

自宅内では、外部とはつながっていないけど、IPv6 の管理を行っていて、それなりにうまく動いていると思っていた。(自宅内のみの、IPv6 DNS , DHCPv6 , ssh) しかし、久々に持ち帰った PC が、自宅サーバに繋がらない。原因は、根っこの自宅ルータが、IPv6 機能を持っていて RA 情報を流してくれるため、DHCPv6 を動かしているのに無視されている。

根っこのルータの配下につながっている、Buffalo のルータの IPv6 パススルーの設定をOFF にした。これで、自宅サーバの DHCPv6 情報を使ってくれるようになった。

Squidフィルタを撤去

子供のコンテンツフィルタとして、自作のフィルタを動かしていたけど、Squid の設定ファイルが随分古くなっていたので、フィルタ関連の設定やファイルを撤去。

cec-client と cec-o-matic

自宅のAV機器の制御は、eremote-RM で色々できるようになったけど、cec-client もうまく使えば、便利な使い方ができるな

$ echo "tx 2f:36:00:00" | cec-client -d 1 -s # 全部の電源を切る(standby)
$ echo "tx 20:44:xx:00" | cec-client -d 1 -s # テレビに xx の制御コードを送る
$ echo "tx 2f:82:xx:xx" | cec-client -d 1 -s # xx:xxのデバイスに入力切替

だけど、cec-client は、起動時にデバイス調査の処理を色々するので、反応が悪い(1.5秒ほどのタイムラグ)。このため、サクサクとリモコン操作という感じにならない。

入力の切替は、リモコンでもできるけど、押すたびに次の入力に変わる相対的変更ため、チューナーに切り替えるといった絶対的な切替えができない。この点、”tx 2f:82:xx:xx” は絶対的入力指定ができるので、cec-client の価値がある。

postfix,dovecotのSSL化

子供の進学で自宅を離れ、出先でも自宅サーバにメールの読み書きがあれば、様子を伺えるんだけど、自宅サーバのメール関連のSSL化が不完全だったので、子供の引っ越し先に泊まった際に見直し。

すでに、dehydrated を Web サーバで導入済みなので、それを postfix , dovecot に利用させるだけなんだけど、一度失敗してたのでリトライ。

((/etc/apache2/site-enable/010-default-ssl.conf))
- SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
- SSLCertificateKeyFile   /etc/ssl/private/ssl-cert-snakeoil.key
- SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt
+ SSLCertificateFile      /var/lib/dehydrated/certs/MYDOMAIN/cert.pem
+ SSLCertificateKeyFile   /var/lib/dehydrated/certs/MYDOMAIN/privkey.pem
+ SSLCertificateChainFile /var/lib/dehydrated/certs/MYDOMAIN/chain.pem

((/etc/postfix/main.cf))
- smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
- smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
+ smtpd_tls_cert_file=/var/lib/dehydrated/certs/MYDOMAIN/cert.pem
+ smtpd_tls_key_file=/var/lib/dehydrated/certs/MYDOMAIN/privkey.pem

((/etc/dovecot/conf.d/10-ssl.conf))
- ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
- ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key
+ ssl_cert = </var/lib/dehydrated/certs/MYDOMAIN/cert.pem
+ ssl_key = </var/lib/dehydrated/certs/MYDOMAIN/privkey.pem

これで、メールサーバのアカウント登録で、「登録されていない安全でない証明書を使うか?」といった表示もなくなるし、Windows の標準メールでも登録ができるようにできた。

 

eRemote RM mini を導入

先日の OS 更新で動かなくなった、パソコン制御の赤外線リモコン Tira2 の代わりに、eRemote RM mini を購入した。

python-broadlink をインストール

自宅サーバでは、朝の「めざましじゃんけん」の自動化などの処理とか、ブラウザでリモコン操作とかやってるので、まずは linux 環境から、制御できるようにこの記事を参考に設定。

((インストール))
$ sudo aptitude install python-dev python-pip
$ sudo pip install broadlink

((リモコンを探す))
$ ./broadlink_discovery --device
この出力の タイプ,ホスト名,MACアドレスの行
"0x2712 192.168.xxx.yyy XXXXXXXXXXXX"
を eremote.device みたいに保存

((リモコン学習))
$ cd $インストール先/python-broadlink/cli
$ ./broadlink_cli --device @eremote.device --learnfile tv-power

((リモコン送信))
$ ./broadlink_cli --device @eremote.device --send @tv-power

ブラウザのリモコン操作

まずは、使っていたリモコン、TV, DVDレコーダ, CATVセットトップボックス の機能を学習させる。

Tira 用のブラウザページを、eRemote 用に修正。実際の送信部分の処理をすげ替えるだけなので、簡単に終了。

OSの更新で、USBRH, Tira2が動かなくなった

Linux/Debian で、ホームオートメーションとして10年前から使っていた、USBRH(温湿度センサー)、Tira2(赤外線リモコン送受信機)が動かなくなった。

部屋の温度を nagios,munin でモニタリングしたり、部屋のAV機器をリモコン操作できるようにしていたけど、Debian/Buster/sid を使っているもんだし、USB デバイスの扱いが新しいデバイス向けに厳格になったんだろうな。古いハードウェア扱いになったのか、デバイスが認識されず /dev/usb の中からも消えてしまった。まあ仕方ないか。

技を使えば認識できるようになるとは思うけど、普通のホームデバイス使ったほうが楽だよな。Siri や Google Home mini と連動させて、それなりに便利だったんだけど。

仕方がないので、Amazonで売れ筋で安いやつということで、eRemote mini を発注した。

 

PowerShellおちるぞ…

Mac や Linux で Microsoft の PowerShell が動くようになったということで、ちょいとテスト。

$ curl https://packages.microsoft.com/keys/microsoft.asc ¥
       | sudo apt-key add -
$ sudo sh -c 'echo "deb [arch=amd64] ¥
  https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main" ¥
  > /etc/apt/sources.list.d/microsoft.list'
$ sudo aptitude update
$ sudo aptitude install powershell

んで、使い方もよく知らないけど、ひとまず pwsh 起動。

root@host:/home/foobar# pwsh
PowerShell v6.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /home/ei/t-saitoh> Segmentation fault
root@host:/home/foobar#

起動するけど、30秒ほどほっておくと、勝手に Segmentation Fault で落ちる。
役に立たんじゃん。早々に、”aptitude purge powershell”。

pychromecastを使ってgoogle homeにキャスト

Google Homeを活用を模索するなか、Google Home は chromecast のスピーカーでもあるので、パソコンからchromecastの制御の記事を探してみた。
すると、pychromecast の記事を発見。

$ sudo aptitude install python-pychromecast

記事を参考に python script をコピペしたけど開発がすすんで関数名などが変更となっているようで、github 側の記事をみてちょっとだけ修正。pythonをいつも使っていないので、chromecast の試行錯誤の前に、漢字コードの扱いの方で四苦八苦。

#!/usr/bin/python2                                                                                                  
# -*- coding: utf-8 -*-                                                                                             
from __future__ import print_function
import sys
import re
import time
import pychromecast
#------                                                                                                             
ddev = ""
#------                                                                                                             
args = sys.argv
args.pop(0)

dev = ""    # device                                                                                                
url = ""    # chromecast URL                                                                                        
mtype = ""  # media type                                                                                            

# コマンドライン引数からキャスト内容を取得                                                                          
if len( args ) == 3 :
    dev, url, mtype = args
elif len( args ) == 2 :
    dev, url, mtype = [ ddev ] + args
elif len( args ) == 1 :
    dev = ddev
    url = args[0]
    if re.match( r'\.mp4$' , url ) :
        mtype = 'video/mp4'
    elif re.match( r'\.mp4$' , url ) :
        mtype = 'audio/mp3'
    elif re.match( r'\.jpg$' , url ) :
        mtype = 'image/jpeg'
    elif re.match( r'\.png$' , url ) :
        mtype = 'image/png'

# デバイス一覧を取得                                                                                                
chromecasts = pychromecast.get_chromecasts()
# 指定したデバイスを見つける                                                                                        
cast = next( cc for cc in chromecasts if cc.device.friendly_name.encode( 'utf-8' ) == dev )
cast.wait()
# キャスト開始                                                                                                      
mc = cast.media_controller
mc.play_media( url , mtype )
mc.block_until_active()

Symbol’s value as variable is void: last-command-char

Emacs25 の anthy.el で、”Symbol’s value as variable is void: last-command-char”のエラーがでるようになった。

他の方の記事をみて、$HOME/.emacs.d/init.el に以下を書き加える。

(define-obsolete-variable-alias
   'last-command-char
   'last-command-event
   "at least 19.34") 

aptitude purge nano

Linux で vipw とか visudo とかのコマンドを実行する時に、”vi”という名前のくせに、エディタ nano が起動して相変わらず使い方が判らない。

“export EDITOR=vi”とかをやりながら使っていたけど、よく考えたら nano なんて使ってないし、消せば alternative 機能が vim.tiny に切り替えてくれる。 だったら素直に “sudo aptitude purge nano” でいいじゃん。

Google 検索

My Google   Yahoo

Microsoft

ファンサイト