趣味のプログラム工房

Linux

Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()

Linuxにてfirewall-configを動かそうとしたら
Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()
のエラーが発生。。。

単純に、文字コードをSJISで動かしていたのが原因みたい。

export LANG=ja_JP.UTF8
の後に、コマンドから、firewall-configを動かすことでで解決。



・・・ただ、そもそもとして、firewalldが使いにくい、どういう風に効いてくるのかよくわからない。
いろいろいじってみたけど、宛先でフィルタをかけることができなかった。
やっぱiptablesのほうがわかりやすいですね。

今なら、2個購入で半額以下らしい

Echo Dot (エコードット) 第3世代 (Newモデル) - スマートスピーカー with Alexa、チャコール
一部屋に1個ほしい製品なので、意外とお買い得かも


それより、FireTVの新しいのが欲しい
新登場 Fire TV Stick 4K - Alexa対応音声認識リモコン付属

2018年11月27日


RHEL(LINUX)でSJISを利用!

Red Hat Enterprise LinuxSJISを使おうとすると、警告が出ます。

# localedef -f SHIFT_JIS -i ja_JP ja_JP.SJIS
character map `SHIFT_JIS'' is not ASCII compatible, locale not ISO
compliant

ご存知のように、LinuxSJISは通常サポートされていません。
が、実は、CP932を指定した場合は、警告が表示されない。

参考:http://blog.tomoattori.info/article/152612890.html


というのも、単に「SJIS」はサポートされないというのは、奥が深く、
例えば、同じSJIS系の正統Shift JISとCP932(MSの拡張版)とでも扱いが違う。


[日本 OSS 推進フォーラム]という何となく権威がありそうなところが出している
『Linux マイグレーションガイド』の中で、
特に、正統 Shift JIS ロケール sjis では、 0x5C=U+00A5 というマッピングのために、オープン系プログラム(C言語、Java など)の動作が保証されない。cp932 などでは問題ない。

とも記載されており、CP932だと、問題が少ないことがわかる。

あと、gcc(C言語)においても、コンパイルの際は、
-finput-charset=cp932 -fexec-charset=cp932
のオプションを指定するので、やっぱりCP932がよい。

というわけで、SJISを使うなら、CP932を使いましょうということですね。
というか、わざわざ正統なSJISを使うほうが問題多い気が、、、SJISを使いたいという場合は、正統なSJISではなくCP932を使っているほうが多そう。



2018年11月03日


Orange pi Lite 2でArmbian【SUITABLE FOR TESTING (WIP)】バージョン、、が動かない

Orange pi Lite 2Armbianが少し新しくなっていたので試してみました。

以前はベータバージョンということで、
「wireless is not yet operational」 と記載がありましたが、
今回のはその表記がありませんでした。

で、ダウンロードして試してみたのですが、動かない。

https://forum.armbian.com/topic/8207-orange-pi-lite2-wireless-support/
にある、動かないビルドと同じ現象。

Starting Kernelで止まってしまい、その後、画面出力が失われる。。。


うーん、いまひとつ、、、


2018年11月03日


スマホはGoogle Homeを超えた。androidスマホ+AutoVoice > Google Home

Google Homeの不満点
①ウェイクワード(ホットワード)が変更不可
 というか、めんどくさいし、かっこ悪い。
②ローカルデバイス(LAN内)との連携が不便。
 →eRemoteの操作ができない。
 →KODIとかDLNAとか、家電とか操作したい、、、
③オリジナルコマンドを追加したい
 →Actions on Googleを使えばできるけど、スマート家電とかローカルのデバイスを操作するのはやっぱり不便。

だが、androidスマホ+AutoVoiceとLinuxマシンを組み合わせれば、Google Homeを超えるガジェットになります。
まあ、ずっと言っていることではあるのですが。。。

我が家では、AutoVoice+Taskerを使って、スマホで拾った音声のテキストを全てLinuxマシンへ飛ばしています。
Taskerでは、逆に「OK,Google」はスルー(何もしない)して、それ以外のワードをLinuxマシンへ転送しています。
その理由としては、、Google Homeもたまに使うため、明示的にOK,Googleでつなげたコマンドのみ処理させたい為なのですが。
ウェイクワードの有無で動かすデバイスを使い分けることができます。


スマホで拾った音声をAutoVoiceで一番に処理させるため、
AutoVoiceにてControl ContinuousをONにする。(重要)

で、LinuxマシンとのインタフェースはHTTP。
Linux側でWEBサーバ(PHP)を立てて、拾ったテキストをPHPで解析してコマンドを実行しています。
・赤外線リモコン(eRemote)操作は「node broadlinkjs-rm」
・音楽を流す場合は、MPDをインストールしてMPCでローカルの音楽を再生
 →スマホから渡ってくるコマンドから「(.*)を再生して」、「(.*)の曲を再生して」などで曲のタイトルやアーティスト名を拾って、mpc searchコマンドで曲を検索して再生。
 (ポイントとして、、「プレイヤー(.*)を再生して」など、タイトルの区切りを分かりやすくするため、ウェイクワード的なのをつけたほうが良い)

と、こんな感じで、オリジナルのコマンドも作れるし、柔軟なことができるのでかなり気に入っています。
ちなみに、ここまでで、Google Homeは一切使っていない!
Androidスマホがあれば、家電のリモコン操作から音楽の再生までできちゃいます。

あと、「交通状況」というキーワードに対して、yahooの路線の運行情報のページから自分が使う路線状況を抜き出して実況させるとかしています。
この取得した情報を出力する際には、Google Homeを使って、音声で出しています。
これには、「google-home-notifier」というモジュールを使用しています。
こんな感じかな。

次の目標、、何ができるんだろう。


連携させるLinuxサーバにはやっぱりこれがおすすめ。
KODIで一台使っちゃってるから、自分ももう一個買おうかな。。。
この用途ならZEROでもいい気もしますが。

2018年01月08日


Google HomeでDLNA

Google HomeDLNAが使えない!!

正直予想外でした。

DLNAが使えれば、PCから音楽を飛ばしたりとかできるのに、、と思っていたのですが、使えないとは。
ただ、スマホのUPNPソフトの中にはレンダラーにGoogle Homeが見えてるのもあるんですよね。はて。

で、気が付いた。
これ、Chromecastと同じプロトコルじゃね?

というわけで、Castするプログラムで試したところ動いたので確定。
あとは、PCから音楽をCastすることができれば、
本来、Google Play Musicとかを使わないと、「デフォルトの音楽プロバイダが選択されていません。」と言われてしまうGoogle Homeですが、PCからCastすることで、任意の曲を再生することができるようになります。

まあ、これだけだと音声で操作ができないので、音声操作がしたければ、スマホのAutoVoice/Taskerで音声のテキストをPCに飛ばして操作とか、音声でPC内の楽曲を検索して再生させるなどの工夫がいりますが。

・・・あれ、これ、別にGoogle Homeで音鳴らす必要なくない??
という落ち。

ちなみに、LinuxからのCastはmkchromecastを使いました。

2017年12月30日


RHEL7でphp+mysql+phpMyAdmin

さて、RHEL7でphp+mysql+phpMyAdminで運用しようとしたらいろいろ躓いたのでメモ。

まず、RHEL7でmysqlを入れようと思ったのですが、、、あれ?
mysqlがインストールされない。
・・・どうも、mysqlの後継のMariadbに置き換わっているようです。
で、Mariadbうまく入らないので、mariadbのリポジトリを追加してインストールが必要みたい。

次にphpMyAdmin
これも、リポジトリからうまく入らなかったので、
wget https://files.phpmyadmin.net/phpMyAdmin/4.5.0.2/phpMyAdmin-4.5.0.2-all-languages.tar.gz
tar -xzvf phpMyAdmin-4.5.0.2-all-languages.tar.gz
cd phpMyAdmin-4.5.0.2-all-languages
でインストール。。。

したのはいいが、動かしてみたら、php5.5以上が必要と言われた。
RHEL7の標準は5.4
これについても、REMIのリポジトリを追加して
yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
yum install --enablerepo=rpmforge,remi,remi-php70 httpd php php-mbstring php-gd php-mysql
でインストール

思った以上にめんどくさかった。。。

ちなみに、php55(php5.5)ではインストールできなかった。






2017年08月20日


Kodi LibreELECを導入

最近、HDDレコーダー(REGZA DBR-W507)を購入したのですが、使い勝手は微妙だったので、自分でも作れないかと思い、「Kodi LibreELEC」を導入してみました。

Android TV→Kodi OpenELECときてようやく使えるのがあったという感じです。
OpenELECも同系統なはずなのですが、アドオンがうまくインストールできなかったので止めた。

Raspberry Pi用のイメージがあるので、動くまでは特に苦労することもありません。
あとは、目的である、HDDレコーダーの代わりとして、TVの録画、TV視聴ができるように、Chinachu/pt2が入っているサーバと接続用に、Harekaze/pvr.chinachuを導入しました。

というか、このために、Chinachu(KodiでTV視聴するためには、必要)を導入しました。
(epgrecからの乗り換えです。めんどくさかった)

Chinachuですが、安定したら結構いいですね。
WEBブラウザ経由でTV視聴できて、スマホからも見れますし。


さて、肝心のKodiですが、これも結構使いやすいです。
HDMI経由ならテレビのリモコンで操作できるのもいいです。
ただ、動画とか、音楽とかがライブラリに反映されない。。。
やり方が悪いのか、原因がよくわかんない。
なので、毎回ファイルサーバからディレクトリからファイルを選んで再生しています。

完成度的にもHDDレコーダー代わりに使えるレベルにはある気がします。
けど、導入のハードルはそれなりに高い。。。


USB接続ドングル型地上デジタルTVチューナー

Raspberry Pi3はいいですね。性能上がって使い道が広がった!
1世代は性能低いし、電源弱いし使い物にならなかったけど、3世代目は十分実用ですね。

2017年07月16日


Android TVを使ってみた

Raspberry Pi 3用にAndroid TVをインストールしてみました。
が、現時点では実用には程遠い感じ。

そりゃ、ネット上にほとんど情報がないわけだ、書くことがない。
使えないです。。

2017年07月16日


Ubuntuでmediatomb import.jsの利用 その3

Fedoraのリポジトリでインストールされるmediatombのimport.jsなのですが、
デフォルトだと、「ディレクトリ」のツリーで登録ができない。

object_root_path?なにそれ?って言われる。

あんまり何も考えていませんが、
http://windbell.dip.jp/?p=174

こちらを参考に設定完了


2017年04月07日


Ubuntuでmediatomb import.jsの利用 その2

さて、おさらい
Ubuntuでmediatomb import.js半分断念

純粋にUbuntuのmediatombでimport.jsを使うのはほぼ無理。
しかし、気が付いた「lxc」を使えばいけるんじゃね?
LXCはコンテナ型仮想化技術と呼ばれるものの1つで、OS上に別の隔離された環境を構築するものです。

VirtualBoxによる仮想マシンもと思ったのですが、すでにSophosのFWに仮想マシンを2台(クラスタ構成)使っているので、これ以上は無理!
という状態だったので、lxcを使って、RHEL系のFedoraを入れて動かすことにしました。

ネットワークの接続にあたって、ホスト?にブリッジ接続を行うのにちょっと手間取りましたが、mediatomb自体はあっさりインストール完了。
あとは、ffmpegについては、[FFmpeg Static Builds]を導入。

これで、import.jsとトランスコードができるmediatombの導入が完了です。

しかし、、、import.jsがうまく動かない!
どうも、バグそう。。。

これについては、再度次回ですかね。


2017年04月02日


次へ