libremesh / lime-packages

LibreMesh packages configuring OpenWrt for wireless mesh networking
https://libremesh.org/
GNU Affero General Public License v3.0
277 stars 96 forks source link

readme: expanded instructions on ImageBuilder #1028

Closed ilario closed 1 year ago

ilario commented 1 year ago

In #1015, @aparcar created an excellent documentation about using the ImageBuilder for building LibreMesh on OpenWrt 22.03 (not yet supported!!). In https://github.com/libremesh/lime-packages/pull/1015#issuecomment-1540906636 I suggested a few edits, here I implemented those and many others.

ilario commented 1 year ago

Pls, this is just an expansion of @aparcar's #1015... Can anyone review? @spiccinini @G10h4ck @selankon

a-gave commented 1 year ago

I encountered a small issue with imagebuilder about batman-adv. I report it here in the meantime: If i build libremesh selecting lime-proto-batadv, batctl-tiny is selected instead of batctl-default.

In this situation, the batctl commands listed under 'debug tables' are not available [0], and instead return the help message. I noticed it by trying to run batctl n and batctl o.

Output of `batctl n` ``` root@falena:~# batctl n Error - no valid command or debug table/JSON specified: n Usage: batctl [options] command|debug table|debug json [parameters] options: -h print this help (or 'batctl -h' for the parameter help) -v print version commands: meshif aggregation|ag [0|1] display or modify aggregation setting meshif ap_isolation|ap [0|1] display or modify ap_isolation setting vlan ap_isolation|ap [0|1] display or modify ap_isolation setting for vlan device or id meshif vid ap_isolation|ap [0|1] display or modify ap_isolation setting for vlan device or id meshif bonding|b [0|1] display or modify bonding setting meshif bridge_loop_avoidance|bl [0|1] display or modify bridge_loop_avoidance setting meshif distributed_arp_table|dat [0|1] display or modify distributed_arp_table setting hardif elp_interval|et [interval] display or modify elp_interval setting meshif fragmentation|f [0|1] display or modify fragmentation setting meshif gw_mode|gw [mode] display or modify the gateway mode meshif hop_penalty|hp [penalty] display or modify hop_penalty setting hardif hop_penalty|hp [penalty] display or modify hop_penalty setting meshif interface|if [add|del iface(s)] display or modify the interface settings meshif isolation_mark|mark [mark] display or modify isolation_mark setting meshif loglevel|ll [level] display or modify the log level meshif multicast_fanout|mo [fanout] display or modify multicast_fanout setting meshif multicast_forceflood|mff [0|1] display or modify multicast_forceflood setting meshif network_coding|nc [0|1] display or modify network_coding setting meshif orig_interval|it [interval] display or modify orig_interval setting routing_algo|ra [mode] display or modify the routing algorithm hardif throughput_override|to [mbit] display or modify throughput_override setting debug tables: display the corresponding debug table JSON queries: display results of netlink query as JSON ```
ilario commented 1 year ago

Oooh, right! Maybe it never happened to me as I was selecting ubus-lime-batman-adv manually, but this package is not needed, so we should not assume that people select it.

I found an old comment pointing out that this problem was likely going to appear: https://github.com/libremesh/libremesh.github.io/issues/103#issuecomment-570812066

Do you think that we should include it by default (including +batctl as a dependency in the Makefile of lime-proto-batadv)? I mean, it is a debug tool, but a very useful one. Otherwise we can suggest it between the optional packages in the compilation guide of the website.

a-gave commented 1 year ago

I found an old comment pointing out that this problem was likely going to appear: https://github.com/libremesh/libremesh.github.io/issues/103#issuecomment-570812066

About this comment I would add that the batctl package is still splitted into tiny and default with openwrt 22.03.5, at least with ath79_generic. They are visible here for instance https://downloads.openwrt.org/releases/22.03.5/packages/mips_24kc/routing/

Do you think that we should include it by default (including +batctl as a dependency in the Makefile of lime-proto-batadv)?

As in the previous link from openwrt the difference in size is just 31KB. It seems to me that the devices work fine with batctl-tiny, but I think for those installing lime for the first, not finding the debug tables can be confusing. A solution could be to add batctl-default in the compilation guide of the site, and in the Makefile of suggested-packages https://github.com/libremesh/network-profiles/tree/master/libremesh/suggested-packages. Maybe creating another suggested-packages-small-flash-size-whatever without it, or clearly specifying the tiny version. I would prefere this solution, but only because it is reversible ..instead of adding it in the Makefile lime-proto-batadv, also if the v22.03.5 and so the current libremesh master branch are intended for device with at least 8MB of flash so 31KB should could not be a problem..

In both cases I think it should be defined as the full '+batctl-default' or '+batctl-tiny', instead of '+batctl' , but I haven't tested it! from https://openwrt.org/docs/guide-user/network/wifi/mesh/batman#installation

if batctl isn't available, install batctl-default.

ilario commented 1 year ago

Do you think that we should include it by default (including +batctl as a dependency in the Makefile of lime-proto-batadv)?

As in the previous link from openwrt the difference in size is just 31KB. It seems to me that the devices work fine with batctl-tiny, but I think for those installing lime for the first, not finding the debug tables can be confusing. A solution could be to add batctl-default in the compilation guide of the site, and in the Makefile of suggested-packages https://github.com/libremesh/network-profiles/tree/master/libremesh/suggested-packages. Maybe creating another suggested-packages-small-flash-size-whatever without it, or clearly specifying the tiny version. I would prefere this solution, but only because it is reversible ..instead of adding it in the Makefile lime-proto-batadv, also if the v22.03.5 and so the current libremesh master branch are intended for device with at least 8MB of flash so 31KB should could not be a problem..

I agree, let's add batctl-default this to the compilation guide (between the optional packages, where also lime-debug is) and to the "suggested-packages". Can you make a pull request on that?

For the mini version, it would be great also. Whatever we add as a network profile, could also be used for expanding this paragraph: https://github.com/libremesh/libremesh.github.io/blob/d2aa01410c7fb5d8728351edff081dd1a1d7b82a/development.txt#L132

In both cases I think it should be defined as the full '+batctl-default' or '+batctl-tiny', instead of '+batctl' , but I haven't tested it!

OK, better.