# RPi 4 et boitier Argon One M.2 (avec SSD M.2)



https://www.argon40.com/argon-one-m-2-case-for-raspberry-pi-4.html

Le boitier accepte les SSD M.2  (Key-B ou Key-B&M)



### Installer Raspberry Pi OS sur la MicroSD:

 Télécharger [Raspberry Pi OS](https://www.raspberrypi.org/software/operating-systems/)

```bash
wget https://downloads.raspberrypi.org/raspios_full_armhf/images/raspios_full_armhf-2021-01-12/2021-01-11-raspios-buster-armhf-full.zip
```

Copier Raspberry Pi OS sur la MicroSD avec [Etcher](https://www.balena.io/etcher/)

Booter sur la MicroSD.

Mettre à jour l'OS et le firmware:

```bash
sudo apt update
sudo apt full-upgrade
sudo rpi-update
```

Redémarrer le Raspberry.

Installer le dernier bootloader;

```bash
sudo rpi-eeprom-update -d -a
```

Redémarrer le Raspberry.



### Configurer le boot  du Raspberry Pi:

Ouvrir **raspi-config**:

```bash
sudo raspi-config
```

1. Choisir **Advanded Options** puis Enter
2. Choisir **Bootloader Version** puis Enter
3. Choisir **Latest** (Use the latest version boot ROM software) puis Enter
4. Choisir **Non** pour utiliser Latest boot ROM
5. Choisir **Advanded Options** puis Enter
6. Choisir **Boot Order** puis Enter
7. Choisir **USB Boot** (si une carte SD est présente, le Raspberry démarrera sur la carte SD) puis Enter



### Copier la carte SD sur le disque SSD:

1. Lancer **SD Card Copier** depuis le menu <u>Démarrer</u>, section <u>Accessoires</u>.
2. Choisir la <u>carte SD</u> pour **Copy From Device**.
3. Choisir le <u>SSD</u> pour **Copy to Device**.
4. Cliquer sur **Start**.
5. La copie dure une dizaine de minutes...
6. **Eteindre** le Raspberry.
7. **Retirer la carte SD**.
8. **Redémarrer** le Raspberry qui boote sur le SSD.



### Outils Argon:

Installer Bouton Power et contrôle ventilo:

```bash
curl https://download.argon40.com/argon1.sh | bash
```

Fonctions Bouton Power:

| Argon One Pi 4 State | Action             | Function            |
| -------------------- | ------------------ | ------------------- |
| OFF                  | Appui court        | Démarrer            |
| ON                   | Appui long (>= 3s) | Arrêter et éteindre |
| ON                   | Appui court (< 3s) | rien                |
| ON                   | Double tap         | Reboot              |
| ON                   | Appui long (>= 5s) | Forcer l'arrêt      |

Vitesse ventilo:

| CPU Temp | Puissance ventilo |
| -------- | ----------------- |
| 55° C    | 10%               |
| 60° C    | 55%               |
| 65° C    | 100%              |

Pour configurer:

```bash
argonone-config
```

Désinstaller:

```bash
argonone-uninstall
```



#### [Mise à l'heure:](heure.md)



#### Installer le correcteur orthographique français:

```bash
sudo apt-get install myspell-fr
```



### Installer des logiciels:

Gestionnaire de mot-de-passe: KeepassXC (keepassxc-2.3.4)



### Clé SSH:

#### Clé une clé SSH:

```bash
$ ssh-keygen -t rsa -b 4096 -C "Clé sur Raspberry4"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa): 
Created directory '/home/pi/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Passphrases do not match.  Try again.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:6TzjtL9Q31LwOwRAXMLyR2OEO+fYNlc5ccyux4zvhGo Clé sur Raspberry4
The key's randomart image is:
+---[RSA 4096]----+
|         +++o  o |
|        . +o+  .+|
|         o +o. .+|
|         .+ o+ oo|
|        S .B  +*.|
|       o ...=++o+|
|        B  .oo=o.|
|       o =  Eo o.|
|        o.oo.  ..|
```

#### Répertoire `~/.ssh`

```bash
pi@framboise:~/.ssh $ ls -la
total 28
drwx------  2 pi pi 4096 févr.  4 14:35 .
drwxr-xr-x 33 pi pi 4096 févr.  9 13:46 ..
-rw-------  1 pi pi  846 juin   1  2019 authorized_keys
-rw-r--r--  1 pi pi  369 févr.  4 14:41 config
-rw-------  1 pi pi 1675 févr.  4  2019 id_rsa
-rw-r--r--  1 pi pi  394 févr.  4  2019 id_rsa.pub
-rw-r--r--  1 pi pi 1776 févr.  4 14:49 known_hosts
```

#### Copier la clé publique ssh sur le serveur distant:

```bash
$ ssh-copy-id -i ~/.ssh/id_rsa.pub bruno@maboiteverte.fr
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/pi/.ssh/id_rsa.pub"
The authenticity of host 'maboiteverte.fr (212.227.191.167)' can't be established.
ECDSA key fingerprint is SHA256:iw66SSVTlEmiXO4kayKS1lHPbrTb5IT3CJtu9c4U7V4.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'bruno@maboiteverte.fr'"
and check to make sure that only the key(s) you wanted were added.
```

#### 1ere connection sans mot-de-passe:

```bash
$ ssh 'bruno@maboiteverte.fr'
Enter passphrase for key '/home/pi/.ssh/id_rsa': 
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-96-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

 * Canonical Livepatch is available for installation.
   - Reduce system reboots and improve kernel security. Activate at:
     https://ubuntu.com/livepatch
     New release '20.04.2 LTS' available.
     Run 'do-release-upgrade' to upgrade to it.

Last login: Sat Feb 20 16:57:19 2021 from 86.209.226.200
bruno@localhost:~$
```

#### Créer le ssh-agent:

```bash
$ eval $(ssh-agent -s)
Agent pid 3551
```

#### Ajouter la clé ssh au ssh-agent:

```bash
$ ssh-add
Enter passphrase for /home/pi/.ssh/id_rsa: 
Identity added: /home/pi/.ssh/id_rsa (Clé sur Raspberry4)
```

#### Pour retirer la clé privée

```bash
$ kill PROCESSID
```



### Configurer le serveur ssh:

```bash
$ sudo nano /etc/ssh/sshd_config

# Ajouter:

Protocol 2
Port 36722
PasswordAuthentication no
PermitEmptyPasswords no
X11Forwarding no
ClientAliveInterval 1500
MaxAuthTries 3
PermitRootLogin no
```

#### Utiliser le protocole ssh version 2:

```bash
Protocol 2
❯ ssh -1 -p '36722' 'pi@raspberrypi4.local'
SSH protocol v.1 is no longer supported
```

#### Durée de vie de la connexion:

```bash
ClientAliveInterval 1500 # seconds
```

#### Connexion par clés uniquement:

```bash
PasswordAuthentication no
```

#### Limiter le nombre d'essais (mauvais mot-de-passe)

```bash
MaxAuthTries 3
```

#### Désactiver la connection en root:

```bash
PermitRootLogin prohibit-password # connection root avec clé ssh uniquement
PermitRootLogin no # connection root interdite
```

#### N'autoriser qu'une seule IP à se connecter:

```bash
ListenAddress 192.168.1.2
```

#### N'autoriser que certains utilisateurs:

```bash
AllowUsers user1 user2
```

#### Redémarrer le service ssh:

```bash
sudo service ssh restart
```

#### Si pas besoin de SSH, il faut le désactiver:

```bash
sudo systemctl stop sshd
sudo systemctl disable sshd
```



### Node:

```bash
# Par défaut (Raspi OS)
$ node -v
v10.24.0
```

#### Installer nvm:

```bash
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

# est ajouté au .bashrc:

export NVM_DIR="$HOME/.config/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
```

#### Installer node:

```bash
$ nvm install --lts=fermium
Installing with latest version of LTS line: fermium
Downloading and installing node v14.16.0...
```

```bash title="Version"
$ node -v
v14.16.0
```



### Samba:

#### Installer Samba:

```bash
$ sudo apt install samba samba-common-bin smbclient cifs-utils
```

#### Configurer:

```bash
$ sudo nano /etc/samba/smb.conf

# Ajouter dans[global] au début:

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of

   workgroup = WORKGROUP

   server string = Samba Server %v
   netbios name = raspberrypi4
   security = user
   map to guest = bas user
   dns proxy = no

# Ajouter le partage à la fin:

[shared]
   comment = Dossier partage dans le dossier User
   path = /home/pi/shared
   writeable = Yes
   create mask = 0777
   directory mask = 0777
   public = no
```

#### Créer un mot-de-passe Samba pour l'utilisateur pi:

```bash
$ sudo smbpasswd -a pi
New SMB password:
Retype new SMB password:
Added user pi.
```

#### Redémarrer le service Samba:

```bash
$ sudo systemctl restart smbd
```

#### Vérifier l'état du service Samba:

```bash
$ sudo systemctl status smbd.service
● smbd.service - Samba SMB Daemon
   Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-03-03 18:33:53 CET; 6min ago
```



### Copier des fichiers:

#### scp:

```bash
# Copier des fichiers vers le Rpi4:
$ scp -P36722 requirements.txt pi@raspberrypi4.local:Desktop/
requirements.txt                                                                                                                                100% 1215   417.8KB/s   00:00

# Copier des fichiers depuis le Rpi4:
$ scp -P36722 pi@raspberrypi4.local:Desktop/ex/hostname hostname
hostname                                                                                                                                        100%   13     4.0KB/s   00:00

```

#### sftp:

```bash

```



```bash
sudo tasksel
```