SSDが激安なのでVisionFive2をファイルサーバー化・Ubuntuにしてみたけどいまのところ失敗

SBC(シングルボードコンピュータ)

最近SSDがかなり安くなったので、そろそろハードディスクでファイルサーバーを運用するのをやめてSSDに変え、さらにSBC(シングルボードコンピュータ)でファイルサーバーを構築しようと目論んでいました。

候補に上がったのは今あるSBCのJetoson Nano、Khadas VIM1SでSSDが使えるかと思い、SSDをUSBで接続できるUSBアダプターを使って接続してみました。一応マウントはできるもののファイルコピーをすると途端にI/Oエラーになってフリーズしてしまう。

NVME M.2 SSDのUSBアダプターは↑このようなUSB3.1対応を買いました。

この記事は複数のページに別れています

そしてNVME M.2 SSDを搭載できるRISC-V(誰でも自作できるオープンなCPU、対抗馬のARMはライセンス料が必要)のVisionFive2があるので、試してみたくなってファイルサーバーを構築しようとしましたが失敗・・・してしまったのでご報告します。

夏なのでヒートシンクもつけてみる、冬になったらうるさいのでファンは作動させないつもり。VisionFive2は4GBにした。
裏にNVME M.2 SSDを装着できる。SSDの長さは2280のみ装着可能。
VisionFive2 ファイルサーバーにできない理由
  • SAMBA インストール不可(ユーザーランドのみUbuntuにしたらSambaは動くけど、Wifi USBドングルのドライバーをインストールできなかった。)
  • SSD認識しなくなる(最初は普通にマウントできたが、Apt Upgradeしたら認識されず、その後 新しいMicroSDでも最初からエラーが出て認識しなくなる。)

Sambaが動かなくてもコマンドのScpで操作しようとしましたが、遅い、有線LANでもなぜか遅い。Sambaも結局遅いので有線LANに接続するか、もう少し調べてチューニングする必要あり。

VisionFive2は発展途上(自分も)の部分が多いので、これからのアップデートに期待するしかなさそう。

USBアダプターにヒートシンクも付けたNVME M.2 SSD 2TB

ラズパイ3BはSSDを接続するとフリーズする・・・WindowsだとUSBポートにさしたら普通に快適に使えます。NVME M.2 SSDのUSBアダプターはLinux全般で使えないのだろうか?

USBアダプター + NVME M.2 SSD
  • Raspberry Pi 3B(USB2.0):フリーズする
  • Jetoson Nano 2GB(USB3.0):SSDを操作するとI/Oエラーになってフリーズ
  • Khadas VIM1S(USB2.0):SSDを操作するとI/Oエラーになる。
  • VisionFive2(USB3.0):フリーズする

USBアダプターに装着したSSDを各SBCのUSBポートにさすと↑このように全滅(泣)

なんだかんだ言ってもWindowsのほうが安定性というか普及している数が違うので手間なく操作しやすいのは間違いないですね。

Raspberry Pi 4Bだけfdiskで認識されました! ↓sudo fdisk -lの実行結果(一部)

Disk /dev/sda: 1.82 TiB, 2000398934016 bytes, 3907029168 sectorsDisk model: RTL9210B-CGUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 33553920 bytesDisklabel type: dosDisk identifier: 0x08e359aa

ラズパイ4BでSSDを使ってファイルサーバーたてたほうがよさそう。

以下、メモ的にVisionFive2で成功・失敗したことなどを書いていきます。

  1. VisionFive2でDebian インストール・起動
    1. 取説をざっと見る
    2. Debianイメージ ダウンロード
    3. Etcher
    4. RGPIO PIN設定
    5. ログイン
  2. 有線LANでつなぐ
  3. アップデート・アップグレード
    1. リポジトリの設定
  4. /dev/mmcblk1p4 拡張
    1. mmcblk1p5 フォーマット
      1. 失敗したやり方
  5. Wifiドングルをつなぐ
    1. 古いイメージだとWifi認識しなかったが202306イメージだとWifi認識される
    2. MACアドレスチェック
    3. 70-persistent-net.rules 書き込む
    4. nmtui ツールでWifi登録
  6. VisionFive2でSambaインストール失敗(202306イメージ)
      1. シリコンパワー SSD 2TB 3D NAND M.2 2280 PCIe3.0
        1. PCIe3.0×4だが、USB3.0接続ならばコレで十分な速度。9千円を切る価格のときもある。
    1. SSD 2TB 認識されているかチェック
    2. SSD マウント
    3. UUIDチェック
    4. fstabに登録
    5. SSDが認識されずに起動時にメンテナンスモードになったら
    6. Sambaインストールできない・・・
      1. aptitude でインストールしてみる
      2. sources.list を変更してみる
      3. aptのSamba情報
  7. Samba以外の共有方法を試してみる
      1. WinSCP・Filezillaでコピーしてみる
      2. WinSCPの暗号を軽いのにする
      3. 同時接続を上げる
      4. PSCPを使う
      5. SCPを使う
  8. Docker内でSambaをインストール 失敗(202306イメージ)
    1. インストール
  9. SSD読まなくなった!(202306イメージ)
    1. SSD スリープしないけど
    2. 電源が原因?
  10. おまけ 役に立ちそうなコマンド
    1. Freeコマンド
    2. OSやCPUを調べる
      1. CPU情報
      2. Unix Name オペレーションシステムの名前・バージョン表示
    3. 時刻合わせ うまくできなかった・・・
    4. CPU温度計測

VisionFive2でDebian インストール・起動

まずはDebian、最新の202306をダウンロードした、Torrentファイルが無いので途中で途切れる時がある。800MB弱でダウンロード速度は遅い。

9/1に202308がアップされてます。(現在検証中)

202308でもエラーでSSDが認識されない。以下のエラーになる。違うSSDで試したほうがいいかな?

dmesg | grep nvme
[    4.675771] nvme nvme0: pci function 0001:01:00.0
[    4.687279] nvme 0001:01:00.0: enabling device (0000 -> 0002)
[    5.194517] nvme nvme0: Device not ready; aborting initialisation, CSTS=0x0
[    5.218212] nvme nvme0: Removing after probe failure status: -19

違うメーカーのSSDを装着しましたが、同じく認識されませんでした(泣)、OSを新しくしてもダメ、Ubuntuにしてもダメ、SSDを違うメーカーのものにしてもダメ。

しばらくVisionFive2にはSSDを装着しないようにします。

取説をざっと見る

https://doc-en.rvspace.org/VisionFive2/PDF/VisionFive2_QSG.pdf

ラズパイと同様にEtcherでMicroSDにインストールすればよさそう。

Debianイメージ ダウンロード

以下のOneDrive > 2023 >SDをダウンロード

StarFiveTech

Onedrive > Image-69 >Image-69.torrentをダンロードしてTorrentアプリでダウンロードする。

コレはダメ、古い!↑Wifi使えない

Etcher

starfive-jh7110-202306-SD-minimal-desktop.img.bz2、これをEtcherでMicroSDカードに焼く。

コレは↓ダメ。古い「starfive-jh7110-202306-SD-minimal-desktop.img.bz2」を使う。

“D:\Torrent\Image-69\starfive-jh7110-VF2_515_v2.5.0-69.img\starfive-jh7110-VF2_515_v2.5.0-69.img”を選ぶ、一応起動はするが頻繁にフリーズ・落ちる。

RGPIO PIN設定

MicroSDカードで起動する場合はRGPIOピンを設定する必要がある。

MicroSDカードの場合は下(RGPIO_0)を左側にする。

こちらに詳しく書いてある。

VisionFive 2 Debian Wiki - 202306 Release

ログイン

Username: user
Password: starfive

ログインできたものの、最初はWifiに繋がらないので、ネットに接続できない。

有線LANで最初は接続するしかなさそう。

有線LANでつなぐ

最初は有線LANにつなぐ。つなぐだけで安定しているので有線LANのほうが快適っぽい。

192.168.31.133でSSHログインできた。

もしくは、Windowsパソコンから有線で接続してSSHでstarfive.localでアクセスする手もある。ただネットにつながらないのでWindows側でブリッジ接続の設定も必要。

アップデート・アップグレード

リポジトリの設定

sudo apt updateでエラーになる。
Hit:1 https://snapshot.debian.org/archive/debian-ports/20220616T194833Z unstable InRelease
Err:1 https://snapshot.debian.org/archive/debian-ports/20220616T194833Z unstable InRelease
  The following signatures were invalid: EXPKEYSIG E852514F5DF312F6 Debian Ports Archive Automatic Signing Key (2022) <ftpmaster@ports-master.debian.org>
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://snapshot.debian.org/archive/debian-ports/20220616T194833Z unstable InRelease: The following signatures were invalid: EXPKEYSIG E852514F5DF312F6 Debian Ports Archive Automatic Signing Key (2022) <ftpmaster@ports-master.debian.org>
W: Failed to fetch https://snapshot.debian.org/archive/debian-ports/20220616T194833Z/dists/unstable/InRelease  The following signatures were invalid: EXPKEYSIG E852514F5DF312F6 Debian Ports Archive Automatic Signing Key (2022) <ftpmaster@ports-master.debian.org>
W: Some index files fai
第752回 RISC-VのシングルボードコンピューターであるVisionFive 2を使ってみる | gihyo.jp
今回はStarFive Technology製のRISC-Vシングルボードコンピューター(SBC)であるVisionFive 2にDebianをインストールして、その性能を計測してみましょう。

この方↑のやり方に従う。

cat /etc/apt/sources.list
deb https://snapshot.debian.org/archive/debian-ports/20220616T194833Z unstable main

リストに追加↓

sudo mv /etc/apt/sources.list{,.d/snapshot.conf.disabled}
echo "deb http://deb.debian.org/debian-ports unstable main" | sudo tee /etc/apt/sources.list

ファイルゲット

wget https://deb.debian.org/debian-ports/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2023.02.01_all.deb
sudo apt install ./debian-ports-archive-keyring_2023.02.01_all.deb
sudo apt update

これやる前に次の項目のSDカード拡張する。
sudo apt full-upgrade
202306のイメージでやると容量が足りないみたい?
E: You don't have enough free space in /var/cache/apt/archives/.

とりあえずGUI停止しておこう。

CUI
sudo systemctl set-default multi-user.target

GUI
sudo systemctl set-default graphical.target

updateできるようになったがルートの /dev/mmcblk1p4 の容量が足りない。

sudo apt autoremove && sudo apt autoclean
sudo apt clean packages

ぜんぜん容量が足りない、128GBのMicroSDだが/に2.5GBしか当ててないのが原因。

ここで、次の項目の作業をしてmmcblk1p4を拡張した。

/dev/mmcblk1p4 拡張

MicroSDを最小限しか使ってないので、足りない。まずはPartition5を作って拡張する。

ここ↓に詳しいやり方書いてありました。

Extend Partition on SD Card or eMMC
To fully utilize the unused space on the SD card or eMMC after logging into Debian, perform the following steps: Use the...

mmcblk1p5 フォーマット

fdiskでPartition見ると/( /dev/mmcblk1p4 )でほとんど使ってない・・・

sudo fdisk /dev/mmcblk1
Command (m for help): p

Disk /dev/mmcblk1: 119.25 GiB, 128043712512 bytes, 250085376 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: E05DB137-41F7-47A6-B1C1-E9BE91A4BC0E

Device          Start     End Sectors  Size Type
/dev/mmcblk1p1   4096    8191    4096    2M HiFive BBL
/dev/mmcblk1p2   8192   16383    8192    4M HiFive FSBL
/dev/mmcblk1p3  16384  221183  204800  100M EFI System
/dev/mmcblk1p4 221184 5527518 5306335  2.5G Linux filesystem

面倒なので、起動しているファイルシステムのままfdiskやっちゃう。結果うまくいった。

mmcblk1p4、 mmcblk1p5を削除して 再度mmcblk1p4を作成してみる。

sudo fdisk /dev/mmcblk1

Command (m for help): d(Partition削除)
Partition number (1-4, default 4):

Partition 4 has been deleted.

Command (m for help): n(Partition作成)
Partition number (4-128, default 4):
First sector (34-250085342, default 221184):リターンしていく
Last sector, +/-sectors or +/-size{K,M,G,T,P} (221184-250085342, default 250083327):

Created a new partition 4 of type 'Linux filesystem' and of size 119.1 GiB.
Partition #4 contains a ext4 signature.
~
Do you want to remove the signature? [Y]es/[N]o: n

Command (m for help): p(Partitionを見る)

Disk /dev/mmcblk1: 119.25 GiB, 128043712512 bytes, 250085376 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: E05DB137-41F7-47A6-B1C1-E9BE91A4BC0E

Device          Start       End   Sectors   Size Type
/dev/mmcblk1p1   4096      8191      4096     2M HiFive BBL
/dev/mmcblk1p2   8192     16383      8192     4M HiFive FSBL
/dev/mmcblk1p3  16384    221183    204800   100M EFI System
/dev/mmcblk1p4 221184 250083327 249862144 119.1G Linux filesystem
最後wで終わる。

fdiskやっただけじゃまだダメ

df -H
Filesystem      Size  Used Avail Use% Mounted on
udev            1.8G     0  1.8G   0% /dev
tmpfs           409M  3.5M  405M   1% /run
/dev/mmcblk1p4  2.6G  2.4G  273M  90% /
tmpfs           2.1G     0  2.1G   0% /dev/shm
tmpfs           5.3M   13k  5.3M   1% /run/lock
/dev/mmcblk1p3  105M   24M   82M  23% /boot
tmpfs           409M   37k  409M   1% /run/user/110
tmpfs           409M   25k  409M   1% /run/user/1000

でもfdiskではこのように↓なってる。
sudo fdisk /dev/mmcblk1
Command (m for help): p
Device          Start       End   Sectors   Size Type
/dev/mmcblk1p1   4096      8191      4096     2M HiFive BBL
/dev/mmcblk1p2   8192     16383      8192     4M HiFive FSBL
/dev/mmcblk1p3  16384    221183    204800   100M EFI System
/dev/mmcblk1p4 221184 250083327 249862144 119.1G Linux filesystem

整合性もチェックしないといけないけど、マウントしているので無理っぽい。他のディスクで起動してやるしかなさそう。省略

sudo apt install e2fsprogs
sudo e2fsck -f /dev/mmcblk1p4(できないからパス)

リサイズしたらうまくいった!↓

sudo resize2fs /dev/mmcblk1p4

df -H
Filesystem      Size  Used Avail Use% Mounted on
udev            1.8G     0  1.8G   0% /dev
tmpfs           409M  3.5M  405M   1% /run
/dev/mmcblk1p4  126G  2.4G  124G   2% /
tmpfs           2.1G     0  2.1G   0% /dev/shm
tmpfs           5.3M   13k  5.3M   1% /run/lock
tmpfs           409M   37k  409M   1% /run/user/110
tmpfs           409M   25k  409M   1% /run/user/1000

失敗したやり方

別のやり方で新しくPartition5を作ってそこに/varのみ移動しようとしたが、失敗

sudo systemctl daemon-reload
sudo mkdir /mnt/free
sudo mount /dev/mmcblk1p5 /mnt/free

マウントして、

sudo vi /etc/fstab
/dev/mmcblk1p5            /mnt/free                     ext4           defaults                                     0 1
すぐに反映
sudo systemctl daemon-reload

sudo blkid /dev/mmcblk1p5
/dev/mmcblk1p5: UUID="fc1fb8fe-daf5-4e1d-8eda-b350a40c4d1d" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="8b559fe9-9169-cd44-a0cc-d6786106e6ca"
ダメだったらUUIDに変更する。

シングルユーザーモードでVerを移動

sudo init 1
sudo rsync -au /var/* /mnt/free
cd /
sudo mv var var.back
sudo mkdir var
sudo vi /etc/fstab
fc1fb8fe-daf5-4e1d-8eda-b350a40c4d1d            /var                     ext4           defaults                                     0 1

リブートしてみる。ダメ!システム壊れた(泣)

Wifiドングルをつなぐ

VisionFive2を買った時についでにWifiドングルも買っておいた。

(GUI起動していて、マウスとキーボードつなげてあれば、右上のパワーアイコンからWifiを選んでパスワードを入力すればつながるので以下の操作は不要です。)

古いイメージだとWifi認識しなかったが202306イメージだとWifi認識される

ip neigh
192.168.31.1 dev end0 lladdr 88:c3:97:c1:1d:72 STALE
192.168.31.150 dev end0 lladdr e0:d4:e8:0a:9c:63 REACHABLE
192.168.31.54 dev end0 lladdr b8:27:eb:c8:ea:80 STALE
192.168.31.239 dev end0 lladdr 70:f7:54:08:05:72 STALE
192.168.31.53 dev end0 lladdr 48:22:54:c7:31:82 STALE
fe80::296d:c149:d3f:9443 dev end0 lladdr 48:22:54:c7:31:82 STALE
fe80::564f:6f2b:eca1:60c dev end0 lladdr e0:d4:e8:0a:9c:63 STALE
fe80::1da4:27d9:2ecb:aeac dev end0 lladdr 70:f7:54:08:05:72 STALE

ifconfigがなぜかない?「ip addr」に変わったみたい。

202306版でやったらWifi認識されてる。

ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: end0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 6c:cf:39:00:6e:1c brd ff:ff:ff:ff:ff:ff
3: end1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether 6c:cf:39:00:6e:1d brd ff:ff:ff:ff:ff:ff
4: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
5: wlx2c0547a11d06: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000
    link/ether a2:a2:46:9b:0c:c2 brd ff:ff:ff:ff:ff:ff permaddr 2c:05:47:a1:1d:06

このあたり↓を参考にした。

VisionFive2 - Waveshare Wiki
sudo apt install iw

MACアドレスチェック

ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: end0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 6c:cf:39:00:6e:1c brd ff:ff:ff:ff:ff:ff
    inet 192.168.31.133/24 brd 192.168.31.255 scope global dynamic noprefixroute end0
       valid_lft 42545sec preferred_lft 42545sec
    inet6 fe80::e883:f931:564e:1b45/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: end1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 6c:cf:39:00:6e:1d brd ff:ff:ff:ff:ff:ff
4: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
5: wlx2c0547a11d06: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 1a:3f:dc:46:ee:93 brd ff:ff:ff:ff:ff:ff permaddr 2c:05:47:a1:1d:06

WifiにMACアドレスは「 2c:05:47:a1:1d:06 」だった。

70-persistent-net.rules 書き込む

MACアドレスを含んだ行をルールに追加。

sudo vi /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="? *", ATTR{address}=="2c:05:47:a1:1d:06", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="wlan0" 

リロードして認識させる。

sudo udevadm control --reload-rules

nmtui ツールでWifi登録

nmtui というWifiを設定するツールがある。

sudo nmtui

GUI操作必要ない、これかなり便利です。

ラズパイにも?NetworkManagerがあってそれが起動できればnmtuiも使えそうですが、sudo systemctl start NetworkManagerをするとWifiが切断されてしまう・・・

Activate a connection > 自宅のWifiを選ぶとパスワード画面になるので、入力する。

以上で設定完了。

Wifiルーター↓にWifiの部分にStarfiveが表示された。

ip addrだと↓以下のようになる。

5: wlx2c0547a11d06: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 2c:05:47:a1:1d:06 brd ff:ff:ff:ff:ff:ff
    inet 192.168.31.97/24 brd 192.168.31.255 scope global dynamic noprefixroute wlx2c0547a11d06
       valid_lft 43090sec preferred_lft 43090sec
    inet6 fe80::2e6c:2d5a:537:5f2f/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

192.168.31.97に接続している。これでWifi接続できた!

VisionFive2でSambaインストール失敗(202306イメージ)

SSD 2TBをVisionsの裏に装着したので、SambaでWindowsからアクセスしてファイルサーバーとして使う。

買ったのはシリコンパワーの9千円切の2TBのSSD、最近はホント安いですね♪

こちらを2枚買ってプライベートで撮りためた画像・動画などの保存用に使う。

シリコンパワー SSD 2TB 3D NAND M.2 2280 PCIe3.0

シリコンパワー SSD 2TB 3D NAND M.2 2280 PCIe3.0
シリコンパワーSP002TBP34A60M28

10,000円前後
PCIe3.0×4だが、USB3.0接続ならばコレで十分な速度。9千円を切る価格のときもある。

SSD 2TB 認識されているかチェック

Fdisk で認識されている。(最初はこのようにちゃんと認識されたんです・・・ただ不安定)

sudo fdisk -l
Disk /dev/mtdblock0: 128 KiB, 131072 bytes, 256 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mtdblock1: 3 MiB, 3145728 bytes, 6144 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mtdblock2: 1 MiB, 1048576 bytes, 2048 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
GPT PMBR size mismatch (32767999 != 249737215) will be corrected by write.


Disk /dev/mmcblk1: 119.08 GiB, 127865454592 bytes, 249737216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B3E6F05B-DFC8-47B7-9C2B-F4762387709C

Device          Start      End  Sectors  Size Type
/dev/mmcblk1p1   2048    34815    32768   16M Linux filesystem
/dev/mmcblk1p2  34816   239615   204800  100M EFI System
/dev/mmcblk1p3 239616 32765918 32526303 15.5G Linux filesystem


Disk /dev/nvme0n1: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: SPCC M.2 PCIe SSD
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x08e359aa

Device         Boot Start        End    Sectors  Size Id Type
/dev/nvme0n1p1       2048 3907026943 3907024896  1.8T  7 HPFS/NTFS/exFAT

SSD マウント

WindowsのNTFSファイルシステムでSSD 2TBが認識されているのでマウントしてみる。

sudo mkdir /mnt/soko2t
sudo chmod 775 /mnt/soko2t

SSDのどれをマウントすれば良いのか分からない。

ダメ↓
sudo mount /dev/nvme0n1 /mnt/soko2t
NTFS signature is missing.
Failed to mount '/dev/nvme0n1': Invalid argument
The device '/dev/nvme0n1' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
ダメ↓
sudo mount /dev/nvme0n /mnt/soko2t
mount: /mnt/soko2t: special device /dev/nvme0n does not exist.
       dmesg(1) may have more information after failed mount system call.

sudo mount /dev/nvme0n1p1 /mnt/soko2t
コレ↑でマウントできた。
ls /devでnvme0nあたりのをマウント・アンマウントして試した。

一旦マウント解除する
sudo umount /mnt/soko2t

UUIDチェック

fstabにSSD情報を書くのに /dev/nvme0n1p だと変わる時があるのでUUIDを調べて書く。

sudo blkid /dev/nvme0n1p1
/dev/nvme0n1p1: LABEL="soko2t" BLOCK_SIZE="512" UUID="B6FE2734FE26EBF5" TYPE="ntfs" PARTUUID="08e359aa-01"

fstabに登録

sudo vi /etc/fstab
UUID=B6FE2734FE26EBF5   /mnt/soko2t ntfs    defaults        0       0

sudo systemctl daemon-reload

これで自動マウント完了

ls /mnt/soko2tでマウントされていて、dfでも表示される♪

df -H
Filesystem      Size  Used Avail Use% Mounted on
udev            1.8G     0  1.8G   0% /dev
tmpfs           409M  3.2M  405M   1% /run
/dev/mmcblk1p4  128G  4.5G  124G   4% /
tmpfs           2.1G     0  2.1G   0% /dev/shm
tmpfs           5.3M   13k  5.3M   1% /run/lock
/dev/nvme0n1p1  2.1T  1.2T  815G  60% /mnt/soko2t
tmpfs           409M   66k  409M   1% /run/user/110
tmpfs           409M   54k  409M   1% /run/user/1000

これでいつでもSSHからはアクセスできるようになる。

SSDが認識されずに起動時にメンテナンスモードになったら

202306イメージでうまくいったが、再起動すると起動しない時がある。その時はfstabでSSDを読まないようにする。

メンテナンスモードでルートのパスワードは「starfive」でログインしてfstabを編集、SSDの行の先頭に「#」を入れる。

vi /etc/fstab

ついに、SSDが認識されなくなった。

Sambaインストールできない・・・

apt installでうまくSambaをインストールできない。

sudo apt install -y samba
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 samba : Depends: samba-common (= 2:4.18.5+dfsg-1) but it is not going to be installed
         Depends: samba-common-bin (= 2:4.18.5+dfsg-1) but it is not going to be installed
         Recommends: attr but it is not going to be installed
         Recommends: python3-markdown but it is not going to be installed
         Recommends: samba-dsdb-modules but it is not going to be installed
         Recommends: samba-vfs-modules but it is not going to be installed
         Recommends: samba-ad-provision but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

aptitude でインストールしてみる

Jetoson Nanoと同じエラーかな?と思ったけどダメ。

sudo apt install aptitude
sudo aptitude install samba
The following NEW packages will be installed:
  attr{a} libgfapi0{a} libgfrpc0{a} libgfxdr0{a} libglusterfs0{a} libldb2{a} liblmdb0{a}
  libpython3.11{a} libtalloc2{a} libtdb1{a} libtevent0{a} liburing2{a} libwbclient0{a}
  libyaml-0-2{a} python3-anyio{a} python3-certifi{a} python3-cffi-backend{a}
  python3-chardet{a} python3-charset-normalizer{a} python3-click{a} python3-colorama{a}
  python3-cryptography{a} python3-dnspython{a} python3-gpg{a} python3-h11{a} python3-h2{a}
  python3-hpack{a} python3-httpcore{a} python3-httpx{a} python3-hyperframe{a}
  python3-idna{a} python3-ldb{a} python3-markdown{a} python3-markdown-it{a}
  python3-mdurl{a} python3-pkg-resources{a} python3-pygments{a} python3-requests{a}
  python3-requests-toolbelt{a} python3-rfc3986{a} python3-rich{a} python3-samba{a}
  python3-sniffio{a} python3-talloc{a} python3-tdb{a} python3-yaml{a} samba{b}
  samba-ad-provision{a} samba-dsdb-modules{a} samba-libs{a} samba-vfs-modules{a}
  tdb-tools{a}
0 packages upgraded, 52 newly installed, 0 to remove and 10 not upgraded.
Need to get 29.5 MB of archives. After unpacking 104 MB will be used.
The following packages have unmet dependencies:
 samba : Depends: samba-common (= 2:4.18.5+dfsg-1) but it is not going to be installed
         Depends: samba-common-bin (= 2:4.18.5+dfsg-1) but it is not installable
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     samba [Not Installed]

Y!でもNでもだめ。
The following NEW packages will be installed:
  python3-cffi-backend{a} python3-cryptography{a} python3-idna{a}
0 packages upgraded, 3 newly installed, 0 to remove and 10 not upgraded.
Need to get 750 kB of archives. After unpacking 3143 kB will be used.
Do you want to continue? [Y/n/?]
ダメ・・・

sources.list を変更してみる

SourcesList - Debian Wiki
sudo vim /etc/apt/sources.list
1行あるので下に追加
deb http://deb.debian.org/debian bookworm main non-free-firmware
deb-src http://deb.debian.org/debian bookworm main non-free-firmware

deb http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware
deb-src http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware

deb http://deb.debian.org/debian bookworm-updates main non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main non-free-firmware

ダメ、以下のようになる。

sudo apt install -y samba
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Package samba is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  samba-libs
E: Package 'samba' has no installation candidate

aptのSamba情報

Sambaのバージョンが2:4.18.5+dfsg-1 とちょっと古いみたい。

sudo apt show samba
Package: samba
Version: 2:4.18.5+dfsg-1
Priority: optional
Section: net
Maintainer: Debian Samba Maintainers <pkg-samba-maint@lists.alioth.debian.org>
Installed-Size: 3671 kB
Pre-Depends: init-system-helpers (>= 1.54~)
Depends: passwd, libpam-modules, libpam-runtime (>= 1.0.1-11), procps, python3, python3-dnspython, python3-samba (= 2:4.18.5+dfsg-1), samba-common (= 2:4.18.5+dfsg-1), samba-common-bin (= 2:4.18.5+dfsg-1), tdb-tools, python3:any, libbsd0 (>= 0.6.0), libc6 (>= 2.34), libcups2 (>= 1.7.0), libgnutls30 (>= 3.7.0), libldap-2.5-0 (>= 2.5.4), libldb2 (>= 2:2.6.1), libpopt0 (>= 1.14), libtalloc2 (>= 2.4.0), libtasn1-6 (>= 4.14), libtdb1 (>= 1.4.8~), libtevent0 (>= 0.14.0~), samba-libs (= 2:4.18.5+dfsg-1)
Recommends: attr, logrotate, python3-markdown, samba-dsdb-modules, samba-vfs-modules, samba-ad-provision
Suggests: bind9 (>= 1:9.5.1), bind9utils, ctdb, ldb-tools, ntp | chrony (>= 3.0-1), ufw, winbind
Breaks: samba-ad-provision (<< 2:4.18.5+dfsg)
Enhances: bind9, ntp
Homepage: https://www.samba.org
Task: file-server
Download-Size: 957 kB
APT-Sources: http://deb.debian.org/debian-ports unstable/main riscv64 Packages
Description: SMB/CIFS file, print, and login server for Unix
 Samba is an implementation of the SMB/CIFS protocol for Unix systems,
 providing support for cross-platform file and printer sharing with
 Microsoft Windows, OS X, and other Unix systems.  Samba can also function
 as an Active Directory or NT4-style domain controller, and can integrate
 with Active Directory realms or NT4 domains as a member server.
 .
 This package provides the components necessary to use Samba as a stand-alone
 file and print server or as an NT4 domain controller.  For use in an NT4
 domain or Active Directory realm, you will also need the winbind package.
 To use samba as an Active Directory domain controller (AD DC), please install
 samba-ad-dc package.
 .
 This package is not required for connecting to existing SMB/CIFS servers
 (see smbclient) or for mounting remote filesystems (see cifs-utils).

ここに書いてあるSambaの管理されている方に連絡してみたけど解決不可、VisionFive2のほうで直さないといけないらしい。

sudo apt-cache policy samba python3-samba
samba:
  Installed: (none)
  Candidate: 2:4.18.5+dfsg-1
  Version table:
     2:4.18.5+dfsg-1 500
        500 http://deb.debian.org/debian-ports unstable/main riscv64 Packages
python3-samba:
  Installed: (none)
  Candidate: 2:4.18.5+dfsg-1
  Version table:
     2:4.18.5+dfsg-1 500
        500 http://deb.debian.org/debian-ports unstable/main riscv64 Packages

Samba以外の共有方法を試してみる

WinSCP・Filezillaでコピーしてみる

SCPはかなり遅いと思うけど、他の方のサイトなどを見ると10MB/s~50MB/sくらいの速度が出るらしい、このくらいでればいいけど実際にやってみると・・・↓40KB/sくらいしかでない。

速くする方法など調べて試してみる。

WinSCPの暗号を軽いのにする

暗号強度が弱いけど転送速度が速くなるという Arcfour を試してみる。

WinSCP 起動したらVisionFive2を選択 > 編集 > 設定でSSHの項目のArcfourを一番上に上げて保存。

こちらは暗号強度が弱くなるけど、ローカルだからまぁいいかということで試してみる。

同時接続を上げる

ファイルコピーなど同時にコピーできる数を上げる、WinSCPは最大9個、Filezilla は最大10個まで同時接続可能。

VisionFive2に接続したら、表示 > 環境設定 > 転送 >バックグラウンドの同時接続を9にしてバックグラウンド転送をデフォルトにする。

全く変わらず、遅い、Filezillaも試したが遅い・・・

PSCPを使う

Windowsからコマンドプロンプトでpscpコマンドを打ってコピーしてみる。

pscp -r D:\test\PICT user@192.168.31.97:/mnt/soko2t/PICT

「-r」フォルダごとコピー、やはり10KB/sくらいでかなり遅い。

SCPを使う

IPQosをnoneにすると速く転送できるようなのでやってみる。こちらもコマンドプロンプトで作業。

scp -r -o IPQos=none D:\PICT user@192.168.31.97:/mnt/soko2t/PICT

10倍くらいは速くなったけど、もっとサクサクコピーできないかなぁ。

LANケーブルをつなげてコピーしてみる。

大きめの動画ファイルをコピーしてみると最初は2MB/sくらいだが、どんどんお速度低下してきて95KB/sくらいまで下がる・・・180MBくらいのファイルをコピーするのに30分もかかってしまう。

Docker内でSambaをインストール 失敗(202306イメージ)

インストール

sudo apt install docker.io
sudo gpasswd -a user docker

docker --version
Docker version 20.10.25+dfsg1, build b82b9f3

sudo systemctl start docker
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.

エラーになって起動しない。

systemctl status docker.service
? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Sat 2023-08-26 02:03:20 UTC; 7s ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
    Process: 1345 ExecStart=/usr/sbin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock $DOCKER_OPTS (code=exited, status=1/FAILURE)
   Main PID: 1345 (code=exited, status=1/FAILURE)
        CPU: 407ms

journalctl -xeu docker.service
Hint: You are currently not seeing messages from other users and the system.
      Users in groups 'adm', 'systemd-journal' can see all messages.
      Pass -q to turn off this notice.
-- No entries --

どうやらRISC-VはエミュレーションでDockerを動かす必要があるみたい。

Docker Containers on RISC-V Architecture
Containers are part of the vast majority of daily interactions with software and the cloud these days. From building app...

SSD読まなくなった!(202306イメージ)

apt upgradeすると起動時に以下のエラーになってNVMEのSSDが認識されない。

 dmesg | grep nvme
[    0.000000] Kernel command line: root=/dev/mmcblk1p4 rw console=tty0 console=ttyS0,115200 earlycon rootwait stmmaceth=chain_mode:1 selinux=0 nvme_core.default_ps_max_latency_us=0
[    4.528884] nvme nvme0: pci function 0001:01:00.0
[    4.541953] nvme 0001:01:00.0: enabling device (0000 -> 0002)
[    5.069246] nvme nvme0: Device not ready; aborting initialisation, CSTS=0x0
[    5.069258] nvme nvme0: Removing after probe failure status: -19

SSD スリープしないけど

SSDが一定時間経つとスリープするタイプだと以下の設定をすれば良いようですが、今回はダメ↓

/boot/extlinux/extlinux.conf
appendの最後に追加nvme_core.default_ps_max_latency_us=0
こうなる↓
    append  root=/dev/nvme0n1p3 rw console=tty0 console=ttyS0,115200 earlycon rootwait stmmaceth=chain_mode:1 selinux=0 nvme_core.default_ps_max_latency_us=0

電源が原因?

電源が?ダメ?5V3A,9V3A,10V5A12V3A出る65W出るXiaomi GaN USBアダプターや他のUSB PD対応アダプターでも同様にエラーになってSSDを読めない。

sudo apt-get install pciutils

lspci
0000:00:00.0 PCI bridge: PLDA XpressRich-AXI Ref Design (rev 02)
0000:01:00.0 USB controller: VIA Technologies, Inc. VL805/806 xHCI USB 3.0 Controller (rev 01)
0001:00:00.0 PCI bridge: PLDA XpressRich-AXI Ref Design (rev 02)
0001:01:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5765DL NVMe SSD Controller (DRAM-less) (rev 01)

SSD使えないのは意味ないなぁ、しばらくVisionFive2を放置しておいて、アップグレードされたら再挑戦するしかなさそう。

おまけ 役に立ちそうなコマンド

Freeコマンド

Jetson nanoの場合↓、メモリが少ない。

 free -h
              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       1.3Gi        38Mi       4.0Mi       606Mi       537Mi
Swap:         5.0Gi       172Mi       4.8Gi

VisionFive2だと3.8Gでたくさんアプリ立ち上げてる状態でも1.6Gフリー

free -h
               total        used        free      shared  buff/cache   available
Mem:           3.8Gi       552Mi       1.6Gi       3.2Mi       1.7Gi       3.3Gi
Swap:             0B          0B          0B

OSやCPUを調べる

cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux trixie/sid"
NAME="Debian GNU/Linux"
VERSION_CODENAME=trixie
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"


cat /proc/cpuinfo
processor       : 0
hart            : 1
isa             : rv64imafdc
mmu             : sv39
uarch           : sifive,u74-mc

processor       : 1
hart            : 2
isa             : rv64imafdc
mmu             : sv39
uarch           : sifive,u74-mc

processor       : 2
hart            : 3
isa             : rv64imafdc
mmu             : sv39
uarch           : sifive,u74-mc

processor       : 3
hart            : 4
isa             : rv64imafdc
mmu             : sv39
uarch           : sifive,u74-mc

CPU情報

$ lscpu
Architecture:          riscv64
  Byte Order:          Little Endian
CPU(s):                4
  On-line CPU(s) list: 0-3

Unix Name オペレーションシステムの名前・バージョン表示

uname -a
Linux starfive 5.15.0-starfive #1 SMP Sun Jun 11 07:48:39 UTC 2023 riscv64 GNU/Linux

時刻合わせ うまくできなかった・・・

timedatectl
               Local time: Tue 2023-08-29 01:37:34 UTC
           Universal time: Tue 2023-08-29 01:37:34 UTC
                 RTC time: Tue 2023-08-29 01:37:34
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

NTP=ntp.nict.jp を追加。

sudo vim /etc/systemd/timesyncd.conf
[Time]
NTP=ntp.nict.jp

設定しても反映されなかった。

sudo timedatectl set-ntp true

sudo apt update
sudo apt install ntpdate
sudo ntpdate ntp.nict.jp

29 Aug 01:44:05 ntpdate[4607]: adjust time server 61.205.120.130 offset +0.014227 sec

ダメ・・・

CPU温度計測

CPUのみ温度が表示された。

cat /sys/devices/virtual/thermal/thermal_zone[0-9]/type
cpu-thermal
cat /sys/devices/virtual/thermal/thermal_zone[0-9]/temp
63001

その他にも「/sys/devices/virtual/thermal/cooling_device0」というのがある、ヒートシンク+クーラー付けたけど?あまり変わらないみたい。

sudo apt install pip
sudo pip install influxdb

error: externally-managed-environment

? This environment is externally managed
?謂> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

ちょっと分からないので、「user」のみ使用できるようにインストールしてみる。

pip install --break-system-packages --user influxdb

簡単なPython3のスクリプト、計測結果は母艦のJetoson Nanoに飛ばす。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import time 
import subprocess
import sys

from influxdb import InfluxDBClient
client = InfluxDBClient(host='192.168.31.53', port=8086, username='root', password='passwd', database='sensor')
measurement = 'cpu'
tags = {'host': 'VisionFive2'}


def GetCpuTemp():#temp
	temp_value = 0
	Zone_cnt = 1
	temps = list()
	for zone in range(Zone_cnt):
		path = "/sys/devices/virtual/thermal/thermal_zone" + str(zone) + "/temp"
		with open(path, "r") as fs:
			for line in fs:
				temp_value = temp_value + int(line)
				print(int(line)/1000)
				temps.append(int(line)/1000)
	return temps

if __name__=='__main__':
	
	FieldArr = ''
	CpuTemparr	 = GetCpuTemp()
	FieldArr = {'CPU_temp': int(CpuTemparr[0]) }

	json_body = [
		{
			'measurement': measurement,
			'tags': tags,
			#'fields': '{' + FieldArr + '}'
			'fields': FieldArr
		}
	]
	print(json_body)
	client.write_points(json_body)

「[{‘measurement’: ‘cpu’, ‘tags’: {‘host’: ‘VisionFive2’}, ‘fields’: {‘CPU_temp’: 42}}]」こんな感じのjsonデータにして飛ばす。

(CPUクーラー付けたので夏でもけっこう温度低め)

最後に↓cronで定期的に実行。

crontab -e
*/3 * * * * /usr/bin/python3 /home/go/script/cpuvf2.py

次ページへ続く

この記事は複数のページに別れています

コメント