本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
Stretchが出てた
いつの間にかStretchがリリースされていたので、設定してみます。
基本的には、
こちらの情報と同じに設定していきますが、Jessie からStretchに変わっているので若干変更しているところがあります。
Orange PIのパスワード
ユーザ名: orangepi
パスワード:orangepi
root のパスワードも orangepi
です。良く忘れるんで。
apt.sourceの設定
最初に登録のあった cnサイトを、jpサイトに書き換えました
# cat /etc/apt/sources.list
#deb http://ftp2.cn.debian.org/debian stretch main contrib non-free
#deb-src http://ftp2.cn.debian.org/debian stretch main contrib non-free
#deb http://ftp2.cn.debian.org/debian stretch-updates main contrib non-free
#deb-src http://ftp2.cn.debian.org/debian stretch-updates main contrib non-free
#deb http://security.debian.org/ stretch/updates main contrib non-free
#deb-src http://security.debian.org/ stretch/updates main contrib non-free
deb http://ftp.jp.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ stretch main contrib non-free
deb http://ftp.jp.debian.org/debian/ stretch-updates main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ stretch-updates main contrib non-free
deb http://ftp.jp.debian.org/debian/ stretch-backports main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ stretch-backports main contrib non-free
apt-get update
apt-get upgrade
にて、最新の状態を保ちます。
時刻を日本語表示に変更
Mon Jul 26 22:21:41 UTC 2021
root@OrangePi:/home/orangepi# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
root@OrangePi:/home/orangepi# date
Tue Jul 27 07:22:02 JST 2021
キーボードの日本語対応-うまくいかない
ssh接続で、ターミナル接続している時には気になりませんが、USB接続したキーボードは英語キーボードとして認識されています。
root@OrangePi:/home/orangepi# apt-get install keyboard-configuration
その後
dpkg-reconfigure keyboard-configuration
を実行し
もしくは、Japanese(OADG 109A)を選択
Jessieの時はこれでうまくいったはずなのですが、結局日本語キーマップにならずじまいでした。ちょっと不明だけど、SSH接続するんでもういいやと諦めて次へ進みます。
USB温度計準備
USB温度計をOrangePI PCへ挿入
dmesg
すると、USB温度計が認識しているのが分かります。
[ 92.343374] usb 7-1: new full-speed USB device number 2 using ohci-platform
[ 92.538464] usb 7-1: New USB device found, idVendor=413d, idProduct=2107, bcdDevice= 0.00
[ 92.538482] usb 7-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 92.548550] input: HID 413d:2107 as /devices/platform/soc/1c1c400.usb/usb7/7-1/7-1:1.0/0003:413D:2107.0003/input/input4
[ 92.601302] hid-generic 0003:413D:2107.0003: input,hidraw2: USB HID v1.11 Keyboard [HID 413d:2107] on usb-1c1c400.usb-1/input0
[ 92.606894] hid-generic 0003:413D:2107.0004: hiddev96,hidraw3: USB HID v1.10 Device [HID 413d:2107] on usb-1c1c400.usb-1/input1
USB温度計をコントロールするドライバをコンパイルするため、必要なアプリを取得します。
apt-get install build-essential libusb-0.1-4 libusb-dev git
git hubかあ温度測定ソースを取得します。
git clone https://github.com/bitplane/temper.git
ダウンロードしたtemper.c の時刻表示を変更します
# vi temper/temper.c
変更前
strftime(dt, 80, "%d-%b-%Y %H:%M", utc);
変更後
strftime(dt, 80, “%Y-%m-%d %H:%M:%S”, utc);
makeします
root@OrangePi:/home/orangepi# cd temper/
root@OrangePi:/home/orangepi/temper# make
temperが動かない
まれに動かないものがあるようです。
それを確かめるためには lsusbコマンドを打たなければなりません。
usbutilsをインストールします。
apt-get install usbutils
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
adwaita-icon-theme at-spi2-core gnome-icon-theme gtk-update-icon-cache im-config libatk-bridge2.0-0 libatk1.0-0 libatk1.0-data libatspi2.0-0
libaudio2 libcairo-gobject2 libcolord2 libcroco3 libdouble-conversion1 libegl1-mesa libepoxy0 libevdev2 libgail-common libgail18 libgbm1
libgcroots0 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libgles2-mesa libglew2.0 libglu1-mesa libgtk-3-0 libgtk-3-bin libgtk-3-common
libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libice6 libinput-bin libinput10 libjson-glib-1.0-0 libjson-glib-1.0-common libllvm3.9
libmariadbclient18 libmng1 libmtdev1 libpcre16-3 libqt4-dbus libqt4-designer libqt4-network libqt4-qt3support libqt4-script libqt4-sql
libqt4-sql-mysql libqt4-xml libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5svg5 libqt5widgets5 libqt5x11extras5 libqtcore4
libqtdbus4 libqtgui4 librest-0.7-0 librsvg2-2 librsvg2-common libsensors4 libsm6 libsoup-gnome2.4-1 libtxc-dxtn-s2tc libuim-custom2
libuim-data libuim-plugins libuim-scm0 libuim8 libwacom-bin libwacom-common libwacom2 libwayland-client0 libwayland-cursor0
libwayland-egl1-mesa libwayland-server0 libx11-xcb1 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1
libxcb-present0 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-sync1 libxcb-util0 libxcb-xfixes0 libxcb-xinerama0 libxcb-xkb1
libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxi6 libxinerama1 libxkbcommon-x11-0 libxkbcommon0 libxrandr2 libxshmfence1
libxt6 libxtst6 libxxf86vm1 mesa-utils mysql-common qdbus qt-at-spi qt5-gtk-platformtheme qtchooser qtcore4-l10n qttranslations5-l10n
uim-common uim-fep uim-gtk2.0 uim-gtk3 uim-qt uim-qt5 uim-utils uim-xim x11-common xkb-data
あたり製品を引いてしまいました。
Bus 007 Device 003: ID 413d:2107
がっかり。
このバージョンはtemperが動かないバージョンとして有名なんです。はずれ引いちゃいました。
動かす方法がないわけではないので、とりあえずやってみます。
ID 413d:2107 を設定する
HIDAPI をGitします。
HIDAPIは、アプリケーションがインターフェイスできるようにするマルチプラットフォームライブラリです。
signal11/hidapi
root@OrangePi:/home/orangepi# git clone https://github.com/signal11/hidapi
Cloning into 'hidapi'...
remote: Enumerating objects: 2006, done.
remote: Total 2006 (delta 0), reused 0 (delta 0), pack-reused 2006
Receiving objects: 100% (2006/2006), 2.73 MiB | 0 bytes/s, done.
Resolving deltas: 100% (1172/1172), done.
Makeするために必要なファイルをインストール
# apt install libusb-1.0-0-dev libudev-dev cmake
シンボリックリンクを張る
# make -f Makefile-manual
# cp libhidapi-hidraw.so /usr/local/lib/
# ln -s /usr/local/lib/libhidapi-hidraw.so
root@OrangePi:/home/orangepi/hidapi/linux# make -f Makefile-manual
cc -Wall -g -fpic -c -I../hidapi `pkg-config libusb-1.0 --cflags` hid.c -o hid.o
g++ -Wall -g -fpic -c -I../hidapi `pkg-config libusb-1.0 --cflags` ../hidtest/hidtest.cpp -o ../hidtest/hidtest.o
g++ -Wall -g hid.o ../hidtest/hidtest.o `pkg-config libudev --libs` -lrt -o hidtest-hidraw
cc -Wall -g `pkg-config libudev --libs` -lrt -shared -fpic -Wl,-soname,libhidapi-hidraw.so.0 hid.o -o libhidapi-hidraw.so
root@OrangePi:/home/orangepi/hidapi/linux# cp libhidapi-hidraw.so /usr/local/lib/
root@OrangePi:/home/orangepi/hidapi/linux# ln -s /usr/local/lib/libhidapi-hidraw.so /usr/local/lib/libhidapi-hidraw.so.0
その後 git により、TEMPeredを取得します
git clone https://github.com/hughesr/TEMPered
最新のクローンしたソースではmac用に改変されているのだとか..。
今回はラズパイ(Linux用)で動かしたいので,Linuxで動いていたリビジョンまでコミットを戻していきます。
ラズパイとUSB温度計「TEMPer」(413d:2107)で温度を監視したいのだが,うまく動かない!?
git を見てみましたけど、私には分かりませんでした。この方の記事の通り進めたら、ちゃんと計測できるようになりました。大変ありがたいです。ありがとうございます。
137 git clone https://github.com/hughesr/TEMPered
138 cd TEMPered/
139 ls
140 git checkout hack-413d-2107
141 git reset --hard 75aa1e2
142 cmake .
143 make
144 ls
145 make install
146 tempered
温度計るとこんな感じで表示されます。
root@OrangePi:/home/orangepi/TEMPered# tempered
/dev/hidraw3 0: temperature 32.56 °C
/dev/hidraw3 1: Failed to get the temperature: Not enough data was read from the sensor.
/dev/hidraw3 1: no sensor data available
ntpの設定
ntpを設定します。
# apt-get install ntp
ntpq -pn すると、時刻同期の状況が分かります。
# ntpq -pn
remote refid st t when poll reach delay offset jitter
==============================================================================
0.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.001
1.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.001
2.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.001
3.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.001
-173.255.192.10 129.7.1.66 2 u 12 64 1 150.811 -9.052 1.435
-38.229.54.9 172.16.21.35 2 u 9 64 1 178.537 -2.775 2.073
+162.159.200.123 10.23.8.4 3 u 12 64 1 59.450 -8.549 3.439
-167.179.96.146 43.162.219.88 2 u 9 64 1 18.533 -2.942 2.782
+157.245.125.229 129.6.15.30 2 u 11 64 1 162.530 -4.207 1.708
#138.68.201.49 205.161.200.3 3 u 9 64 1 114.760 -1.396 1.784
*133.130.121.141 133.243.238.163 2 u 11 64 1 19.865 -3.339 3.728
74.6.168.73 208.71.46.33 2 u 8 64 1 113.001 -3.491 4.251
-66.220.9.122 .CDMA. 1 u 10 64 1 125.904 -5.413 3.677
-162.159.200.1 10.23.8.4 3 u 10 64 1 55.733 -5.601 3.206
-103.202.216.35 210.173.160.87 3 u 10 64 1 23.893 -4.868 2.060
#72.249.38.88 204.123.2.72 2 u 7 64 1 158.125 -4.206 1.184
-129.250.35.250 249.224.99.213 2 u 9 64 1 15.362 -4.420 1.829
rsyslogのインストール
# apt-get install rsyslog
日本語化
apt-get install locales
dpkg-reconfigure locales
テキストの加工
温度だけ取り出す
# tempered 2> /dev/null | egrep '0\:' | awk -F: '{print $2}' | awk '{print $2$3}'
32.56°C
日本語年月日表示
# date "+%Y年%-m月%d日"
2021年7月27日
時刻表示
# date "+%H時%M分"
10時39分
HTMLを作成する
cronで回して、定期的にwebにアップロードするようにします。
その際のHTMLです。
#!/bin/sh
date "+%Y年%-m月%d日" | awk '{print "<p>"$1"<br>"}' > digi.html
date "+%H時%M分" | awk '{print $1"<br>"}' >> digi.html
tempered 2> /dev/null | egrep '0\:' | awk -F: '{print $2}' | awk '{print $2$3"</p>"}' >> digi.html
ロリポップマネージドクラウドへSCPアップロード
root@OrangePi:/home/orangepi# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:CtpV9I8c7wEIqTAE5DmqIJfXs3Fz9mvBgohqsSUNAWw root@OrangePi
The key's randomart image is:
/root/.ssh/ ディレクトリにif_rsa.pubができているので、これをロリポップマネージドクラウドに設置します。
登録すると、SSH接続できるようになります。
root@OrangePi:~/.ssh# ssh -p 3335 fast-aishin0111@ssh-5.ib.lolipop.jp
The authenticity of host '[ssh-5.ib.lolipop.jp]:3335 ([***.***.***.***]:3335)' can't be established.
ECDSA key fingerprint is SHA256:********************************
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[ssh-5.ib.lolipop.jp]:3335,[***.***.***.***]:3335' (ECDSA) to the list of known hosts.
__ __ ____ _ _ _
| \/ |/ ___| | | ___ | (_)_ __ ___ _ __
| |\/| | | | | / _ \| | | '_ \ / _ \| '_ \
| | | | |___ _| |__| (_) | | | |_) | (_) | |_) |
|_| |_|\____(_)_____\___/|_|_| .__/ \___/| .__/
|_| |_|
******* Welcome to Lolipop! Managed Cloud *******
ここまでできればSCPも可能です。
scp -i /root/.ssh/id_rsa -P 3335 /usr/local/sbin/temperature/digi.html fast-aishin0111@ssh-5.ib.lolipop.jp:./html
コマンド結果を一列に表記
日付、時刻、温度 を一列で表記したい
(date "+%Y/%m/%d %H:%M:%S" ; /usr/local/bin/tempered 2> /dev/null | egrep '0\:' | awk -F: '{print $2}' | awk '{print $2$3}') | xargs
CRONに登録して定期実行
毎時0分に温度を計測し、HTMLを整形して、webサーバにアップロードするスクリプトをCronで定期実行します。
# m h dom mon dow command
0 * * * * /usr/local/sbin/temperature/digi.sh
まとめ
日付・時刻・気温を1時間ごとにテキストへ記録
日付・時刻・気温をHTML化し、ロリポップマネージドクラウドへアップロード
#!/bin/sh
#日付時刻と温度を一行で記録- 1時間ごとの気温を記録し続ける
(date "+%Y/%m/%d,%H:%M:%S," ; /usr/local/bin/tempered 2> /dev/null | egrep '0\:' | awk -F: '{print $2}' | awk '{print $2$3}') | xargs >> /usr/local/sbin/temperature/ondo.txt
#日付 HTML形式で
date "+%Y年%-m月%d日" | awk '{print "<p>"$1"<br>"}' > /usr/local/sbin/temperature/digi.html
#時刻 HTML形式で
date "+%H時%M分" | awk '{print $1"<br>"}' >> /usr/local/sbin/temperature/digi.html
#温度 HTML形式で
/usr/local/bin/tempered 2> /dev/null | egrep '0\:' | awk -F: '{print $2}' | awk '{print $2$3"</p>"}' >> /usr/local/sbin/temperature/digi.html
#SCPでロリポップマネージドクラウドへアップ
scp -i /root/.ssh/id_rsa -P 3335 /usr/local/sbin/temperature/digi.html fast-aishin0111@ssh-5.ib.lolipop.jp:./html
stretchで固定IP
以前は、
/etc/network/interfaces
を編集してた
今回OrangePIで設定したのは
/etc/network/interface.d/eth0
の中に
allow-hotplug eth0
iface eth0 inet static
address 192.168.2.103
netmask 255.255.255.0
gateway 192.168.2.254
dns-nameservers 8.8.8.8