Compare commits

...

18 Commits

Author SHA1 Message Date
lseys b17355f36b docs: Corrected documentation related to Banana BPI hardware
arcad/emissary-firmware/pipeline/pr-master This commit looks good Details
2023-08-30 16:57:01 +02:00
wpetit 7bfb1982b7 ci: install python3-distutils in docker environment 2023-08-30 16:57:01 +02:00
wpetit 490b5558a7 doc: refactor bpi hardware sheet 2023-08-30 16:57:01 +02:00
lseys ce8460a277 doc: add make download-emissary-release in doc 2023-08-30 16:57:01 +02:00
lseys 7a300bdbf0 doc: create hardware-sheet for bananapi. doc use to discover hardware and install firmware on it only 2023-08-30 16:57:01 +02:00
lseys 86792b320e fix: clear default configuration by setting only requires 2023-08-30 16:57:01 +02:00
lseys 241d234ece fix: simplify firmware configuration. test => start, ssh access, emissary-agent, contact emissary server OK 2023-08-30 16:57:01 +02:00
lseys e07c26e24d remise en état du fichier n'ayant pas besoin d'être modifié! 2023-08-30 16:57:01 +02:00
lseys 972aec6e6b feat(bpi-r3): default firmware ok. Lan ok, emissary install 2023-08-30 16:57:01 +02:00
wpetit f2d8692a4b feat: add basic bananapi r3 target 2023-08-30 16:57:01 +02:00
Jenkins b0e9d61731 feat: use emissary 2023.8.25-stable.1853.3d7a094
arcad/emissary-firmware/pipeline/head This commit looks good Details
2023-08-25 18:59:44 +00:00
Jenkins f0601b2028 feat: use emissary 2023.8.25-stable.1802.612f18a
arcad/emissary-firmware/pipeline/head Something is wrong with the build of this commit Details
2023-08-25 18:06:34 +00:00
Jenkins 4edf42183f feat: use emissary 2023.8.25-stable.1652.077964c
arcad/emissary-firmware/pipeline/head Something is wrong with the build of this commit Details
2023-08-25 16:59:31 +00:00
wpetit f6fd4979d8 ci: do not pull before updating emissary release version
arcad/emissary-firmware/pipeline/head Something is wrong with the build of this commit Details
2023-08-25 10:59:11 -06:00
Jenkins fca8010604 feat: use emissary v2023.8.25-14eecbf
arcad/emissary-firmware/pipeline/head There was a failure building this commit Details
2023-08-25 15:36:04 +00:00
Jenkins 4c6226f47e feat: use emissary v2023.8.25-c51ac0a
arcad/emissary-firmware/pipeline/head Something is wrong with the build of this commit Details
2023-08-25 15:14:08 +00:00
Jenkins 357af4b7cf feat: use emissary v2023.8.25-61ac5e8
arcad/emissary-firmware/pipeline/head Something is wrong with the build of this commit Details
2023-08-25 15:05:04 +00:00
Jenkins f2993c3667 feat: use emissary v2023.8.25-929394c
arcad/emissary-firmware/pipeline/head Something is wrong with the build of this commit Details
2023-08-25 15:01:23 +00:00
14 changed files with 201 additions and 9 deletions

1
Jenkinsfile vendored
View File

@ -53,7 +53,6 @@ pipeline {
echo '${params.emissaryRelease}' > emissary_release.txt echo '${params.emissaryRelease}' > emissary_release.txt
git add emissary_release.txt git add emissary_release.txt
git commit -m "feat: use emissary ${params.emissaryRelease}" git commit -m "feat: use emissary ${params.emissaryRelease}"
git pull --rebase
git push origin \$(git rev-parse HEAD):${env.GIT_BRANCH} git push origin \$(git rev-parse HEAD):${env.GIT_BRANCH}
""" """
} }

View File

@ -15,8 +15,8 @@ BIN_DIR_NAME_SUFFIX ?=
IMAGEBUILDER_URL ?= https://downloads.openwrt.org/releases/$(OPENWRT_VERSION)/targets/$(OPENWRT_TARGET)/openwrt-imagebuilder-$(OPENWRT_VERSION)-$(OPENWRT_TARGET_DASHED).Linux-x86_64.tar.xz IMAGEBUILDER_URL ?= https://downloads.openwrt.org/releases/$(OPENWRT_VERSION)/targets/$(OPENWRT_TARGET)/openwrt-imagebuilder-$(OPENWRT_VERSION)-$(OPENWRT_TARGET_DASHED).Linux-x86_64.tar.xz
IMAGEBUILDER_ARCHIVE_PATH := tmp/imagebuilder-$(OPENWRT_VERSION)-$(OPENWRT_TARGET_DASHED).tar.xz IMAGEBUILDER_ARCHIVE_PATH ?= tmp/imagebuilder-$(OPENWRT_VERSION)-$(OPENWRT_TARGET_DASHED).tar.xz
IMAGEBUILDER_DIR_PATH := $(PWD)/imagebuilder/$(OPENWRT_VERSION)/$(OPENWRT_TARGET) IMAGEBUILDER_DIR_PATH ?= $(PWD)/imagebuilder/$(OPENWRT_VERSION)/$(OPENWRT_TARGET)
IMAGEBUILDER_CUSTOM_PACKAGES_DIR_PATH := $(IMAGEBUILDER_DIR_PATH)/packages IMAGEBUILDER_CUSTOM_PACKAGES_DIR_PATH := $(IMAGEBUILDER_DIR_PATH)/packages
IMAGEBUILDER_CUSTOM_FILES_DIR_PATH := $(IMAGEBUILDER_DIR_PATH)/files IMAGEBUILDER_CUSTOM_FILES_DIR_PATH := $(IMAGEBUILDER_DIR_PATH)/files

View File

@ -8,8 +8,13 @@ install/ # Tâches Make d'installation spécifiques aux différentes cibles d
misc/ # Fichiers spécifiques aux différentes cibles de construction misc/ # Fichiers spécifiques aux différentes cibles de construction
targets/ # Tâches Make de définition des différentes cibles de construction targets/ # Tâches Make de définition des différentes cibles de construction
``` ```
## Tutoriels ## Tutoriels
- [Premiers pas](./tutorials/first-steps.md) - [Premiers pas](./tutorials/first-steps.md)
- [Compiler un firmware](./tutorials/firmware-compilation.md) - [Compiler un firmware](./tutorials/firmware-compilation.md)
- [Flasher une borne](./tutorials/device-flashing.md) - [Flasher une borne](./tutorials/device-flashing.md)
## Fiches matériel
- [Banana Pi](./hardware/bananapi.md)

140
doc/hardware/bananapi.md Normal file
View File

@ -0,0 +1,140 @@
# BananaPi
![banana-rpi3](./../img/bpi-r3-case.jpg)
## Caractéristiques
- MediaTek MT7986(Filogic 830) Quad core ARM Cortex A53
- Wifi 6 2.4G/5GMT7976C
- 2G DDR RAM
- 8G eMMC flash
- 128MB Nand flash
- 2x 2.5GbE network port
- 1x M.2 Key B USB inerface
- 1x M.2 KEY M PCIe inerface
- 1x USB2.0 interface
- 1x Wan port (gigabit)
- 4x LAN port (gigabit)
## Installation
Par défaut, la borne est livrée sans système d'exploitation, ce qui rend impossible la procédure de flashage conventionnelle.
BPI fournit un logiciel qui permet de prendre un fichier .img et de le mettre en place sur une carte SD.
### Installation bpi-tools
Il est recommandé d'installer préalablement pv pour plus de commodité. (Disponible et validé sur Ubuntu et Manjaro)
```Shell
apt-get install pv
```
Pour installer bpi-tools sur votre machine, si vous ne pouvez pas accéder à l'URL via curl, rendez-vous sur le dépôt de bpi-tools et effectuez le processus manuellement.
```Shell
curl -sL https://github.com/BPI-SINOVOIP/bpi-tools/raw/master/bpi-tools | sudo -E bash
```
### Installation firmware avec emissary
Dans cet exemple, nous partirons de l'image OpenWrt avec Emissary suivante : ```openwrt-22.03.2-emissary-v2023.08.02-bec8917-bcm27xx-bcm2711-rpi-4-squashfs-factory.img```
1. Téléchargement de l'image : Téléchargez l'image depuis la [forge cadoles](https://forge.cadoles.com/arcad/emissary-firmware/releases)
Après le téléchargement, vous obtiendrez un fichier au format .gz.</br>
2. Extraction : Exécutez la commande suivante pour extraire l'image (remplacez les ```**``` par les détails spécifiques du fichier) : ```gunzip openwrt-**-emissary-***-****-**-**-rpi-4-squashfs-factory.img.gz```
3. Déplacement dans le dossier : Placez-vous dans le dossier contenant le fichier .img.
4. Connexion de la carte SD : Branchez la carte SD sur votre machine. Pour vérifier l'identification de la carte, vous pouvez utiliser la commande ```dmesg``` et examiner les dernières lignes (généralement /dev/sda).
5. Vérification du chemin d'accès : Confirmez le chemin d'accès à la carte SD (/dev/sd...).
6. Copie sur la carte SD : Lancez la copie sur la carte SD en utilisant la commande bpi-copy (remplacez le nom de l'image et le chemin d'accès à la carte SD) :
```Shell
sudo bpi-copy openwrt-22.03.2-emissary-v2023.08.02-bec8917-bcm27xx-bcm2711-rpi-4-squashfs-factory.img /dev/sda
```
Le résultat ressemblera à ceci :
```Shell
==============================================================
jeu. 03 août 2023 10:09:12 CEST
*** start COPY (blue led on ) .....
umount device: /dev/sda
umount /dev/sda1
umount /dev/sda2
==============================================================
IMGFILE=openwrt-22.03.2-emissary-v2023.08.02-bec8917-bcm27xx-bcm2711-rpi-4-squashfs-factory.img
==============================================================
img
8+1 enregistrements lus
8+1 enregistrements écrits
90475842 octets (90 MB, 86 MiB) copiés, 0,130052 s, 696 MB/s
86,3MiO 0:00:00 [ 648MiO/s] [ <=> ]
0+1381 enregistrements lus
0+1381 enregistrements écrits
*** end COPY (blue led off) .....
jeu. 03 août 2023 10:09:18 CEST
==============================================================
RUNTIME 0:6
OK!! You can remove the BOOTDISK /dev/sda now!!
```
Une fois la copie terminée, retirez la carte SD. Vous pouvez maintenant l'insérer dans le boîtier de destination.
Après avoir flashé la carte, assurez-vous que les commutateurs sont correctement positionnés (sélection du boot), insérez la carte SD et branchez la borne.
Connectez-vous à un port LAN du boîtier qui distribuera une adresse IP via DHCP. Vous pourrez ensuite utiliser SSH pour y accéder.
### OS pour banana-bpi fournit par bpi
Pour installer OpenWrt sur le BPI-R3, vous devez d'abord télécharger l'image ```bananapi_bpi-r3-sdcard.img.gz``` fourni par OpenWrt. Vous pouvez le télécharger depuis leur [page de téléchargement](https://downloads.openwrt.org/snapshots/targets/mediatek/filogic/). Si vous ne trouvez pas le fichier directement, suivez ces indications :
1. Accédez à la page de téléchargement OpenWrt (cf image suivante).
2. Recherchez le dossier correspondant au modèle de votre matériel, dans ce cas bananapi_bpi-r3.
3. Téléchargez le fichier bananapi_bpi-r3-sdcard.img.gz.
![img](./../img/bpi-r3-download.png)
Après avoir téléchargé le fichier, vous pouvez continuer avec les étapes d'installation.
#### Flash du Firmware OpenWrt pour BPI
Suivez les étapes ci-dessous pour flasher la carte avec le firmware OpenWrt pour BPI :
1. Téléchargement de l'image : Si vous avez suivi les instructions précédentes, vous devriez avoir l'image de l'OS.
2. Extraction de l'image : Exécutez la commande suivante pour extraire l'image (remplacez les **** par les détails spécifiques du fichier) : ```gunzip bananapi_****.img.gz```
3. Placement de l'image : Placez-vous dans le dossier contenant le fichier .img.
4. Branchement de la carte SD : Branchez la carte SD sur votre machine. Pour vérifier son identification, utilisez ```dmesg``` et observez les dernières lignes (généralement sda).
5. Copie sur la carte SD : Lancez la copie sur la carte SD en utilisant la commande bpi-copy (remplacez les détails de l'image et le chemin d'accès à la carte SD) :
```Shell
sudo bpi-copy bananapi_bpi-r3-sdcard.img /dev/sda
```
Une fois la carte flashée, assurez-vous que le switch a tous ses jumpers orientés vers le haut (sélection du boot). Insérez ensuite la carte SD et branchez la borne.
Assurez-vous que votre carte réseau est configurée comme suit :
- Réseau : 192.168.1.0/24
- Passerelle : 192.168.1.1
Brancher votre câble RJ45 sur le port VLAN1, et connectez vous en ssh.(temps de boot moins de 30 secondes)
```Shell
ssh root@192.168.1.1
```
Pour la première connexion, aucun mot de passe n'est requis.
## FAQ
### Sélection du Système de Boot
Pour choisir le système de boot, il suffit de manipuler un switch composé de quatre jumpers. Par défaut, ils sont tous en position haute, ce qui configure le démarrage à partir de la carte microSD.
![schéma du switch](./../img/bpi-r3-switch.png)
### Noms des Périphériques Réseau
Par défaut, les périphériques réseau sont disposés et nommés comme suit :
![Lan](./../img/bpi-r3-lan-pic.jpg)

BIN
doc/img/bpi-r3-case.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

BIN
doc/img/bpi-r3-download.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
doc/img/bpi-r3-lan-pic.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
doc/img/bpi-r3-switch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -21,6 +21,7 @@ make linksys-wrt1900ac
# ... ou pour le routeur Linksys WRT3200ACM # ... ou pour le routeur Linksys WRT3200ACM
make linksys-wrt3200acm make linksys-wrt3200acm
``` ```
## Créer une nouvelle cible de construction ## Créer une nouvelle cible de construction
Dans ce tutoriel, nous allons voir comment créer une nouvelle cible de construction pour un nouvel appareil, ici un [Banana Pi R3](https://wiki.banana-pi.org/Banana_Pi_BPI-R3). Dans ce tutoriel, nous allons voir comment créer une nouvelle cible de construction pour un nouvel appareil, ici un [Banana Pi R3](https://wiki.banana-pi.org/Banana_Pi_BPI-R3).
@ -54,7 +55,7 @@ Dans ce tutoriel, nous allons voir comment créer une nouvelle cible de construc
``` ```
**Explication des variables** **Explication des variables**
- `OPENWRT_VERSION`: Version d'OpenWRT à utiliser. _Normalement prédéfinie par le fichier `Makefile` principal mais ill est ici nécessaire de surcharger la variable car il n'existe à ce jour pas de version stable d'OpenWRT pour la BananaPi R3._ - `OPENWRT_VERSION`: Version d'OpenWRT à utiliser. _Normalement prédéfinie par le fichier `Makefile` principal mais ill est ici nécessaire de surcharger la variable car il n'existe à ce jour pas de version stable d'OpenWRT pour la BananaPi R3._
- `IMAGEBUILDER_URL`: URL à utiliser pour télécharger le "builder" OpenWRT. _Normalement prédéfinie par le fichier `Makefile` principal mais ill est ici nécessaire de surcharger la variable car il n'existe à ce jour pas de version stable d'OpenWRT pour la BananaPi R3._ - `IMAGEBUILDER_URL`: URL à utiliser pour télécharger le "builder" OpenWRT. _Normalement prédéfinie par le fichier `Makefile` principal mais ill est ici nécessaire de surcharger la variable car il n'existe à ce jour pas de version stable d'OpenWRT pour la BananaPi R3._
- `ADDITIONAL_INSTALL`: Tâches Make d'installation supplémentaires à exécuter. Voir section suivante. - `ADDITIONAL_INSTALL`: Tâches Make d'installation supplémentaires à exécuter. Voir section suivante.
@ -62,13 +63,21 @@ Dans ce tutoriel, nous allons voir comment créer une nouvelle cible de construc
- `EMISSARY_ARCH`: Architecture du binaire Emissary à déployer dans le firmware - `EMISSARY_ARCH`: Architecture du binaire Emissary à déployer dans le firmware
- `OPENWRT_PROFILE`: "Profil" OpenWRT associé à l'appareil - `OPENWRT_PROFILE`: "Profil" OpenWRT associé à l'appareil
3. Lancer la compilation du firmware 3. Préparation.
Lancer la commande suivante pour télécharger (ou mettre à jours) les fichiers tar.gz nécessaire à la construction du firmware. Si cette commande n'a pas été exécutée au moins une fois, vous ne serez pas en mesure de construire le ou les firmwares nécessaires.
```shell
make download-emissary-release
```
4. Lancer la compilation du firmware
```shell ```shell
make bpi-r3 make bpi-r3
``` ```
Les fichiers du firmware seront générés dans le répertoire `bin/snapshot/mediatek/filogic/bananapi_bpi-r3/` Les fichiers du firmware seront générés dans le répertoire `depot/bin/snapshot/mediatek/filogic/bananapi_bpi-r3/`
> 🛈 **Comment trouver les valeurs des variables `OPENWRT_TARGET` et `OPENWRT_PROFILE` ?** > 🛈 **Comment trouver les valeurs des variables `OPENWRT_TARGET` et `OPENWRT_PROFILE` ?**
> >

View File

@ -1 +1 @@
v2023.8.25-a1ec5b8 2023.8.25-stable.1853.3d7a094

3
install/bananapi.mk Normal file
View File

@ -0,0 +1,3 @@
install-bpi-r3-network-config:
mkdir -p files/etc/config
cp misc/bpi-r3/uci/network files/etc/config/network

24
misc/bpi-r3/uci/network Normal file
View File

@ -0,0 +1,24 @@
config interface 'lan'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
list ports 'lan4'
list ports 'sfp2'
option ip6assign '60'
config interface 'wan'
option type 'bridge'
list ports 'eth1'
list ports 'wan'
option proto 'dhcp'
config device
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'

View File

@ -8,7 +8,7 @@ ARG https_proxy=
# Install dev environment dependencies # Install dev environment dependencies
RUN export DEBIAN_FRONTEND=noninteractive &&\ RUN export DEBIAN_FRONTEND=noninteractive &&\
apt-get update -y &&\ apt-get update -y &&\
apt-get install -y --no-install-recommends curl ca-certificates build-essential wget unzip tar git jq gawk python3 rsync file apt-get install -y --no-install-recommends curl ca-certificates build-essential wget unzip tar git jq gawk python3 rsync file python3-distutils
# Add LetsEncrypt certificates # Add LetsEncrypt certificates
RUN curl -k https://forge.cadoles.com/Cadoles/Jenkins/raw/branch/master/resources/com/cadoles/common/add-letsencrypt-ca.sh | bash RUN curl -k https://forge.cadoles.com/Cadoles/Jenkins/raw/branch/master/resources/com/cadoles/common/add-letsencrypt-ca.sh | bash

12
targets/bananapi.mk Normal file
View File

@ -0,0 +1,12 @@
all: bpi-r3
bpi-r3:
$(MAKE) \
OPENWRT_VERSION="snapshot" \
IMAGEBUILDER_URL=https://downloads.openwrt.org/snapshots/targets/mediatek/filogic/openwrt-imagebuilder-mediatek-filogic.Linux-x86_64.tar.xz \
ADDITIONAL_INSTALL="install-bpi-r3-network-config" \
ADDITIONAL_OPENWRT_PACKAGES="block-mount kmod-fs-ext4 kmod-usb-storage kmod-usb2" \
OPENWRT_TARGET="mediatek/filogic" \
EMISSARY_ARCH="arm64" \
OPENWRT_PROFILE="bananapi_bpi-r3" \
build