raspberry pi 4 のCPUが risc-v になったらいいなあ
https://www.nikkeibp.co.jp/atclpubmkt/book/18/269170/ より
米インテル(パソコン)とsoftbank(スマホ)に牛耳られていたマイクロプロセッサの
世界に、期待の大型新人「RISC-V(リスクファイブと呼ぶ)」が登場しました。
RISC-Vの最大の特徴はオープンソースという点です。
ソフトのLinuxのように無償で公開され、誰でも自由に改良・再配布ができる
命令セット・アーキテクチャです。ハードにもオープンソースの時代が到来したのです。
DACボードなしの分は ずっと下の 14) に書いてます。
話をもとにもどします
少しだけクロックアップしたため冷やしてます。
ファン無しで ユーチューブをみてると
pi@raspberrypi:~ $ vcgencmd measure_temp
temp=66.6'C
になります。
ファンをいれると 次第に温度が冷えてきて
pi@raspberrypi:~ $ vcgencmd measure_temp
temp=41.3'C
になります、有効!
root@raspberrypi:/home/pi# hdparm -t /dev/sda1
/dev/sda1:
Timing buffered disk reads: 42 MB in 1.06 seconds = 39.61 MB/sec
https://blog.goo.ne.jp/pc_college/e/1a16858696af668a44cd9a58a0c9105a
によると 「USB2.0」では、どんなに高速なHDDでも速度は30数MB/sで頭打ちになってしまいです。
m.2 SSDを使うと以下のように起動は25秒になります
https://www.youtube.com/watch?v=hng0EWwU8Nc&feature=youtu.be
ソフト的には
A) nat : wifiをもたない他のPCと 有線の cross cable で接続して そいつをインターネットへ持っていきます
B) 大容量なLINUXのハードディスクを nfs マウントします
C) ハイレゾ音楽を raspbeian で演奏します
活発に動かしてても 7W じっとしてると 5W と超エコです!
raspberry pi には、デュプリケーター 、 有線LAN 、電源 、 HDMIケーブル しかつないでないです、 指示は bluetooth mouseで 行います。
平時はソフトウェアキーボード(matchbox-keyboard)を使います。
ルートをハードディスクにすると びっくりするほど早くなります |
---|
第一、 2chには「SDをハードに使うとSDはサクッと死にます」と書かれてますので この対策用でもあります。 自分の手塩にかけた可愛いマイクロSDカードを死なせたくないです |
これ大昔の絵(ギリシャ時代だったか)です、キングギドラそっくり、特に翼の感じが! |
---|
見よ、大きな、赤い龍がいた。それに七つの頭と十の角とがあり...その尾は天の星の三分の一を掃き寄せ...ミカエルとその御使たちとが、龍と戦った (ja.wikipedia.orgより) |
raspbianをインストした後のお話です
uname -ar
Linux raspberrypi 4.14.71-v7+ #1145 SMP
Fri Sep 21 15:38:35 BST 2018
armv7l GNU/Linux
[arco LINUX] マシンに
raspbianをいれた
マイクロSDカードと
USB ハードディスクと
をつけます
マイクロSDカードは /dev/sdc
USB ハードディスクは /dev/sdb
です
USB ハードディスク は以下のようにパーティションを切ります
fdisk -l /dev/sdb
Device Boot Start End Sectors Size Id Type
/dev/sdb1 65536 2162654 2097119 1024M c W95 FAT32 (LBA)
/dev/sdb2 18939616 625142447 606202832 289.1G 83 Linux
/dev/sdb3 2162656 18939614 16776959 8G 82 Linux swap / Solaris
その後
mount /dev/sdc2 /mc2
mount /dev/sdb2 /mb2
rsync -avHx /mc2/ /mb2/
この作業のあと arcolinuxから
マイクロSDカードも
USBハードディスクも
抜き去り
それら2つを raspberry pi 3 B につけて起動したあと
ファイルを修正します
1)
cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
2-1)
mount /dev/sda2 /ma2
のあと
2-2)
cat /ma2/etc/fstab
proc /proc proc defaults 0 0
PARTUUID=de1cfc42-01 /boot vfat defaults 0 2
/dev/sda2 / ext4 defaults,noatime 0 1
/dev/sda3 none swap defaults 0 0
2-3)
cat /ma2/etc/rc.local
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
service dphys-swapfile stop
exit 0
3) こうしてから
マイクロSDカードと USBハードをつけたまま
再起動をします
すると以下になります
df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/root 297294880 4070216 278053212 2% /
devtmpfs 470116 0 470116 0% /dev
tmpfs 474724 8172 466552 2% /dev/shm
tmpfs 474724 12632 462092 3% /run
tmpfs 5120 4 5116 1% /run/lock
tmpfs 474724 0 474724 0% /sys/fs/cgroup
/dev/mmcblk0p1 44144 22501 21643 51% /boot
tmpfs 94944 0 94944 0% /run/user/1000
/dev/sda1 1046492 4 1046488 1% /media/pi/D84B-591D
/dev/mmcblk0p2 14777440 3955828 10165204 29% /media/pi/rootfs
と ルートは 297GBあります
-----------------
top - 12:29:42 up 21 min, 2 users, load average: 0.62, 0.43, 0.31
Tasks: 136 total, 1 running, 89 sleeping, 0 stopped, 1 zombie
%Cpu(s): 0.6 us, 0.4 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 949448 total, 90580 free, 317308 used, 541560 buff/cache
KiB Swap: 8388472 total, 8388472 free, 0 used. 579348 avail Mem
とスワップは8GB超えてあります
これにて raspberry pi 3 B が立派な sftp ファイルサーバーになりました。 |
---|
また 脆弱なマイクロSDカードは 起動時に1回読み込むだけですから破滅から免れます |
さらにはUSBハードディスクのほうが 普通のマイクロSDカードよりも早い |
消費電力が極めて小さいので電気代やすく 長時間使用も苦になりません |
bluetooth mouseときっちりくっつきます、すばらしい
ソフトウェアキーボード
cat keyboard.bat
# !/bin/bash
matchbox-keyboard &
にて youtubeみるくらなどでは キーボードも ソフトウェアキーボードで十分
ただしインターネットにWWWサーバーとして晒すには危険すぎます。釣り客をのせる魚釣船では太平洋横断はむりですねー. 自分の場合 1Wでラズパイ船は難破しました、クラッカーにアタックされたかも。 |
---|
/boot/cmdline.txt *だけ*を元のに書き換えると 元のマイクロSSDだけの運用に戻せます(簡単なシェルスクリプトでできます). お出かけ時は以下のSSDですべて運用です。 なぜなら旅館ではwifiが便利だし 通常その部屋についてるTVを利用できますね、これでノートPCよりずっと軽くてかさばらない! |
実際のホテルでの様子で、上にソフトウェアキーボードがでてるので これをブルーツースマウスでクリックすると文字が打ち込めます
今は持ち歩くときは USBハードディスクをつけてます、余裕さえあれば1TBも夢じゃないです。
普通のHDDでは電源不足になりますが SSDなので大丈夫です
なお 電源は 100円ショップの 300円の 5V 2.4A電源です。
また 入力は bluetooth マウスと ソフトウェアキーボードです。
さらに 上にI2C DACボードをのせ raspbian でも
https://akita-arm.blogspot.com/2018/04/raspberry-pi-3-stretch.html
にて ハイレゾを出してます。
今回は スワップは以下のように
https://a244.hateblo.jp/entry/2016/12/12/010429
みて 2024MBにしてます
さらに 16GB マイクロSDカードはもったいないですので LINUXなPCにつけて以下をして
起動用のマイクロSDカードを 4GBのものにしました。
4GBのマイクロSDカードは いつ壊れても金銭的いたでないですから。
dd if=/dev/sdf of=/dev/sdg bs=512 count=100000
(sdfは16GBのマイクロSDカード sdgは4GBのマイクロSDカード)
それから /dev/sdgの第二領域をfdiskで削除
4) ラズパイを NATにします~~
今までは dnsmasqでうまく行ってたのですが あかんようになりました。 なんでんねん |
---|
そのため isc-server でします |
./comment-out.bat dhcpd.bat
ifconfig eth0 192.168.1.1
systemctl restart isc-dhcp-server.service
mac='wlan0'
echo '--------- to nat ? ------------'
echo $mac
echo '----------------------------'
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t filter -F FORWARD
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o $mac -j MASQUERADE
iptables-save
なお
./comment-out.bat /etc/dhcp/dhcpd.conf
ddns-update-style none;
ignore client-updates;
log-facility local7;
not authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8;
range dynamic-bootp 192.168.1.100 192.168.1.110;
default-lease-time 21600;
max-lease-time 43200;
}
です。
でもdhcpd.batを /etc/rc.local に
書いていてもうまくあきまへん。
これも なんでやろー なんでやろー なにがなんでやろー
**ここは 試論です。かご自分でお確かめ下さい**
curl -O http://nami.jp/ipv4bycc/cidr.txt.gz && gunzip -f cidr.txt.gz
sed -n 's/^\(CN\|KP\)\t//p' cidr.txt >ruwa.txt
sed "s/^/ipset add ruwa /g" ruwa.txt >ruwa.bat
とを利用して ruwa.bat をつくり
chmod +x ruwa.bat
とします。
つまり
head ruwa.bat
ipset add ruwa 1.0.1.0/24
ipset add ruwa 1.0.2.0/23
ipset add ruwa 1.0.32.0/19
ipset add ruwa 1.0.8.0/21
ipset add ruwa 1.1.0.0/24
ipset add ruwa 1.1.16.0/20
ipset add ruwa 1.1.2.0/23
ipset add ruwa 1.1.32.0/19
ipset add ruwa 1.1.4.0/22
ipset add ruwa 1.1.8.0/21
な格好です
ipset create ruwa hash:net
./ruwa.bat
dhcpd-super.bat として
ifconfig eth0 192.168.1.1
systemctl restart isc-dhcp-server.service
mac='wlan0'
echo '--------- to nat ? ------------'
echo $mac
echo '----------------------------'
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t filter -F FORWARD
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o $mac -j MASQUERADE
iptables -I INPUT -m set --match-set ruwa src -j DROP
iptables-save
これを実行させても dhcpdサーバーとなってます。
# iptables -L は
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- anywhere anywhere match-set ruwa src
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
でいけてるようです。
ただ dhcpd-super.bat を実行するのに 少し時間がかかります。
5) ちょっとだけ オーバークロック
diff /boot/config.txt /boot/config.txt-OK-1205
43c43
< arm_freq=800
---
> #arm_freq=800
6) 普通のSSDを m.2 SSD (sata)に変えて 小型化した。
このアダプターの中に m.2 ssd が入っていて これがラズパイのUSBポートと手を結んでいる
これを利用して ラズパイの最終形は以下です。 ファンは壊れたビデオカードからのを廃物利用してます
7) archman を nfs マウント
archman で
/etc/exports
/srv/nfs4 192.168.2.115(rw,sync,fsid=0)
systemctl restart nfs-server.service
ラズパイで
mount.nfs 192.168.2.109:/srv/nfs4 /NFS
8)印刷
接続: lpd://192.168.2.114:515/PASSTHRU
9)例えばhttps://www.youtube.com/watch?v=MLqIWp1ShhE の 音が途切れる対策
解像度を Mode 58 に下げます, かつ firefox-esr を利用すればいい
9) 監視カメラは 普通のUSBカメラ
internet---web server:192.168.222.109---192.168.222.100:rasberry pi
ラズパイ側では次をcronでまわします
cat shot.bat
X=`date +%d-%H:%M`
fswebcam -p MJPEG /home/pi/$X.jpg
ls -ltr /home/pi
#######################
scp /home/pi/$X.jpg a@192.168.222.109:/tmp
WEBサーバー側では次をcronでまわします
k.bat
cp /tmp/*.jpg /usr/share/nginx/html
rm /tmp/*.jpg
cd /usr/share/nginx/html
/usr/share/nginx/html/pre.bat > /usr/share/nginx/html/index.html
pre.bat
echo '--- photo ---写真 </p> </p> '
for x in ` ls *.jpg `
do
echo "<a href=$x > $x </a> </p> </p>"
done
10)直接印刷難しいので 一旦PDFに変えてから印刷
print.bat
lp -d Rpi3_EP-901A $
11) update
12) youtube 例えば https://www.youtube.com/watch?v=MLqIWp1ShhE を途切れなく聴くには firefoxでないとだめ
13) ハイレゾ 詳しくは https://akita-arm.blogspot.com/2018/04/raspberry-pi-3-stretch.html
sudo apt-get -y update
sudo apt-get -y upgrade
sudo rpi-update
$ ls -l /lib/modules/4....-v7+/kernel/sound/soc/bcm/
をみて
./comment-out.bat /etc/modules
i2c-dev
snd-soc-hifiberry-dacplus
ls -l /boot/overlays
をみて
./comment-out.bat /boot/config.txt
dtoverlay=hifiberry-dacplus
dtparam=audio=on
●i2s-DACを常用にする設定
設定-> Audio Device Settin->サウンドカー-->dacplus(Alsa mixer)なんたら
を選びます。
つぎに
コントロールを選択をクリックしAnalogueにチェック
DSP Proguramをチェックすると、内部のフィルタなどの制御ができます。
最後に
Make Defaultをクリック。
これ以降、HDMIではなくi2s-DACから音が出ます。
14) DACボードなし だと簡単で、SDカードは壊れやすいので rootは USBハードディスクにした(rootをUSBハードディスクで運用)
sdb:SDカード<---容量は わずか **4GB**
sdc:USBハードディスク
として
A) まず **<16GB>**のSDカード にインストします。
dd if=2018-11-13-raspbian-stretch-full.img of=/dev/sdb bs=16k
B) **<16GB>**のSDカード の起動を確か
さらに /boot/cmdline.txt を以下のように書き換えます。
# cat cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles
root=/dev/sda2だけです
C)シャットダウンして **<16GB>**のSDカード を抜きます。
D)LINUXなパソコンに **<16GB>**のSDカード と USBハードディスクをつけ
/dev/sdbは**<16GB>**のSDカード /dev/sdcは USBハードディスク
dd if=/dev/sdb of=/dev/sdc bs=16k
その後 fdisk /dev/sdc をして USBハードディスクのサイズと合わせます。
E)**<16GB>**のSDカードを ラズパイのSDスロットに
USBハードディスクを USBポートにつけたら
起動します。
あとは
sudo apt-get -y update
sudo apt-get -y upgrade
sudo rpi-update
swapを2Gへ
/etc/dphys-swapfileを
CONF_SWAPSIZE=2048
systemctl stop dphys-swapfile
systemctl start dphys-swapfile
ソフトウェアキーボードは文字化けを避けるために
IPAフォントをいれないといけなかった
cat keyboard.bat
# !/bin/bash
matchbox-keyboard &
なお バックアップは partcloneが便利です
また なにもしないでも自動的にfcitx-mozcがはいってくるようになって便利になりました。
以上で ハイ一丁、出来上がりで下の写真の如くになってます
なお 重要ファイルは以下です
pi@raspberrypi:~ $ ./comment-out.bat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/sda2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
pi@raspberrypi:~ $ ./comment-out.bat /etc/fstab
proc /proc proc defaults 0 0
PARTUUID=6b3a87b5-01 /boot vfat defaults 0 2
/dev/sda2 / ext4 defaults,noatime 0 1
pi@raspberrypi:~ $ ./comment-out.bat /etc/dphys-swapfile
CONF_SWAPSIZE=2048
なお
hdparm -t /dev/sda2すると
/dev/sda2:
Timing buffered disk reads: 120 MB in 3.01 seconds = 39.90 MB/sec
と USB2.0理論値上限の40MB/SECに近いですね
赤ちゃん監視カメラで、 これは見るだけで 記録はなしです
systemctl enable apache2
https://qiita.com/MuAuan/items/b3abd4cff2f39aa1f2d0
で導入し
./comment-out.bat baby.bat
/usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -y -q 100 -r 640x320 -f 30" -o "/usr/local/lib/output_http.so -w ./www -p 8888" -b
として
# crontab -l
@reboot /home/pi/baby.bat
するとスマホなどから
http://192.168.2.128:8888/?action=stream
でみれますが、 1秒位の遅れはあります。
監視記録は motion でおこないます
modprobe bcm2835-v4l2
すると
ラズパイのカメラが motionでつかえます。
なお
diff /etc/motion/motion.conf /etc/motion/motion.conf-original
100c100
< width 640
---
> width 320
103c103
< height 480
---
> height 240
273,274c273
< output_pictures best
---
> output_pictures on
451c450
< target_dir /NFS
---
> target_dir /var/lib/motion
492c491
< stream_port 8888
---
> stream_port 8081
506d50
./comment-out.bat motion-2-nfs.bat
ifconfig | grep 192
sleep 10
modprobe bcm2835-v4l2
umount /NFS
mount.nfs 192.168.2.113:/srv/nfs4 /NFS
ls /NFS
motion &
で動かします
つまり画像は ラズパイでなく 別のパソコン192.168.2.113に保存されます。
|それは 賊にラズパイを叩き壊されても 画像そのものは ラズパイーwifiー> 別のPC と 別のPCである192.168.2.113 にあるので 賊の顔姿は別のPCにあるので 証拠はきっちり残ってます |
|:---|
あと 別のパソコン192.168.2.113 で 2日前のjpgを消してます
crontab -l
0 * * * * /home/open/delete-motion_by_rpi.bat
なお
./comment-out.bat delete-motion_by_rpi.bat
x=date --date '2 day ago' +%y%m%d
echo $x
rm /srv/nfs4/$x.jpg
また 最後のaviファイルを 別のパソコンで再生するには
./comment-out.bat play-motion.bat
x=ls -ltr /srv/nfs4/*.avi | tail -1|awk '{print $NF}' -
mplayer $x
## あ) 以下はRpi**3** でしていた監視カメラで、 これをRpi4でもやりたい

## 現行は USBカメラでしており以下です
crontab -l
@reboot /usr/sbin/sshd ; /home/pi/motion-2-Local-NFS.bat
/etc/motion/motion.conf は以下
daemon off
process_id_file /var/run/motion/motion.pid
setup_mode off
logfile /var/log/motion/motion.log
log_level 6
log_type all
videodevice /dev/video0
v4l2_palette 17
input -1
norm 0
frequency 0
power_line_frequency -1
rotate 0
width 640
height 480
framerate 2
minimum_frame_time 0
netcam_keepalive off
netcam_tolerant_check off
rtsp_uses_tcp on
auto_brightness off
brightness 0
contrast 0
saturation 0
hue 0
roundrobin_frames 1
roundrobin_skip 1
switchfilter off
threshold 1500
threshold_tune off
noise_level 32
noise_tune on
despeckle_filter EedDl
smart_mask_speed 0
lightswitch 0
minimum_motion_frames 1
pre_capture 0
post_capture 0
event_gap 60
max_movie_time 0
emulate_motion off
output_pictures best
output_debug_pictures off
quality 75
picture_type jpeg
ffmpeg_output_movies on
ffmpeg_output_debug_movies off
ffmpeg_timelapse 0
ffmpeg_timelapse_mode daily
ffmpeg_bps 400000
ffmpeg_variable_bitrate 0
ffmpeg_video_codec mpeg4
ffmpeg_duplicate_frames true
use_extpipe off
snapshot_interval 0
locate_motion_mode off
locate_motion_style box
text_right %Y-%m-%d\n%T-%q
text_changes off
text_event %Y%m%d%H%M%S
text_double off
target_dir /NFS <ーーーーーーーーーーーーーーーー注意
snapshot_filename %v-%Y%m%d%H%M%S-snapshot
picture_filename %v-%Y%m%d%H%M%S-%q
movie_filename %v-%Y%m%d%H%M%S
timelapse_filename %Y%m%d-timelapse
ipv6_enabled off
stream_port 8888
stream_quality 50
stream_motion off
stream_maxrate 1
stream_localhost on
stream_limit 0
stream_auth_method 0
webcontrol_port 8080
webcontrol_localhost on
webcontrol_html_output on
track_type 0
track_auto off
track_iomojo_id 0
track_step_angle_x 10
track_step_angle_y 10
track_move_wait 10
track_speed 255
track_stepsize 40
quiet on
crontab -l は
@reboot /usr/sbin/sshd ; /home/pi/motion-2-Local-NFS.bat
0 */3 * * * /home/pi/clear-old-motion.bat
/home/pi/motion-2-Local-NFS.bat は
x3=date --date '3 day ago' +%Y%m%d
echo $x3
rm /NFS/$x3.jpg
rm /NFS/$x3.avi
x4=date --date '4 day ago' +%Y%m%d
echo $x4
rm /NFS/$x4.jpg
rm /NFS/$x4.avi
x5=date --date '5 day ago' +%Y%m%d
echo $x5
rm /NFS/$x5.jpg
rm /NFS/$x5.avi
x6=date --date '6 day ago' +%Y%m%d
echo $x6
rm /NFS/$x6.jpg
rm /NFS/$x6.avi
motion &
/home/pi/clear-old-motion.bat は 3〜6日前の motionで走査されたファイルを消しで
x3=date --date '3 day ago' +%Y%m%d
echo $x3
rm /NFS/$x3.jpg
rm /NFS/$x3.avi
x4=date --date '4 day ago' +%Y%m%d
echo $x4
rm /NFS/$x4.jpg
rm /NFS/$x4.avi
x5=date --date '5 day ago' +%Y%m%d
echo $x5
rm /NFS/$x5.jpg
rm /NFS/$x5.avi
x6=date --date '6 day ago' +%Y%m%d
echo $x6
rm /NFS/$x6.jpg
rm /NFS/$x6.avi
これにて
df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/root 14778368 8240228 5872184 59% /
devtmpfs 443724 0 443724 0% /dev
tmpfs 448332 0 448332 0% /dev/shm
tmpfs 448332 11720 436612 3% /run
tmpfs 5120 4 5116 1% /run/lock
tmpfs 448332 0 448332 0% /sys/fs/cgroup
/dev/mmcblk0p1 44220 22389 21832 51% /boot
tmpfs 89664 0 89664 0% /run/user/1000
と ルートは15GB弱しかないけど まだまだ余裕がある
------
|androidタブレットをラズパイの画面として使うのは、以下に記載|
|:---|
| https://akita-arm.blogspot.com/2019/04/andoroid.html |

動画は
https://youtu.be/zfxYUdhyrb8
です。