Compute Modules
===
### Install OS / headless installation
#### SoQuartz (RK3566)
[](https://bookstack.delmar.bzh/uploads/images/gallery/2024-05/qocUKTE93iLdKVDU-soquartz-cm.webp)
##### Specifications
##### CPU Architecture
- [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
##### GPU (Graphics Processing Unit) Capabilities
- [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
##### Neural Process Unit NPU Capability
- 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
##### System Memory
- RAM Memory Variants: 2GB, 4GB, 8GB LPDDR4.
- Storage Memory: optional 128Mb SPI Flash and optional eMMC module from 8GB up to 128GB
##### Network
- 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)
[](https://bookstack.delmar.bzh/uploads/images/gallery/2024-05/q91BzNH9bujT572b-turing-rk1-cm.webp)
##### Specifications
| **Instruction Set** | ARMv8-A (64-bit) |
| **OS Support** | Ubuntu Server 22.04 LTS |
| **CPUs** | 8× | 4× ARM Cortex-A76 | 4× ARM Cortex-A55 | DynamIQ |
| **GPU** | G610 GPU
Support OpenGLES 1.1, 2.0, and 3.2, OpenCL up to 2.2 and Vulkan1.2
Proprietary 2D hardware acceleration engine |
| **NPU** | 6 TOPS |
| **RAM** | LPDDR4 up to 32 GB |
| **Storage** | 32 G eMMC 5.1, SD 3.0 |
| **Ethernet** | 1000Mbps |
| **USB** | 2x USB 3.0, 2x USB 2.0 |
| **PCIe** | PCIe Gen3 |
| **MIPI** | 4-Lane MIPI-DSI, 4-Lane MIPI-CSI |
| **Digital Audio port** | 2× I2S |
| **HDMI** | HDMI 2.1, 8K@60fps |
| **Video input port** | 2× MIPI-CSI RX 4× lanes
1× MIPI-CSI DPHY RX 4× lanes |
| **Display output port** | 1× MIPI-DSI DPHY 2× lanes
1× HDMI 2.1
1× DP 1.4 |
| **VPU** | VPU 2.0, supporting 8K video |
| **Video Encoder** | H264, 8K@30FPS
VP9/H265, 8k@60FPS
AV1/AVS2, 4k@60FPS |
| **Video Decoder** | H265/H264/VP9/AV1/AVS2 up to 8K@60fps |
| **Power** | 5V/3A via USB Type-C |
| **Operating Temp** | -20°C to 70°C |
| **Storage Temp** | -40°C to 85°C |
| **Weight** | 17g |
| **Form Factor** | 69.6mm x 45mm
260-pin SO-DIMM connector |
##### 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 **
sudo fdisk /dev/
(create new primary partition)
sudo mkfs -t ext4 /dev/
sudo blkid -s UUID -o value /dev/
```
#### If needed, check and repair the filesystem
```bash
sudo e2fsck -fDC0 /dev/sdaX
```
#### Add mount point to fstab
```bash
sudo mkdir -p /mnt/
echo "UUID=... /mnt/ 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) ...
```
#
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) ...
```
#
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) ...
```
#
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/
```
### Hosts
```bash
sudo vim /etc/hosts
```
```conf
127.0.0.1 localhost
127.0.1.1 .local
# 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@
```
---
### 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&p=download&f=1](https://www.server-world.info/en/note?os=Debian_12&p=download&f=1)