最近SSDがかなり安くなったので、そろそろハードディスクでファイルサーバーを運用するのをやめてSSDに変え、さらにSBC(シングルボードコンピュータ)でファイルサーバーを構築しようと目論んでいました。
候補に上がったのは今あるSBCのJetoson Nano、Khadas VIM1SでSSDが使えるかと思い、SSDをUSBで接続できるUSBアダプターを使って接続してみました。一応マウントはできるもののファイルコピーをすると途端にI/Oエラーになってフリーズしてしまう。
NVME M.2 SSDのUSBアダプターは↑このようなUSB3.1対応を買いました。
- VisionFive2をファイルサーバー化 失敗 (現在このページにいます)
- VisionFive2をUbuntuにする
- VisionFive2 202308イメージを試す
そしてNVME M.2 SSDを搭載できるRISC-V(誰でも自作できるオープンなCPU、対抗馬のARMはライセンス料が必要)のVisionFive2があるので、試してみたくなってファイルサーバーを構築しようとしましたが失敗・・・してしまったのでご報告します。
画像 | ||
---|---|---|
商品名 | VisionFive 2 オープン ソース RISC-V シングル ボード コンピューター | CPU 冷却ファン ICE タワーファン |
メーカー | Starfive |
- SAMBA インストール不可(ユーザーランドのみUbuntuにしたらSambaは動くけど、Wifi USBドングルのドライバーをインストールできなかった。)
- SSD認識しなくなる(最初は普通にマウントできたが、Apt Upgradeしたら認識されず、その後 新しいMicroSDでも最初からエラーが出て認識しなくなる。)
Sambaが動かなくてもコマンドのScpで操作しようとしましたが、遅い、有線LANでもなぜか遅い。Sambaも結局遅いので有線LANに接続するか、もう少し調べてチューニングする必要あり。
VisionFive2は発展途上(自分も)の部分が多いので、これからのアップデートに期待するしかなさそう。
ラズパイ3BはSSDを接続するとフリーズする・・・WindowsだとUSBポートにさしたら普通に快適に使えます。NVME M.2 SSDのUSBアダプターはLinux全般で使えないのだろうか?
- 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で成功・失敗したことなどを書いていきます。
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をダウンロード
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)を左側にする。
こちらに詳しく書いてある。
ログイン
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
この方↑のやり方に従う。
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を作って拡張する。
ここ↓に詳しいやり方書いてありました。
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
このあたり↓を参考にした。
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
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 を変更してみる
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を動かす必要があるみたい。
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
次ページへ続く
コメント