Benutzer:Leo: Unterschied zwischen den Versionen
Leo (Diskussion | Beiträge) eth0 bug text hinzugefügt |
Leo (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (34 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
== Mailinglisten Migration == |
|||
=Merker für mich= |
|||
Schritte pro Mailingliste: |
|||
mesh knoten |
|||
mesh-service-bridge |
|||
inet-gw , mesh-hub |
|||
* emailadressen + name von alter Liste ermitteln, e.g. /usr/lib/mailman/bin/list_members --fullnames vorstand |
|||
=eth0-bug-loco-xw= |
|||
* diese importieren in neuer Liste |
|||
backup of https://pad.hack-hro.de/p/eth0-bug-loco-xw |
|||
* mapping der alten Adresse auf die neue eintragen in "/etc/postfix/virtual", bspw. "admin@list.opennet-initiative.de admin@lists.opennet-initiative.de" und dann DB aktualisiere via "postmap /etc/postfix/tables/virtual" |
|||
* alte Emailadresse als "acceptable alias" eintragen, z.B in https://lists.opennet-initiative.de/postorius/lists/admin.lists.opennet-initiative.de/settings/message_acceptance |
|||
* Archiv importieren: zuerst screens session öffnen dann "mailman-web hyperkitty_import -l admin@lists.opennet-initiative.de /tmp/admin.mbox" |
|||
==Mediawiki Migration== |
|||
==inhalt== |
|||
Struktur: |
|||
linux-ar71xx_generic/linux-3.10.49/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c |
|||
* wiki.on-i.de - zeigt IMMER auf eine Startseite/Übersichtsseite |
|||
* docs.on-i.de - ist neues Wiki |
|||
* wiki-archive.on-i.de - offline Kopie |
|||
TODO: |
|||
<pre> |
|||
* da derzeit keine DNS Änderung möglich, müssen wir workarounds bauen: |
|||
AR9342 - Ist der SoC der Loco XWs |
|||
* wiki.on-i.de |
|||
* Bannerseite auf jun. Info: wiki-intern mit Passwort; docs sonst |
|||
* teste www.opennet... wo geht das hin? |
|||
* gallery testweise deaktivieren in allen configs |
|||
* den Migrationsprozess dokumentieren auf meiner Seite im Wiki für die Zukunft |
|||
* später, wenn DNS wieder geht: |
|||
* wiki-archive: |
|||
* DNS: wiki-archive erstellen als CNAME von docs |
|||
* DNS: wiki ändern als CNAME von docs |
|||
* offline Kopie mit Banner hochladen |
|||
* wiki-archive in ansible erstellen |
|||
* in ansible alles anpassen |
|||
* dann das Thema zur Seite legen |
|||
AR8030 - PHY chip - - http://qca.qualcomm.com/wp-content/uploads/2013/11/AR8030.pdf |
|||
== Mögliche Projekte == |
|||
AG71XX - ethernet driver |
|||
AR7240 SoC - Woi kommt das her? |
|||
Wir haben viele Aufgaben bei Opennet, welche mehr Aufmerksamkeit benötigen: |
|||
Wo wird UP/DOWN von Ethernet behandelt? |
|||
* Firmware Update von 21.02 nach 24.0x/25.0x |
|||
ag71xx_main.c |
|||
* MediaWiki Update weil aktuelle Version völlig veraltet ist |
|||
- ag71xx_fast_reset() |
|||
* Gallery Update weil völlig veraltet |
|||
- ag71xx_link_adjust() |
|||
* Wireguard einführen |
|||
hier wird auch fast_reset aufgerufen |
|||
* Mailserveraktualisierung - ***ongoing*** |
|||
* MoinMoin Wiki ablösen durch DokuWiki. MoinMoin wird nicht weiter gepflegt. Es basiert noch auf Python2. Aber Python2 ist auch deprecated. Auf aktuellen Debian Systemen gibt es ein Python2 mehr. |
|||
** Problem: Wir müssen altes OS betreiben, damit darauf MediaWiki laufen kann. |
|||
** Lösung A) JVerein |
|||
** Lösung B) byro |
|||
** Doku zum aktuellen Forschritt: https://hedgedoc.dezentrale.space/Opennet_Vereinsverwaltung# |
|||
== iptabes & nftables == |
|||
ag71xx_phy.c - Was machen Funktionen? |
|||
- ag71xx_phy_link_adjust() |
|||
ruft auch ag71xx_link_adjust() auf |
|||
- ag71xx_phy_connect() |
|||
iptables: |
|||
* Was bedeutet "tables + chains" bei iptables: https://www.digitalocean.com/community/tutorials/a-deep-dive-into-iptables-and-netfilter-architecture#relationships-between-chains-and-tables |
|||
** table: filter table + NAT table + Mangle TableRaw table + Security table |
|||
** chain: mit chain ist bei iptables der Hook gemeint (PREROUTING, FORWARD, ...) |
|||
* packet flow iptables https://en.wikipedia.org/wiki/Netfilter#/media/File:Netfilter-packet-flow.svg |
|||
Implementierung: |
|||
in ag71xx_phy.c (detecktiere von UP zu DOWN) |
|||
+ if (status_change) { |
|||
+ pr_info("Debug: phy state change. ag->link=%d \n", ag->link); |
|||
+ pr_info("Debug: phy state change. phydev->link=%d \n ", phydev->link); |
|||
if () |
|||
ag71xx_link_adjust(ag); |
|||
} |
|||
ntables: |
|||
------- |
|||
* table: ist abstrakte Sammlung von chains |
|||
und in ag71xx_main.c |
|||
* chain: Liste von Regeln (type: filter, route, nat) welche einem netfilter hook zugeordnet wird |
|||
+#include <linux/of_gpio.h> |
|||
* netfilter hook: schöne Grafik https://wiki.nftables.org/wiki-nftables/index.php/Netfilter_hooks |
|||
+#include <linux/gpio.h> |
|||
* priority: bspw. mangle,dstnat,filter,srcnat,... siehe https://wiki.nftables.org/wiki-nftables/index.php/Netfilter_hooks#Priority_within_hook |
|||
+#define GPIO_SET 0x1804000C |
|||
+#define GPIO_CLEAR 0x18040010 |
|||
void ag71xx_link_adjust() |
|||
... |
|||
if (!ag->link) { |
|||
iptables-legacy + iptables-nft + nft: |
|||
ag71xx_hw_stop(ag); |
|||
* https://developers.redhat.com/blog/2020/08/18/iptables-the-two-variants-and-their-relationship-with-nftables# |
|||
Test via ping: https://robert.penz.name/654/howto-to-quick-test-a-dscp-based-qos-system/ |
|||
netif_carrier_off(ag->dev); |
|||
== TOD + DSCP == |
|||
-+if (netif_msg_link(ag)) { |
|||
Zuordnung: https://www.tucny.com/Home/dscp-tos |
|||
pr_info("%s: link down\n", ag->dev->name); |
|||
DSCP im IP header: https://en.wikipedia.org/wiki/Internet_Protocol_version_4#Header |
|||
== Notizen zu Opennet Firmwares == |
|||
* Übersicht Freifunk Firmwares: https://wiki.freifunk.net/Freifunk-Firmware |
|||
+pr_info("AR803x PHY hangs? Reset it now! Interface maybe down but should not be in defect state ...\n"); |
|||
* Berlin (https://github.com/freifunk-berlin/firmware-packages + https://github.com/freifunk-berlin/firmware/ ) nutzt ähnlich wie wir OpenWRT und baut eigene Firmware daraus. |
|||
* Funkfeuer |
|||
** nutzt anscheinend viel den ER-X Router (https://wiki.funkfeuer.at/wiki/Hardware/EdgeRouter_X-SFP). Interessanterweise bieten sie hier einmal das Installieren von einzelnen Paketen (bspw. olsrd2) auf der Original-Firmware an und alternativ OpenWRT. |
|||
** Nanostation M5: https://wiki.funkfeuer.at/wiki/Firmware/airOS - "... somit wird die Verwendung eines Routers auf dem OLSRd läuft (z.B. EdgeRouter) empfohlen. " |
|||
* FF Franken: hat ein modifiziertes Gluon mit Babel: https://wiki.freifunk-franken.de/w/Layer3Firmware . Hier werden viele Tools genutzt, welche auch unsere Probleme lösen könnten: https://l3-freifunk.readthedocs.io/de/latest/server.html (git der Doku ist https://github.com/freifunk-l3r/readthedocs ) |
|||
* Tutorial Gluon Firmware bauen: https://network.cdresel.de/gluon-node-fuer-freifunk-franken/ |
|||
* Idee des PicoPeering: https://wiki.freifunk-franken.de/w/Portal:Layer3Peering |
|||
* OpenWifiMap (https://github.com/freifunk/openwifimap-api) könnten wir auch aufsetzen. Wir können unsere Daten aus der API & co in OpenWifiMap importieren. |
|||
* FF Frankfurt scheint auch Babel Firmware zu nutzen: https://wiki.ffm.freifunk.net/infrastruktur:gateway:babel-gateway und https://wiki.ffm.freifunk.net/firmware:babel |
|||
** Kontakt FF Frankfurt am Main: https://ffm.freifunk.net/kontakt/ (entwickeln L3 Gluon) |
|||
** ich finde das git dazu nicht |
|||
* wenn man hinter 5GHz Bridge einen L3 Routing Gerät mit Tunnel betreiben will, dann ist der ER-X eine gute Wahl: https://wiki.freifunk-franken.de/w/Geschwindigkeiten#Leistungstests |
|||
* prefixd: https://code.bremen.freifunk.net/ffhb/firmware/gluon/-/blob/bdb540d3ee177819995da48b059205a51232acb8/package/prefixd/files/usr/sbin/prefixd |
|||
+gpiod_set_value(GPIO_CLEAR, (1<<0)); |
|||
Beispiel für Inbetriebnahme von Layer3 Firmware: |
|||
+msleep(2); |
|||
* Installation/Download Firmware siehe https://wiki.freifunk-franken.de/w/Layer3Firmware#.2Fetc.2Fconfig.2Fgateway |
|||
* Server aufsetzen, siehe https://wiki.freifunk-franken.de/w/Freifunk-Gateway_aufsetzen#Dienste |
|||
Fragen: |
|||
+gpiod_set_value(GPIO_SET, (1<<0)); |
|||
* Wo ist Quellecode für L3FirmwareFranken? Basiert diese auf Gluon? |
|||
* Ist Firmware von |
|||
* Wird dies langfristig in Gluon eingehen? |
|||
Todo: |
|||
+msleep(2); |
|||
* mit christiand@jabber.community über Layer3 Firmware jabbern |
|||
* Adrian Schmutzler deswegen auch angesprochen |
|||
* gluon Firmware selbst bauen. Kann man da Babel "einfach" aktivieren? |
|||
==Test ansible roles in vagrant environment== |
|||
} |
|||
* [[Benutzer:Leo/Test ansible roles in vagrant environment]] |
|||
==IPSec im Opennet== |
|||
return; |
|||
folgende Installations-Anleitung zeigt, was konfiguriert werden muss, damit IPSec (als Alternative zu OpenVPN) im Opennet genutzt werden kann: |
|||
* [[Benutzer:Leo/IPSec Test-Konfigurationsanleitung]] |
|||
} |
|||
Was muss implementiert werden? (allgemein) |
|||
https://dev.openwrt.org/ticket/19085#comment:14 |
|||
Checken wie folgendes realisiert werden kann (Interface reset) |
|||
#define GPIO_SET 0x1804000C |
|||
#define GPIO_CLEAR 0x18040010 |
|||
athr_reg_wr(GPIO_CLEAR,(1<<0)); |
|||
mdelay(2); |
|||
athr_reg_wr(GPIO_SET,(1<<0)); |
|||
mdelay(2); |
|||
---------- |
|||
von http://permalink.gmane.org/gmane.linux.network/318765 |
|||
+#include <linux/of_gpio.h> |
|||
+#include <linux/gpio/consumer.h> |
|||
+static void at803x_adjust_state(struct phy_device *phydev) |
|||
+{ |
|||
+ struct at803x_priv *priv = phydev->priv; |
|||
+ if (phydev->drv->phy_id == ATH8030_PHY_ID) { |
|||
+ if (phydev->state == PHY_NOLINK) { |
|||
+ if (priv->gpiod_reset && !priv->phy_reset) { |
|||
+ struct at803x_context context; |
|||
+ |
|||
+ at803x_context_save(phydev, &context); |
|||
+ |
|||
+ gpiod_set_value(priv->gpiod_reset, 0); |
|||
+ msleep(1); |
|||
+ gpiod_set_value(priv->gpiod_reset, 1); |
|||
+ msleep(1); |
|||
+ |
|||
+ at803x_context_restore(phydev, &context); |
|||
+ |
|||
+ dev_dbg(&phydev->dev, "%s(): phy was reset\n", |
|||
+ __func__); |
|||
+ priv->phy_reset = true; |
|||
+ } |
|||
+ } else { |
|||
+ priv->phy_reset = false; |
|||
+ } |
|||
+ } |
|||
=============== |
|||
enum phy_state { |
|||
PHY_DOWN=0, |
|||
PHY_STARTING, |
|||
PHY_READY, |
|||
PHY_PENDING, |
|||
PHY_UP, |
|||
PHY_AN, |
|||
PHY_RUNNING, |
|||
PHY_NOLINK, |
|||
PHY_FORCING, |
|||
PHY_CHANGELINK, |
|||
PHY_HALTED, |
|||
PHY_RESUMING |
|||
}; |
|||
=========================== |
|||
Log nach Anwendung des obigen Patches, zeigt leider zwei Dinge: |
|||
1. Schwenk von UP zu DOWN wurde nicht erkannt. |
|||
2. Einfach so GPIO zu schreiben, bringt Kernelfehler (naja, war fast zu erwarten. Aber es war einen Versuch wert) |
|||
Log nach dem normalen Booten: |
|||
root@AP-2-30:~# dmesg | grep -i phy |
|||
[ 0.000000] Determined physical RAM map: |
|||
[ 0.600000] libphy: ag71xx_mdio: probed |
|||
[ 1.150000] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:01 [uid=004dd023, driver=Generic PHY] |
|||
[ 6.170000] Debug: phy state change. ag->link=1 (Opennet 4) |
|||
[ 6.170000] Debug: phy state change. phydev->link=1 (Opennet 4) |
|||
[ 21.730000] AR803x PHY hangs? Reset it now! Interface maybe down but should not be in defect state ...(Opennet Hack4) |
|||
[ 21.730000] [<800b4bfc>] ag71xx_phy_stop+0x78/0x9c |
|||
[ 21.990000] [<800b4bfc>] ag71xx_phy_stop+0x78/0x9c |
|||
[ 25.570000] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' |
|||
[ 25.650000] ieee80211 phy0: Atheros AR9340 Rev:0 mem=0xb8100000, irq=47 |
|||
[ 43.430000] Debug: phy state change. ag->link=1 (Opennet 4) |
|||
[ 43.430000] Debug: phy state change. phydev->link=1 (Opennet 4) |
|||
[69453.360000] Debug: phy state change. ag->link=1 (Opennet 4) |
|||
[69453.360000] Debug: phy state change. phydev->link=1 (Opennet 4) |
|||
[69453.360000] |
|||
[69453.360000] eth0: link up (10Mbps/Half duplex) |
|||
[69455.370000] Debug: phy state change. ag->link=0 (Opennet 4) |
|||
[69455.370000] Debug: phy state change. phydev->link=0 (Opennet 4) |
|||
[69455.370000] |
|||
[69455.370000] eth0: link down |
|||
[69455.370000] AR803x PHY hangs? Reset it now! Interface maybe down but should not be in defect state ...(Opennet Hack4) |
|||
[69455.370000] ------------[ cut here ]------------ |
|||
[69455.370000] WARNING: at drivers/gpio/gpiolib.c:126 gpio_to_desc+0x2c/0x54() |
|||
[69455.370000] invalid GPIO 402915344 |
|||
[69455.370000] Modules linked in: ath9k ath9k_common pppoe ppp_async iptable_nat ath9k_hw ath pptp pppox ppp_mppe ppp_generic nf_nat_ipv4 nf_conntrack_ipv4 mac80211 ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT slhc nf_nat_irc nf_nat_ftp nf_nat nf_defrag_ipv4 nf_conntrack_irc nf_conntrack_ftp iptable_raw iptable_mangle iptable_filter ipt_REJECT ip_tables crc_ccitt compat ip6t_REJECT ip6table_raw ip6table_mangle ip6table_filter ip6_tables x_tables nf_conntrack_ipv6 nf_conntrack nf_defrag_ipv6 ip_gre gre ip_tunnel tun ipv6 sha1_generic ecb arc4 crypto_blkcipher crypto_hash |
|||
[69455.370000] CPU: 0 PID: 232 Comm: kworker/0:2 Tainted: G W 3.10.49 #4 |
|||
[69455.370000] Workqueue: events phy_state_machine |
|||
[69455.370000] Stack : 839da380 802d4c44 80148110 0000007e 802e4278 83926c00 83926d74 8030f8b0 |
|||
[69455.370000] 00000008 8027b720 000000e8 801e38ac 83904a08 83926c00 802e2250 83aa7ce4 |
|||
[69455.370000] 83aa7ce4 8027b720 00000003 801e33d0 802e4278 00000000 00000005 802144b0 |
|||
[69455.370000] 00000000 00000000 00000000 00000000 00000000 00000000 6576656e 74730000 |
|||
[69455.370000] 00000000 00000000 00000000 00000000 83816a00 81082300 801da094 83aa7c90 |
|||
[69455.370000] ... |
|||
[69455.370000] Call Trace: |
|||
[69455.370000] [<8022441c>] show_stack+0x48/0x70 |
|||
[69455.370000] [<8028aca4>] warn_slowpath_common+0x78/0xa8 |
|||
[69455.370000] [<8028ad00>] warn_slowpath_fmt+0x2c/0x38 |
|||
[69455.370000] [<80148110>] gpio_to_desc+0x2c/0x54 |
|||
[69455.370000] [<8008fef8>] __gpio_set_value+0x1c/0xe0 |
|||
[69455.370000] [<800b3b84>] ag71xx_link_adjust+0x84/0x39c |
|||
[69455.370000] [<800b4b10>] ag71xx_phy_link_adjust+0xa0/0xc8 |
|||
[69455.370000] [<801da334>] phy_state_machine+0x2a0/0x484 |
|||
[69455.370000] [<801ebe5c>] process_one_work+0x228/0x364 |
|||
[69455.370000] [<8028c054>] worker_thread+0x234/0x388 |
|||
[69455.370000] [<8018c7a4>] kthread+0xb0/0xb8 |
|||
[69455.370000] [<80060878>] ret_from_kernel_thread+0x14/0x1c |
|||
[69455.370000] |
|||
[69455.370000] ---[ end trace 9841a412d51fe0b2 ]--- |
|||
[69455.590000] ------------[ cut here ]------------ |
|||
[69455.590000] WARNING: at drivers/gpio/gpiolib.c:126 gpio_to_desc+0x2c/0x54() |
|||
[69455.600000] invalid GPIO 402915340 |
|||
[69455.600000] Modules linked in: ath9k ath9k_common pppoe ppp_async iptable_nat ath9k_hw ath pptp pppox ppp_mppe ppp_generic nf_nat_ipv4 nf_conntrack_ipv4 mac80211 ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT slhc nf_nat_irc nf_nat_ftp nf_nat nf_defrag_ipv4 nf_conntrack_irc nf_conntrack_ftp iptable_raw iptable_mangle iptable_filter ipt_REJECT ip_tables crc_ccitt compat ip6t_REJECT ip6table_raw ip6table_mangle ip6table_filter ip6_tables x_tables nf_conntrack_ipv6 nf_conntrack nf_defrag_ipv6 ip_gre gre ip_tunnel tun ipv6 sha1_generic ecb arc4 crypto_blkcipher crypto_hash |
|||
[69455.660000] CPU: 0 PID: 232 Comm: kworker/0:2 Tainted: G W 3.10.49 #4 |
|||
[69455.670000] Workqueue: events phy_state_machine/home/leo/trunk/5-package-repo-change/on_firmware/openwrt/build_dir/targ~ibc-0.9.33.2/linux-ar71xx_generic/linux-3.18.11/arch/mips/ath79/common.c |
|||
[69455.680000] Stack : 839da380 802d4c44 80148110 0000007e 802e4278 83926c00 83926d74 8030f8b0 |
|||
[69455.680000] 00000008 8027b720 000000e8 801e38ac 83904a08 83926c00 802e2250 83aa7ce4 |
|||
[69455.680000] 83aa7ce4 8027b720 00000003 801e33d0 802e4278 00000000 00000005 802144b0 |
|||
[69455.680000] 00000000 00000000 00000000 00000000 00000000 00000000 6576656e 74730000 |
|||
[69455.680000] 00000000 00000000 00000000 00000000 83816a00 81082300 801da094 83aa7c90 |
|||
[69455.680000] ... |
|||
[69455.710000] Call Trace: |
|||
[69455.720000] [<8022441c>] show_stack+0x48/0x70 |
|||
[69455.720000] [<8028aca4>] warn_slowpath_common+0x78/0xa8 |
|||
[69455.730000] [<8028ad00>] warn_slowpath_fmt+0x2c/0x38 |
|||
[69455.730000] [<80148110>] gpio_to_desc+0x2c/0x54 |
|||
[69455.730000] [<8008fef8>] __gpio_set_value+0x1c/0xe0 |
|||
[69455.740000] [<800b3b98>] ag71xx_link_adjust+0x98/0x39c |
|||
[69455.750000] [<800b4b10>] ag71xx_phy_link_adjust+0xa0/0xc8 |
|||
[69455.750000] [<801da334>] phy_state_machine+0x2a0/0x484 |
|||
[69455.760000] [<801ebe5c>] process_one_work+0x228/0x364 |
|||
[69455.760000] [<8028c054>] worker_thread+0x234/0x388 |
|||
[69455.770000] [<8018c7a4>] kthread+0xb0/0xb8 |
|||
[69455.770000] [<80060878>] ret_from_kernel_thread+0x14/0x1c |
|||
[69455.780000] |
|||
[69455.780000] ---[ end trace 9841a412d51fe0b3 ]--- |
|||
[69455.790000] br-lan: port 1(eth0) entered disabled state |
|||
[71876.510000] br-lan: port 1(eth0) entered disabled state |
|||
[71885.020000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready |
|||
============================= |
|||
Versuch: Reset bei jedem up/down machen oder zumindest bei jeden Reset des Interfaces. |
|||
Fragen: In welche Situationen wird interface Reset gemacht. Das durch Debug Meldungen in Funktionen ermitteln. |
|||
Frage: In welche Funktion den Reset machen? |
|||
- evtl. in /home/leo/trunk/5-package-repo-change/on_firmware/openwrt/build_dir/targ~ibc-0.9.33.2/linux-ar71xx_generic/linux-3.18.11/arch/mips/ath79/common.c |
|||
void ath79_device_reset_clear(u32 mask) |
|||
diese Funktion wird in der ag71xx...main.c - ag71xx_hw_init() aufgerufen. |
|||
In der ag71xx_hw_init() gibt es auch ein Reset-Bit (reset_mask). |
|||
gpio = devm_gpiod_get_index(dev, name, index); |
|||
res = gpiod_direction_output(gpio, !value); |
|||
devm_gpiod_put(dev, gpio); |
|||
gpiod_set_value_cansleep(gpio, value); |
|||
einige Beschreibungen zu GPIO : linux-ar71xx_generic/linux-3.18.11/Documentation/gpio/consumer.txt |
|||
=============================== |
|||
ag71xx_phy.c |
|||
- ag71xx_phy_link_adjust() |
|||
-- vor phydev->link |
|||
int id1 = phy_read( phydev, 2 ) |
|||
int id2 = phy_read( phydev, 3 ) |
|||
printk ("hack id=%04x %04x", id1, id2); /* sollte "004d d023" sein, bis der bug auftritt */ |
|||
====================== |
|||
ag71xx_phy.c |
|||
- ag71xx_phy_link_adjust() |
|||
spin_lock_irqsave(&ag->lock, flags); |
|||
int id1 = phy_read( phydev, 2 ); |
|||
int id2 = phy_read( phydev, 3 ); |
|||
printk("Opennet Hack09: id=%04x %04x",id1, id2); /* sollte "004d d023" sein, bis der bug auftritt */ |
|||
if (phydev->link) { |
|||
- ag71xx_main.c |
|||
<------><------>pr_info("%s: link up (%sMbps/%s duplex) OpennetHack09\n", |
|||
======================== |
|||
leo@minato:~/trunk/eth0-bug-trunk/on_firmware/openwrt/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.18.14/drivers/net/ethernet/atheros/ag71xx$ cp ag71xx_phy.c.patched ~ |
|||
</pre> |
|||
Aktuelle Version vom 5. Oktober 2026, 18:01 Uhr
Mailinglisten Migration
Schritte pro Mailingliste:
- emailadressen + name von alter Liste ermitteln, e.g. /usr/lib/mailman/bin/list_members --fullnames vorstand
- diese importieren in neuer Liste
- mapping der alten Adresse auf die neue eintragen in "/etc/postfix/virtual", bspw. "admin@list.opennet-initiative.de admin@lists.opennet-initiative.de" und dann DB aktualisiere via "postmap /etc/postfix/tables/virtual"
- alte Emailadresse als "acceptable alias" eintragen, z.B in https://lists.opennet-initiative.de/postorius/lists/admin.lists.opennet-initiative.de/settings/message_acceptance
- Archiv importieren: zuerst screens session öffnen dann "mailman-web hyperkitty_import -l admin@lists.opennet-initiative.de /tmp/admin.mbox"
Mediawiki Migration
Struktur:
- wiki.on-i.de - zeigt IMMER auf eine Startseite/Übersichtsseite
- docs.on-i.de - ist neues Wiki
- wiki-archive.on-i.de - offline Kopie
TODO:
- da derzeit keine DNS Änderung möglich, müssen wir workarounds bauen:
* wiki.on-i.de * Bannerseite auf jun. Info: wiki-intern mit Passwort; docs sonst * teste www.opennet... wo geht das hin?
- gallery testweise deaktivieren in allen configs
- den Migrationsprozess dokumentieren auf meiner Seite im Wiki für die Zukunft
- später, wenn DNS wieder geht:
* wiki-archive: * DNS: wiki-archive erstellen als CNAME von docs * DNS: wiki ändern als CNAME von docs * offline Kopie mit Banner hochladen * wiki-archive in ansible erstellen
- in ansible alles anpassen
- dann das Thema zur Seite legen
Mögliche Projekte
Wir haben viele Aufgaben bei Opennet, welche mehr Aufmerksamkeit benötigen:
- Firmware Update von 21.02 nach 24.0x/25.0x
- MediaWiki Update weil aktuelle Version völlig veraltet ist
- Gallery Update weil völlig veraltet
- Wireguard einführen
- Mailserveraktualisierung - ***ongoing***
- MoinMoin Wiki ablösen durch DokuWiki. MoinMoin wird nicht weiter gepflegt. Es basiert noch auf Python2. Aber Python2 ist auch deprecated. Auf aktuellen Debian Systemen gibt es ein Python2 mehr.
- Problem: Wir müssen altes OS betreiben, damit darauf MediaWiki laufen kann.
- Lösung A) JVerein
- Lösung B) byro
- Doku zum aktuellen Forschritt: https://hedgedoc.dezentrale.space/Opennet_Vereinsverwaltung#
iptabes & nftables
iptables:
- Was bedeutet "tables + chains" bei iptables: https://www.digitalocean.com/community/tutorials/a-deep-dive-into-iptables-and-netfilter-architecture#relationships-between-chains-and-tables
- table: filter table + NAT table + Mangle TableRaw table + Security table
- chain: mit chain ist bei iptables der Hook gemeint (PREROUTING, FORWARD, ...)
- packet flow iptables https://en.wikipedia.org/wiki/Netfilter#/media/File:Netfilter-packet-flow.svg
ntables:
- table: ist abstrakte Sammlung von chains
- chain: Liste von Regeln (type: filter, route, nat) welche einem netfilter hook zugeordnet wird
- netfilter hook: schöne Grafik https://wiki.nftables.org/wiki-nftables/index.php/Netfilter_hooks
- priority: bspw. mangle,dstnat,filter,srcnat,... siehe https://wiki.nftables.org/wiki-nftables/index.php/Netfilter_hooks#Priority_within_hook
iptables-legacy + iptables-nft + nft:
Test via ping: https://robert.penz.name/654/howto-to-quick-test-a-dscp-based-qos-system/
TOD + DSCP
Zuordnung: https://www.tucny.com/Home/dscp-tos DSCP im IP header: https://en.wikipedia.org/wiki/Internet_Protocol_version_4#Header
Notizen zu Opennet Firmwares
- Übersicht Freifunk Firmwares: https://wiki.freifunk.net/Freifunk-Firmware
- Berlin (https://github.com/freifunk-berlin/firmware-packages + https://github.com/freifunk-berlin/firmware/ ) nutzt ähnlich wie wir OpenWRT und baut eigene Firmware daraus.
- Funkfeuer
- nutzt anscheinend viel den ER-X Router (https://wiki.funkfeuer.at/wiki/Hardware/EdgeRouter_X-SFP). Interessanterweise bieten sie hier einmal das Installieren von einzelnen Paketen (bspw. olsrd2) auf der Original-Firmware an und alternativ OpenWRT.
- Nanostation M5: https://wiki.funkfeuer.at/wiki/Firmware/airOS - "... somit wird die Verwendung eines Routers auf dem OLSRd läuft (z.B. EdgeRouter) empfohlen. "
- FF Franken: hat ein modifiziertes Gluon mit Babel: https://wiki.freifunk-franken.de/w/Layer3Firmware . Hier werden viele Tools genutzt, welche auch unsere Probleme lösen könnten: https://l3-freifunk.readthedocs.io/de/latest/server.html (git der Doku ist https://github.com/freifunk-l3r/readthedocs )
- Tutorial Gluon Firmware bauen: https://network.cdresel.de/gluon-node-fuer-freifunk-franken/
- Idee des PicoPeering: https://wiki.freifunk-franken.de/w/Portal:Layer3Peering
- OpenWifiMap (https://github.com/freifunk/openwifimap-api) könnten wir auch aufsetzen. Wir können unsere Daten aus der API & co in OpenWifiMap importieren.
- FF Frankfurt scheint auch Babel Firmware zu nutzen: https://wiki.ffm.freifunk.net/infrastruktur:gateway:babel-gateway und https://wiki.ffm.freifunk.net/firmware:babel
- Kontakt FF Frankfurt am Main: https://ffm.freifunk.net/kontakt/ (entwickeln L3 Gluon)
- ich finde das git dazu nicht
- wenn man hinter 5GHz Bridge einen L3 Routing Gerät mit Tunnel betreiben will, dann ist der ER-X eine gute Wahl: https://wiki.freifunk-franken.de/w/Geschwindigkeiten#Leistungstests
- prefixd: https://code.bremen.freifunk.net/ffhb/firmware/gluon/-/blob/bdb540d3ee177819995da48b059205a51232acb8/package/prefixd/files/usr/sbin/prefixd
Beispiel für Inbetriebnahme von Layer3 Firmware:
- Installation/Download Firmware siehe https://wiki.freifunk-franken.de/w/Layer3Firmware#.2Fetc.2Fconfig.2Fgateway
- Server aufsetzen, siehe https://wiki.freifunk-franken.de/w/Freifunk-Gateway_aufsetzen#Dienste
Fragen:
- Wo ist Quellecode für L3FirmwareFranken? Basiert diese auf Gluon?
- Ist Firmware von
- Wird dies langfristig in Gluon eingehen?
Todo:
- mit christiand@jabber.community über Layer3 Firmware jabbern
- Adrian Schmutzler deswegen auch angesprochen
- gluon Firmware selbst bauen. Kann man da Babel "einfach" aktivieren?
Test ansible roles in vagrant environment
IPSec im Opennet
folgende Installations-Anleitung zeigt, was konfiguriert werden muss, damit IPSec (als Alternative zu OpenVPN) im Opennet genutzt werden kann: