Merge pull request 'bananapi-r3' (#2) from bananapi-r3 into master
arcad/emissary-firmware/pipeline/head This commit looks good
Details
arcad/emissary-firmware/pipeline/head This commit looks good
Details
Reviewed-on: #2 Reviewed-by: wpetit <wpetit@cadoles.com>
This commit is contained in:
commit
8038eb5c97
4
Makefile
4
Makefile
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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/5G(MT7976C)
|
||||||
|
- 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)
|
Binary file not shown.
After Width: | Height: | Size: 162 KiB |
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
|
@ -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` ?**
|
||||||
>
|
>
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
install-bpi-r3-network-config:
|
||||||
|
mkdir -p files/etc/config
|
||||||
|
cp misc/bpi-r3/uci/network files/etc/config/network
|
|
@ -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'
|
|
@ -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
|
|
@ -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
|
Loading…
Reference in New Issue