Volumioのログをローテートする

お家の音楽再生にはRaspberry Pi Zero W+Volumioを使っている。SDカードが壊れたとか更新したら新しい版のバグで動かなくなったとかはあったけど、そういう突発的な事故以外は基本的には調子が良い。メンテナンスもほぼ不要なので「管理」もほぼ不要。
気に入らないのは、ログの処理が手抜きになっているので使い続けるとログでファイルシステムが溢れてしまうこと。家のRaspberry Pi Zero Wの環境だと/var/logは21MBしか割り当てられていないので使い方によっては数日程度で溢れることも。

Volumioの監視グラフ 1
Prometheus+Node Exporterで監視しているVolumioの状況。右下のグラフが気になる。(次)

Volumioの監視グラフ 2
Volumioを再起動して翌日からウェブラジオを5日以上連続視聴していたときのディスクスペースの監視グラフ。
紫色が /var/log の使用状況。5日で8%から24%まで16%増加している。つまり、このままこのウェブラジオの視聴というか再生を続けたら1ヶ月ほどで /var/log は溢れてしまうことになる。

Volumioでは幾つかのログが記録されるが、特に肥大し易いのは /var/log/volumio.log 。
このログファイルにはVolumioで操作した内容やそれに伴う処理がバカスカ書き込まれる。統計情報にも使えるので要らないというものではない。このログが適切に処理されずに放置されているのでファイルシステムが溢れる。以前はログがいっぱいになるとVolumioが動かなくなった記憶があるが、最近はそれで動かなくなるということは無いみたい。ただし、ログが追記できない状態のままになる。一応、Volumioを再起動するとログファイルは消えるので問題は解消されるのだが、正しくログを出力したければ、ある程度使い続けたら必ず再起動しなければならない。これはスマートじゃない。

VolumioはLinuxなので、システムのlogrotate(ログローテート)を使ってログファイルを管理すれば良いんじゃね?ということになるよね?
残念なことにVolumioではログローテート用の設定ファイルの一部は存在するようだけどlogrotateの実体が存在しない。
そこで、今回はログローテートのインストールと設定。

logrotateのインストール

$ apt-cache search logrotate              ←リポジトリに存在するlogrotateというキーワードを含むパッケージを検索
erlang-lager - logging framework for Erlang
logrotate - Log rotation utility             ←これをインストールしたい

パッケージにlogtotateが含まれるようなのでそれをインストールする。

$ sudo apt install logrotate

設定

logrotateのメインの設定ファイルは /etc/logrotate.conf だが、 /etc/logrotate.d ディレクトリの中の設定ファイルもインクルードされるということになっているので、 /etc/logrotate.conf は触らず、 /etc/logratate.d の下にvolumioというファイルを作成してそこに設定を書く。

/etc/logrotate.d/volumio (新規作成)
1
2
3
4
5
6
7
8
/var/log/volumio.log {
  daily            #←毎日ローテートする
  missingok            #←ファイルが無くてもエラーにしない
  rotate 1             #←ローテートする世代数 この場合は1世代だけ残す
  copytruncate         #←新しいファイルを作るのではなく既存ファイルを空にする
  nocompress           #←ローテーションしたファイルを圧縮しない
  notifempty           #←ログが空ならローテートしない
}
$ sudo logrotate -dv /etc/logrotate.conf

確認の実行でvolumioのログについてエラーにならないこと。

手動実行

$ sudo logrotate /etc/logrotate.conf

実際にログがローテートするので注意。
-fオプションを付けて強制実行してみるのもアリ。

確認

$ cat /var/lib/logrotate/status
logrotate state -- version 2
"/var/log/dpkg.log" 2019-9-23-6:0:0
"/var/log/apt/term.log" 2019-9-23-6:0:0
"/var/log/apt/history.log" 2019-9-23-6:0:0
"/var/log/samba/log.smbd" 2019-9-23-6:0:0
"/var/log/alternatives.log" 2019-9-23-6:0:0
"/var/log/wtmp" 2019-9-24-0:26:42
"/var/log/volumio.log" 2019-9-24-0:26:42         ←volumio.logがあることを確認
"/var/log/btmp" 2019-9-24-0:26:42
"/var/log/exim4/paniclog" 2019-9-23-6:0:0
"/var/log/samba/log.nmbd" 2019-9-23-6:0:0
"/var/log/exim4/rejectlog" 2019-9-23-6:0:0
"/var/log/exim4/mainlog" 2019-9-23-6:0:0
"/var/log/samba/log.winbindd" 2019-9-23-6:0:0

ログのあるディレクトリを見てみる。

$ ls -l /var/log
total 44
-rw-r--r-- 1 root    root        5560 Sep 24 00:53 boot.log
-rw-rw---- 1 root    utmp           0 Sep 24 01:22 btmp
-rw------- 1 root    utmp           0 Sep 24 00:53 btmp.1
-rw-r--r-- 1 root    root         428 Sep 24 01:15 mpd.log
-rw-r--r-- 1 volumio volumio        0 Sep 24 01:22 volumio.log          ←volumio.logは空になる
-rw-r--r-- 1 volumio volumio 11526898 Sep 24 01:22 volumio.log.1       ←volumio.logの1世代前が作られている
-rw-rw-r-- 1 root    utmp           0 Sep 24 01:22 wtmp
-rw-rw-r-- 1 root    utmp        1920 Sep 24 00:57 wtmp.1

volumioを操作(楽曲再生・停止など)してから再度ファイルサイズを確認する。

$ ls -l /var/log
total 44
-rw-r--r-- 1 root    root        5560 Sep 24 00:53 boot.log
-rw-rw---- 1 root    utmp           0 Sep 24 01:22 btmp
-rw------- 1 root    utmp           0 Sep 24 00:53 btmp.1
-rw-r--r-- 1 root    root         428 Sep 24 01:15 mpd.log
-rw-r--r-- 1 volumio volumio        15031 Sep 24 01:22 volumio.log          ←volumio.logのファイルサイズが増えること
-rw-r--r-- 1 volumio volumio 11526898 Sep 24 01:22 volumio.log.1
-rw-rw-r-- 1 root    utmp           0 Sep 24 01:22 wtmp
-rw-rw-r-- 1 root    utmp        1920 Sep 24 00:57 wtmp.1

ログをローテートした後に/var/log/volumio.logにログが書き込まれなければ失敗。これだけはしっかり確認した方が良いでしょう。
一応、logrotateの設定でcopytruncateを指定しているので正しく動作する筈。

自動実行

手動で実行してログがローテートできても、これが毎日自動的に行われなくては意味がない。
でも、Volumioのlogrotateパッケージはlogrotateをサービスとして登録してくれない。

参考までにarmbianのlogrotateサービス用ファイルを以下。(2つ)
/lib/systemd/system/logrotate.service
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[Unit]
Description=Rotate log files
Documentation=man:logrotate(8) man:logrotate.conf(5)
ConditionACPower=true

[Service]
Type=oneshot
ExecStart=/usr/sbin/logrotate /etc/logrotate.conf

# performance options
Nice=19
IOSchedulingClass=best-effort
IOSchedulingPriority=7

# hardening options
#  details: https://www.freedesktop.org/software/systemd/man/systemd.exec.html
#  no ProtectHome for userdir logs
#  no PrivateNetwork for mail deliviery
#  no ProtectKernelTunables for working SELinux with systemd older than 235
#  no MemoryDenyWriteExecute for gzip on i686
PrivateDevices=true
PrivateTmp=true
ProtectControlGroups=true
ProtectKernelModules=true
ProtectSystem=full
RestrictRealtime=true
/lib/systemd/system/logrotate.timer
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[Unit]
Description=Daily rotation of log files
Documentation=man:logrotate(8) man:logrotate.conf(5)

[Timer]
OnCalendar=daily
AccuracySec=12h
Persistent=true

[Install]
WantedBy=timers.target

これで systemctl enable logrotate とでもすればよいのでしょうか?(試していない)
ただ、cronをインストールしていれば、logrotateをサービスとして登録する必要は無いので、今回はcronを使うことに。
なお、Volumioではcronも標準ではインストールされていないので別途インストールが必要。

[参考] cronのインストール

$ sudo apt-cache search cron    ←リポジトリにある「cron」の文字列が含まれるパッケージを検索
anacron - cron-like program that doesn't go by time
python-apscheduler - In-process task scheduler with Cron-like capabilities
python3-apscheduler - In-process task scheduler with Cron-like capabilities
apticron - Simple tool to mail about pending package updates - cron version
apticron-systemd - Simple tool to mail about pending package updates - systemd version
bcron - Bruce cron system
cron - process scheduling daemon                                       ←これをインストールする
cron-apt - automatic update of packages using apt-get
cron-deja-vu - filter for recurring cron mails
cronic - Bash script for wrapping cron jobs to prevent excess email sending
cronolog - Logfile rotator for web servers
後略

$ sudo apt install cron        ←cronのインストール 依存パッケージについて何か聞かれたら y 
/etc/crontab (1行追加)
0  0  * * *   root    logrotate /etc/logrotate.conf  >/dev/null 2>&1

毎日0:00にログローテートを実行する場合。

少なくとも日付が変わった後に正しくログローテートが実行されていることを確認する。

Volumioのタイムゾーン設定を変更していない場合は、初期値はUTCなので0:00のイベントは日本時間では9:00に実行されます。 タイムゾーンの変更は以下。
$ sudo  dpkg-reconfigure tzdata

少し待たされてメニューが2画面表示されるのでそれぞれAsiaとTokyoを選択する。

Current default time zone: 'Asia/Tokyo'
Local time is now:      Thu Sep 26 20:10:24 JST 2019.
Universal Time is now:  Thu Sep 26 11:10:24 UTC 2019.

こんな感じ。
一応、cat /etc/timezoneで内容が Asia/Tokyo になっていることを確認しておく。
Volumioのシステムを再起動する。

$ ls -l /var/log
total 380
-rw-r--r-- 1 volumio volumio    423 Sep 28 00:23 albumart.log
-rw-r--r-- 1 root    root      5692 Sep 27 09:56 boot.log
-rw------- 1 root    utmp       384 Sep 28 10:27 btmp
-rw-r--r-- 1 root    root       670 Sep 27 10:49 mpd.log
-rw-r--r-- 1 volumio volumio 311037 Sep 28 10:26 volumio.log
-rw-r--r-- 1 volumio volumio 950230 Sep 28 00:00 volumio.log.1   ←ファイルの時刻が00:00ならOK
-rw-rw-r-- 1 root    utmp      2688 Sep 28 10:27 wtmp

Volumioの監視グラフ 3
ログローテートを仕掛けてVolumioでウェブラジオを1週間連続再生したときのファイルシステムの使用状況グラフ。(7日間)
毎日0時に/var/logを示すピンクのグラフが下がって鋸刃の形になっている。Volumio.logを非圧縮で1世代残しているので容量が下がってもゼロにはならない。およそ半分に下がるのでこれで正常。

おまけ
Volumioのサーバは以前から帯域制限をしているので転送速度がとても遅かったが、最近は遅いだけでなく繋がりにくい。パッケージのインストールもVolumioのサーバーに接続できなくて失敗することがある。失敗した場合は成功するまで繰り返す。

なんちゃって同軸コリニアアンテナを作ってみた

以前に中国通販で購入したスペック6dBiのADS-B(1090MHz)用アンテナがどうしても信用できなかった「がとらぼ」の中の人は、6dBi程度のアンテナならド素人でも作れるんじゃないかしらと無謀なことを思ってみたり。

信用できないのはこのアンテナね。

そこで、ネットで情報の多い同軸ケーブルを利用したコーリニアアレイアンテナ (Coaxial Collinear Array Antenna 英語のページではCoCo Antennaなんて略されてるみたい)を作ることに。
無線の知識は全然無いので、一応軽くググってみた。(下)

  • 同軸コリニアアンテナは芯線と外側の網線が互い違いになるように1/2λの長さの給電エレメントを作り必要な段数を構成する。
  • 両端には1/4λの長さの位相整合部を付ける。
  • 先端側の位相整合部の上端は芯線と網線をショートする。
  • (さらに一番先端に1/4λの芯線を付ける) これは要るのか不明。
  • アンテナの部材はインピーダンス50Ω(またはテレビアンテナ用75Ω)で揃えた方が良さげ。が、拘らなくても可?
  • 根本側の位相整合部の下にチューナーに繋がる同軸ケーブルと平行に1/4λの長さのスタブを付ける(調整用)
  • (スタブと同じく根本側の位相整合部の下に両端ショートの1/4λの長さのバランを付ける)ネットの作例を見ると要らないような・・

今回はコリニアアンテナを作る練習ということで、同軸ケーブルは長年使われていなかった衛星放送のアンテナから室内に伸びていたのを回収したケーブルを使用した。また、コネクタは3Cの同軸ケーブルをつなぐ用のNコネクタ50Ω。と出処不明のNコネクタ−SMA変換アダプタなど、有り合わせ過ぎる部材を寄せ集めたのでインピーダンスも50Ωと75Ωが入り乱れ。今回は気にしない。

今回使う同軸ケーブルはS5CFVという絶縁体が発泡ポリエチレンなアルミ箔無しの古そうなもの。5Cなので75Ω。一応周波数的には1090MHzはいける筈。ケーブルの絶縁体が発泡ポリエチレンなので短縮率は80%の筈。

中心周波数1090MHzの波長(λ)は275.04mm
1/2λ = 137.52mm、短縮率を掛けて丸めて110mmとする。
1/4λ = 68.765mm、短縮率を掛けて丸めて55mmとする。
外皮が残る部分が110, 55mmなので、芯線はそれぞれ両端に15〜20mm程度出るように切る。

6段のコリニアなので給電エレメント110mmが6本
位相整合部がx2、スタブx1、で55mmが3本
バランは1/4λに短縮率を掛けずに69mm を1本

ただし、ディップメーターやアンテナアナライザなどの測定機器がなければ調整のしようがないのでスタブは意味がないかも。 また、スタブは細い同軸ケーブルの方が調整しやすいらしいというネット情報を見た。

アンテナケーブルを切る時はカッターナイフの刃を外皮に当ててケーブルを転がすようにして切ると比較的上手くいくが、今回は丸まりクセの強い古いケーブルを使うのでカッターナイフで切るのではなく同軸ケーブルストリッパーを使うことにした。

同軸ケーブルのストリッバーはあった方が作業がラク。AliExpressで送料無料で70〜90円程度なので1つくらい持っていた方が良いかと。日本のアマゾンだと僅かにお高め〜1000円程度のぼったくりまで。

ほんの少しお高めで300〜500円程度だけど、こちらは多機能。ただし、中央の刃が危なっかしいと思う。日本のアマゾンだと1000円程度。
もちろん、こんなおもちゃではなくてもっとまともな製品もたくさんあるけど使う頻度を考えると普通の人には勧めにくい。

同軸コーリニアアンテナ作成 1
購入した同軸ケーブルストリッパー。もちろん安い方。

同軸コーリニアアンテナ作成 2
実家で何時頃からあったのかか判らない古い衛星アンテナを外したときに回収した巻いておいた同軸ケーブル。マスプロのS5CFV。

同軸コーリニアアンテナ作成 3
ニッパーで同軸ケーブルを切るのは全くオススメできない。この写真のように絶縁体を潰しかねないのでNG。

同軸コーリニアアンテナ作成 4
同軸ストリッパーの内側にはA〜Eの文字があって、最初はBの位置に絶縁体用の刃(内刃)がある。外皮用の刃(外刃)はDの位置。それぞれの刃の位置はピンを抜くことで変更できるらしいが余程気に入らないのでなければ普通は触らないかも。
問題は、絶縁体を切る内刃の位置が判りにくいこと。A〜Eまでの文字が書かれてはいるが、少なくとも1mm以内の精度で切りたいのであれば、上の写真のように刃の位置をマークしておいた方が良いと思われる。

同軸コーリニアアンテナ作成 5
今回は外皮を剥く必要はなくて芯線だけ出せば良いので外皮カッターの位置調整ネジを本体付属の六角レンチで半時計回りにまわるところまで回して緩める。(普通の力で回せばネジは抜けない筈)これで外刃は使われなくなる。
外皮を剥く時は内刃用のネジと同程度まで締めてから、外皮の厚さに応じて多少締め方を調整する。

同軸コーリニアアンテナ作成 6
ケーブルはオレンジの部品のXが大きく見えている側が先端側で、同軸ケーブルの先の部分は本体から少なくとも1〜2cm程度は出るようにセットする。ケチって先を1cm以下しか出さないと切った断面が汚くなるかも。
5C, 5Dの太さ(普通の家庭で屋外のテレビアンテナなどに使われる外経7mm程度)のケーブルの場合は本体の▲にオレンジの部品の「6」(RG-6?)を合わせるようだが、数字に合わせてセットすると上手く綺麗に切れない。写真のように数字の「9」(RG-59?)に合わせると上手く切れる。造りが悪いのか使い方が悪いのかは不明。

製品の想定?
6: RG-6 外径7mm程度
8: RG-58 外径5.0mm程度
9: RG-59 外径6.2mm程度
D: RG-174 外径2.5mm程度

同軸コーリニアアンテナ作成 7
絶縁体が発泡ポリエチレンの同軸ケーブルの場合は絶縁体が柔らかすぎるからかバネまかせにすると刃の食い込みが変になりやすいのでバネを僅かに緩めるように力を入れて持って、本体に書いてある矢印方向に本体を回す。矢印方向と反対に回すと何故か網線が滅茶苦茶になるので必ず矢印を確認してから回す。バネを緩めるように持つのは最初の1周だけ。後はバネまかせで本体を3周以上回すと抵抗が急に軽くなるのがわかるので、軽くなったらストリッパーを外す。

同軸コーリニアアンテナ作成 8
ぐるぐる回して軽くなったらこの写真のように先端が抜けかけているかと思われる。

同軸コーリニアアンテナ作成 9
芯線だけを残して綺麗に切れました。本来の切り方ではないけど、これで綺麗に切れる。ただし、ときどき網線が正しく切れずに芯線に巻き付いていることがあった。発泡ポリエチレンの中に網線の1本が埋もれて芯線に触れているということもあった。発泡ポリエチレンに埋もれてしまうと気づきにくいが、そのままだと当然ショートなので注意。

ちなみに今回は簡単な「挿すだけ」方式にした。下は参考にしたYoutubeの動画。

同軸コーリニアアンテナ作成 10
芯線の先端ををニッパーで斜めに切り落とす。斜めに切ったバリ部分をヤスリで落とす。これで先端が注射器の針の先のように尖る。全ての芯線の先端にこの加工を行う。

エレメントを繋ぐ際は、それぞれ切り落とした芯線の先の斜めカット部分が外を向くようにしてケーブルの外皮の内側に差し込む。斜めカット部分が内側を向いていると外皮を突き破って外に飛び出やすい。ただし、絶縁体が発泡ポリエチレンだと非常に柔らかいので網線と発泡ポリエチレンを突き破って芯線とショートする可能性があるので注意。できるだけまっすぐ網線の外側に差し込む。

このとき、Youtubeの動画の様にエレメントとエレメントの間に20x20mm程度のビニールテープを1枚挟んでおく。両側のエレメントの芯線だけがこのビニールテープを突き破る形。このビニールテープが両側のエレメントの網線同士でショートするのを防ぐ。(上の写真では見えやすいように省略している)

同軸コーリニアアンテナ作成 11
手持ちのNコネクタは3Cケーブル用なので細い。芯線側は良いとして、外皮の上を覆うパイプ(カシメてケーブルを固定する金具)が細くて使えない。しかたがないのでハンダで網線ごとコネクタに固定する。ケーブルを頻繁に動かすなら頼りなさすぎだが、仮止めならこれで十分。スタブは1/4λ x 0.8(短縮率)で、バランは1/4λなので本当ならスタブが1/5短い筈だけど、スタブも1/4λ程度(むしろ長い)になっている。後で切る予定。バランは両端ともにハンダ付きでショートさせている。さらにバランの根本側のショート部分とチューナーに繋がるケーブルの網線を接続。

同軸コーリニアアンテナ作成 12
バランとスタブの(アンテナ)先端側が名目上の給電点という位置づけになる。ここから先は網線と芯線が交互に繋がるように取り付ける。エレメントが抜けないようにビニールテープでつなぎ目を巻いた。

VNAもSWRメーターも無いので作りっぱなしで計測も調整も無し。したくてもできない。
つまり、デタラメ&テキトーな、なんちゃってコリニアアンテナの完成。

しかし、こんなデタラメなアンテナだが、例の自称6dBiアンテナ+BPFフィルタ+LNA付きに余裕で勝っちゃうんだよねぇ、これが。
屋根の上に設置したわけではなく窓の内側にガムテープで仮止めしてぶら下げただけだが、チューナーをオンにして数分後には100km以上先の飛行機を楽に捕えている。窓の外で遠くまで開けている少しの範囲だけだけど。
200km、300km先の飛行機までというのは現時点では確認できていないけど、屋根の上にアンテナを設置したらせ可能性はあるかしら?
デタラメに作ったアンテナでこれなら適切に制作・調整された6〜8段くらいのコリニアアンテナだと凄いかも。ただし、アンテナを設置する実家は山に囲まれているのであまり段数を増やすと垂直方向が狭まってダメだと思う。

関連記事:

低価格Androidスマートフォン2019年秋 Xiaomi Mi Phoneシリーズ

みんな大好きXiaomi(小米=シャオミ)からMi Phoneシリーズ(ハイグレードの方)のミドルレンジ以下の機種です。2019年9月20日現在の現役モデルになります。

Xiaomi Mi 9 Lite

価格: US$330(36,000円)程度
SoC: Qualcomm Snapdragon 710
RAM: 6GB
ストレージ: 64GB 他に128GBモデル有り
画面: 6.39インチ FHD+ (2340 x 1080px) AMOLED
SIMスロット: デュアル
カメラ(外): 3カメラ 4800万画素+800万画素(広角用)+200万画素(被写界深度用)
カメラ(内): 3200万画素
バッテリー: 4030mAh
重量: 179g
USB: Type-C
初期OS: MIUI 10 (Android 9.0)
認証: 技適未確認
通信バンド: GSM 省略
3G: WCDMA /2 /3 /5 /8
4G: TDD-LTE 38 /40
4G: FDD-LTE 1 /2 /3 /4 /5 /7 /8 /20 /28
Wi-Fi: IEEE802.11 a/b/g/n/ac
Bluetooth: 5.0
Antutuスコア: 170000〜180000程度

性能はミドルレンジで、カメラがハイスペック、他全部入りに近い豪華な機種です。お値段が3万後半円なのでお高め。価格が範囲外なのでこのページで紹介予定ではありませんでしたが、性能がミドルなのでちょっと入れてみました。

Xiaomi Mi A3

価格: US$176 (19,000円)程度
SoC: Qualcomm Snapdragon 665
RAM: 4GB
ストレージ: 64GB 他に128GBモデル有り
画面: 6.1インチ HD+ (1560 x 720px) AMOLED
SIMスロット: デュアル
カメラ(外): 3カメラ 4800万画素+800万画素(広角用)+200万画素(被写界深度用)
カメラ(内): 3200万画素
バッテリー: 4030mAh
重量: 174g
USB: Type-C
初期OS: Android One (Android 9.0)
認証: 技適未確認
通信バンド: GSM 省略
3G: WCDMA 1 /2 /4 /5 /8
4G: TDD-LTE 38 /40
4G: FDD-LTE 1 /2 /3 /4 /5 /7 /8 /20 /28
Wi-Fi: IEEE802.11 a/b/g/n/ac
Bluetooth: 5.0
Antutuスコア: 140000程度

性能はミドルレンジで、カメラがハイスペック、画面がHD+解像度なのとAndroid Oneという点に注意。お値段は普通。

Xiaomi MI 9 SE

価格: US$280 (30,300円)程度
SoC: Qualcomm Snapdragon 712
RAM: 6GB
ストレージ: 64GB 他に128GBモデル有り
画面: 6インチ FHD+ (2340 x 1080px) AMOLED
SIMスロット: デュアル
カメラ(外): 3カメラ 4800万画素+1300万画素(広角用)+800万画素(望遠)
カメラ(内): 2000万画素
バッテリー: 3070mAh
重量: 155g
USB: Type-C
初期OS: MIUI 10 (Android 9.0)
認証: 技適未確認
通信バンド: GSM 省略
3G: WCDMA 1 /2 /4 /5 /8
4G: TDD-LTE 38 /40
4G: FDD-LTE 1 /2 /4 /5 /7 /8 /20 /28
Wi-Fi: IEEE802.11 a/b/g/n/ac
Bluetooth: 5.0
Antutuスコア: 180000程度

実売価格が3万円程度なのでちょっとお高めですが、隙きのないスペックで大きさと重量のバランスも良さげ。

Xiaomi MI 8

価格: US$270 (29,200円)程度
SoC: Qualcomm Snapdragon 845
RAM: 6GB 他に8GBモデル有り
ストレージ: 64GB 他に128GBモデル有り
画面: 6.2インチ FHD+ (2248 x 1080px) AMOLED
SIMスロット: デュアル
カメラ(外): 2カメラ 1200万画素(広角用)+1200万画素(望遠用)
カメラ(内): 2000万画素
バッテリー: 3400mAh
重量: 175g
USB: Type-C
初期OS: MIUI 10 (Android 9.0)
認証: 技適未確認
通信バンド: GSM 省略
3G: WCDMA 1 /2 /4 /5 /8
4G: TDD-LTE 34 /38 /39 /40 /41
4G: FDD-LTE 1 /2 /3 /4 /5 /7 /8 /12 /17 /20
Wi-Fi: IEEE802.11 a/b/g/n/ac
Bluetooth: 5.0
Antutuスコア: 290000程度

2018年夏のフラッグシップモデルです。実売価格が3万円程度から入手できてこの性能は凄い。しかし、古いので画面のノッチが大型で古臭さが強く、そこが残念ポイント。

Xiaomi MI 8 Lite

価格: US$152 (16,500円)程度
SoC: Qualcomm Snapdragon 660
RAM: 6GB 他に4GBモデル有り
ストレージ: 64GB 他に128GBモデル有り
画面: 6.26インチ FHD+ (2280 x 1080px) AMOLED
SIMスロット: デュアル
カメラ(外): 2カメラ 1200万画素+500万画素
カメラ(内): 2400万画素
バッテリー: 3350mAh
重量: 169g
USB: Type-C
初期OS: MIUI 10 (Android 8.1)
認証: 技適未確認
通信バンド: GSM 省略
3G: WCDMA 1 /2 /4 /5 /8
4G: TDD-LTE 38 /40
4G: FDD-LTE 1 /2 /3 /4 /5 /7 /8 /20 /28
Wi-Fi: IEEE802.11 a/b/g/n/ac
Bluetooth: 5.0
Antutuスコア: 140000程度

2018年夏のモデルです。実売価格が安価でバランスの良いミドルロー機種です。古いので画面のノッチが縦画面上部中央にありますが、水滴型には敵わないものの中サイズなので許容できる範囲かもしれません。

Xiaomi MI Max 3

価格: US$158 (17,000円)程度
SoC: Qualcomm Snapdragon 636
RAM: 4GB 他に6GBモデル有り
ストレージ: 64GB 他に128GBモデル有り
画面: 6.9インチ FHD+ (2160 x 1080px) 方式不明
SIMスロット: デュアル
カメラ(外): 2カメラ 1200万画素+500万画素
カメラ(内): 800万画素
バッテリー: 5500mAh
重量: 221g
USB: Type-C
初期OS: MIUI 10 (Android 8.1)
認証: 技適未確認
通信バンド: GSM 省略
3G: WCDMA 1 /2 /5 /8
4G: TDD-LTE 34 /38 /39 /40 41
4G: FDD-LTE 1 /3 /4 /5 /7 /8 /20
Wi-Fi: IEEE802.11 a/b/g/n/ac
Bluetooth: 5.0
Antutuスコア: 115000程度

ほとんどタブレットに近い大型スマートフォンです。そしてタブレット並に重いです。性能的にはちょうどミドルロー機種なので大きいのにゲームにも向きません。正直、どういうユーザーを想定しているのかわかりません。

Xiaomi MI A2

価格: US$158 (17,000円)程度
SoC: Qualcomm Snapdragon 660
RAM: 4GB 他に6GBモデル有り
ストレージ: 64GB 他に32GB, 128GBモデル有り
画面: 6.0インチ FHD+ (2160 x 1080px) 方式不明
SIMスロット: デュアル (4G対応は1つのみ)
カメラ(外): 2カメラ 2000万画素+1200万画素
カメラ(内): 2000万画素
バッテリー: 3010mAh
重量: 168g
USB: Type-C
初期OS: MIUI 10 (Android 8.1)
認証: 技適未確認
通信バンド: GSM 省略
3G: WCDMA 1 /2 /4 /5 /8
4G: TDD-LTE 34 /38 /40
4G: FDD-LTE 1 /2 /3 /4 /5 /7 /8 /20
Wi-Fi: IEEE802.11 a/b/g/n/ac
Bluetooth: 5.0
Antutuスコア: 125000程度

ノッチのない昔ながらの太ベゼルの機種です。個人的には巨大で醜いノッチよりよほど太ベゼルの方が好きです。

Xiaomi MI A2 Lite

価格: US$136 (14,700円)程度
SoC: Qualcomm Snapdragon 625
RAM: 3GB 他に4GBモデル有り
ストレージ: 32GB 他に64GBモデル有り
画面: 5.8インチ FHD+ (2280 x 1080px) 方式不明
SIMスロット: デュアル (4G対応は1つのみ)
カメラ(外): 2カメラ 1200万画素+500万画素
カメラ(内): 500万画素
バッテリー: 4000mAh
重量: 178g
USB: Micro USB
初期OS: Android One (Android 8.1)
認証: 技適未確認
通信バンド: GSM 省略
3G: WCDMA 1 /2 /5 /8
4G: TDD-LTE 38 /40
4G: FDD-LTE 1 /2 /3 /4 /5 /7 /8 /20
Wi-Fi: IEEE802.11 a/b/g/n
Bluetooth: 4.2
Antutuスコア: 75000程度

画面上部に醜い中型ノッチがあります。そして、実売価格がA2と大きくは変わらないのに性能だけはこれでもかといわんばかりに削られています。魅力ある機種とは思えません。

Xiaomi MI Mix 2S

価格: US$283 (30,600円)程度
SoC: Qualcomm Snapdragon 845
RAM: 6GB
ストレージ: 64GB 他に127GBモデル有り
画面: 6.0インチ FHD+ (2160 x 1080px) 方式不明
SIMスロット: デュアル
カメラ(外): 2カメラ 1200万画素+1200万画素
カメラ(内): 500万画素
バッテリー: 3400mAh
重量: 189g
USB: Type-C
初期OS: MIUI 9 (Android 8.1)
認証: 技適未確認
通信バンド: GSM 省略
3G: WCDMA 1 /2 /3 /4 /5 /6 /8 /9 /19
4G: TDD-LTE 34 /38 /39 /40 /41
4G: FDD-LTE 1 /2 /3 /4 /5 /7 /8 /12 /13 /17 /18 /19 /20 /25 /26 /27 /28 /29 30
Wi-Fi: IEEE802.11 a/b/g/n/ac
Bluetooth: 4.2
Antutuスコア: 290000程度

ノッチ無しの狭額モデルなのですっきりしています。フロントカメラは縦持ちで右下です。ポップアップではありません。Xiaomiらしいまさに理想的なスマートフォンです。携帯電話の対応バンドも豪華です。Xiaomiが好きでお値段3万円程度が支出可能なら購入する選択肢に入れたい機種の1つでしょう。Xiaomiのウェブの機種リストのMi Phonesシリーズでは何故か最後に掲載されていたのでこのページでも倣って最後にしていますが、性能から考えると上位のモデルです。特にこのページではトップ性能です。2018年春モデルで古いのでAndroid 10相当に更新されるかは不明です。