2022年3月21日月曜日

タブレットPCをフォトフレームにする

ASUS TransBook T90chiがある
Windowsが入った、機動力のあるPCだったが、最近は使っていない。
子供用のPCにしようかと思ったけど、まだ早いしスペックもこそまでなので、何か使い道がないかと悩んでいた。
お家の情報共有機器としてなにか使えないか

  • 予定の表示
  • 天気
  • 電車・バスの運行状況
  • フォトフレーム

この中で、すぐに出来そうな「フォトフレーム」をやってみたいと思う。

Linux Mintをインストール

たまたまLinuxインストールを紹介しているサイトを見つけて刺激を受けた
やってみよう
https://nomux2.net/asus-transbook-t90chi-xubuntu/
http://www.drvlabo.jp/wp/archives/1749
http://kapper1224.sblo.jp/article/186209546.html
https://nomux2.net/t09chi-linux-mint/

基本的には一番最後のサイトのままかも
ハマりポイントや変更点は以下の通り。

使用するディストリビューション

adeno@T90CHI:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 20.2
Release:	20.2
Codename:	uma

adeno@T90CHI:~$ uname -a
Linux T90CHI 5.1.0-050100-generic #201905052130 SMP Mon May 6 01:32:59 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

bootia32.efi

ブータブルUSBメモリを作成するときに、Etcherを使ったら、空き容量が無くてbootia32.efiの書き込みが出来なかった。
なので、上の方と同じようにrufasを使って対応した。

画面の回転

lotate.shとして以下を作成した。
横向き固定。自動回転はいらなかったので。

xrandr -o right
xinput set-prop 'pointer:SYNA****:** ****:****' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1

サウンド出力

特に何もせずとも対応されていた。

Bluetooth

カーネル5.1で確認した。

カーネル5.1の自動起動

cat /boot/grub/grub.conf

menuentry 'Linux Mint 20.2 Xfce, with Linux 5.1.0-050100-generic' --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.1.0-050100-generic-advanced-823a8bf2-b59f-4214-ad18-69bd640496f8' {

上記をgrubに設定する。

#GRUB_DEFAULT=0
GRUB_DEFAULT='Advanced options for Linux Mint 20.2 Xfce>Linux Mint 20.2 Xfce, with Linux 5.1.0-050100-generic'

最初書き方がわからなくて、試行錯誤した。

NextCloudクライアント導入

特にハマるところはなし

簡易フォトフレーム

まずはfehで確認

cat ~pf/ph.sh 
#!/bin/bash
feh -F -Z --recursive --randomize /home/pf/Nextcloud/ -D 5

これで5秒毎にランダムに表示される

マウスカーソルを消す

cat ~pf/hide_pointer.sh 
#!/bin/bash
unclutter -idle 1 -root &

https://qiita.com/naohikowatanabe/items/73b093399deb0ebf496e
https://wiki.archlinux.jp/index.php/Unclutter

自動起動・自動終了

/sys/class/rtc/rtc0/wakealarm
が無いから出来ないー
さて困ったものだ。

画面のバックライトOFF/ONで代用するか?
https://wiki.archlinux.jp/index.php/バックライト

adeno@T90CHI:~$ cat /sys/class/backlight/intel_backlight/brightness 
20
adeno@T90CHI:~$ cat /sys/class/backlight/intel_backlight/brightness 
59
adeno@T90CHI:~$ cat /sys/class/backlight/intel_backlight/max_brightness 
100
chmod 777 /sys/class/backlight/intel_backlight/brightness
echo 50 > /sys/class/backlight/intel_backlight/brightness
sleep 1 && xset dpms force off

時間で消灯・時間で点灯

xset dpms force off
xset q
Keyboard Control:
  auto repeat:  on    key click percent:  0    LED mask:  00000000
  XKB indicators:
    00: Caps Lock:   off    01: Num Lock:    off    02: Scroll Lock: off
    03: Compose:     off    04: Kana:        off    05: Sleep:       off
    06: Suspend:     off    07: Mute:        off    08: Misc:        off
    09: Mail:        off    10: Charging:    off    11: Shift Lock:  off
    12: Group 2:     off    13: Mouse Keys:  off
  auto repeat delay:  500    repeat rate:  20
  auto repeating keys:  00ffffffdffffbbf
                        fedfffefffedffff
                        9fffffffffffffff
                        fff7ffffffffffff
  bell percent:  50    bell pitch:  400    bell duration:  100
Pointer Control:
  acceleration:  2/1    threshold:  4
Screen Saver:
  prefer blanking:  yes    allow exposures:  yes
  timeout:  600    cycle:  600
Colors:
  default colormap:  0x20    BlackPixel:  0x0    WhitePixel:  0xffffff
Font Path:
  /usr/share/fonts/X11/misc,/usr/share/fonts/X11/Type1,built-ins
DPMS (Energy Star):
  Standby: 300    Suspend: 0    Off: 600
  DPMS is Enabled
  Monitor is Off

5分周期でチェックスクリプトを実行する
これをcronとかで呼び出す

#!/bin/bash

# display on time
on_time="7:00"

# display off time
off_time="23:50"

# feh option
feh_dir="/home/pf/Nextcloud/"
feh_timer=10

###########################################################
function chk_feh() {
    # PIDを取得する
    feh_exist=`ps aux | grep "feh" | grep "$feh_dir" | awk '{print $2}'`
    echo $feh_exist
}
function display_off () {
    echo 消灯
    feh_pid=`chk_feh`
    echo $feh_pid
    if [[ -n $feh_pid ]]; then
        # プロセス実行中→終了する
        echo プロセス実行中→終了する
        kill $feh_pid
        sleep 1
    fi
    DISPLAY=:0.0 xset dpms force off
}

function display_on () {
    echo 点灯
    feh_pid=`chk_feh`
    echo $feh_pid
    if [[ -z $feh_pid ]]; then
        # プロセスが無い→起動する
        echo プロセスが無い→起動する
        # feh_run=`feh $feh_option`
        # DISPLAY=:0.0 feh -F -Z --recursive --randomize /home/pf/Nextcloud/ -D 5 &
        feh_run=`DISPLAY=:0.0 feh -F -Z --recursive --randomize $feh_dir -D $feh_timer &`
    fi
    DISPLAY=:0.0 xset dpms force on
}


nowdate=`date "+%Y/%m/%d %H:%M:%S"`
chk_base_date=`date +%Y/%m/%d`

echo $nowdate
echo "ON Time= "$chk_base_date" "$on_time
echo "OFF Time= "$chk_base_date" "$off_time

now_time_unix=`date --date "$nowdate" +%s`
on_time_unix=`date --date "$chk_base_date $on_time" +%s`
off_time_unix=`date --date "$chk_base_date $off_time" +%s`
echo $now_time_unix
echo $on_time_unix
echo $off_time_unix

if [ $now_time_unix -lt $on_time_unix ]; then
    display_off
else
    if [ $now_time_unix -lt $off_time_unix ]; then
        display_on
    else
        display_off
    fi
fi

crontabにて

/5 * * * * /home/pf/chk_date.sh > /tmp/chk_date.log

なんだか欲が出てきた。
人感センサーで、動きが無いときは消灯とか・・・。

2022年3月5日土曜日

メディアサーバー構築1

NextCloudに写真とか動画とかを保存している。
ちょっとした共有に便利、スマホで気軽にできるのが良い。
ちょっと欲が出てきて、TVで見てみたいと思い、どのような方法があるのか考えた。
スマホだど画面小さいし、TVの4Kで見てみたいじゃんというのが動機だ。

欲しいスペック

  • DLNAとかwebdav、NextCloudアプリ
  • 4Kで見たい
  • できるだけ安価
  • いろいろな使い方ができる

で、探してみた

No 1 2 3 4
品名 Amazon Fire TV Stick 4K Max Chromecast with Google TV Apple TV 4K ミニPC
価格 @6,980 @7,600 @21,800 @20,000〜@30,000
CPU クアッドコア 1.8GHz 64ビットアーキテクチャ搭載A12 Bionicチップ Celeron
メモリ 2GB 8〜32GB
ストレージ 8GB 32GB 64〜128GB
リモコン あり あり あり なし
DLNA VLC for Fire、kodi 多分○ 多分○?
webdav kodi 多分○ 多分○?
NextCloudアプリ たぶん× 多分○ たぶん×

なんとかTV系の3種は、安いし、それぞれのプラットフォームのサービスをもっているので、心惹かれるものがある。
でもそれらのサービスを使うと沼なので、今はあえて使いたくない。
それと自宅なんちゃってサーバーのリプレースを行う時期なので、今回は茨の道でミニPCを導入してみることにした。

ミニPC

Bmax、CHIWI、NiPoGi、MINISFORUMなどいろいろな種類がある。
自作・BTOも含めるともっとある。

価格や拡張性から、この3機種を候補にした。

No 1 2 3
品名 NiPoGi Bmax E3950 CHIWI HeroBox
CPU Celeron J4125 2GHz 4core Celeron E3950 2GHz 2core Celeron N4100 1.1GHz 4core
メモリ 12GB 8GB 8GB
ストレージ 128GB 128GB 256GB
その他 ファンあり 2.5inchSSD拡張可能 ファンあり 2.5inchSSD拡張可能 ファンレス 拡張は不可
価格 @24,225 @18,691 @21,500

ということで、少々高いが、No1のNiPoGiにすることにした。

NiPoGiとご対面

NiPoGiってなんて読むのかな?にぽぎ?


内臓ストレージにはwin10がインストールされているみたい
今回は、お試しで2.5inchSSDを別で用意して、そっちにLinuxMintをインストールしてみた

以下もろもろのメモ

BIOSは?

DEL長押し

USBブートは?

BIOSでブート順序変更が必要だけど出来た
USB2.0のほうのポートを使った

LinuxMintのインストール

USBブートからのSSDへインストール

TVにつながる?

もちOKだった

TVからリモコン操作できる?

HDMI-CECは出来ないと思う
TVにつないでリモコン操作したくらいでは反応なし
どうやって操作しようか
Bluetoothのリモコン探すか

やりたいことのメモ

入れたいもの

  • kodi
  • nextcloud clinet
  • sshserver