Meidokon Wiki
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Useful(?) links

  • furinkan's stuff

  • Postfix snippets


  • SystemInfo

  • This sidebar

Navigation

  • FrontPage
  • RecentChanges
  • FindPage
  • HelpContents
Revision 2 as of 2021-12-09 05:16:23
MeidokonWiki:
  • servers
  • RockPiS

I grabbed a couple of these, one with NAND flash and one without. Both have Wifi/BT/POE support, and I bought the POE hats because that's a damn good idea.

https://shop.allnetchina.cn/collections/frontpage/products/rock-pi-s?variant=29067635458150

Setup

  • Image the SD card and boot it as normal, get a console either with adb or SSH
    • Default SSH creds are rock//rock, there's no root password set but you can sudo up
    • SSH is enabled by default
  • Set hostname: hostnamectl set-hostname wag1.thighhighs.top

  • Regenerate SSH host keys

    rm /etc/ssh/ssh_host_*
    dpkg-reconfigure openssh-server
    
    # As an alternative, though this will generate DSA keys as well
    ssh-keygen -A
  • Packages

    apt update
    apt install -y vim screen locales bash-completion lsof tcpdump netcat strace nmap
    dpkg-reconfigure locales
    apt full-upgrade
    reboot
  • Disable IPv6 privacy addresses

    # Already disabled in sysctl, this is a nifty site for testing: http://ip.bieringer.net/
    # Look at EUI64_SCOPE and see if it's random/privacy/global. Global is what we want for servers (probably).
    sysctl -a | grep tempaddr
  • Set editor

    echo "export EDITOR=vim" > /etc/profile.d/editor-vim.sh
  • Set timezone

    timedatectl set-timezone Australia/Sydney
  • Disable HashKnownHosts in /etc/ssh/ssh_config

  • More packages

    apt install wget curl net-tools ack jq make mlocate elinks nmap whois
    updatedb
    reboot
  • Fix up your SSH keys
    • Generate new root password
    • ssh-copy-id your key to the rock user
    • manually copy that to root
    • Lock the rock user with usermod -L rock

  • Configure screen: curl -o ~/.screenrc https://gist.githubusercontent.com/barneydesmond/d16c5201ed9d2280251dfca7c620bb86/raw/.screenrc

  • Configure top yourself

Faff with networking

We'd like static IP but dynamic IPv6

apt install netplan.io

Criteria is:

  • Get NTP servers from DHCP if possible
  • Static IPv4 addressing
  • Global static IPv6 addresses (I guess)
  • Add a locally-defined static IPv6 address, that other hosts can refer to via DNS etc
  • DNS resolvers can come from DHCP or be manually defined

Here's a config from illustrious:

network:
  ethernets:
    eno1:
      critical: true
      dhcp-identifier: mac
      dhcp4: true
      dhcp4-overrides:
        use-dns: no
      dhcp6: true
      dhcp6-overrides:
        use-dns: no
      ipv6-privacy: false
      addresses:
        - "2404:e80:42e3:0:111:111:111:111/64"
      nameservers:
        addresses:
          - 192.168.1.20
          - 192.168.1.24
          - fe80::e65f:1ff:fe1c:c6ea
          - fe80::ba27:ebff:fe8c:f4f8
        search:
          - thighhighs.top.
  version: 2

OS

I installed their provided image of Debian buster, balena Etcher'd straight onto a spare SD card and inserted. Used adb shell to get initial connectivity to set it up and inspect things.

The root filesystem is all of ~500 MiB, which is great for compactness and speed. It auto-grows on first boot by the looks of it.

[   11.091476] EXT4-fs (mmcblk0p2): resizing filesystem from 199161 to 7835148 blocks
[   11.518063] EXT4-fs (mmcblk0p2): resized filesystem to 7835148

Disk usage

root@rockpis:/# df -hl
Filesystem      Size  Used Avail Use% Mounted on
udev            210M     0  210M   0% /dev
tmpfs            43M  296K   43M   1% /run
/dev/mmcblk0p2   30G  511M   28G   2% /
tmpfs           213M     0  213M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           213M     0  213M   0% /sys/fs/cgroup

Block devices

  • mmcblk0 is the SD card
  • mmcblk1 is the onboard NAND flash

root@rockpis:/# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0     179:0    0   30G  0 disk 
├─mmcblk0p1 179:1    0  112M  0 part 
└─mmcblk0p2 179:2    0 29.9G  0 part /
mmcblk1     179:32   0  3.6G  0 disk 
└─mmcblk1p1 179:33   0  3.6G  0 part 

CPU

root@rockpis:/# lscpu 
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  4
Socket(s):           1
Vendor ID:           ARM
Model:               2
Model name:          Cortex-A35
Stepping:            r0p2
CPU max MHz:         1296.0000
CPU min MHz:         408.0000
BogoMIPS:            48.00
Flags:               fp asimd aes pmull sha1 sha2 crc32

Network interfaces

root@rockpis:/# ifconfig 
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 4e:43:df:6b:85:ff  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 752 (752.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 26  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 2  bytes 106 (106.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2  bytes 106 (106.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

p2p0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 1a:77:e9:6d:75:84  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether e6:a6:66:59:15:ed  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01
MoinMoin Release 1.9.11 [Revision release], Copyright by Juergen Hermann et al.