Files
bikinibottom/Turing Pi/compute-modules.md
2025-11-15 14:58:54 +01:00

323 lines
11 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Compute Modules
===
### Install OS / headless installation
#### SoQuartz (RK3566)
[![soquartz-cm.webp](https://bookstack.delmar.bzh/uploads/images/gallery/2024-05/scaled-1680-/qocUKTE93iLdKVDU-soquartz-cm.webp)](https://bookstack.delmar.bzh/uploads/images/gallery/2024-05/qocUKTE93iLdKVDU-soquartz-cm.webp)
##### Specifications
##### <span class="mw-headline" id="bkmrk-cpu-architecture-1">CPU Architecture</span>
- [Quad-core ARM Cortex-A55@1.8GHz](https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55)
- AArch32 for full backwards compatibility with ARMv7
- ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation
- Includes VFP hardware to support single and double-precision operations
- ARMv8 Cryptography Extensions
- Integrated 32KB L1 instruction cache and 32KB L1 data cache per core
- 512KB unified system L3 cache
##### <span class="mw-headline" id="bkmrk-gpu-%28graphics-proces-1">GPU (Graphics Processing Unit) Capabilities</span>
- [Mali-G52 2EE Bifrost GPU@800MHz](https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu)
- 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop
- 128KB L2 Cache configurations
- Supports OpenGL ES 1.1, 2.0, and 3.2
- Supports Vulkan 1.0 and 1.1
- Supports OpenCL 2.0 Full Profile
- Supports 1600 Mpix/s fill rate when at 800MHz clock frequency
- Supports 38.4 GLOP/s when at 800MHz clock frequency
##### <span class="mw-headline" id="bkmrk-neural-process-unit--1">Neural Process Unit NPU Capability</span>
- Neural network acceleration engine with processing performance of up to 0.8 TOPS
- Supports integer 8 and integer 16 convolution operations
- Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet
##### <span class="mw-headline" id="bkmrk-system-memory-1">System Memory</span>
- RAM Memory Variants: 2GB, 4GB, 8GB LPDDR4.
- Storage Memory: optional 128Mb SPI Flash and optional eMMC module from 8GB up to 128GB
##### <span class="mw-headline" id="bkmrk-network-1">Network</span>
- 10/100/1000Mbps Ethernet
- WiFi 802.11 b/g/n/ac with Bluetooth 5.0
##### Setup
1. Flash the Plebian image to a SD card/ EMMC.
2. Boot.
3. ssh as "pleb/pleb" and complete setup
```bash
sudo vim /etc/sudoers.d/pleb
pleb ALL=(ALL:ALL) NOPASSWD: ALL
```
```
sudo dpkg-reconfigure locales
sudo timedatectl set-timezone Europe/Paris
```
```bash
sudo apt update && sudo apt install -y curl
curl -O https://overviewer.org/~pillow/up/75bea78e59/devicetrees-plebian-quartz64-20230601130309-arm64.deb
sudo dpkg -i devicetrees-plebian-quartz64-20230601130309-arm64.deb
# sudo sysctl -w net.core.rmem_default=262144
# sudo sysctl -w net.core.rmem_max=262144
#
# W: Possible missing firmware /lib/firmware/rockchip/dptx.bin for module rockchipdrm
#
sudo mkdir -p /lib/firmware/rockchip/
wget https://raw.githubusercontent.com/wkennington/linux-firmware/master/rockchip/dptx.bin
sudo cp /home/pleb/dptx.bin /lib/firmware/rockchip/dptx.bin
```
```bash
sudo apt install -y cowsay fortune
sudo vim /etc/update-motd.d/01-cowsay
```
```bash
#!/bin/bash
/usr/games/fortune | /usr/games/cowsay -f tux
```
```bash
sudo chmod +x /etc/update-motd.d/01-cowsay
```
#### Networking
> [Networking](networking.md)
#### Sensors
```bash
sudo apt install lm-sensors fancontrol read-edid i2c-tools libi2c-dev python3-smbus -y
sudo sensors-detect
```
---
#### Turing RK1 (RK3588)
[![turing-rk1-cm.webp](https://bookstack.delmar.bzh/uploads/images/gallery/2024-05/scaled-1680-/q91BzNH9bujT572b-turing-rk1-cm.webp)](https://bookstack.delmar.bzh/uploads/images/gallery/2024-05/q91BzNH9bujT572b-turing-rk1-cm.webp)
##### Specifications
<table id="bkmrk-instruction-set-armv"><tbody><tr><td>**Instruction Set**</td><td>ARMv8-A (64-bit)</td></tr><tr><td>**OS Support**</td><td>Ubuntu Server 22.04 LTS</td></tr><tr><td>**CPUs**</td><td>8× | 4× ARM Cortex-A76 | 4× ARM Cortex-A55 | DynamIQ</td></tr><tr><td>**GPU**</td><td>G610 GPU
Support OpenGLES 1.1, 2.0, and 3.2, OpenCL up to 2.2 and Vulkan1.2
Proprietary 2D hardware acceleration engine</td></tr><tr><td>**NPU**</td><td>6 TOPS</td></tr><tr><td>**RAM**</td><td>LPDDR4 up to 32 GB</td></tr><tr><td>**Storage**</td><td>32 G eMMC 5.1, SD 3.0</td></tr><tr><td>**Ethernet**</td><td>1000Mbps</td></tr><tr><td>**USB**</td><td>2x USB 3.0, 2x USB 2.0</td></tr><tr><td>**PCIe**</td><td>PCIe Gen3</td></tr><tr><td>**MIPI**</td><td>4-Lane MIPI-DSI, 4-Lane MIPI-CSI</td></tr><tr><td>**Digital Audio port**</td><td>2× I2S</td></tr><tr><td>**HDMI**</td><td>HDMI 2.1, 8K@60fps</td></tr><tr><td>**Video input port**</td><td>2× MIPI-CSI RX 4× lanes
1× MIPI-CSI DPHY RX 4× lanes</td></tr><tr><td>**Display output port**</td><td>1× MIPI-DSI DPHY 2× lanes
1× HDMI 2.1
1× DP 1.4</td></tr><tr><td>**VPU**</td><td>VPU 2.0, supporting 8K video</td></tr><tr><td>**Video Encoder**</td><td>H264, 8K@30FPS
VP9/H265, 8k@60FPS
AV1/AVS2, 4k@60FPS</td></tr><tr><td>**Video Decoder**</td><td>H265/H264/VP9/AV1/AVS2 up to 8K@60fps</td></tr><tr><td>**Power**</td><td>5V/3A via USB Type-C</td></tr><tr><td>**Operating Temp**</td><td>-20°C to 70°C</td></tr><tr><td>**Storage Temp**</td><td>-40°C to 85°C</td></tr><tr><td>**Weight**</td><td>17g</td></tr><tr><td>**Form Factor**</td><td>69.6mm x 45mm
260-pin SO-DIMM connector</td></tr></tbody></table>
##### Setup
[https://joshua-riek.github.io/ubuntu-rockchip-download/boards/turing-rk1.html](https://joshua-riek.github.io/ubuntu-rockchip-download/boards/turing-rk1.html)
> sandy (192.168.1.14)
> pleb / transatlantique
```bash
sudo useradd pleb
sudo groupadd sudo
sudo usermod -aG sudo pleb
```
```bash
sudo hostnamectl set-hostname [hostname]
sudo dpkg-reconfigure tzdata
(. /etc/lsb-release &&
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh |
sudo env os=ubuntu dist="${DISTRIB_CODENAME}" bash)
sudo apt update && sudo apt install -y git-all git-lfs curl wget screenfetch net-tools open-iscsi python3 python3-pip build-essential libssl-dev libffi-dev python3-dev wireguard
```
**PS :** [Ubuntu Pro](https://ubuntu.com/pro/tutorial)
---
### Disk(s)
#### Format and mount the disks
```bash
sudo fdisk -l
**With disk <xxx>**
sudo fdisk /dev/<xxx>
(create new primary partition)
sudo mkfs -t ext4 /dev/<xxxp1>
sudo blkid -s UUID -o value /dev/<xxxp1>
```
#### If needed, check and repair the filesystem
```bash
sudo e2fsck -fDC0 /dev/sdaX
```
#### Add mount point to fstab
```bash
sudo mkdir -p /mnt/<folder>
echo "UUID=... /mnt/<folder> ext4 defaults 0 0" | sudo tee -a /etc/fstab
```
#### bob (nvme0n1)
```
UUID=5855d1bc-99fd-41f2-9d11-7c00a1c0ad00 / ext4 defaults,x-systemd.growfs 0 1
# NVME
UUID=2423d885-a583-44d2-bd45-80d847c625b0 /mnt/data ext4 defaults 0 0
# HDD
# UUID=a4e3d8f1-11cc-482b-9596-57c44b122e48 /mnt/tmp ext4 defaults 0 0
#
/mnt/data/www /var/www auto defaults,nofail,nobootwait,bind 0 2
```
#### carlo (nvme0n1)
```
UUID=5855d1bc-99fd-41f2-9d11-7c00a1c0ad00 / ext4 defaults,x-systemd.growfs 0 1
UUID=0c85672d-0fbd-4d11-a93e-c01d1373c4c3 /mnt/docker ext4 defaults 0 0```
```
#### gary (nvme0n1) ...
```
# <file system> <mount point> <type> <options> <dump> <fsck>
UUID=1cf633ab-4f5f-42da-b347-31282732a446 / ext4 defaults,x-systemd.growfs 0 1
UUID=7f348b05-b44e-4b85-8445-657dc95e72df /mnt/data ext4 defaults 0 0
# NFS
krabs:/srv/nfs4/media /nfs/media nfs _netdev,x-systemd.automount,nofail,noatime,nolock,tcp,bg,actimeo=1800
krabs:/srv/nfs4/downloads /nfs/downloads nfs defaults
```
#### sandy (sda / nvme0n1) ...
```
# <file system> <mount point> <type> <options> <dump> <fsck>
UUID=1cf633ab-4f5f-42da-b347-31282732a446 / ext4 defaults,x-systemd.growfs 0 1
UUID=6fab06af-f38f-493a-87ab-512f52a6616c /mnt/data ext4 defaults 0 0
# NFS
krabs:/srv/nfs4/cloud /nfs/cloud nfs nofail,noatime,_netdev,actimeo=1800,x-systemd.automount,bg,nolock,tcp
krabs:/srv/nfs4/ebooks /nfs/ebooks nfs defaults
# HDD
UUID=22446d47-8d74-451e-8774-e1c8e2617b7e /mnt/hdd ext4 defaults 0 0
```
#### sheldon (sda / sdb / nvme0n1) ...
```
# <file system> <mount point> <type> <options> <dump> <fsck>
UUID=1cf633ab-4f5f-42da-b347-31282732a446 / ext4 defaults,x-systemd.growfs 0 1
# nvme
UUID=a612717e-ca95-44a3-9b10-10e6be26112f /mnt/docker ext4 defaults 0 0
# LVM
UUID=dbc636b9-e77b-4fb5-a192-a17c244857a2 /mnt/data ext4 defaults,nofail,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,acl 0 2
```
#### krabs (nfs server)
```
UUID=0c390345-ca52-45fd-9097-6e931d651a8f / ext4 defaults,x-systemd.growfs 0 1
# LVM
/dev/hdds/datas /mnt/data ext4 defaults,nofail,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,acl 0 2
# NFS exports
/mnt/data/cloud /srv/nfs4/cloud none bind,nofail 0 0
/mnt/data/media /srv/nfs4/media none bind,nofail 0 0
/mnt/data/ebooks /srv/nfs4/ebooks none bind,nofail 0 0
/mnt/data/git /srv/nfs4/git none bind,nofail 0 0
/mnt/data/photos /srv/nfs4/photos none bind,nofail 0 0
/mnt/data/media/downloads /srv/nfs4/downloads none bind,nofail 0 0
/opt/backups /srv/nfs4/backups none bind,nofail 0 0
```
#### bernie (nvme0n1) ...
```
UID=5855d1bc-99fd-41f2-9d11-7c00a1c0ad00 / ext4 defaults,x-systemd.growfs 0 1
# SSD
UUID=e8d74f7a-642a-486d-92db-d39388d1545f /mnt/docker ext4 defaults 0 0
```
#### Check
```bash
cat /etc/fstab
```
#### Mount disk...
```bash
sudo mount -a
sudo systemctl daemon-reload
df -h /mnt/<folder>
```
### Hosts
```bash
sudo vim /etc/hosts
```
```conf
127.0.0.1 localhost
127.0.1.1 <host>.local <host>
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
#
192.168.1.11 bob
192.168.1.12 carlo
192.168.1.13 gary
192.168.1.14 sandy
192.168.1.15 krabs
192.168.1.16 sheldon
192.168.1.17 bernie
# 192.168.1.18 pearl
#
192.168.1.53 retropie
```
#### On remote (PC) :
```bash
ssh-keygen -t ed25519
ssh-copy-id -f -i ~/.ssh/id_ed25519.pub pleb@192.168.1.xxx
ssh-copy-id -f -i ~/.ssh/id_ed25519.pub pleb@<hostname>
```
---
### Documentation
[https://docs.turingpi.com](https://docs.turingpi.com)
##### help.turingpi.com
jme69@pm.me
Ln4@iJMNn85h2Xrx
[https://help.turingpi.com/hc/en-us](https://help.turingpi.com/hc/en-us "https://help.turingpi.com/hc/en-us")
##### Server World
[https://www.server-world.info/en/note?os=Debian\_12&amp;p=download&amp;f=1](https://www.server-world.info/en/note?os=Debian_12&p=download&f=1)