2024年3月19日火曜日

iPlay40 ABNORMAL TEMPERATURE

前から時々出ていたんだけど、最近頻発して出るようになってしまった。

出始めたときは、MX Player Pro で動画鑑賞をしていた時なので、MX Player Pro はけっこうCPU負荷が高いのかなぁ? なんて思っていましたよ。(MX Player Pro は悪くありませんでした。)

このメッセージが表示されると数秒後にシャットダウンします。再起動をすると問題なく使えていたのですが、最近は何もしていない状態でも発生するほど状況が悪くなってきました...

もう寿命かなぁなんて思っていたのですが、youtube を散策して対応している人がいないか探してみました。

最初に「【わかりやすい】ALLDOCUBE iPlay の充電不良修理をやさしく説明します」でばらし方を見たのですが、「ホットボンドのようなもので付いている。」とのことでしたので、もしかすると通常のスマホにリヤパネルとは違う留め方なのかと思いましたよ。

さらに検索を進めるとそのものずばりの動画が。「アイプレイ40の熱暴走・修理と分解 ABNORMAL TEMPERATURE | alldocube iplay 40 Tablet」が非常に参考になります。かいせつやさん、色々とアドバイスありがとうございました。

で肝心のリヤパネルですが、最終的にスマホ同様両面テープで留まっていることが確認できました。(もしかするとロットによって違う可能性はありますが。) 幅は場所で少々違うのですが、テープの伸びとか考慮すると 2mmの両面テープでしょうか? ブチルタイプではなかったです。

長辺部分をドライヤー等で温め、両面テープの粘着を弱めると簡単に剝がれると思います。

今回はそこが分からなかったので、少々強引にこじ開けました。ちょっとリヤパネルに傷がついて残念。ケースに入れちゃうので見えないからいいけど。

SoC が実装されている箇所まで分解してみました。

自分のも単純にヒートシンク(?)を兼ねた金属プレートでカバーされているだけでした。コスト削減なのか手抜きなのか... こんなんじゃ、まともに冷えないと思うんだがなぁ。

しかも、手で触った感じだと SoC の部分は若干低くなっている... これでは金属プレートに触れず、ほぼ自力放熱しているだけっス。今まで問題なかったけど、微妙に筐体がゆがんで空きができるようになってしまったのか?!

CPUグリスを塗布して冷却も考えたのですが、お手軽にシリコンサーマルパッドを貼って対策とします。熱伝導係数を見ると 3.2 W/m-k と一般的なCPUグリスと同程度。厚さも0.5mmといい感じ。冷却が間に合わないようだったら別の手を考えることにします。(といっても、熱伝導率の高いCPUグリスに変えるぐらいしか手は無いですが...)

はい、こんな感じで貼ってみました。撮り忘れましたが、段差解消用に SoC の上にも一枚貼ってあります。12mm x 12mm 程度で大丈夫でした。(結果的に SoC 部分は 1mm厚になるけど大丈夫だろうと判断。)

さて効果のほどですが、予想外に冷えます。シャットダウンが発生したときの画面コピーを取り忘れているので、記憶での比較になりますが

対策前:40度強(シャットダウン時はさらに上がる)
対策後:30度弱

概ね10度ぐらい下がったことになります。ぼちぼち買い替えようと思っていたのですが、調子が良くなったので延命することにします。

そうなると欲も出てきて、ちょっと弱ったバッテリを交換してリフレッシュ! なんてことも考えたりしています。リヤパネルはバッテリ交換をどうするか決めてからちゃんと貼ることにします。それまではカバーのTPU部分で運用と。特に外れたりもしないので。

まぁ、交換用のバッテリもピンキリなので、替えたから初期の性能に近くなるかというと眉唾部分もあったりするんですが。


2024年2月29日木曜日

yt-dlp-gui を使ってみた

通勤時にタブレットでyoutube動画を見たく、yt-dlp-gui を使ってみました。お勧めできる使い方ではないです。CM収入が無くなると思いますので、youtubeの運営上好ましくない...

別の方が作られたインストーラもありますが、C:\Users\[ユーザ名]\AppData\Local にインストールされるので、自分のスタンドアローン版置き場(c:\bin)へのセットアップを行いました。といっても、ダウンロードをしたファイルを配置するだけですけど:-)

c:\bin\yt-dlp-gui 配下にダウンロードしたファイルを配置します。自分の場合はこんな感じ。


ffmpeg.exe とか無いじゃん?! と思われる方もいると思いますが、別途 TVerRec を使っており、こちらが起動時に更新の有無を確認して最新版が TVerRec配下の binフォルダーにインストールされます。

で、yt-dlp-gui.yaml を編集しこんな感じで使っております。Path~ だけ編集すればok。

# Paths
TargetPath: C:\usr\Movies\HD\
PathYTDLP: C:\bin\TVerRec-master\bin\youtube-dl.exe
PathAria2: C:\bin\yt-dlp-gui\aria2c.exe
PathFFMPEG: C:\bin\TVerRec-master\bin\ffmpeg.exe
PathTEMP: '%YTDLPGUI_TARGET%'
# Window
AlwaysOnTop: false
RememberWindowStatePosition: true
RememberWindowStateSize: true
Top: 109.60000000000001
Left: 8.8
Width: 595.2
Height: 438.40000000000003
Scale: 100
# Network
ProxyEnabled: false
UseCookie: WhenNeeded
CookieType: Chrome
# Advance
UseAria2: true
EmbedThumbnail: false
EmbedChapters: false
EmbedSubtitles: false
ModifiedType: Modified
# Options
IsMonitor: true
SaveThumbnail: false
UseNotifications: true
AutoDownloadAnalysed: false
# Last Checking Update Date
LastVersion: 2023.03.28
LastCheckUpdate: 2024-02-28



2024年2月9日金曜日

Perl でスクリプトの名前とか置いてある場所を探す

 C だと argv[0] に実行コマンドが入るんだけど、Perl だと引数のみなのですね。ちょっと必要に迫られて調べたところ、こんな感じで解決しました。

use FindBin;

sub getModulePath {
  return $FindBin::Bin . '/' ;
}

sub getModuleName {
  return $FindBin::Bin . '/' . $FindBin::Script;
}

サブルーチンにせず、そのまま書くのもあり。備忘用に残しておく。

2023年5月31日水曜日

Zabbix で 1000件を超えたホスト名が表示されない。

 



調子に乗って大量のホストを登録したわけではないのですが、1000件を超えると Zabbix の管理画面からホストの表示ができなくなることがわかりました...

SQL に詳しい人だったら SQLを操作してサクサクと上限値を変えることができるんでしょうが、自慢ではないがさっぱり自信がありません。

どうやら search_limit に設定されている値で表示件数が決まるようです。昨今の機種はスペック的に上限値を変えても問題はないと思うのですが、昔は 1000件辺りが表示のボーダーラインだったのでしょうか。

で、現在の search_limit の値を確認する、及び変更するスクリプトを作ってみました。1000 → 3000 へ値を変えて運用していますが、今のところ特に問題は起きておりません。お約束ですが、自己責任でお願いします。

search_limit_get.sh

##################################
### Zabbix の表示数を確認する  ###
##################################
ZabbixWeb=http://192.168.1.248/zabbix/

PRE_IFS=$IFS
IFS=$'\n'
auth=`bash zabbix_token_get.sh`
tempNAME=$1
curl -s -d '
{
    "jsonrpc": "2.0",
    "method": "settings.get",
    "params": {
        "output": "extend"
    },
    "auth": "'${auth}'",
    "id": 1
}
' -H "Content-Type: application/json-rpc" ${ZabbixWeb}api_jsonrpc.php | gawk '-F"' '{print $14}'
IFS=$PRE_IFS


2023年5月29日月曜日

Zabbix APIで楽してホストを登録する

 Zabbix APIがあるので、ファイル一覧を作成してホストの登録をすることとする。

作成するスクリプトは参考にしたwebページに掲載されているファイル名のまま。けっこう色々なサイトで公開されていますね。

デフォルトの管理者名が「Admin」になっていますが、うちの場合小文字の「admin」を他機器で使用しています。「Admin」は残したまま「admin」を Super Admin role で追加してあります。

以降、管理者は「admin」を使うこととします。

スクリプトは /root/shell/zabbix へまとめて置いてあります。

で、ホストを登録するには

  • 監視対象ホスト作成時に所属先ホストグループを1つ以上選択しなければならない

という決まりがあります。ホスト作成時に所属先ホストグループがないとエラーになってしまいホストを登録できません。

どんな風にホストグループを登録するかですが、会社の組織に沿って作ってみました。青山本社と相模原支社がありますので、それぞれの機器に対するグループを作ってみました。

作った後に気が付いたのですが、Zabbix の監視を停止したいことがあります。

具体例でいうと法定停電時の監視停止です。停電の日は違うので、青山全域・相模原全域を個別に監視停止できるようにできると便利だなと後から思いました。

まぁ使い勝手は後々考えるとして、取り敢えずはホストの自動登録ができるところまで進めることにします。

認証トークンの取得

認証トークン」とはざっくり説明すると 「Zabbix APIで、ユーザーのIDとパスワードでログイン認証する代わりに必要な32文字の文字列」です。

Zabbix操作時に IDとパスワードを入力する代わりに、JSONクエリの "auth"パラメーターにユーザーの認証トークンを指定します。

zabbix_token_get.sh

#!/bin/bash
#########################################
## Zabbix token get                    ##
#########################################
ZabbixWeb=http://192.168.1.248/zabbix/
#上記IPは自分の環境に合わせて変更
#ログインIDとPWも適宜変更のこと
curl -s -d '{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "admin",
        "password": "adminのパスワード"
    },
    "id": 1,
    "auth": null
}' -H "Content-Type: application/json-rpc" ${ZabbixWeb}api_jsonrpc.php | gawk -F'"' '{print $8}'

2022年12月24日土曜日

Xiaomi Smart Band 6 の文字盤を変えてみる

自分で文字盤を作る記事ではありません。誰かに作っていただいた文字盤を Band 6 に適用する記事です。

Band 4 のときも変えようと思ったことはあるのですが、面倒くさかったのでそのままにしておりました。


なんか仕様が変わり簡単になったらしいとの噂を聞きつけたので、文字盤変更にチャレンジをしてみました。

たしかに簡単、ただし条件があり androidアプリ Zepp Life のバージョンが 6.3.x までしか通用しません。6.4.x 以降は仕様が改悪されローカルバンドディスプレイを選ぶことができなくなってしました。(6.5.x で元に戻ったかは不明。アプリのバージョンを上げて落とすの面倒なんで確認していません。)

【用意するもの】
文字盤ファイル用のファイル:拡張子が bin 
選択時表示用のファイル:拡張子が gif
インストール用の設定(?)ファイル:拡張子が xml

【サンプルファイル】
NERV の文字盤を Googleドライブに上げておきました。よろしかったらお使いください。著作権上問題があるようでしたら削除します。

【配置場所】
PC と android の場合は次のようになります。iPhone は分かりません。

エクスプローラ等で PC → android端末 → 内部ストレージ → Android → data → com.xiaomi.hm.health → files → watch_skin_local に移動する。


ダウンロードして解凍したフォルダーごとコピーする。ここから落とした場合、nerv_eng 配下に以下のファイルがあるはず。

あとは android端末の Zepp Life を起動し、プロフィール → Mi スマート バンド 6 → ストア → マネージャー → ローカルバンドディスプレイ から変えたい文字盤をタップし、[文字盤を同期]タップで完了。

【違う文字盤に変えたい】
  1. binファイルを公開しているサイト(例えばここ)に行き、bin ファイルをダウンロードする。
  2. ダウンロードしたファイルを適当な名前に変更。そのままでもいいんですが、長い名前が多いので変えたほうが何かと楽。ここでは abc.bin に変えたと仮定して進めます。
  3. ローカルバンドディスプレイ の表示用gif を作成。1. のサイトだと gifファイルの表示もされているので、画像をコピーして gifファイルを作ると楽かも。ここでは abc.gif で作成したと仮定して進めます。
  4. infos.xml を編集する。<name> ~ </name> の箇所を変えるだけで ok です。他は変えません。ここでは <name>abc</name>に変えたと仮定して進めます。
  5. フォルダー abc を作成し、bin・gif・xml ファイルをフォルダー内にコピーします。
  6. android端末の watch_skin_local に abcフォルダーごとコピーする。
以上で完了です。同期とかできないときは、Band 6 に同期させてある文字盤の要らないものを削除しましょう。容量に制限があるので、何個もコピーしておくことはできません。概ね2~3個程度だったと思います。






2022年12月22日木曜日

Zabbix 6.0 をインストールしてみる

稼働機器の監視用に Zabbix 6.0 をインストールしてみました。設定は別記事で書くことにします。

スモールスタートで、どんな事ができるかの確認用となります。ゴールとしては、稼働機器に対し

  • pingによる稼働確認
  • 障害発生時のメール送信

とします。

インストール対象の OSは RockyLinux 8 です。

【apacheのインストールと起動】
dnf install httpd
systemctl start httpd
systemctl enable httpd

【epelリポジトリの追加】
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

【php関連のインストール】
 dnf install php php-fpm php-mysqlnd php-ldap php-bcmath php-mbstring php-gd php-pdo php-xml

【MariaDBのインストールと起動】
MySQL ではなく MariaDB を使うこととします。Zabbix は DB のバージョンにうるさいので、デフォルトの 10.3 から 10.5 に切り替えてインストールします。
※依存関係のインストールで perl関連がゴッチャリ追加されます。

dnf module list mariadb
メタデータの期限切れの最終確認: 0:10:11 時間前の 2022年12月21日 23時17分56秒 に実施しました。
Rocky Linux 8 - AppStream
Name                 Stream                Profiles                               Summary
mariadb              10.3 [d]              client, galera, server [d]             MariaDB Module
mariadb              10.5                  client, galera, server [d]             MariaDB Module

dnf module enable mariadb:10.5
dnf install mariadb mariadb-server mariadb-devel
mysql --version (10.5.x なことを確認)
systemctl start mariadb
systemctl enable mariadb


【MariaDBのセキュリティ設定】
mariadb-secure-installation
デフォルトが 'Y' なので、Enterキーの押下のみでok。ただし、Change the root password? と聞かれた場合はお好みのパスワードをセットすること。(パスワードを設定しないと先に進みません。)

【Zabbixリポジトリの追加】
追加用のリポジトリを https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64 で確認。複数あると思うので、最新のものを設定することとする。
dnf install https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm

【Zabbix及び関連パッケージのインストール】
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-apache-conf zabbix-sql-scripts

【/etc/php-fpm.d/zabbix.conf の設定変更】
php_value[date.timezone] = Asia/Tokyo
を最下行に追加し保存して終了

【/etc/php.ini の設定変更】
902行目あたり、行頭の ; を外しタイムゾーンの設定をする。
date.timezone = Asia/Tokyo
に変更し保存して終了

【php-fpm の起動】
systemctl start php-fpm
systemctl enable php-fpm

【Zabbix用データベースの作成】
mysql -uroot -p

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 10.6.10-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.002 sec)

MariaDB [(none)]> CREATE USER zabbix@localhost IDENTIFIED BY 'TEST1234';
Query OK, 0 rows affected (0.005 sec)

MariaDB [(none)]> GRANT ALL ON zabbix.* TO zabbix@localhost;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> quit;
Bye

※パスワードは TEST1234 にしてみました。 

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u zabbix -p zabbix
Enter password: (この例では TEST1234 ですね)

mysql -u zabbix -p zabbix
Enter password: (この例では TEST1234 ですね)

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 17
Server version: 10.6.10-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [zabbix]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| zabbix             |  ← zabbix があること
+--------------------+
2 rows in set (0.002 sec)

MariaDB [zabbix]> use zabbix;
Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
(中略)
| widget                     |
| widget_field               |
+----------------------------+
173 rows in set (0.004 sec)  ← 概ね170個程度あればok
MariaDB [zabbix]> quit;
Bye

【zabbix_server.conf の設定変更】
129行目あたり、行頭の # を外し、設定したパスワードを記述する。
DBPassword= (この例では TEST1234 ですね)
保存して終了

【zabbix_server の起動】
systemctl start zabbix-server
systemctl enable zabbix-server

【Zabbix Agent 2のインストール】
Zabbix Server自体をエージェント監視してみる。
dnf install zabbix-agent2

【/etc/zabbix/zabbix_agent2.conf の設定変更】
自身の監視のみのため特になし。好みにより144行目あたりの Hostname を変更する。

【Zabbix Agent 2の起動】
systemctl start zabbix-agent2
systemctl enable zabbix-agent2

【net-snmp のインストール】
dnf install net-snmp net-snmp-utils

【snmpd.conf  の設定変更】
テストなのでデフォルトでも ok。ちょっとセキュリティを高めたい場合は 14行目あたりの default を特定のセグメント、コミュニティ名をお好みに変更する。

トラップも受信したいときは /etc/snmp/snmptrapd.conf の編集と snmptrapd の起動・有効化を忘れずに。 

【net-snmp の起動】
systemctl start snmpd
systemctl enable snmpd

ここまでで一通り完了。次は GUI の管理画面から Zabbix の設定を行います。ブラウザを起動し、次の URL を入力。
http://[Zabbixをインストールした機器のIPアドレス]/zabbix

ようこそ
デフォルトの言語を日本語にして[次のステップ]をクリック。(日本語必須ではありませんが、せっかく多言語対応しているので使いましょう。)


前提条件のチェック
すべて OK が表示されていることを確認。スクロールして一番下まで確認したら[次のステップ]をクリック。

データベース接続設定
DBの認証情報はHashiCorp Vaultから取得することも可能ですが、今回は「プレーンテキスト」を選択し、Zabbix自身に認証情報の設定を行います。「パスワード」は各人の設定したものを入力し(この例では TEST1234 ですね)[次のステップ]をクリック。


設定
[Zabbixサーバー名]に任意の名前を設定。
「デフォルトのタイムゾーン」の箇所に、「(UTC+09:00) Asia/Tokyo」を選択し、「次のステップ」をクリック。
※「デフォルトのテーマ」は Blue で。別のものに変えたいときはテーマを選ぶと画面が変化するのでお好きなものを。



インストール事前準備概要
設定した内容が表示されるので、問題がなければ「次のステップ」をクリック。



インストール
おめでとうございます!Webインターフェースのインストールが終了しました。
が表示されたら[終了]をクリック。

お疲れさまでした。