You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Check out the `target`, `subtarget` and `profile` of your router on [OpenWrt Table of Hardware](https://toh.openwrt.org).
84
105
106
+
Select then:
107
+
-`Target System` - default `Mediatek ARM`
108
+
-`Subtarget` - default `Filogic`
109
+
-`Target Profile` - default`OpenWrt One`
85
110
86
-
Check out the +target+ (e.g. +ATH79+), +subtarget+ (e.g. +generic+) and +profile+ (e.g. +tl-wdr3600-v1+) of your router on [OpenWrt table of hardware](https://openwrt.org/toh/start).
111
+
#### Packages selection
87
112
88
-
Select the _Target System_, _Subtarget_ and _Target Profile_ accordingly.
113
+
##### Default packages
114
+
**Deselect** conflicting Packages:
89
115
116
+
-`Base system` -> `< >``dnsmasq`
117
+
-`Network` -> `< >``odhcpd-ipv6only`
118
+
119
+
By default LibreMesh uses `dnsmasq-dhcpv6` instead of the OpenWrt's default `dnsmasq` and `odhcpd-ipv6only`.
**Select** (press space until when an asterisk appears, like `<*>`) LibreMesh packages:
107
146
108
-
::: tip NOTE
109
-
Network profiles are the specific configuration from the communities, and are stored in this collective
110
-
[repository](https://github.com/libremesh/network-profiles/), but they can also be kept locally, depending on how every community network manages itself. For more instructions on how to create a profile or how to use a local one, check out the [network profiles page](../guide/network-profiles).
* LibreMesh → lime-hwd-openwrt-wan (Respect openwrt wan interface as default)
118
-
* LibreMesh → lime-proto-anygw (LibreMesh anygw proto support)
119
-
* LibreMesh → lime-proto-babeld (LibreMesh babeld proto support)
120
-
* LibreMesh → lime-proto-batadv (LibreMesh batman-adv proto support)
121
-
* LibreMesh → shared-state
122
-
** shared-state-babeld_hosts (babeld-hosts module for shared-state)
123
-
** shared-state-bat_hosts (bat-hosts module for shared-state)
124
-
** shared-state-nodes_and_links (nodes_and_links module for shared-state)
125
-
* LibreMesh -> babeld-auto-gw-mode
172
+
If you planning to use encrypted 802.11s mesh, you need to make sure to have the `wpad-mesh-*`, not `wpad-basic-*` package, where `*` is `mbedtls`, `openssl` or `wolfssl`. OpenWrt since branch 23.05 by default uses `mbedtls`.
If after the compilation you don't see the compiled image in the `bin/targets/.../.../` folder, it is possible that your router has such a small flash memory that the aforementioed packages don't fit in it (it can happen also with routers having 8 MB of flash memory when selecting huge packages to be included). In this case, you can remove the `.config` generated packages list and repeat the packages selection without including `lime-app`. If the compiled image is still too large, try selecting only `lime-proto-anygw`, `lime-proto-batadv`and `lime-proto-babeld` or following [this guide](https://openwrt.org/docs/guide-user/additional-software/saving_space).
177
+
In order to have additional packages, the easiest way is to select them in menuconfig. More packages can be installed afterwards via `apk` or the older `opkg`, but some of these require a specific kernel configuration to be in place. This can be achieved following [these additional instructions dealing with kernel vermagic](../development/hacking/kernel_vermagic.md) Beware that this will increase noticeably the time and storage space required for the compilation.
129
178
:::
130
179
131
-
Some more packages are recommended but not mandatory for a working LibreMesh network. Consider avoiding to select the following packages _only_ if the created image is too large and does not fit in the router memory.
180
+
#### Save the configuration
181
+
Save the configuration and exit.
132
182
133
-
- LibreMesh -> check-date-http (Keep local date under NTP too far away skew)
134
-
- LibreMesh -> Offline Documentation -> lime-docs (LibreMesh full documentation)
135
-
- LibreMesh -> lime-debug (libremesh debug utils)
183
+
#### Additional files
136
184
137
-
Additionally and optionally, httpS for the web interface can be enabled selecting (beware that the web interace will be shown as *not trusted*):
185
+
At this stage there is the possibility to include custom files in the compiled firmware image. For this, you will have to create, inside the `openwrt/` directory, a `files/` directory containing the directory structure and files you want to add. For example, if you want to have a `/etc/config/lime-community` file you need to do the following:
138
186
139
-
- Utilities -> Encryption -> px5g-standalone
187
+
```sh
188
+
mkdir -p files/etc/config/
189
+
touch files/etc/config/lime-community
190
+
```
140
191
141
-
Finally, also the 802.11s mesh connections can be password protected, this will require a specific configuration and this package to be selected:
192
+
and then edit the newly created `lime-community` file including your custom content. If a file from a package has the same name and path as a file in this directory, it will be overwritten. This is a quick way to include a custom configuration file, without the need to create an online [network profile](../guide/network-profiles).
142
193
143
-
- Network -> WirelessAPD -> wpad-mesh-openssl
144
194
145
-
and this to be **de**-selected:
195
+
##### Network Profiles
196
+
If you local community has a profile in the [network-profiles repository](https://github.com/libremesh/network-profiles/), you can select it in:
In order to have additional packages, the easiest way is to select them in menuconfig. More packages can be installed afterwards via +opkg+, but some of these require a specific kernel configuration to be in place. This can be achieved following link:development-kernel_vermagic.html[these additional instructions dealing with kernel vermagic]. Beware that this will increase noticeably the time and storage space required for the compilation.
203
+
Network profiles are the specific configuration from the communities, and are stored in this collective
204
+
[repository](https://github.com/libremesh/network-profiles/), but they can also be kept locally, depending on how every community network manages itself. For more instructions on how to create a profile or how to use a local one, check out the [network profiles page](../guide/network-profiles).
151
205
:::
152
206
153
-
Save and exit.
154
207
155
-
At this stage there is the possibility to include custom files in the compiled firmware image. For this, you will have to create, inside the `openwrt/` directory, a `files/` directory containing the directory structure and files you want to add. For example, if you want to have a `/etc/config/lime-community` file you need to do the following:
and then edit the newly created `lime-community` file including your custom content. If a file from a package has the same name and path as a file in this directory, it will be overwritten. This is a quick way to include a custom configuration file, without the need to create an online [network profile](../guide/network-profiles).
217
+
#### configure
163
218
164
-
.Finally, compile the images
165
-
```sh
166
-
make -j$(nproc)
219
+
#### Target, subtarget and generic configs
220
+
221
+
```sh
222
+
cat <<EOF > .config
223
+
CONFIG_TARGET_${TARGET}=y
224
+
CONFIG_TARGET_${TARGET}_${SUBTARGET}=y
225
+
CONFIG_TARGET_ROOTFS_INITRAMFS=y
226
+
CONFIG_TARGET_MULTI_PROFILE=y
227
+
CONFIG_TARGET_PER_DEVICE_ROOTFS=y
228
+
# CONFIG_FEED_libremesh is not set
229
+
# CONFIG_FEED_profiles is not set
230
+
CONFIG_IMAGEOPT=y
231
+
CONFIG_VERSIONOPT=y
232
+
CONFIG_KERNEL_BUILD_USER=\"builder\"
233
+
CONFIG_KERNEL_BUILD_DOMAIN=\"buildhost\"
234
+
# CONFIG_VERSION_CODE_FILENAMES is not set
235
+
EOF
236
+
make defconfig
237
+
```
238
+
239
+
#### Kernel modules (optional)
240
+
Optional build all kernel modules to later expose them in an http server
241
+
Needed to install via the package manager packages that depend on non-defaults kernel modules.
242
+
```sh
243
+
cat <<EOF >> .config
244
+
CONFIG_DEVEL=y
245
+
CONFIG_ALL_KMODS=y
246
+
CONFIG_ALL_NONSHARED=y
247
+
EOF
248
+
make defconfig
167
249
```
168
250
169
-
If everything goes well you should find the produced binaries inside the +bin/+ directory.
Selects the router profile based on the compatible string:
172
268
173
-
Its possible to emulate a image compiled for x86_64 architecture. See [script](https://github.com/libremesh/lime-packages/tree/master/tools) qemu_dev_start.sh and qemu_dev_stop.sh scripts.
More information in [TESTING.md](https://github.com/libremesh/lime-packages/blob/master/TESTING.md)
280
+
Refers to OpenWrt [make tips](https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem#make_tips) for detailed options.
281
+
282
+
If everything goes well you should find the produced binaries inside the `bin/` directory.
181
283
284
+
::: tip NOTE
285
+
If after the compilation you don't see the compiled image in the `bin/targets/.../.../` folder, it is possible that your router has such a small flash memory that the aforementioed packages don't fit in it (it can happen also with routers having 8 MB of flash memory when selecting huge packages to be included). In this case, you can remove the `.config` generated packages list and repeat the packages selection without including `lime-app`. If the compiled image is still too large, try selecting only `lime-proto-anygw`, `lime-proto-batadv` and `lime-proto-babeld` or following [this guide](https://openwrt.org/docs/guide-user/additional-software/saving_space).
182
286
:::
287
+
288
+
Refers to the pages under **Development guide**[testing](/development/testing) and [virtualizing](/development/virtualizing)
0 commit comments