Auteur Sujet: Banana Pi R3 + Debian et OpenWRT 23.05 : Le test  (Lu 12078 fois)

0 Membres et 1 Invité sur ce sujet

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 249
Banana Pi R3 + Debian et OpenWRT 23.05 : Le test
« Réponse #132 le: 12 juin 2024 à 17:01:55 »
C'est un peu ennuyeux que l'adresse MAC associée aux interfaces L2 eth[01] du BPI change après le premier redémarrage. Cela m'oblige presque à assigner une MAC manuellement en connexion
série avec U-boot (à la console) avant le premier amorçage du micrologiciel OpenWrt. Et répéter le procédé à chaque mise à jour de l'image du micrologiciel. L'alternative serait de spécifier le paramètre
network.CFGID.macaddr='00:11:22:33:44:55' dans l'interface UCI. Sauf que l'interface LuCi met alors en évidence que l'adresse MAC a été ré-écrite (du genre « origine falsifiée »).

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 249
Banana Pi R3 + Debian et OpenWRT 23.05 : Le test
« Réponse #133 le: 12 juin 2024 à 19:13:50 »
Évidemment, le problème se pose peu ou prou dans la configuration originale. Mais le code qui adapte ma configuration dans l'image personnalisée est malpropre, avec de la redondance et mal placé.

diff -ru a/files/bin/config_generate b/files/bin/config_generate
--- a/files/bin/config_generate 2024-06-12 19:11:21.678223220 +0200
+++ b/files/bin/config_generate 2024-06-12 19:11:33.695190882 +0200
@@ -1,40 +1,12 @@
 #!/bin/sh
 
 CFG=/etc/board.json
+ISP=/etc/isp.json
 
 . /usr/share/libubox/jshn.sh
 
 [ -s $CFG ] || /bin/board_detect || exit 1
-[ -s /etc/config/network -a -s /etc/config/system ] && exit 0
-
-generate_bridge() {
- local name=$1
- local macaddr=$2
- uci -q batch <<-EOF
- set network.$name=device
- set network.$name.name=$name
- set network.$name.type=bridge
- EOF
- if [ -n "$macaddr" ]; then
- uci -q batch <<-EOF
- set network.$name.macaddr=$macaddr
- EOF
- fi
-}
-
-bridge_vlan_id=0
-generate_bridge_vlan() {
- local name=$1_vlan
- local device=$2
- local ports="$3"
- local vlan="$4"
- uci -q batch <<-EOF
- set network.$name=bridge-vlan
- set network.$name.device='$device'
- set network.$name.vlan='$vlan'
- set network.$name.ports='$ports'
- EOF
-}
+[ -s /etc/config/network ] && [ -s /etc/config/system ] && exit 0
 
 generate_static_network() {
  uci -q batch <<-EOF
@@ -42,8 +14,7 @@
  set network.loopback='interface'
  set network.loopback.device='lo'
  set network.loopback.proto='static'
- set network.loopback.ipaddr='127.0.0.1'
- set network.loopback.netmask='255.0.0.0'
+ set network.loopback.ipaddr='127.0.0.1/8'
  EOF
  [ -e /proc/sys/net/ipv6 ] && {
  uci -q batch <<-EOF
@@ -52,127 +23,73 @@
  set network.globals.ula_prefix='auto'
  EOF
  }
-
- if json_is_a dsl object; then
- json_select dsl
- if json_is_a atmbridge object; then
- json_select atmbridge
- local vpi vci encaps payload nameprefix
- json_get_vars vpi vci encaps payload nameprefix
- uci -q batch <<-EOF
- delete network.atm
- set network.atm='atm-bridge'
- set network.atm.vpi='$vpi'
- set network.atm.vci='$vci'
- set network.atm.encaps='$encaps'
- set network.atm.payload='$payload'
- set network.atm.nameprefix='$nameprefix'
- EOF
- json_select ..
- fi
-
- if json_is_a modem object; then
- json_select modem
- local type annex firmware tone xfer_mode
- json_get_vars type annex firmware tone xfer_mode
- uci -q batch <<-EOF
- delete network.dsl
- set network.dsl='dsl'
- set network.dsl.annex='$annex'
- set network.dsl.firmware='$firmware'
- set network.dsl.tone='$tone'
- set network.dsl.xfer_mode='$xfer_mode'
- EOF
- json_select ..
- fi
- json_select ..
- fi
 }
 
-addr_offset=2
 generate_network() {
- local ports device macaddr protocol type ipaddr netmask vlan
+ local ports device macaddr protocol type vlan
  local bridge=$2
 
  json_select network
  json_select "$1"
- json_get_vars device macaddr metric protocol ipaddr netmask vlan
+ json_get_vars device macaddr protocol vlan
  json_get_values ports ports
  json_select ..
  json_select ..
 
- [ -n "$device" -o -n "$ports" ] || return
+ [ -n "$device" ] || [ -n "$ports" ] || return
 
  # Force bridge for "lan" as it may have other devices (e.g. wireless)
  # bridged
- [ "$1" = "lan" -a -z "$ports" ] && {
+ [ "$1" = "lan" ] && [ -z "$ports" ] && {
  ports="$device"
  }
 
- [ -n "$ports" -a -z "$bridge" ] && {
+ [ -n "$ports" ] && [ -z "$bridge" ] && {
  uci -q batch <<-EOF
  add network device
  set network.@device[-1].name='br-$1'
  set network.@device[-1].type='bridge'
  EOF
  for port in $ports; do uci add_list network.@device[-1].ports="$port"; done
- [ -n "$macaddr" ] && {
- for port in $ports; do
- uci -q batch <<-EOF
- add network device
- set network.@device[-1].name='$port'
- set network.@device[-1].macaddr='$macaddr'
- EOF
- done
- }
+
  device=br-$1
  type=
  macaddr=""
  }
 
- [ -n "$bridge" ] && {
- [ -z "$ports" ] && ports="$device"
- if [ -z "$vlan" ]; then
- bridge_vlan_id=$((bridge_vlan_id + 1))
- vlan=$bridge_vlan_id
- fi
- generate_bridge_vlan $1 $bridge "$ports" $vlan
- device=$bridge.$vlan
- type=""
- }
+ [ "$1" = "wan" ] && [ -n "$vlan" ] && {
+ sid=$(uci add network device)
+
+ json_select network
+ json_select "$1"
+ json_add_string device_config $sid
+ json_select ..
+ json_select ..
+
+ json_dump -i -o $CFG
 
- if [ -n "$macaddr" ]; then
  uci -q batch <<-EOF
- add network device
- set network.@device[-1].name='$device'
- set network.@device[-1].macaddr='$macaddr'
+ set network.$sid.name='$device.$vlan'
+ set network.$sid.type='8021q'
+ set network.$sid.ifname='$device'
+ set network.$sid.vid='$vlan'
  EOF
- fi
+ }
 
  uci -q batch <<-EOF
  delete network.$1
  set network.$1='interface'
  set network.$1.type='$type'
  set network.$1.device='$device'
- set network.$1.metric='$metric'
  set network.$1.proto='none'
  EOF
 
  case "$protocol" in
  static)
- local ipad
- case "$1" in
- lan) ipad=${ipaddr:-"192.168.1.1"} ;;
- *) ipad=${ipaddr:-"192.168.$((addr_offset++)).1"} ;;
- esac
-
- netm=${netmask:-"255.255.255.0"}
-
  uci -q batch <<-EOF
  set network.$1.proto='static'
- set network.$1.ipaddr='$ipad'
- set network.$1.netmask='$netm'
  EOF
+
  [ -e /proc/sys/net/ipv6 ] && uci set network.$1.ip6assign='60'
  ;;
 
@@ -180,133 +97,23 @@
  # fixup IPv6 slave interface if parent is a bridge
  [ "$type" = "bridge" ] && device="br-$1"
 
- uci set network.$1.proto='dhcp'
- [ -e /proc/sys/net/ipv6 ] && {
- uci -q batch <<-EOF
- delete network.${1}6
- set network.${1}6='interface'
- set network.${1}6.device='$device'
- set network.${1}6.proto='dhcpv6'
- EOF
- }
- ;;
-
- pppoe)
  uci -q batch <<-EOF
- set network.$1.proto='pppoe'
- set network.$1.username='username'
- set network.$1.password='password'
+ set network.$1.device='$device.$vlan'
+ set network.$1.proto='dhcp'
  EOF
+
  [ -e /proc/sys/net/ipv6 ] && {
  uci -q batch <<-EOF
- set network.$1.ipv6='1'
  delete network.${1}6
  set network.${1}6='interface'
- set network.${1}6.device='@${1}'
+ set network.${1}6.device='$device.$vlan'
  set network.${1}6.proto='dhcpv6'
  EOF
  }
  ;;
-
- ncm|\
- qmi|\
- mbim)
- uci -q batch <<-EOF
- set network.$1.proto='${protocol}'
- set network.$1.pdptype='ipv4'
- EOF
- ;;
  esac
 }
 
-generate_switch_vlans_ports() {
- local switch="$1"
- local port ports role roles num attr val
-
- #
- # autogenerate vlans
- #
-
- if json_is_a roles array; then
- json_get_keys roles roles
- json_select roles
-
- for role in $roles; do
- json_select "$role"
- json_get_vars ports
- json_select ..
-
- uci -q batch <<-EOF
- add network switch_vlan
- set network.@switch_vlan[-1].device='$switch'
- set network.@switch_vlan[-1].vlan='$role'
- set network.@switch_vlan[-1].ports='$ports'
- EOF
- done
-
- json_select ..
- fi
-
-
- #
- # write port specific settings
- #
-
- if json_is_a ports array; then
- json_get_keys ports ports
- json_select ports
-
- for port in $ports; do
- json_select "$port"
- json_get_vars num
-
- if json_is_a attr object; then
- json_get_keys attr attr
- json_select attr
- uci -q batch <<-EOF
- add network switch_port
- set network.@switch_port[-1].device='$switch'
- set network.@switch_port[-1].port=$num
- EOF
-
- for attr in $attr; do
- json_get_var val "$attr"
- uci -q set network.@switch_port[-1].$attr="$val"
- done
- json_select ..
- fi
- json_select ..
- done
-
- json_select ..
- fi
-}
-
-generate_switch() {
- local key="$1"
- local vlans
-
- json_select switch
- json_select "$key"
- json_get_vars enable reset blinkrate cpu_port \
- ar8xxx_mib_type ar8xxx_mib_poll_interval
-
- uci -q batch <<-EOF
- add network switch
- set network.@switch[-1].name='$key'
- set network.@switch[-1].reset='$reset'
- set network.@switch[-1].enable_vlan='$enable'
- set network.@switch[-1].blinkrate='$blinkrate'
- set network.@switch[-1].ar8xxx_mib_type='$ar8xxx_mib_type'
- set network.@switch[-1].ar8xxx_mib_poll_interval='$ar8xxx_mib_poll_interval'
- EOF
-
- generate_switch_vlans_ports "$1"
-
- json_select ..
- json_select ..
-}
-
 generate_static_system() {
  uci -q batch <<-EOF
  delete system.@system[0]
@@ -482,24 +289,6 @@
  json_select ..
 }
 
-generate_gpioswitch() {
- local cfg="$1"
-
- json_select gpioswitch
- json_select "$cfg"
- local name pin default
- json_get_vars name pin default
- uci -q batch <<-EOF
- delete system.$cfg
- set system.$cfg='gpio_switch'
- set system.$cfg.name='$name'
- set system.$cfg.gpio_pin='$pin'
- set system.$cfg.value='$default'
- EOF
- json_select ..
- json_select ..
-}
-
 json_init
 json_load "$(cat ${CFG})"
 
@@ -510,20 +299,8 @@
  touch /etc/config/network
  generate_static_network
 
- json_get_vars bridge
- [ -n "$bridge" ] && {
- json_select bridge
- json_get_vars name macaddr
- generate_bridge "$name" "$macaddr"
- json_select ..
- bridge_name=$name
- }
-
  json_get_keys keys network
  for key in $keys; do generate_network $key $bridge_name; done
-
- json_get_keys keys switch
- for key in $keys; do generate_switch $key; done
 fi
 
 if [ ! -s /etc/config/system ]; then
@@ -533,9 +310,6 @@
  json_get_keys keys rssimon
  for key in $keys; do generate_rssimon $key; done
 
- json_get_keys keys gpioswitch
- for key in $keys; do generate_gpioswitch $key; done
-
  json_get_keys keys led
  for key in $keys; do generate_led $key; done
 fi

[19:28] J'avais retiré le code lié à la fonction de generate_bridge_vlan mais suite à un test je me suis aperçu que c'est une erreur.

artemus24

  • Abonné SFR fibre FttH
  • *
  • Messages: 904
  • Montignac Lascaux (24)
Banana Pi R3 + Debian et OpenWRT 23.05 : Le test
« Réponse #134 le: 12 juin 2024 à 22:53:15 »
Citation de: Xorg
C'est quoi l'utilité d'un ONT SFP ?
L'utilité d'un ONT, que ce soit sous la forme d'un boîtier ou d'un stick SFP, est de convertir un signal optique en un signal électrique.

Citation de: Xorg
D'avoir un débit de 10Gbit/s ?
Il y a chez SFR deux technologies :
--> G-PON où tu as du 2,4gb/s descendant et du 1,2gb/s ascendant.
--> XGS-PON où tu as du 10gb/s symétrique.
Il faut donc un stick SFP propre à la technologie utilisé dans le réseau SFR que tu as chez toi pour disposer du bon débit. Mais ce n'est pas suffisant car il faut que le port soit SFP ou SFP+.

Citation de: Xorg
J'imagine qu'il faut l'offre pour, je suis bridé par RED à 1Gbit/s
Oui, c'est l'offre qui va déterminer la technologie, et par voie de conséquence le débit.

Comme l'indique Rooot, les ports des BOX SFR sont limités à 1gb/s. Dans le cas de la BOX 8 SFR, l'entrée a un débit au maximum de 2,4gb/s. Ainsi tu peux brancher deux ordinateurs pouvant atteindre chacun 1gb/s sans avoir une baisse du débit, puisque 1gb/s + 1gb/s < 2,4gb/s. Si tu utilises le WiFi 6E, tu peux atteindre un débit proche des 2gb/s, ce qui n'est pas négligeable.

L'intérêt d'un routeur, comme le Banana BPI-R3, est de pourvoir mieux gérer sa configuration que ne le permet les BOX.

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 249
Banana Pi R3 + Debian et OpenWRT 23.05 : Le test
« Réponse #135 le: 13 juin 2024 à 08:20:27 »
Citation de: artemus24
Oui, c'est l'offre qui va déterminer la technologie, et par voie de conséquence le débit.

La technologie va seulement fixer un plafond au débit théorique maximum. Il me semble que le débit effectif reçu par l'abonné sera en principe limité par algorithme.

Citation de: artemus24
L'intérêt d'un routeur, comme le Banana BPI-R3, est de pourvoir mieux gérer sa configuration que ne le permet les BOX.

La configuration du routeur est un moyen pour élaborer sa topologie réseau. Car on peut difficilement changer de topologie avec les boîtier Internet grand public.
D'ailleurs, on ne peut pas vraiment changer (ou mieux gérer) la configuration d'un boîtier Internet FAI : on peut seulement le paramétrer.

artemus24

  • Abonné SFR fibre FttH
  • *
  • Messages: 904
  • Montignac Lascaux (24)
Banana Pi R3 + Debian et OpenWRT 23.05 : Le test
« Réponse #136 le: 13 juin 2024 à 11:53:10 »
Après avoir connu quatre BOX SFR (NB4, NB6v2, NB6VAC et BOX 8), je peux dire qu'elles sont toutes à chier.
Dommage que la taille de l'enregistrement des paramètres soient limitées.
Pour mes bidouilles, j'ai besoin d'avoir le triplet (adresse MAC, adresse IP, nom d'hôte local).
Et j'en ai plus d'une centaine entre mes Raspberry Pi, mes ESP32, en WiFi et en éthernet, en IPv4 et en IPv6.
Dans les vieilles BOX, je pouvais les saisir mais pas les sauvegarder.
Dans la BOX 8, je peux les saisir, mais c'est limité en nombre de lignes avant de rencontrer un problème avec ma connexion téléphonique lors du redémarrage.
En théorie, et en ce qui me concerne, je ne les trouve pas si mal que ça les BOX SFR, comparativement à la BOX Orange que j'ai pu accéder.
Dommage qu'elles soient boguées.

Le minimum pour un routeur, en ce qui me concerne, est le triplet que j'ai cité ci-dessus. Je sais, en principe, le serveur DNS ne fait pas parti d'un routeur, mais j'en ai véritablement besoin. Sans cela, je suis limité dans ce que je désire faire.

L'autre aspect des BOX que je trouve ennuyeux, est le nombre limité de ports RJ45 local, souvent limité à deux ou quatre.

Xorg

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 8
Banana Pi R3 + Debian et OpenWRT 23.05 : Le test
« Réponse #137 le: 15 juin 2024 à 12:55:13 »
J'ai branché mon bpi-r3 avec succès, merci à vous.
Bizarrement j'ai 700mbit en down et 1Gbit en up. Alors que dans mon offre red c'est l'inverse.

J'aimerai remplacer mon ont sfr par un transceiver SFP directement sur mon bpi-r3.
Quel transceiver sera compatible ?

rooot

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 1 963
  • 🔵🔵🔵🔵⚪⚪⚪⚪🔴🔴🔴🔴
Banana Pi R3 + Debian et OpenWRT 23.05 : Le test
« Réponse #138 le: 15 juin 2024 à 15:52:41 »
Au moins ces 3 là :  fs.com GPON-ONU-34-20BI, le Huawei MA5671A, le Nokia G-010S-P.

Xorg

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 8
Banana Pi R3 + Debian et OpenWRT 23.05 : Le test
« Réponse #139 le: 17 juin 2024 à 22:32:51 »
c'est bizarre, j'ai un débit en wifi 5Ghz de 400mbit/s en étant juste à côté de mon bpi-r3 avec mon Galaxy s23 en wifi6. Vous avez des débits comme ça vous aussi ?
Je m'attendais à avoir un débit proche de l'ethernet :(

rooot

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 1 963
  • 🔵🔵🔵🔵⚪⚪⚪⚪🔴🔴🔴🔴
Banana Pi R3 + Debian et OpenWRT 23.05 : Le test
« Réponse #140 le: 17 juin 2024 à 23:00:03 »
j'ai le meme débit qu'en ethernet, 1800Mbps environ. Tu es sur d'avoir bien configuré ton wifi ?

Xorg

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 8
Banana Pi R3 + Debian et OpenWRT 23.05 : Le test
« Réponse #141 le: 17 juin 2024 à 23:15:09 »
J'ai 2 AP: un en 2.4Ghz et un en 5Ghz avec un SSID différent.
J'utilise du WPA2-PSK sur les deux AP, je les ai mis en région PA (panama) et activé l'accélération Hardware du wifi (WED).
Tous les autres paramètres sont ceux par défaut d'openwrt.

rooot

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 1 963
  • 🔵🔵🔵🔵⚪⚪⚪⚪🔴🔴🔴🔴
Banana Pi R3 + Debian et OpenWRT 23.05 : Le test
« Réponse #142 le: 17 juin 2024 à 23:47:10 »
je viens de faire un test, sur aubagne SFR j'ai 1500Mbps en download, et 23Mbps en upload  ;D ;D je crois que leur serveur a un souci...
ensuite sur venissieux j'obtiens 900/800Mbps, curieux ces résultats qui fluctuent.

sur mon PC en ethernet je fais du 1800/920Mbps sur venissieux sfr et le serveur d'aubagne n'est pas proposé contrairement a ma tablette en wifi...

j'ai upgradé ma version d'openwrt il y a quelques jours, je ne crois pas que j'avais ce problème auparavant...

rooot

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 1 963
  • 🔵🔵🔵🔵⚪⚪⚪⚪🔴🔴🔴🔴
Banana Pi R3 + Debian et OpenWRT 23.05 : Le test
« Réponse #143 le: 17 juin 2024 à 23:52:06 »
avec nperf dans le navigateur de ma tablette, sur aubagne sfr : 984/716Mbps

Edit:
WED est désactivé chez moi, surement depuis que j'ai upgradé...
je viens de le reactiver, le cpuload a bien baissé, mais les débits ne sont pas vraiment différents.