2019年11月20日水曜日

ネットワークデバイス名変更

Raspberry Pi 3B+ のネットワークデバイス名が”enxb827********”となっているので、”eth0”にしたい。

環境:
RaspberryPi3 B+
Description:    Raspbian GNU/Linux 10 (buster)
 

命名規則が”enx+MACアドレス”となっている様子。

$ sudo cp /lib/udev/rules.d/73-usb-net-by-mac.rules /lib/udev/rules.d/73-usb-net-by-mac.rules.bak
>>バックアップを取っておく。
$ sudo nano /lib/udev/rules.d/73-usb-net-by-mac.rules

---/lib/udev/rules.d/73-usb-net-by-mac.rules---
# Use MAC based names for network interfaces which are directly or indirectly
# on USB and have an universally administered (stable) MAC address (second bit
# is 0). Don't do this when ifnames is disabled via kernel command line or
# customizing/disabling 99-default.link (or previously 80-net-setup-link.rules)
# or if the interface name was provided by user-space.

ACTION=="remove", GOTO="usb_net_by_mac_end"
SUBSYSTEM!="net", GOTO="usb_net_by_mac_end"
ATTR{name_assign_type}=="3", GOTO="usb_net_by_mac_end"

IMPORT{cmdline}="net.ifnames"
ENV{net.ifnames}=="0", GOTO="usb_net_by_mac_end"

SUBSYSTEMS=="usb", NAME=="", \
    ATTR{address}=="?[014589cd]:*", \
    TEST!="/etc/udev/rules.d/80-net-setup-link.rules", \
    TEST!="/etc/systemd/network/99-default.link", \
    IMPORT{builtin}="net_id", NAME="$env{ID_NET_NAME_MAC}"
------------------------------------------------------------

"$env{ID_NET_NAME_MAC} "を"eth0"に変更する。

今後の更新でこの修正が上書きされないようにするには、次の手順を実行。

$ cp /lib/udev/rules.d/73-usb-net-by-mac.rules /etc/udev/rules.d/

2019年11月16日土曜日

RaspberryPi ネットワーク速度改善

購入したラズパイのネットワーク転送速度が遅い。
大体1MB/s位しかでていないので、『iPerf3』を利用して計測してみることにした。

iperf は、TCP/UDPのネットワーク最大帯域幅パフォーマンスを測定できるベンチマークツール。

準備
ラズパイ側
# apt install iperf3

PC側
  1. https://iperf.fr/iperf-download.phpからiPerf3 Windows64bit版をダウンロード。
  2. zipファイルを解凍して出てきた2つのファイル「cygwin1.dll」と「iperf3.exe」を"C:\WINDOWS\system32"に移動。

計測
ラズパイ側
# iperf3 -s
>>サーバーとして起動

PC側
  1. コマンドプロンプトを開き、"iperf3 -c <IPaddress>"を入力 
ラズパイには2つのNICがあるので、それぞれ2度計測してみた。
eth0  >7.31Mbits/sec ~ 8.78Mbits/sec
wlan0>8.25Mbits/sec ~ 8.36Mbits/sec

上記から大体1MB/sというのは当たっているみたいだけど、、、遅い!!

定番の『CrystalDiskMark』でも調べてみた。
ラズベリーパイのSMBフォルダをネットワークドライブに割り当てることで、計測可能となる。
→ PC ~ ルーター ~ コンバータ --- AP --- RPi (---有線、~無線)
 ルーターとPCとメディア関連の設置場所がすべてことなるので、上記のような面倒な状況となっている。



改善策1
・無線LANの反応が悪いのはパワーマネジメント機能がONになっているためらしいので、これをOFFにしてみる。

パワーマネジメント機能の切り方
 ラズパイ側
# iwconfig
>>Bit Rate=135Mb/s だと!!
>>Power Management:on 現在ONになっているので、
# iwconfig wlan0 power off
# iwconfig にて確認
>>Bit Rate=150Mb/s になってるし、、、
>>Power Management:off OFFになった。

再度iPerf3で確認
eth0>7.23Mbits/s ~ 7.42Mbits/s
wlan0>6.92Mbits/s ~ 7.94Mbits/s
若干数値下がってるし。


改善策2
・PCをアクセスポイント(AP)に有線接続して計測してみた。
 → PC --- AP ---RPi(---は有線)


PC - RPi 間のネットワーク改善が必要!

使用しているストレージはruf3-sp64g-bkでRPi3B+はUSB2.0接続なので、PCにUSB2.0接続するよりも高速という不思議。

ただ、通常の使用では
→ PC ~ ルーター ~ コンバーター --- AP --- RPi (---有線、~無線)
APにRPi、TV、BDレコーダーを有線接続している。
 通常のマルチメディア視聴環境はAP以下で収まっているが、PCだけインターネットを使用するため、ルーターの無線ネットワークに接続させている。
PCからAPへ無線接続してみた。
→ PC ~ AP --- RPi (---有線、~無線)


 ルーターとコンバータ経由より2倍は早いけど、それでも有線に比べて遅すぎ。PCのWiFiが遅いのか。
使用している無線ラン子機はTP-Link TL-WN725Nで公称150Mbpsの通信速度がある。

 PCのインターネット速度を計測。
使用したのは『google』のインターネット速度テスト。

 

アップロードで1.3MB/s弱しか出ていない。updownで2.2MB/s。
デフォルトゲートウェイに”ping 192.168.0.1 -l 60000”してみた。平均=43ms
帯域≒(Byte*2)/s=60000*2/0.043≒2.66MB/sなので、

これは、無線ラン子機が原因か!?
スマホで上記と同じインターネット速度テストをしたところ、DL:31.8Mbps、UL:43.3Mbpsだったので、PCの無線ラン子機がボトルネックになっているという推測となった。

後日、無線ラン子機を買いなおしてみよう。

2019.12.12追記
WI-U3-866DSを購入(2019.11月)


2011.1.4追記
WN-AX1167GR2を購入(2019.12月)

PC(WI-U3-866DS)~無線~ WN-AX1167GR2 -有線ー RPi
 だいぶ有線接続の値に近づいた。

2019年11月7日木曜日

OMV4 エラー対策(仮)

環境:
RaspberryPi 3B+
カーネル:Linux 4.19.81-v7+
openmediavault:4.1.26-1(Arrakis)
OSイメージファイル:OMV_4_Raspberry_Pi_2_3_3Plus_4.img

エラー1:Web-gui に接続できない。
対策:原因がたくさんあるようなので、うちの環境での例。
$ sudo service nginx status
(nginx.serviceの状態を確認。。)
$ sudo nano /etc/nginx/sites-enabled/openmediavault-webgui
(nano で上記ファイルを開く。必要ならcpにてバックアップを取る。)
/etc/nginx/sites-enabled/openmediavault-webguiの下の方にある、
}
listen 80;
#listen [::]:80 ipv6only=off;
上記のように#でコメントアウトすることで、無事WebGUIにアクセスすることが出来るようになった。

エラー2:ドライブを認識しない。
対策:デバイスを接続した状態でインストールすると認識しないらしい。
一度OMV4側で再起動する必要がある。ラズパイ側での再起動ではなく。普段はSSHで再起動してたから気が付かなかった。

エラー3:WiFiデバイスを認識しない。
対策:Raspberry Pi3B+は初期状態ではWiFiが無効になっている。ロケール設定をしないと有効にならないらしい。
状況確認に使いそうなコマンド
「ifconfig」「iwconfig」「systemctl」「nmtui」「nmcli」「locale」「ip a」「omv-firsteid」

対策1:ロケール設定 
$ locale にてロケールの状態確認。
$ localectl list-locales にて表示されたリストから設定を選ぶ。ja_JP.utf8
$ localectl set-locale LANG=ja_JP.utf8

上記実施→$ logoff→$ login
をしてみたけど、上手くいかない。

対策2:
$ wget https://archive.raspberrypi.org/debian/pool/main/f/firmware-nonfree/firmware-brcm80211_20190114-1+rpt2_all.deb
$ sudo apt install firmware-brcm80211_20190114-1+rpt2_all.deb
(エラーや警告が出るけどとりあえず無視)
$ reboot

※蛇足
$nmtui で確認したところ、WiFiデバイス名はB8:27:EB:75:70:FC(wlan0)にだった。

エラー4:Failed to start Raise network interfaces
上記エラー3でネットワーク周りの設定を大分いじったのが原因だと思うが、$ systemctl status networking にて上記エラーが発生していた。
対策: /etc/network/intarfaces を編集する。

$ sudo nano /etc/network/intarfaces
----------------- /etc/network/intarfaces---------------------
auto lo
iface lo inet loopback
----------------------------------------------------------------
上記の2行に変更。#でコメントアウトでもOK。bonding時の設定ミスがあった模様。
(2019.11.10追記)

エラー5:Failed to start Realtek H5 bluetooth support.(未解決)
OMV4でbluetoothを使う場面が想定できないけど、Failedになっているのが、気になるので、Activeにしたい。でも接続するbluetooth機器がないので、しばらく保留。
対策:
$ armbian-configでbluetoothがインストールされているか確認。
$ sudo apt install pi-bluetooth (version0.1.12)

エラー6:smartd.serviceがfailed
status=17の場合、smart可能なHDDがないことを示す。
対策:HDDを接続し、BOOTデバイスを変更する。



今後の対応予定:$ systemctlにてfailedとなっている項目。

watchdog.service(Failed to start watchdog daemon.)
ウォッチドッグとは、システムが正常に動作しているか監視するデバイスの総称。
$ journalctl -xe
--------------------------
Error: Cannot glob /sys/class/rc/rc0/input[0-9]*/event[0-9]* 
----------------------------
$ apt install watchdog(version5.15-2)
$ update-rc.d watchdog enable
$ modprobe bcm2835_wdog 
>>>modprobe: FATAL: Module bcm2835_wdog not found in directory /lib/modules/4.19.81-v7+ にてエラー
$ modprobe bcm2835_wdt
$ nano /lib/systemd/system/watchdog.service
---watchdog.service------------------------
WantedBy=multi-user.target
----------------------------------------------
$ nano /etc/watchdog.conf
---watchdog.conf--------------------------
max-load-1 = 24
watchdog-device = /dev/watchdog
watchdog-timeout = 10
---------------------------------------------
$ systemctl enable watchdog.service
$ reboot

$ :(){ :|:& };:(forkbomb)


$ systemctl status watchdog.service

wd_keepalive.service( Failed to start watchdog keepalive daemon. )
上記設定が終わり”/etc/default/watchdog”内のrun_wd_keepaleve=1にすれば大丈夫か。(上記watchdog.serviceの対策が終了しておらず未検証)
$ nano /etc/default/watchdog
---/etc/default/watchdog----------------
# Set run_wd_keepalive to 1 to start wd_keepalive after stopping watchdog or 0
# to disable it. Running it is the default. (
#rundogを停止してからwd_keepaliveを開始するにはrun_wd_keepaliveを1に設定し、無効にするには0に設定します。 それを実行することがデフォルトです。
run_wd_keepalive=0or1 (デフォルトは”0”)
--------------------------------------------  

var-swap.swap (Failed to activate swap /var/swap.