Archive for the ‘Banana Pi’ Category

Banana Pi BPI-M1 – how to install NextCloudPi with NextCloud 21.0.4

Mittwoch, Februar 2nd, 2022

NextCloudPi – is a Nextcloud instance that is preinstalled and preconfigured and includes a management interface with all the tools you need to self host your private data in a single package

Banana Pi BPI-M1 – expand root system to use all of SD card on Armbian Bullseye

Sonntag, Januar 30th, 2022


# systemctl enable armbian-resize-filesystem
# reboot

Banana Pi BPI-M1 – practical example with an S3-compatible object storage server with MinIO on Armbian Bullseye

Montag, Januar 24th, 2022

root@rpi-iot-jsho-cam-02:~# vi MinioMotioneyeBackup.sh
#!/bin/bash
#FileName: MinIoMotioneyeBackup.sh
LocalBackupPath=“/var/lib/motioneye“
MinioBucket=“myminio/worm-with-versioning-and-retention/motioneye“
MCPATH=“/root/mc“
$MCPATH mirror –json –overwrite –remove –preserve $LocalBackupPath $MinioBucket
$MCPATH rm –force –versions –recursive –older-than 7d $MinioBucket
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# vi MinioMotioneyeBackup2.sh
!/bin/bash
#FileName: MinIoMotioneyeBackup2.sh
LocalBackupPath=“/var/lib/motioneye“
MinioBucket=“myminio/noworm-with-versioning-and-noretention/motioneye“
MCPATH=“/root/mc“
$MCPATH mirror –json –overwrite –remove –preserve $LocalBackupPath $MinioBucket
$MCPATH rm –force –versions –recursive –older-than 7d $MinioBucket
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# vi MinioMotioneyeBackup3.sh
!/bin/bash
#FileName: MinIoMotioneyeBackup3.sh
LocalBackupPath=“/var/lib/motioneye“
MinioBucket=“myminio/noworm-with-noversioning-and-noretention/motioneye“
MCPATH=“/root/mc“
$MCPATH mirror –json –overwrite –remove –preserve $LocalBackupPath $MinioBucket
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# vi MinioMotioneyeBackupStart.sh
#! /bin/bash
/root/MinioMotioneyeBackup.sh
/root/MinioMotioneyeBackup2.sh
/root/MinioMotioneyeBackup3.sh
root@rpi-iot-jsho-cam-02:~# crontab -l
15 * * * * /root/MinioMotioneyeBackupStart.sh >> /dev/null 2>&1
root@rpi-iot-jsho-cam-02:~#

… after one week backup

root@rpi-iot-jsho-cam-02:~# ./mc admin update myminio
Server `myminio` updated successfully from 2021-12-29T06:49:06Z to 2022-01-08T03-11-54Z

… after two weeks

Banana Pi BPI-M1 – Let’s Encrypt SSL how to use a private key and public certificate with an S3-compatible object storage server with MinIO on Armbian Bullseye

Donnerstag, Dezember 30th, 2021

root@bpi-iot-jsho-minio-03:~# apt-get install certbot
root@bpi-iot-jsho-minio-03:~# certbot certonly
Saving debug log to /var/log/letsencrypt/letsencrypt.log
How would you like to authenticate with the ACME CA?
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Select the appropriate number [1-2] then [enter] (press ‚c‘ to cancel): 1
Plugins selected: Authenticator standalone, Installer None
Please enter in your domain name(s) (comma and/or space separated) (Enter ‚c‘
to cancel): bpi-iot-jsho-minio-03.ddnss.eu
Requesting a certificate for bpi-iot-jsho-minio-03.ddnss.eu
Performing the following challenges:
http-01 challenge for bpi-iot-jsho-minio-03.ddnss.eu
Waiting for verification…
Cleaning up challenges
Subscribe to the EFF mailing list (email: josef.schuster@dpsolution.de).
IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/bpi-iot-jsho-minio-03.ddnss.eu/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/bpi-iot-jsho-minio-03.ddnss.eu/privkey.pem
Your certificate will expire on 2022-03-27. To obtain a new or
tweaked version of this certificate in the future, simply run
certbot again. To non-interactively renew *all* of your
certificates, run „certbot renew“
– If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
root@bpi-iot-jsho-minio-03:~#
root@bpi-iot-jsho-minio-03:/# find . -name fullchain.pem -print
./etc/letsencrypt/live/bpi-iot-jsho-minio-03.ddnss.eu/fullchain.pem
root@bpi-iot-jsho-minio-03:/#
root@bpi-iot-jsho-minio-03:~# cp /etc/letsencrypt/live/bpi-iot-jsho-minio-03.ddnss.eu/fullchain.pem $HOME/.minio/certs/public.crt
root@bpi-iot-jsho-minio-03:~# cp /etc/letsencrypt/live/bpi-iot-jsho-minio-03.ddnss.eu/privkey.pem $HOME/.minio/certs/private.key

If your TLS certificates do not have the IP SAN for the MinIO server host the MinIO Console may fail to validate the connection to the server use the MINIO_SERVER_URL environment variable and specify the proxy-accessible hostname of the MinIO server to allow the Console to use the MinIO server API using the TLS certificate

root@bpi-iot-jsho-minio-03:/# MINIO_SERVER_URL=“https://bpi-iot-jsho-minio-03.ddnss.eu:9000″ MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=<password> ./minio server –console-address „:9001“ /data/data{0…3}
https://bpi-iot-jsho-minio-03.ddnss.eu:9001

root@bpi-iot-jsho-minio-02:~# ./mc alias set myminio https://bpi-iot-jsho-minio-03.ddnss.eu:9000 admin <password>
Added `myminio` successfully.
root@bpi-iot-jsho-minio-02:~#
root@bpi-iot-jsho-minio-02:~# ./mc –version myminio
mc version RELEASE.2021-12-20T23-43-34Z
root@bpi-iot-jsho-minio-02:~# ./mc admin update myminio
Server `myminio` updated successfully from 2021-12-20T22:07:16Z to 2021-12-29T06-49-06Z
root@bpi-iot-jsho-minio-02:~#

Banana Pi BPI-M1 – OpenSSL SSL how to use a private key and public certificate with an S3-compatible object storage server with MinIO on Armbian Bullseye

Montag, Dezember 27th, 2021
root@bpi-iot-jsho-minio-03:~# cd .minio/certs
root@bpi-iot-jsho-minio-03:~/.minio/certs# openssl req -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out public.crt -keyout private.key
Generating a RSA private key
……………………………………………..++++
……………………………………………..++++
writing new private key to ‚private.key‘
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‚.‘, the field will be left blank.
—–
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Bavarian
Locality Name (eg, city) []:St.Wolfgang
Organization Name (eg, company) [Internet Widgits Pty Ltd]:JSHO
Organizational Unit Name (eg, section) []:JSHO
Common Name (e.g. server FQDN or YOUR name) []:bpi-iot-jsho-minio-03.fritz.box
Email Address []:josef.schuster@dpsolution.de
root@bpi-iot-jsho-minio-03:~/.minio/certs#

Banana Pi BPI-M1 – upgrade an S3-compatible object storage server with MinIO on Armbian Bullseye

Mittwoch, Dezember 22nd, 2021

root@bpi-iot-jsho-minio-02:~# ./mc admin info myminio
● 192.168.1.168:9000
Uptime: 34 minutes
Version: 2021-11-24T23:19:33Z
Network: 1/1 OK
Drives: 4/4 OK
4 drives online, 0 drives offline
root@bpi-iot-jsho-minio-02:~#

root@bpi-iot-jsho-minio-02:~# ./mc admin update myminio

Server `myminio` updated successfully from 2021-11-24T23:19:33Z to 2021-12-20T22-07-16Z

root@bpi-iot-jsho-minio-02:~#
root@bpi-iot-jsho-minio-02:~# ./mc admin info myminio
● 192.168.1.168:9000
Uptime: 10 minutes
Version: 2021-12-20T22:07:16Z
Network: 1/1 OK
Drives: 4/4 OK
4 drives online, 0 drives offline

root@bpi-iot-jsho-minio-02:~#

Banana Pi BPI-M1 – start&stop script (workaround) for an S3-compatible object storage server with MinIO on Armbian Bullseye

Donnerstag, Dezember 16th, 2021
root@bpi-iot-jsho-minio-01:~# systemctl stop minio
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# tree /usr/local/bin
/usr/local/bin
`– minio
`– minio
1 directory, 1 file
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# ls -la /usr/local/bin
insgesamt 12
drwxr-xr-x 3 root root 4096 16. Dez 13:55 .
drwxr-xr-x 10 root root 4096 21. Aug 14:54 ..
drwxr-xr-x 2 minio-user minio-user 4096 16. Dez 13:59 minio
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:/usr/local/bin# ls -la minio
insgesamt 100748
drwxr-xr-x 2 minio-user minio-user 4096 16. Dez 13:59 .
drwxr-xr-x 3 root root 4096 16. Dez 13:55 ..
-rwxr-xr-x 1 minio-user minio-user 103153664 16. Dez 13:59 minio
root@bpi-iot-jsho-minio-01:/usr/local/bin#
root@bpi-iot-jsho-minio-01:~# cd /etc/systemd/system
root@bpi-iot-jsho-minio-01:/etc/systemd/system# vi minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio/minio
[Service]
WorkingDirectory=/usr/local/
User=minio-user
Group=minio-user
ProtectProc=invisible
EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c „if [ -z \“${MINIO_VOLUMES}\“ ]; then echo \“Variable MINIO_VOLUMES not set in /etc/default/minio\“; exit 1; fi“
ExecStart=/usr/local/bin/minio/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
# Built for ${project.name}-${project.version} (${project.name})
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# systemctl daemon-reload
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# systemctl start minio
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# systemctl status minio
* minio.service – MinIO
Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-12-21 14:13:33 CET; 32s ago
Docs: https://docs.min.io
Process: 1555 ExecStartPre=/bin/bash -c if [ -z „${MINIO_VOLUMES}“ ]; then echo „Variable MINIO_VOLUMES not set in /etc/default/minio“; exit 1; fi (code=exited, status=0/SUCCE>
Main PID: 1556 (minio)
Tasks: 10
Memory: 50.1M
CPU: 5.139s
CGroup: /system.slice/minio.service
`-1556 /usr/local/bin/minio/minio server –console-address :9001 /usr/local/share/minio/
Dez 21 14:13:33 bpi-iot-jsho-minio-01 systemd[1]: Starting MinIO…
Dez 21 14:13:33 bpi-iot-jsho-minio-01 systemd[1]: Started MinIO.
Dez 21 14:14:01 bpi-iot-jsho-minio-01 minio[1556]: You are running an older version of MinIO released 3 weeks ago
Dez 21 14:14:01 bpi-iot-jsho-minio-01 minio[1556]: Update: Run `mc admin update`
Dez 21 14:14:01 bpi-iot-jsho-minio-01 minio[1556]: API: http://192.168.1.168:9000 http://127.0.0.1:9000
Dez 21 14:14:01 bpi-iot-jsho-minio-01 minio[1556]: Console: http://192.168.1.168:9001 http://127.0.0.1:9001
Dez 21 14:14:01 bpi-iot-jsho-minio-01 minio[1556]: Documentation: https://docs.min.io
root@bpi-iot-jsho-minio-01:~# ./mc admin update myminio/
Server `myminio/` updated successfully from 2021-11-24T23:19:33Z to 2021-12-10T23-03-39Z
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# ./mc admin update myminio/
Server `myminio/` already running the most recent version 2021-12-10T23:03:39Z of MinIO
root@bpi-iot-jsho-minio-01:~#

Banana Pi BPI-M1 – installing an S3-compatible object storage server with MinIO on Armbian Bullseye

Sonntag, Dezember 5th, 2021
root@bpi-iot-jsho-tools-01:~# wget https://dl.minio.io/server/minio/release/linux-arm/minio
–2021-11-30 14:25:14– https://dl.minio.io/server/minio/release/linux-arm/minio
Auflösen des Hostnamens dl.minio.io (dl.minio.io)… 178.128.69.202
Verbindungsaufbau zu dl.minio.io (dl.minio.io)|178.128.69.202|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 96468992 (92M) [application/octet-stream]
Wird in „minio“ gespeichert.
minio 100%[================================================================>] 92,00M 5,53MB/s in 5m 5s
2021-11-30 14:30:25 (309 KB/s) – „minio“ gespeichert [96468992/96468992]
root@bpi-iot-jsho-tools-01:~# mkdir /data
root@bpi-iot-jsho-tools-01:~# chmod +x minio
root@bpi-iot-jsho-tools-01:~# MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=<password> ./minio server /data –console-address „:9001“ &
Console: http://192.168.1.168:9001 http://172.17.0.1:9001 http://127.0.0.1:9001
RootUser: admin
RootPass: <password>
Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc alias set myminio http://192.168.1.168:9000 admin <password>
Documentation: https://docs.min.io
root@bpi-iot-jsho-tools-01:~#
http://192.168.1.168:9001

root@bpi-iot-jsho-tools-01:~# wget https://dl.min.io/client/mc/release/linux-arm/mc
–2021-12-04 14:30:46– https://dl.min.io/client/mc/release/linux-arm/mc
Auflösen des Hostnamens dl.min.io (dl.min.io)… 138.68.11.125, 178.128.69.202
Verbindungsaufbau zu dl.min.io (dl.min.io)|138.68.11.125|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 19070976 (18M) [application/octet-stream]
Wird in „mc“ gespeichert.
mc 100%[===================>] 18,19M 5,60MB/s in 4,1s
2021-12-04 14:30:51 (4,46 MB/s) – „mc“ gespeichert [19070976/19070976]
root@bpi-iot-jsho-tools-01:~# chmod +x ./mc
root@bpi-iot-jsho-tools-01:~# ./mc alias set myminio http://192.168.1.168:9000 admin <password>
Added `myminio` successfully.
root@bpi-iot-jsho-tools-01:~# ./mc admin info myminio
● 192.168.1.168:9000
Uptime: 4 minutes
Version: 2021-11-24T23:19:33Z
Network: 1/1 OK
root@bpi-iot-jsho-tools-01:~# ./mc admin service restart myminio
Restarting on service signal
Restart command successfully sent to `myminio`. Type Ctrl-C to quit or wait to follow the status of the restart process.
….API: http://192.168.1.168:9000 http://172.17.0.1:9000 http://127.0.0.1:9000
RootUser: admin
RootPass: <password>
Console: http://192.168.1.168:9001 http://172.17.0.1:9001 http://127.0.0.1:9001
RootUser: admin
RootPass: <password>
Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc alias set myminio http://192.168.1.168:9000 admin <password>
Documentation: https://docs.min.io
Restarted `myminio` successfully.
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# ./mc admin update myminio
Server `myminio` already running the most recent version 2021-11-24T23:19:33Z of MinIO
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# ./mc admin service stop myminio
Stopping on service signal
Stopped `myminio` successfully.
root@bpi-iot-jsho-tools-01:~# MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=<password> ./minio server /data{1…4} –console-address „:9001“ &
[1] 1757
root@bpi-iot-jsho-tools-01:~# Formatting 1st pool, 1 set(s), 4 drives per set.
WARNING: Host local has more than 2 drives of set. A host failure will result in data becoming unavailable.
Automatically configured API requests per node based on available memory on the system: 13
Status: 4 Online, 0 Offline.
API: http://192.168.1.168:9000 http://172.17.0.1:9000 http://127.0.0.1:9000
RootUser: admin
RootPass: <password>
Console: http://192.168.1.168:9001 http://172.17.0.1:9001 http://127.0.0.1:9001
RootUser: admin
RootPass: <password>
Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc alias set myminio http://192.168.1.168:9000 admin <password>
Documentation: https://docs.min.io
root@bpi-iot-jsho-tools-01:~#

root@bpi-iot-jsho-tools-01:~# ./mc admin info myminio
● 192.168.1.168:9000
Uptime: 35 seconds
Version: 2021-11-24T23:19:33Z
Network: 1/1 OK
Drives: 4/4 OK
4 drives online, 0 drives offline

root@bpi-iot-jsho-tools-01:~#
http://192.168.1.168:9001

root@bpi-iot-jsho-tools-01:~# ./mc ls myminio
[2021-12-04 17:09:49 CET] 0B picture/
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# ./mc admin heal myminio
Server status:
==============
Pool 1:
localhost:
+ /data1 : OK
|__ Capacity: 1.6 GiB/57 GiB
+ /data2 : OK
|__ Capacity: 1.6 GiB/57 GiB
+ /data3 : OK
|__ Capacity: 1.6 GiB/57 GiB
+ /data4 : OK
|__ Capacity: 1.6 GiB/57 GiB
Summary:
=======
No ongoing active healing.
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# ./mc admin –json info play
{
„status“: „success“,
„info“: {
„mode“: „online“,
„domain“: [
„play.min.io“,
„play.minio.io“
],
„region“: „us-east-1“,
„sqsARN“: [
„arn:minio:sqs:us-east-1:_:webhook“,
„arn:minio:sqs:us-east-1:1:webhook“
],
}
}
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# ./mc admin trace myminio
2021-12-05T17:27:50:000 [200 OK] sts.AssumeRole 192.168.1.168:9000/ 192.168.1.168 73.435ms ↑ 126 B ↓ 1.1 KiB
2021-12-05T17:28:14:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 5.247ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:14:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 6.781ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:14:000 [200 OK] s3.GetBucketVersioning 192.168.1.168:9000/picture/?versioning= 192.168.1.168 5.496ms ↑ 98 B ↓ 439 B
2021-12-05T17:28:14:000 [200 OK] s3.ListObjectsV2 192.168.1.168:9000/picture/?delimiter=%2F&encoding-type=url&fetch-owner=true&list-type=2&prefix= 192.168.1.168 17.523ms ↑ 98 B ↓ 610 B
2021-12-05T17:28:14:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 4.592ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:14:000 [404 Not Found] s3.GetBucketPolicy 192.168.1.168:9000/picture/?policy= 192.168.1.168 4.13ms ↑ 98 B ↓ 613 B
2021-12-05T17:28:14:000 [404 Not Found] s3.GetBucketTagging 192.168.1.168:9000/picture/?tagging= 192.168.1.168 3.803ms ↑ 98 B ↓ 600 B
2021-12-05T17:28:36:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 4.451ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:36:000 [200 OK] s3.PutObject 192.168.1.168:9000/picture/Josef(1).jpg 192.168.1.168 422.608ms ↑ 727 KiB ↓ 380 B
2021-12-05T17:28:37:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 4.397ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:37:000 [200 OK] s3.ListObjectsV2 192.168.1.168:9000/picture/?delimiter=%2F&encoding-type=url&fetch-owner=true&list-type=2&prefix= 192.168.1.168 13.537ms ↑ 98 B ↓ 942 B
2021-12-05T17:28:48:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 4.368ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:48:000 [200 OK] s3.PutObject 192.168.1.168:9000/picture/Josef(2).jpg 192.168.1.168 263.048ms ↑ 292 KiB ↓ 380 B
2021-12-05T17:28:48:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 4.273ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:48:000 [200 OK] s3.ListObjectsV2 192.168.1.168:9000/picture/?delimiter=%2F&encoding-type=url&fetch-owner=true&list-type=2&prefix= 192.168.1.168 14.022ms ↑ 98 B ↓ 1.2 KiB
^C
root@bpi-iot-jsho-tools-01:~#

Banana Pi BPI-M1 – running Docker on Armbian Bullseye

Dienstag, November 30th, 2021
root@bpi-iot-jsho-tools-01:~# curl -fsSL https://get.docker.com -o get-docker.sh
root@bpi-iot-jsho-tools-01:~# sh get-docker.sh
# Executing docker install script, commit: 93d2499759296ac1f9c510605fef85052a2c32be
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c curl -fsSL „https://download.docker.com/linux/debian/gpg“ | gpg –dearmor –yes -o /usr/share/keyrings/docker-archive-keyring.gpg
+ sh -c echo „deb [arch=armhf signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian bullseye stable“ > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq –no-install-recommends docker-ce-cli docker-ce >/dev/null
+ version_gte 20.10
+ [ -z ]
+ return 0
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce-rootless-extras >/dev/null
+ sh -c docker version
Client: Docker Engine – Community
Version: 20.10.11
API version: 1.41
Go version: go1.16.9
Git commit: dea9396
Built: Thu Nov 18 00:37:17 2021
OS/Arch: linux/arm
Context: default
Experimental: true
Server: Docker Engine – Community
Engine:
Version: 20.10.11
API version: 1.41 (minimum version 1.12)
Go version: go1.16.9
Git commit: 847da18
Built: Thu Nov 18 00:35:33 2021
OS/Arch: linux/arm
Experimental: false
containerd:
Version: 1.4.12
GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.19.0
GitCommit: de40ad0
===========================================================
To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:
dockerd-rootless-setuptool.sh install
Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.
To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/
WARNING: Access to the remote API on a privileged Docker daemon is equivalent
to root access on the host. Refer to the ‚Docker daemon attack surface‘
documentation for details: https://docs.docker.com/go/attack-surface/
===========================================================
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# docker version
Client: Docker Engine – Community
Version: 20.10.11
API version: 1.41
Go version: go1.16.9
Git commit: dea9396
Built: Thu Nov 18 00:37:17 2021
OS/Arch: linux/arm
Context: default
Experimental: true
Server: Docker Engine – Community
Engine:
Version: 20.10.11
API version: 1.41 (minimum version 1.12)
Go version: go1.16.9
Git commit: 847da18
Built: Thu Nov 18 00:35:33 2021
OS/Arch: linux/arm
Experimental: false
containerd:
Version: 1.4.12
GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.19.0
GitCommit: de40ad0
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# docker info
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Build with BuildKit (Docker Inc., v0.6.3-docker)
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 20.10.11
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
runc version: v1.0.2-0-g52b36a2
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: default
cgroupns
Kernel Version: 5.10.60-sunxi
Operating System: Armbian 21.08.6 Bullseye
OSType: linux
Architecture: armv7l
CPUs: 2
Total Memory: 997.4MiB
Name: bpi-iot-jsho-tools-01
ID: TB4K:MD3X:X2UJ:Y5KZ:CD7M:7REI:NENY:4FGB:WWZF:JDLW:ZTTK:6ODH
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# docker run hello-world
Unable to find image ‚hello-world:latest‘ locally
latest: Pulling from library/hello-world
9b157615502d: Pull complete
Digest: sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the „hello-world“ image from the Docker Hub.
(arm32v7)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
root@bpi-iot-jsho-tools-01:~#

Armbian Linux Bullseye 21.08.6 – a quick start guide

Sonntag, November 28th, 2021

Armbian Linux – a quick start guide

login as: root
root@bpi-iot-jsho-tools-01.fritz.box’s password:

Welcome to Armbian 21.08.6 Bullseye with Linux 5.10.60-sunxi

System load: 5% Up time: 1:31
Memory usage: 8% of 991M IP: 192.168.1.168
CPU temp: 42°C Usage of /: 3% of 58G
Last login: Sun Nov 28 18:09:30 2021 from 192.168.1.3
root@bpi-iot-jsho-tools-01:~#

Banana Pi BPI-R2 Pro – eignet sich auch als Router

Mittwoch, September 1st, 2021

Banana Pi BPI-M2S – with two Gigabit Ethernet ports ARM Cortex-A73 cores and LPDDR4 RAM

Dienstag, August 24th, 2021

Banana Pi – how to Install & flush the DNS cache in Debian Linux

Dienstag, Mai 11th, 2021

Name service caching daemon (nscd) – is a daemon that provides a cache for the most common name service requests

# apt-get install nscd
# /etc/init.d/nscd restart

Banana Pi – how to disable IPv6 in Debian OS

Sonntag, Mai 9th, 2021

Banana Pi – how to disable IPv6 in Debian OS

To disable IPv6 temporarily
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
To disable IPv6 permanently
# vi /etc/sysctl.conf
Add this to the end
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
net.ipv6.conf.eth0.disable_ipv6 = 1
# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1
# shutdown -r now
# cat /proc/sys/net/ipv6/conf/all/disable_ipv6
1
# vi /etc/rc.local
#!/bin/bash
# /etc/rc.local

/etc/init.d/procps restart
exit 0
Check with “ifconfig” if the IPv6 address has disappeared
# ip addr show | grep inet6

Banana Pi BPI-M1/M1/R1 – Debian 10 buster mate desktop with grub support

Samstag, Dezember 26th, 2020

Banana Pi BPI-M1/M1/R1 – Debian 10 buster mate desktop with grub support

root@bpi-iot-jsho-tools-21:~# armbian-config