RaspberryPiで新型コロナウイルスの解析

提供: ディーズガレージ wiki
移動先: 案内検索

新型コロナウイルス解析プロジェクトに参加してみます。
Analysis of COVID-19

Iot-monitor02.png

COVID-19-01 Rosetta@home 3B+
COVID-19-02 Rosetta@home 3B
COVID-19-03 Rosetta@home 3B
COVID-19-04 World Community Grid 2B
COVID-19-05 World Community Grid 1B+
COVID-19-06 World Community Grid Zero
COVID-19-07 Folding@home 4B
COVID-19-08 TN-Grid Zero

具合

Folding@home
4Bの計算時間14時間程度
3Bはタイムアウトぎりぎり

Rosetta@home
1GBモデルWU3個で稀にリソースを食い尽くす
WU2個で安定

TN-Grid
複数プロジェクトのコア数設定安定せず断念

その他
メール転送, 自動アップデート, Alarms 動作確認中
Issues · netdata/netdata · GitHub

環境

モデル Raspberry Pi 全種
OS Raspberry Pi OS Lite (32bit) 2020-08-20
Raspberry Pi OS Lite (arm64) 2020-08-20
ストレージ microSDHC 16GB CLASS10
リモート操作 Windows10, SSH

発熱対策
ヒートシンク 40×40×25
銅サイコロ 20×20×20
熱伝導性両面テープ 0.6W/m・K 200x300

下調べ

2021年1月9日現在

Folding@home

Folding@home - Wikipedia
Manual installation (advanced) - Folding@home
@ワシントン大学

Rosetta@home

Rosetta@home - Wikipedia
Running Rosetta (COVID-19 workunits) on Raspberry Pi 3B+ ... - reddit.com
Raspberry Pi 3 Model BとRaspbian Buster LiteでRosetta@home - Pastebin.com
@ワシントン大学

World Community Grid

World Community Grid - Wikipedia
Volunteer your Raspberry Pi to IBM's World Community Grid - Raspberry Pi
Installing on Linux - World Community Grid - Help
@IBM

TN-Grid

TN-Grid - Wikipedia
TN-Grid
@トレント大学

SiDock@home

SiDock@home
ARM版準備中
@ロシア科学アカデミー

保留

BOINC@TACC
BOINC@TACC
GitHub - ritua2/BOINCatTACC
@テキサス大学
ARM非対応

GPUGRID
GPUGRID - Wikipedia
GPUGRID
System requirements
@ポンペウ・ファブラ大学
ARM非対応

COVID-PHYM
Ibercivis - Wikipedia
PROJECT COVID-PHYM - IbercivisFundation
@Ibercivis
ARM非対応

Quarantine@Home
GitHub - cjmielke/quarantineAtHome
Quarantine@Home
@Aleph-1 Foundation
ARM非対応

Fold for Covid
Fold for Covid - Donate spare compute capacity for COVID-19 research
GitHub - balenalabs/rosetta-at-home
@balenaLabs
Rosetta@homeクローン

Forum

Folding@home https://foldingforum.org/
Rosetta@home https://boinc.bakerlab.org/rosetta/forum_index.php
World Community Grid https://www.worldcommunitygrid.org/forums/wcg/index
TN-Grid https://gene.disi.unitn.it/test/forum_index.php
SiDock@home https://www.sidock.si/sidock/forum_index.php
BOINC@TACC https://boinc.tacc.utexas.edu/forum_index.php
COVID-PHYM https://boinc.ibercivis.es/ibercivis/forum_index.php
GPUGRID https://www.gpugrid.net/forum_index.php
Quarantine@Home -
Fold for Covid -

Applications

Folding@home https://foldingathome.org/alternative-downloads/
Rosetta@home https://boinc.bakerlab.org/rosetta/apps.php
World Community Grid https://www.worldcommunitygrid.org/help/viewTopic.do?shortName=minimumreq
TN-Grid https://gene.disi.unitn.it/test/apps.php
SiDock@home https://www.sidock.si/sidock/apps.php
BOINC@TACC https://boinc.tacc.utexas.edu/apps.php
COVID-PHYM https://boinc.ibercivis.es/ibercivis/apps.php
GPUGRID https://www.gpugrid.net/apps.php
Quarantine@Home -
Fold for Covid -

Server Status

Folding@home https://apps.foldingathome.org/serverstats
Rosetta@home https://boinc.bakerlab.org/rosetta/server_status.php
World Community Grid https://www.worldcommunitygrid.org/stat/viewProject.do?projectShortName=opn1
TN-Grid https://gene.disi.unitn.it/test/server_status.php
SiDock@home https://www.sidock.si/sidock/server_status.php
BOINC@TACC https://boinc.tacc.utexas.edu/server_status.php
COVID-PHYM https://boinc.ibercivis.es/ibercivis/server_status.php
GPUGRID http://www.gpugrid.net/server_status.php
Quarantine@Home -
Fold for Covid -

動作環境

Raspberry Pi - Wikipedia

プラットフォーム
Folding@home … FAH
Rosetta@home … BOINC
World Community Grid … BOINC
TN-Grid … BOINC

必要なCPU
Folding@home … ARMv8 (64bit)
Rosetta@home … ARMv8 (64bit)
World Community Grid … 制限無し
TN-Grid … 制限無し

必要なメモリ
Folding@home … 512MB~
Rosetta@home … 1GB~
World Community Grid … 制限無し 250MB~
TN-Grid … 制限無し 70MB程度~

多分動くモデル

1A 1A+ 3A+ 1B 1B+ 2B 3B 3B+ 4B Zero
Folding@home × × × × × ×
Rosetta@home × × × × × × ×
World Community Grid
TN-Grid

コア数目安 Boinc max_ncpus_pct

1A 1A+ 3A+ 1B 1B+ 2B 3B 3B+ 4B Zero
Folding@home - - - - - - - - - -
Rosetta@home × × × × × × 50 50 75 ×
World Community Grid 100 100 75 100 100 75 75 75 75 100
TN-Grid 100 100 75 100 100 75 75 75 75 100

多分動くOS
Folding@home … Raspberry Pi OS Lite (arm64)
Rosetta@home … Raspberry Pi OS Lite (32bit) + 64bitカーネル設定
World Community Grid … 制限無し
TN-Grid … 制限無し

CPU温度の限界
70°C~ … ソフト温度制限 (3A+, 3B+のみ, 最高設定)
80°C~ … サーマルスロットリング
85°C~ … CPU, GPU停止

リモート環境

SSHリモート操作用にする

mDNS

Windows10使用
iTunes - Apple(日本)
ほかのバージョンをお探しですか? > Windows > ダウンロード
WinRARでiTunes64Setup.exeからBonjour64.msiを取り出し
インストール

OS

Raspberry Pi OS – Raspberry Pi
arm64イメージ
Index of /raspios_lite_arm64/images

ヘッドレスセットアップ
rootフォルダにssh空ファイル作成でSSH有効

SSH接続
Windows10のTera Term使用

ホスト: raspberrypi.local
ユーザ名: pi
パスフレーズ: raspberry

64bitカーネル設定

Raspberry Pi OS Lite (32bit)でARMv8 (64bit) のみ

$ sudo nano /boot/config.txt

末尾に追記

arm_64bit=1
gpu_mem=16

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo reboot

確認

$ uname -a
aarch64

firmware

$ sudo rpi-update
$ sudo reboot

expand

$ sudo raspi-config
Advanced Options > Expand Filesystem > <Ok> > tab > <Finish> > reboot<Yes>

locale

$ sudo raspi-config
Localisation Options > Locale >
[*] en_GB.UTF-8 UTF-8
[*] ja_JP.UTF-8 UTF-8 > スペースキー
> tab > <Ok> > ja_JP.UTF-8 > tab > <Finish>
$ sudo reboot

timezone

$ sudo raspi-config
Localisation Options > Timezone > アジア > 東京 > tab > <Finish>
$ sudo reboot

hostname

$ sudo raspi-config
System Options >  Hostname > <Ok>

変更

covid-19
tab > OK > tab > <Finish> > <Yes>

raspberrypi.local > covid-19.local

Windows10のTera Term使用

ホスト: covid-19.local
ユーザ名: pi
パスフレーズ: raspberry

date

$ date
$ sudo date -s '2021/01/02 20:12:00'

timesyncd

設定

$ sudo nano /etc/systemd/timesyncd.conf

修正

[Time]
NTP=ntp.nict.jp
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048

保存: Ctrl + o > リターン
終了: Ctrl + x

起動

$ sudo timedatectl set-ntp true

確認

$ timedatectl status

update

$ sudo apt update
$ sudo apt upgrade

zram

$ sudo nano /usr/bin/zram.sh

設定

#!/bin/bash
cores=$(nproc --all)
modprobe zram num_devices=$cores
swapoff -a
totalmem=`free | grep -e "^Mem:" | awk '{print $2}'`
mem=$(( ($totalmem * 2 / $cores)* 1024 ))
modprobe deflate
modprobe zlib
modprobe lz4hc_compress
core=0
while [ $core -lt $cores ]; do
  echo deflate > /sys/block/zram$core/comp_algorithm ||
   echo zlib > /sys/block/zram$core/comp_algorithm ||
   echo lz4hc > /sys/block/zram$core/comp_algorithm ||
   echo lz4 > /sys/block/zram$core/comp_algorithm
# not sure which one this kernel has
  echo $mem > /sys/block/zram$core/disksize
  mkswap /dev/zram$core
  swapon --discard -p 5 /dev/zram$core # reclaim memory better
  let core=core+1
done

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo chmod +x /usr/bin/zram.sh
$ sudo nano /etc/rc.local

末尾のexit 0手前に追記

/usr/bin/zram.sh &

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo reboot

確認

$ zramctl

swap

$ sudo nano /etc/dphys-swapfile

変更

#CONF_SWAPSIZE=100
CONF_SWAPSIZE=2048

保存: Ctrl + o > リターン
終了: Ctrl + x
確認

$ sudo systemctl restart dphys-swapfile
$ swapon

service

$ sudo systemctl stop rsyslog
$ sudo systemctl disable rsyslog
$ sudo systemctl stop hciuart bluetooth
$ sudo systemctl disable hciuart bluetooth
$ sudo systemctl stop systemd-timesyncd systemd-timesync
$ sudo systemctl disable systemd-timesyncd systemd-timesync
$ sudo systemctl stop cron.service
$ sudo systemctl disable cron.service
$ sudo reboot

journald

$ sudo nano /etc/systemd/journald.conf

末尾に追記

Storage=none

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo reboot

overclock

$ sudo nano /boot/config.txt

末尾に追記
Zero のみ

arm_freq = 1100
over_voltage = 8
sdram_freq = 500
sdram_over_voltage = 2
force_turbo = 1
boot_delay = 1

1B+ のみ

arm_freq=1000
core_freq=500
sdram_freq=600
over_voltage=6

2B のみ

arm_freq=1000
core_freq=500
sdram_freq=500
over_voltage=2

3B のみ

arm_freq=1350
core_freq=500
over_voltage=4

3B+ のみ

temp_soft_limit=70

4B のみ

over_voltage=2
arm_freq=1750

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo reboot

確認

$ vcgencmd get_config arm_freq

Folding@home

FAHClient
Passkey - Folding@home

Username: GGGGGG
Passkey: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Passkeyメールが届く

インストール
Alternative Downloads - Folding@home

$ wget https://download.foldingathome.org/releases/public/release/fahclient/debian-stable-arm64/v7.6/fahclient_7.6.21_arm64.deb
$ sudo dpkg -i fahclient_7.6.21_arm64.deb

fahclientを設定しています
Folding@home User Name: Anonymous <tab> <OK>
Folding@home Team Number: 0 <tab> <OK>
Folding@home Passkey: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF <tab> <OK>
light or medium or full: full <リターン>
Should FAHClient be automatically started?: <OK>

設定

$ sudo nano /etc/fahclient/config.xml

追記

<config>
  <!-- Client Control -->
  <fold-anon v='true'/>

  <!-- Folding Slot Configuration -->
  <cause v='COVID_19'/>
  <gpu v='false'/>

  <!-- HTTP Server -->
  <allow v='127.0.0.1 192.168.1.0/24'/>

  <!-- Network -->
  <proxy v=':8080'/>

  <!-- Remote Command Server -->
  <command-allow-no-pass v='127.0.0.1 192.168.1.0/24'/>

  <!-- Slot Control -->
  <power v='full'/>

  <!-- User Information -->
  <passkey v='FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'/>

  <!-- Web Server -->
  <web-allow v='127.0.0.1 192.168.1.0/24'/>

  <!-- Folding Slots -->
  <slot id='0' type='CPU'/>
</config>

再起動

$ sudo reboot

確認

$ htop

CPU温度

$ while true; do vcgencmd measure_temp; sleep 1s; done

終了: Ctrl + c

FAHControl
Alternative Downloads - Folding@home
Windows10使用

FAHControl covid-19.jpg

タスクトレイアイコンを右クリック > Advanced Control
FAHControl > 左下: Clients +Add > Connection
設定

Name: COVID-19
Hostname or IP: covid-19.local
Port: 36330

WEB CONTROL
http://covid-19.local:7396

FAHClient covid-19.jpg

FAHClient API
3rd party FAHClient API · FoldingAtHome/fah-control Wiki · GitHub
Tera Term使用
改行コード設定

1.新しい接続 > キャンセル
2.設定 > 端末 > 改行コード > 受信 > AUTO > OK
3.ファイル > 新しい接続
ホスト covid-19.local
サービス Telnet
TCPポート 36330

PyON format

> slot-info
> queue-info

Rosetta@home

インストール

$ sudo apt install boinc-client boinctui
$ sudo nano /var/lib/boinc-client/cc_config.xml

設定

<cc_config>
  <log_flags>
    <task>1</task>
    <file_xfer>1</file_xfer>
    <sched_ops>1</sched_ops>
  </log_flags>
  <options>
    <alt_platform>aarch64-unknown-linux-gnu</alt_platform>
    <allow_remote_gui_rpc>1</allow_remote_gui_rpc>
  </options>
</cc_config>

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo nano /var/lib/boinc-client/global_prefs_override.xml

設定

<global_preferences>
    <run_if_user_active>1</run_if_user_active>
    <suspend_cpu_usage>100.000000</suspend_cpu_usage>
    <leave_apps_in_memory>0</leave_apps_in_memory>
    <confirm_before_connecting>0</confirm_before_connecting>
    <hangup_if_dialed>0</hangup_if_dialed>
    <dont_verify_images>0</dont_verify_images>
    <work_buf_min_days>2.000000</work_buf_min_days>
    <work_buf_additional_days>0.500000</work_buf_additional_days>
    <max_ncpus_pct>50.000000</max_ncpus_pct>
    <cpu_scheduling_period_minutes>60.000000</cpu_scheduling_period_minutes>
    <disk_interval>300.000000</disk_interval>
    <disk_max_used_gb>100.000000</disk_max_used_gb>
    <disk_max_used_pct>100.000000</disk_max_used_pct>
    <disk_min_free_gb>0.100000</disk_min_free_gb>
    <vm_max_used_pct>100.000000</vm_max_used_pct>
    <ram_max_used_busy_pct>300.000000</ram_max_used_busy_pct>
    <ram_max_used_idle_pct>300.000000</ram_max_used_idle_pct>
    <cpu_usage_limit>100.000000</cpu_usage_limit>
</global_preferences>

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo nano /etc/boinc-client/gui_rpc_auth.cfg

適当なパスワードを平文で書く AAAAAAAAA
保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo reboot

アカウント
Rosetta@home
Join Rosetta@home > Sign Up > アカウントを作成する

名前: GGGGGG
Eメール: BBB@BBB.BBB
パスワード: CCCCCCCCC

アカウント・キーの確認
アカウント・キー

アカウント・キー: DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

設定

$ boinccmd --passwd AAAAAAAAA --project_attach https://boinc.bakerlab.org/rosetta/ DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

確認

$ htop
$ boinctui
host 127.0.0.1
port 31416
pwd AAAAAAAAA

boinctuiメモ

Projects > Rosetta@home >
Update project: プロジェクトの更新
Suspend project: プロジェクトの一時停止
Resume project: プロジェクトの再開
No new tasks: 新しいタスクの取得中止
Allow new tasks: 新しいタスクの取得許可
Reset project: 現在のタスクの削除とプロジェクトの更新
Detach project: プロジェクトのデタッチ
Task >
Suspend task: タスクの一時停止
Resume task: タスクの再開
Abort task: タスクの完全停止

Boinccmd メモ

再読み込み 構成ファイル
$ boinccmd --passwd AAAAAAAAA --read_cc_config
再読み込み グローバル設定
$ boinccmd --passwd AAAAAAAAA --read_global_prefs_override
プロジェクトを更新
$ boinccmd --passwd AAAAAAAAA --project https://boinc.bakerlab.org/rosetta/ update
プロジェクトを停止
$ boinccmd --passwd AAAAAAAAA --project https://boinc.bakerlab.org/rosetta/ suspend
プロジェクトを再開
$ boinccmd --passwd AAAAAAAAA --project https://boinc.bakerlab.org/rosetta/ resume

CPU温度

$ while true; do vcgencmd measure_temp; sleep 1s; done

終了: Ctrl + c

World Community Grid

インストール

$ sudo apt install boinc-client boinctui
$ sudo nano /var/lib/boinc-client/cc_config.xml

設定

<cc_config>
  <log_flags>
    <task>1</task>
    <file_xfer>1</file_xfer>
    <sched_ops>1</sched_ops>
  </log_flags>
  <options>
    <alt_platform>arm-unknown-linux-gnueabihf</alt_platform>
    <allow_remote_gui_rpc>1</allow_remote_gui_rpc>
  </options>
</cc_config>

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo nano /var/lib/boinc-client/global_prefs_override.xml

設定

<global_preferences>
    <run_if_user_active>1</run_if_user_active>
    <suspend_cpu_usage>100.000000</suspend_cpu_usage>
    <leave_apps_in_memory>0</leave_apps_in_memory>
    <confirm_before_connecting>0</confirm_before_connecting>
    <hangup_if_dialed>0</hangup_if_dialed>
    <dont_verify_images>0</dont_verify_images>
    <work_buf_min_days>2.000000</work_buf_min_days>
    <work_buf_additional_days>0.500000</work_buf_additional_days>
    <max_ncpus_pct>75.000000</max_ncpus_pct>
    <cpu_scheduling_period_minutes>60.000000</cpu_scheduling_period_minutes>
    <disk_interval>300.000000</disk_interval>
    <disk_max_used_gb>100.000000</disk_max_used_gb>
    <disk_max_used_pct>100.000000</disk_max_used_pct>
    <disk_min_free_gb>0.100000</disk_min_free_gb>
    <vm_max_used_pct>100.000000</vm_max_used_pct>
    <ram_max_used_busy_pct>300.000000</ram_max_used_busy_pct>
    <ram_max_used_idle_pct>300.000000</ram_max_used_idle_pct>
    <cpu_usage_limit>100.000000</cpu_usage_limit>
</global_preferences>

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo nano /etc/boinc-client/gui_rpc_auth.cfg

適当なパスワードを平文で書く AAAAAAAAA
保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo reboot

アカウント
World Community Grid - ホーム

いますぐ参加 > サインアップ
電子メールアドレス: BBB@BBB.BBB
パスワード: CCCCCCCCC
プロジェクトを選択します > OpenPandemics-COVID-19
以降適当に
確認メールが届く

アカウント・キーの確認
World Community Grid - マイ・プロファイル

アカウント・キー: EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

設定

$ boinccmd --passwd AAAAAAAA --project_attach http://www.worldcommunitygrid.org EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

確認

$ htop
$ boinctui
host 127.0.0.1
port 31416
pwd AAAAAAAAA

boinctuiメモ

Projects > World Community Grid >
Update project: プロジェクトの更新
Suspend project: プロジェクトの一時停止
Resume project: プロジェクトの再開
No new tasks: 新しいタスクの取得中止
Allow new tasks: 新しいタスクの取得許可
Reset project: 現在のタスクの削除とプロジェクトの更新
Detach project: プロジェクトのデタッチ
Task >
Suspend task: タスクの一時停止
Resume task: タスクの再開
Abort task: タスクの完全停止

Boinccmd メモ

再読み込み 構成ファイル
$ boinccmd --passwd AAAAAAAAA --read_cc_config
再読み込み グローバル設定
$ boinccmd --passwd AAAAAAAAA --read_global_prefs_override
プロジェクトを更新
$ boinccmd --passwd AAAAAAAAA --project http://www.worldcommunitygrid.org update
プロジェクトを停止
$ boinccmd --passwd AAAAAAAAA --project http://www.worldcommunitygrid.org suspend
プロジェクトを再開
$ boinccmd --passwd AAAAAAAAA --project http://www.worldcommunitygrid.org resume

CPU温度

$ while true; do vcgencmd measure_temp; sleep 1s; done

終了: Ctrl + c

TN-Grid

インストール

$ sudo apt install boinc-client boinctui
$ sudo nano /var/lib/boinc-client/cc_config.xml

設定

<cc_config>
  <log_flags>
    <task>1</task>
    <file_xfer>1</file_xfer>
    <sched_ops>1</sched_ops>
  </log_flags>
  <options>
    <alt_platform>arm-unknown-linux-gnueabihf</alt_platform>
    <allow_remote_gui_rpc>1</allow_remote_gui_rpc>
  </options>
</cc_config>

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo nano /var/lib/boinc-client/global_prefs_override.xml

設定

<global_preferences>
    <run_if_user_active>1</run_if_user_active>
    <suspend_cpu_usage>100.000000</suspend_cpu_usage>
    <leave_apps_in_memory>0</leave_apps_in_memory>
    <confirm_before_connecting>0</confirm_before_connecting>
    <hangup_if_dialed>0</hangup_if_dialed>
    <dont_verify_images>0</dont_verify_images>
    <work_buf_min_days>2.000000</work_buf_min_days>
    <work_buf_additional_days>0.500000</work_buf_additional_days>
    <max_ncpus_pct>75.000000</max_ncpus_pct>
    <cpu_scheduling_period_minutes>60.000000</cpu_scheduling_period_minutes>
    <disk_interval>300.000000</disk_interval>
    <disk_max_used_gb>100.000000</disk_max_used_gb>
    <disk_max_used_pct>100.000000</disk_max_used_pct>
    <disk_min_free_gb>0.100000</disk_min_free_gb>
    <vm_max_used_pct>100.000000</vm_max_used_pct>
    <ram_max_used_busy_pct>300.000000</ram_max_used_busy_pct>
    <ram_max_used_idle_pct>300.000000</ram_max_used_idle_pct>
    <cpu_usage_limit>100.000000</cpu_usage_limit>
</global_preferences>

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo nano /etc/boinc-client/gui_rpc_auth.cfg

適当なパスワードを平文で書く AAAAAAAAA
保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo reboot

アカウント
新しいアカウントを作成

Invitation Code: science@tn
名前: GGGGGG
Eメール: BBB@BBB.BBB
パスワード: CCCCCCCCC

アカウント・キーの確認
アカウント・キー

アカウント・キー: HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

設定

$ boinccmd --passwd AAAAAAAAA --project_attach http://gene.disi.unitn.it/test/ HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

確認

$ htop
$ boinctui
host 127.0.0.1
port 31416
pwd AAAAAAAAA

boinctuiメモ

Projects > TN-Grid Platform >
Update project: プロジェクトの更新
Suspend project: プロジェクトの一時停止
Resume project: プロジェクトの再開
No new tasks: 新しいタスクの取得中止
Allow new tasks: 新しいタスクの取得許可
Reset project: 現在のタスクの削除とプロジェクトの更新
Detach project: プロジェクトのデタッチ
Task >
Suspend task: タスクの一時停止
Resume task: タスクの再開
Abort task: タスクの完全停止

Boinccmd メモ

再読み込み 構成ファイル
$ boinccmd --passwd AAAAAAAAA --read_cc_config
再読み込み グローバル設定
$ boinccmd --passwd AAAAAAAAA --read_global_prefs_override
プロジェクトを更新
$ boinccmd --passwd AAAAAAAAA --project http://gene.disi.unitn.it/test/ update
プロジェクトを停止
$ boinccmd --passwd AAAAAAAAA --project http://gene.disi.unitn.it/test/ suspend
プロジェクトを再開
$ boinccmd --passwd AAAAAAAAA --project http://gene.disi.unitn.it/test/ resume

CPU温度

$ while true; do vcgencmd measure_temp; sleep 1s; done

終了: Ctrl + c

Boinc

BOINCプラットフォームのみ

Boinc Manager

Install BOINC
Windows10使用

Boinc manager covid-19.jpg

設定

ファイル > コンピュータの選択
計算機名(ホスト名): covid-19
パスワード: AAAAAAAAA

リンク修正
BOINC Managerを終了
BOINC Managerのアイコンを右クリック > プロパティ
リンク先: "C:\Program Files\BOINC\boincmgr.exe" -n covid-19 -p AAAAAAAAA
BOINC Managerを起動

チームに参加
rosetta@raspberrypi.linux.5ch
Rosetta@Home - team stats - Japan | BOINCstats/BAM!

スクリーンセーバー 停止
スクリーンセーバー 設定 - Google 検索

BoincView

BOINC add-on software
BoincView
Windows10使用

BoincView.jpg

設定
ダウンロード解凍し、C:\Program Files (x86)に配置、起動
登録 > +アイコン

Name: COVID-19
Get data via network acess: ✔
Hostname: covid-19 31416
BOINC password: AAAAAAAAA
Apply

BoincTasks

BOINC add-on software
BoincTasks
Windows10使用

Boinc tasks.jpg

設定
計算機tab選択 > メニューの計算機 > 計算機を追加

計算機: COVID-19
IPアドレス: covid-19.local
ポート: 31416
パスワード: AAAAAAAAA

cpulimit

BOINC add-on software
CPU limiter

$ sudo apt install cpulimit
$ cpulimit -h

使い方が分からない…

延命化

fstab

$ sudo nano /etc/fstab

末尾に追記

tmpfs    /tmp                              tmpfs    defaults,noatime,nodiratime,mode=1777  0       0

保存: Ctrl + o リターン
終了: Ctrl + x

$ sudo reboot

確認

$ df -h

folder2ram

GitHub - bobafetthotmail/folder2ram

$ sudo wget -O /sbin/folder2ram https://raw.githubusercontent.com/bobafetthotmail/folder2ram/master/debian_package/sbin/folder2ram
$ sudo chmod +x /sbin/folder2ram
$ sudo folder2ram -configure
リターン
$ sudo nano /etc/folder2ram/folder2ram.conf

末尾に追記
boinc-client/slots BOINCプラットフォームのみ

tmpfs		/var/cache
tmpfs		/var/log
tmpfs		/var/tmp
tmpfs		/var/spool
tmpfs		/var/lib/boinc-client/slots

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo folder2ram -mountall
$ sudo folder2ram -enablesystemd
$ sudo reboot

確認

$ df -h

省電力化

HDMI

$ sudo nano /etc/rc.local

末尾のexit 0手前に追記

tvservice --off

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo reboot

Bluetooth

$ sudo nano /boot/config.txt

末尾に追記

dtoverlay=disable-bt

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo reboot

Wi-Fi

$ sudo nano /boot/config.txt

末尾に追記

dtoverlay=disable-wifi

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo reboot

USB

GitHub - mvp/uhubctl

$ sudo apt-get install libusb-1.0-0-dev
$ cd ~
$ git clone https://github.com/mvp/uhubctl.git
$ cd uhubctl
$ make
$ sudo make install
$ sudo nano /etc/rc.local

末尾のexit 0手前に追記

1B+, 2B, 3B, 3B+ のみ

uhubctl -l 1-1 -p 2 -a 0

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo reboot

LED消灯

設定

$ sudo nano /etc/rc.local

末尾のexit 0手前に追記

echo none | sudo tee /sys/class/leds/led0/trigger
echo none | sudo tee /sys/class/leds/led1/trigger

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo reboot

メール転送

msmtp

msmtp - ArchWiki

Gmailの二段階認証を設定
アプリパスワードを発行

インストール

$ sudo apt install msmtp msmtp-mta

設定

$ sudo nano /etc/msmtprc

XOAUTH2

# Set default values for all following accounts.
defaults
tls            on
tls_starttls   on
tls_certcheck  off
auth plain
logfile        ~/.msmtp.log

# Gmail
account        gmail
host           smtp.gmail.com
port           587
from           *****@gmail.com
user           *****
password       アプリパスワード

# Set a default account
account default : gmail

変更

$ sudo chmod 0644 /etc/msmtprc

送信テスト

$ echo "Subject: Test Mail" | sendmail -v *****@gmail.com

ログ

$ cd ~
$ sudo nano .msmtp.log

終了: Ctrl + x

自動アップデート

Automatically update packages on Raspberry Pi OS · GitHub
インストール

$ sudo apt install unattended-upgrades

設定

$ sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

修正

Unattended-Upgrade::Origins-Pattern {
        // Codename based matching:
        // This will follow the migration of a release through different
        // archives (e.g. from testing to stable and later oldstable).
        // Software will be the latest available for the named release,
        // but the Debian release itself will not be automatically upgraded.
//      "origin=Debian,codename=${distro_codename}-updates";
//      "origin=Debian,codename=${distro_codename}-proposed-updates";
        "origin=Debian,codename=${distro_codename},label=Debian";
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
        "origin=Raspbian,codename=${distro_codename},label=Raspbian";
        "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";

        // Archive or Suite based matching:
        // Note that this will silently match a different release after
        // migration to the specified archive (e.g. testing becomes the
        // new stable).
//      "o=Debian,a=stable";
//      "o=Debian,a=stable-updates";
//      "o=Debian,a=proposed-updates";
//      "o=Debian Backports,a=${distro_codename}-backports,l=Debian Backports";
};

メール通知

//Unattended-Upgrade::Mail "";
Unattended-Upgrade::Mail "*****@gmail.com";

保存: Ctrl + o > リターン
終了: Ctrl + x

動作確認

$ sudo unattended-upgrade -d -v --dry-run

有効化

$ sudo dpkg-reconfigure -plow unattended-upgrades

<はい> > リターン

ログ

$ sudo nano /var/log/unattended-upgrades/unattended-upgrades.log

終了: Ctrl + x

メール status
unattended-upgrades result for covid-19: FAILURE 失敗
unattended-upgrades result for covid-19: SUCCESS 成功
unattended-upgrades result for covid-19: SUCCESS [reboot required] 成功 [再起動が必要]

メモ
1B+でエラー

/var/cache/apt/archives/ に充分な空きスペースがありません。

メモリ512MB以下モデル A, A+, 3A+, 1B, 1B+, Zero
folder2ramから/var/cacheを外す

#tmpfs		/var/cache

確認

$ df -h

ヘルスモニタ

Netdata

Installation guide | Learn Netdata
Streaming and replication | Learn Netdata

インストール
Parent(親機), Child(子機) 共通

$ bash <(curl -Ss https://my-netdata.io/kickstart.sh)

設定

$ sudo /etc/netdata/edit-config netdata.conf
[global]
           history = 600
           memory mode = ram
           debug log = none
           error log = none
           access log = none
[web]
           enable gzip compression = no
[plugins]
           cgroups = no
           tc = no
           idlejitter = no

保存: Ctrl + o リターン
終了: Ctrl + x

温度センサー

$ sudo /etc/netdata/edit-config charts.d.conf

末尾に追記

sensors=force

保存: Ctrl + o リターン
終了: Ctrl + x

再起動

$ sudo service netdata restart

確認

http://covid-19.local:19999

fstab

$ sudo nano /etc/fstab

末尾に追記

tmpfs    /var/lib/netdata                  tmpfs    defaults,noatime,nodiratime,mode=1777  0       0

保存: Ctrl + o リターン
終了: Ctrl + x

$ sudo reboot

確認

$ df -h

Parent(親機)

$ sudo /etc/netdata/edit-config stream.conf

設定

# [API_KEY] is [YOUR-API-KEY], i.e [11111111-2222-3333-4444-555555555555]
[11111111-2222-3333-4444-555555555555]
  enabled = yes
  allow from = *
  default history = 3600
  default memory mode = ram
  health enabled by default = auto

保存: Ctrl + o リターン
終了: Ctrl + x

再起動

$ sudo service netdata restart

確認

http://covid-19.local:19999

オプトアウト
Anonymous statistics | Learn Netdata

$ cd /etc/netdata
$ sudo touch .opt-out-from-anonymous-statistics

ACLK無効
Agent-Cloud link (ACLK) | Learn Netdata

$ sudo su
$ cd /var/lib/netdata/cloud.d
$ ls -l

cloud.confが無い場合

$ cat > cloud.conf << EOF
[global]
    enabled = no
    cloud base url = https://app.netdata.cloud
EOF
$ chmod 0770 cloud.conf
$ chown netdata:netdata cloud.conf
$ exit

再起動

$ sudo service netdata restart

確認

http://covid-19.local:19999

Child(子機)

$ sudo /etc/netdata/edit-config stream.conf

設定
destinationは親機の固定IP
親機hostname.local:19999で設定きるか未確認

[stream]
    enabled = yes
    destination = 192.168.1.187:19999
    api key = 11111111-2222-3333-4444-555555555555

保存: Ctrl + o リターン
終了: Ctrl + x

$ sudo /etc/netdata/edit-config netdata.conf

設定

[global]
          history = 600
          memory mode = none
          debug log = none
          error log = none
          access log = none
[web]
          mode = none
          accept a streaming request every seconds = 0
          enable gzip compression = no
[plugins]
          cgroups = no
          tc = no
          idlejitter = no

保存: Ctrl + o リターン
終了: Ctrl + x

再起動

$ sudo service netdata restart

確認

http://covid-19.local:19999

オプトアウト

$ cd /etc/netdata
$ sudo touch .opt-out-from-anonymous-statistics

Modules

BOINCプラットフォームのみ
BOINC monitoring with Netdata | Learn Netdata

$ cd /etc/netdata
$ sudo ./edit-config python.d/boinc.conf

末尾に追記

remote:
  hostname: covid-19
  password: AAAAAAAAA

保存: Ctrl + o > リターン
終了: Ctrl + x

$ sudo service netdata restart

Alarms

Health quickstart | Learn Netdata
swap.conf 役に立たないので停止 異常値を設定し発火させない
ram.conf しきい値調整
Parent(親機)に設定

Parent(親機)

$ cd /etc/netdata/
$ sudo ./edit-config health.d/swap.conf

設定

# you can disable an alarm notification by setting the 'to' line to: silent

   alarm: 30min_ram_swapped_out
      on: system.swapio
      os: linux freebsd
   hosts: *
  lookup: sum -30m unaligned absolute of out
          # we have to convert KB to MB by dividing $this (i.e. the result of the lookup)$
    calc: $this / 1024 * 100 / ( $system.ram.used + $system.ram.cached + $system.ram.free$
   units: % of RAM
   every: 1m
#   warn: $this > (($status >= $WARNING)  ? (10) : (20))
#   crit: $this > (($status == $CRITICAL) ? (20) : (30))
    warn: $this > (($status >= $WARNING)  ? (99700000) : (99800000))
    crit: $this > (($status == $CRITICAL) ? (99800000) : (99900000))
   delay: up 0 down 15m multiplier 1.5 max 1h
    info: the amount of memory swapped in the last 30 minutes, as a percentage of the sys$
      to: sysadmin

   alarm: ram_in_swap
      on: system.swap
      os: linux
   hosts: *
    calc: $used * 100 / ( $system.ram.used + $system.ram.cached + $system.ram.free )
   units: % of RAM
   every: 10s
#   warn: $this > (($status >= $WARNING)  ? (15) : (20))
#   crit: $this > (($status == $CRITICAL) ? (40) : (50))
    warn: $this > (($status >= $WARNING)  ? (99700000) : (99800000))
    crit: $this > (($status == $CRITICAL) ? (99800000) : (99900000))
   delay: up 30s down 15m multiplier 1.5 max 1h
    info: the swap memory used, as a percentage of the system RAM
      to: sysadmin

   alarm: used_swap
      on: system.swap
      os: linux freebsd
   hosts: *
    calc: $used * 100 / ( $used + $free )
   units: %
   every: 10s
    warn: $this > (($status >= $WARNING)  ? (80) : (90))
    crit: $this > (($status == $CRITICAL) ? (90) : (98))
   delay: up 30s down 15m multiplier 1.5 max 1h
    info: the percentage of swap memory used
      to: sysadmin

保存: Ctrl + o > リターン
終了: Ctrl + x

リロード

$ sudo netdatacli reload-health

Parent(親機)

$ cd /etc/netdata/
$ sudo ./edit-config health.d/ram.conf

設定

# you can disable an alarm notification by setting the 'to' line to: silent

   alarm: used_ram_to_ignore
      on: system.ram
      os: linux freebsd
   hosts: *
    calc: ($zfs.arc_size.arcsz = nan)?(0):($zfs.arc_size.arcsz - $zfs.arc_size.min)
   every: 10s
    info: the amount of memory that is reported as used, but it is actually capable fo$

   alarm: ram_in_use
      on: system.ram
      os: linux
   hosts: *
#   calc: $used * 100 / ($used + $cached + $free)
    calc: ($used - $used_ram_to_ignore) * 100 / ($used  + $cached + $free)
   units: %
   every: 10s
    warn: $this > (($status >= $WARNING)  ? (80) : (90))
    crit: $this > (($status == $CRITICAL) ? (90) : (98))
   delay: down 15m multiplier 1.5 max 1h
    info: system RAM used
      to: sysadmin

   alarm: ram_available
      on: mem.available
      os: linux
   hosts: *
    calc: ($avail + $system.ram.used_ram_to_ignore) * 100 / ($system.ram.used + $syste$
   units: %
   every: 10s
#   warn: $this < (($status >= $WARNING)  ? (15) : (10))
#   crit: $this < (($status == $CRITICAL) ? (10) : ( 5))
    warn: $this < (($status >= $WARNING)  ? (7.5) : (5))
    crit: $this < (($status == $CRITICAL) ? ( 5) :(2.5))
   delay: down 15m multiplier 1.5 max 1h
    info: estimated amount of RAM available for userspace processes, without causing s$
      to: sysadmin

## FreeBSD
   alarm: ram_in_use
      on: system.ram
      os: freebsd
   hosts: *
    calc: ($active + $wired + $laundry + $buffers - $used_ram_to_ignore) * 100 / ($act$
   units: %
   every: 10s
    warn: $this > (($status >= $WARNING)  ? (80) : (90))
    crit: $this > (($status == $CRITICAL) ? (90) : (98))
   delay: down 15m multiplier 1.5 max 1h
    info: system RAM usage
      to: sysadmin

   alarm: ram_available
      on: system.ram
      os: freebsd
   hosts: *
    calc: ($free + $inactive + $used_ram_to_ignore) * 100 / ($free + $active + $inacti$
   units: %
   every: 10s
    warn: $this < (($status >= $WARNING)  ? (15) : (10))
    crit: $this < (($status == $CRITICAL) ? (10) : ( 5))
   delay: down 15m multiplier 1.5 max 1h
    info: estimated amount of RAM available for userspace processes, without causing s$
      to: sysadmin

保存: Ctrl + o > リターン
終了: Ctrl + x

リロード

$ sudo netdatacli reload-health

Email

Email | Learn Netdata

$ sudo /etc/netdata/edit-config health_alarm_notify.conf

設定
critical(きわめて危険)のみ

#sendmail=""
sendmail="/usr/bin/msmtp"
#SEND_EMAIL="NO"
SEND_EMAIL="YES"
#DEFAULT_RECIPIENT_EMAIL="root"
DEFAULT_RECIPIENT_EMAIL="*****@gmail.com|critical"

保存: Ctrl + o リターン
終了: Ctrl + x

確認

$ sudo su -s /bin/bash netdata
$ /usr/libexec/netdata/plugins.d/alarm-notify.sh test [ROLE]

終了: Ctrl + d

更新履歴

  • 2021.01.03 TN-Grid追加
  • 2020.11.07 Folding@home追加
  • 2020.10.18 World Community Grid追加
  • 2020.05.03 書き直し
  • 2020.04.06 公開