Ffmap-backend und meshviewer

Bei mir läuft das neue Backend nicht als unprivilegiert Benutzer:

# su - ffmap
$ /opt/ffmap-backend/backend.py -d /opt/ffmap-backend/data/
Can't connect to unix socket: Permission denied
Traceback (most recent call last):
  File "/opt/ffmap-backend/backend.py", line 154, in <module>
    main(options)
  File "/opt/ffmap-backend/backend.py", line 69, in main
    nodes.import_nodeinfo(nodedb['nodes'], alfred.nodeinfo(),
  File "/opt/ffmap-backend/lib/alfred.py", line 27, in nodeinfo
    return self._fetch(158)
  File "/opt/ffmap-backend/lib/alfred.py", line 23, in _fetch
    output = subprocess.check_output(cmd)
  File "/usr/lib/python3.2/subprocess.py", line 522, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['alfred-json', '-z', '-f', 'json', '-r', '158']' returned non-zero exit status 1

Weil:

$ alfred-json -z -f json -r 168
Can't connect to unix socket: Permission denied

//EDIT: Mit strace konnte ich rausfinden, dass /var/run/alfred.sock nicht geöffnet werden kann. Bringts was, die Rechte davon zu ändern, oder wird die beim nächsten Neustart von Alfred eh wieder neu angelegt?

connect(3, {sa_family=AF_FILE, path="/var/run/alfred.sock"}, 110) = -1 EACCES (Permission denied)
dup(2)                                  = 4
fcntl(4, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
brk(0)                                  = 0x1891000
brk(0x18b2000)                          = 0x18b2000
fstat(4, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f1780e7d000
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
write(4, "Can't connect to unix socket: Pe"..., 48Can't connect to unix socket: Permission denied
) = 48
close(4)                                = 0
munmap(0x7f1780e7d000, 4096)            = 0
exit_group(1)                           = ?
2 „Gefällt mir“

Pack den ffmap user doch mal in die alfred Gruppe, der gehört der Socket doch auch.

Probleme dürfte es derzeit nur mit batctl gwl geben, da dass Zugang zum debugfs benötigt.

Ich hab’s bei mir nun mit Hilfe von sudo laufen. Brauchte aber noch ein paar Teaks hier und da.
Wrapper für alfred-json, batadv-vis und batctl in $home/bin/
Passende sudoers
Angepasste PATH-Variable im CronJob

//EDIT: Oder auch doch nicht. Es wird keine nodes.json erstellt…

Ich aktualisiere gerade ffmap-backend dahingehend, dass das leichter wird. Ich melde mich, wenn ich denke, dass das ohne großen Frickel testbar ist.

2 „Gefällt mir“

Der aktuelle HEAD sollte das nun einfacher hinbekommen. Zusätzlich die Anleitung, was eingerichtet werden muss:

Bei Problemen bitte zurückmelden.

unter map.hamburg.freifunk.net wird aktuell die neue Knotenkarte in Hamburg getestet…

Es klemmt noch an ein paar kleineren Ecken, das Meiste funktioniert aber schon sehr gut.

765 Knoten


Und hier noch ein paar:

7 Knoten

27 Knoten


45 Knoten



Über 1300 Knoten! WOW! :smiley:

1 „Gefällt mir“

Ich empfand es immer als sehr nützlich direkt die Clients an den Nodes im Graphen sehen zu können. Wäre es nicht eine gute Lösung diese als Zahl in dem Punkt darzustellen?

Im Moment werden die Punkte alle als ein Pfad gezeichnet. Wenn ich die noch individuell zeichnen würde, wird das wieder langsam im Firefox. Die Labels sind ja schon hart am Limit von dem was Firefox verträgt.

Ich hab hier mit Firefox keinerlei Probleme. Da dürfte ruhig noch was dazu kommen.
Ich fände Clients an den Nodes, in welcher Art auch immer, sehr hilfreich.

4 „Gefällt mir“

Hi hi,

kann mir mal jemand sagen, wo die nodes.json und nodelist.json im frontend liegen müssen?

Viele Grüße

Patrik

Die müssen garnicht im Frontend liegen. Der Pfad dazu kann in der lib/config.js konfiguriert werden (als Pfad zum Verzeichnis in dem nodes.json und graph.json liegen. nodelist.json ist für freifunk-karte.de gedacht). Das darf sogar ein anderer Webserver sein, sofern dort CORS aktiviert ist.

OK vielen Dank, sorry war etwas blind.

Viele Grüße

Patrik

Ich habe nochmal was. Folgenden Fehler bekomme ich, wenn ich grunt ausführt

Running „sass:dist“ (sass) task
Syntax error: Invalid CSS after "…nd (max-width: ": expected expression (e.g. 1px, bold), was „$minscreenwidth) {“
on line 365 of scss/main.scss
Use --trace for backtrace.

woran könnte das denn liegen?

Das tritt mit älteren Sass-Versionen auf. Sass >= 3.4 sollte funktionieren.

Bin gerade auf das hier gestoßen:

Variables and interpolation in @media only work in sass 3.2 alpha releases.
Redirecting to Google Groups

Ok vielen Dank für den Hinweis. Ich werde mal nachsehen, welche Version ich habe und das ggf. ändern.

Mhh unsere Gateways werden nicht als soche angezeigt. Wenn ich mir oben verlinkte Karten ansehe, haben wohl noch andere das Problem. Wie muss man die kennzeichnen, damit die als Gateways gezählt werden?

Hi!

Einmal in dem Aufruf in der mkmap.sh müssen die FastD MAC korrekt eingetragen werden. Und dann noch die aliases.json korrekt erstellen. Unsere sieht so aus:

[
  {
    "node_id": "YaCy",
    "hostname": "YaCy",
    "location": {
      "longitude": 10.572823,
      "latitude": 52.978147
    },
    "network": {
      "mesh_interfaces": [
        "00:08:54:55:6f:11"
      ]
    }
  },
  {
    "node_id": "uegw1",
    "hostname": "uegw1",
    "network": {
      "mesh_interfaces": [
        "de:ad:c0:1a:32:08"
      ]
     }
    },
   {
    "node_id": "ffuegw2",
    "hostname": "ffuegw2",
    "network": {
      "mesh_interfaces": [
        "de:ad:c0:1a:32:02"
      ]
     }
    },
   {
    "node_id": "ffuegw3",
    "hostname": "ffuegw3",
    "network": {
      "mesh_interfaces": [
        "de:ad:c0:1a:32:03"
      ]
     }
    },
   {
    "node_id": "Channel80-Stream",
    "hostname": "Channel80-Stream",
    "network": {
      "mesh_interfaces": [
        "de:ad:be:ef:80:80"
      ]
    }
  }
]

Dann erscheinen die auch korrekt in der Map und im Graph.

Was für eine mkmap.sh? Das ist doch das alte Backend.
aliases.json habe ich erstellt.

Damit dürfte der Parameter --vpn beim Aufruf der backend.py gemeint sein - siehe #41

Als Knoten mit rotem Kringel sind sie im Graph, aber in der Übersicht steht „0 Gateways“.
Wenn ich mir die json anschaue, ist da auch nix entsprechend geflagged, das kann ich aber auch nicht über die aliases.json machen, weil die struktur aus der aliases.json nur der Teil unterhalb von „nodeinfo“:{} ist.