bananapi-r3 #2
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.
|
||||||
wpetit marked this conversation as resolved
Outdated
|
|||||||
|
|
||||||
|
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)
|
After Width: | Height: | Size: 162 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 36 KiB |
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'
|
||||||
wpetit marked this conversation as resolved
Outdated
wpetit
commented
La configuration ne devrait contenir que le minimum vital pour que la configuration réseau soit fonctionnelle (i.e. interface WAN en mode DHCP). On ne devrait pas surcharger les autres propriétés de la configuration UCI et maintenir celles par défaut fournies par le firmware OpenWRT. i.e. supprimer le bloc La configuration ne devrait contenir que le minimum vital pour que la configuration réseau soit fonctionnelle (i.e. interface WAN en mode DHCP).
On ne devrait pas surcharger les autres propriétés de la configuration UCI et maintenir celles par défaut fournies par le firmware OpenWRT.
i.e. supprimer le bloc `globals` si possible.
|
|||||||
|
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
|
Faire une relecture orthographique de la procédure d'installation.
correction de la documentation comme demandé.