Skip to content

Commit c30697f

Browse files
committed
add upgrade page
1 parent cf3e934 commit c30697f

9 files changed

Lines changed: 101 additions & 73 deletions

File tree

docs/.vitepress/config.mts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export default defineConfig({
4949
search: {
5050
provider: 'local'
5151
},
52+
outline: 'deep',
5253

5354
nav: nav(),
5455

@@ -75,10 +76,11 @@ function nav(): DefaultTheme.NavItem[] {
7576
return [
7677
{ text: 'Guide', link: '/guide/packages-selection' },
7778
{ text: 'Reference', link: '/reference/configuration' },
78-
{ text: 'v2024.1',
79+
{ text: 'News',
7980
items: [
80-
{ text: 'v2020.4', link: '/news/2023-10-07' },
81-
{ text: 'News', link: '/news' },
81+
{ text: 'v2024.1', link: '/news/2023-10-07' },
82+
{ text: 'v2020.4', link: '/news/2025-05-04' },
83+
{ text: 'Latest News', link: '/news' },
8284
{ text: 'Changelog', link: 'changelog'},
8385
{ text: 'Issues', link: 'https://github.com/libremesh/lime-packages/issues'},
8486
]
@@ -117,7 +119,8 @@ function sidebarGuide(): DefaultTheme.SidebarItem[] {
117119
{ text: 'ImageBuilder', link: '/build/imagebuilder' },
118120
{ text: 'lime-sdk', link: '/build/lime-sdk' },
119121
{ text: 'Buildroot', link: '/build/buildroot'}
120-
]}
122+
]},
123+
{ text: 'Upgrade', link: '/guide/upgrade' },
121124
]
122125
},
123126
{ text: 'Configuration & Reference', link: '/reference/configuration'},
@@ -131,7 +134,7 @@ function sidebarGuide(): DefaultTheme.SidebarItem[] {
131134
link: '/development/hacking',
132135
collapsed: true,
133136
items: [
134-
{ text: 'Kernel Vermagic', link: '/development/kernel_vermagic' }
137+
{ text: 'Kernel Vermagic', link: '/development/hacking/kernel_vermagic' }
135138
] },
136139
{ text: 'Contributing to lime-packages', link: '/development/contributing' },
137140
]
@@ -143,7 +146,6 @@ function sidebarGuide(): DefaultTheme.SidebarItem[] {
143146
{ text: 'Communication', link: '/communication' },
144147
{ text: 'Contributors', link: '/contributors' },
145148
{ text: 'Meetings', link: '/meetings' },
146-
{ text: 'News', link: '/news' },
147149
]
148150
},
149151
{

docs/build/buildroot.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ Run all the above commands as normal user (do not use root).
2828

2929
::: code-group
3030

31-
``` sh-vue [{{ openwrt.oldstable_version }}]
32-
git clone -b v{{ openwrt.oldstable_version }} --single-branch https://github.com/openwrt/openwrt
31+
``` sh-vue [{{ openwrt.stable_version }}]
32+
git clone -b v{{ openwrt.stable_version }} --single-branch https://github.com/openwrt/openwrt
3333
cd openwrt
3434
```
3535

36-
``` sh-vue [{{ openwrt.stable_version }}]
37-
git clone -b v{{ openwrt.stable_version }} --single-branch https://github.com/openwrt/openwrt
36+
``` sh-vue [{{ openwrt.oldstable_version }}]
37+
git clone -b v{{ openwrt.oldstable_version }} --single-branch https://github.com/openwrt/openwrt
3838
cd openwrt
3939
```
4040

@@ -43,24 +43,24 @@ cd openwrt
4343
Copy the defalt OpenWrt repositories file, and add the LibreMesh repositories
4444

4545
::: tip
46-
Use `2024.1` to build the latest LibreMesh release (compatible with OpenWrt 23.05.X)
47-
Use `master` to build the latest LibreMesh code (compatible with OpenWrt 24.10.X or newer)
46+
Use `master` to build the latest LibreMesh code (compatible with openwrt-24.10 or newer)
47+
Use `2024.1` to build the latest LibreMesh release (compatible with openwrt-24.10 and openwrt-23.05)
4848
:::
4949

5050
::: code-group
5151

52-
``` sh [2024.1]
52+
``` sh [master]
5353
cp feeds.conf.default feeds.conf
5454
cat << EOF >> feeds.conf
55-
src-git libremesh https://github.com/libremesh/lime-packages.git;v2024.1
55+
src-git libremesh https://github.com/libremesh/lime-packages.git;master
5656
src-git profiles https://github.com/libremesh/network-profiles.git
5757
EOF
5858
```
5959

60-
``` sh [master]
60+
``` sh [2024.1]
6161
cp feeds.conf.default feeds.conf
6262
cat << EOF >> feeds.conf
63-
src-git libremesh https://github.com/libremesh/lime-packages.git;master
63+
src-git libremesh https://github.com/libremesh/lime-packages.git;v2024.1
6464
src-git profiles https://github.com/libremesh/network-profiles.git
6565
EOF
6666
```

docs/build/imagebuilder.md

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,9 @@ Refers to the OpenWrt wiki [Using the Image Builder](https://openwrt.org/docs/gu
6060

6161
::: code-group
6262

63-
64-
```sh-vue [{{ openwrt.oldstable_version }}]
63+
```sh-vue [{{ openwrt.stable_version }} (stable)]
6564
FILE_HOST="{{build.file_host}}"
66-
DOWNLOAD_PATH="{{download_path(openwrt.oldstable_version)}}"
65+
DOWNLOAD_PATH="{{download_path(openwrt.stable_version)}}"
6766
DOWNLOAD_FILE="{{build.download_file}}"
6867
6968
mkdir imagebuilder; cd imagebuilder
@@ -73,9 +72,9 @@ wget -nv "$FILE_HOST/$DOWNLOAD_PATH/$file_name"
7372
tar xf "$file_name" --strip=1 --no-same-owner -C .
7473
```
7574

76-
```sh-vue [{{ openwrt.stable_version }}]
75+
```sh-vue [{{ openwrt.oldstable_version }} (oldstable)]
7776
FILE_HOST="{{build.file_host}}"
78-
DOWNLOAD_PATH="{{download_path(openwrt.stable_version)}}"
77+
DOWNLOAD_PATH="{{download_path(openwrt.oldstable_version)}}"
7978
DOWNLOAD_FILE="{{build.download_file}}"
8079
8180
mkdir imagebuilder; cd imagebuilder
@@ -106,25 +105,24 @@ Start an ImageBuilder of your choice, for example {{ build.target }} if your dev
106105

107106
::: code-group
108107

109-
```sh-vue [{{ openwrt.oldstable_version }}]
108+
```sh-vue [{{ openwrt.stable_version }} (stable)]
110109
mkdir ./images/
111110
docker run -it \
112111
-e TARGET=$TARGET \
113112
-e ARCH=$ARCH \
114113
-v $(pwd)/config/:/builder/files/etc/config/ \
115114
-v $(pwd)/images:/images/ \
116-
ghcr.io/openwrt/imagebuilder:$TARGET-v{{ openwrt.oldstable_version }}
115+
ghcr.io/openwrt/imagebuilder:$TARGET-v{{ openwrt.stable_version }}
117116
```
118117

119-
120-
```sh-vue [{{ openwrt.stable_version }}]
118+
```sh-vue [{{ openwrt.oldstable_version }} (oldstable)]
121119
mkdir ./images/
122120
docker run -it \
123121
-e TARGET=$TARGET \
124122
-e ARCH=$ARCH \
125123
-v $(pwd)/config/:/builder/files/etc/config/ \
126124
-v $(pwd)/images:/images/ \
127-
ghcr.io/openwrt/imagebuilder:$TARGET-v{{ openwrt.stable_version }}
125+
ghcr.io/openwrt/imagebuilder:$TARGET-v{{ openwrt.oldstable_version }}
128126
```
129127

130128
```sh-vue [SNAPSHOT]
@@ -144,24 +142,27 @@ docker run -it \
144142
Within the container add the `lime-packages` feeds.
145143
::: code-group
146144

147-
```sh-vue [opkg - openwrt-23.05]
148-
cat << EOF >> repositories.conf
149-
src/gz libremesh_packages https://feed.libremesh.org/master/openwrt-23.05/x86_64
150-
src/gz libremesh_arch_packages https://feed.libremesh.org/master/openwrt-23.05/$ARCH
151-
src/gz profiles https://feed.libremesh.org/profiles/openwrt-23.05/x86_64
145+
146+
```sh-vue [openwrt-{{ openwrt.stable_branch }} (stable)]
147+
cat << EOF >> repositories
148+
https://feed.libremesh.org/master/openwrt-{{ openwrt.stable_branch }}/x86_64/packages.adb
149+
https://feed.libremesh.org/master/openwrt-{{ openwrt.stable_branch }}/$ARCH/packages.adb
150+
https://feed.libremesh.org/profiles/openwrt-{{ openwrt.stable_branch }}/x86_64/packages.adb
152151
EOF
153152
154-
cat << EOF > keys/a71b3c8285abd28b
155-
untrusted comment: signed by libremesh.org key a71b3c8285abd28b
156-
RWSnGzyChavSiyQ+vLk3x7F0NqcLa4kKyXCdriThMhO78ldHgxGljM/8
153+
cat << EOF > keys/libremesh.pem
154+
-----BEGIN PUBLIC KEY-----
155+
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdFJZ2qVti49Ol8LJZYuxgOCLowBS
156+
8bI86a7zqhSbs5yon3JON7Yee7CQOgqwPOX5eMALGOu8iFGAqIRx5YjfYA==
157+
-----END PUBLIC KEY-----
157158
EOF
158159
```
159160

160-
```sh-vue [opkg - openwrt-24.10]
161+
```sh-vue [openwrt-{{ openwrt.oldstable_branch }} (oldstable)]
161162
cat << EOF >> repositories.conf
162-
src/gz libremesh_packages https://feed.libremesh.org/master/openwrt-24.10/x86_64
163-
src/gz libremesh_arch_packages https://feed.libremesh.org/master/openwrt-24.10/$ARCH
164-
src/gz profiles https://feed.libremesh.org/profiles/openwrt-24.10/x86_64
163+
src/gz libremesh_packages https://feed.libremesh.org/master/openwrt-{{ openwrt.oldstable_branch }}/x86_64
164+
src/gz libremesh_arch_packages https://feed.libremesh.org/master/openwrt-{{ openwrt.oldstable_branch }}/$ARCH
165+
src/gz profiles https://feed.libremesh.org/profiles/openwrt-{{ openwrt.oldstable_branch }}/x86_64
165166
EOF
166167
167168
cat << EOF > keys/a71b3c8285abd28b

docs/development/contributing.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
---
2-
outline: deep
3-
---
41
# Contributing
52

63
When contributing to this repository, please first discuss the change you wish to make via issue,
@@ -101,7 +98,7 @@ The general workflow for branching is as follows:
10198

10299
```git checkout -b <branch name>```
103100

104-
4. Run the tests: read [[Testing docs](TESTING.md)].
101+
4. Run the tests: read [[Testing docs](testing)].
105102

106103
5. Make your changes, we encourage you to try to add a test.
107104

docs/development/testing.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
---
2-
outline: deep
3-
---
41
# Testing guide
52

63
LibreMesh has unit tests that help us add new features while keeping maintenance effort contained.

docs/getting-started.md

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -74,20 +74,4 @@ Install newer OpenWrt stable releases to keep updated the device:
7474
- Subscribe to the Newsletter [`OpenWrt Annouce`](https://lists.openwrt.org/mailman/listinfo/openwrt-announce).
7575
- Or follow the [`Openwrt Announcement-Bot`](https://social.tchncs.de/@openwrt) on Mastodon.
7676

77-
Refers to the OpenWrt Wiki for details about the upgrade process:
78-
- [Upgrading OpenWrt firmware using LuCI and CLI](https://openwrt.org/docs/guide-user/installation/generic.sysupgrade)
79-
- [Preserving OpenWrt settings during firmware upgrade](https://openwrt.org/docs/guide-quick-start/admingui_sysupgrade_keepsettings)
80-
81-
### Recommendations
82-
::: warning BEWARE
83-
From times to times it could be that some OpenWrt devices encounter issues upgrading, and result `bricked` or `soft-bricked`
84-
Be sure to have **read the OpenWrt release notes** for the `version`/`branch` you are installing.
85-
86-
In **production environments with multiple LibreMesh nodes** deployed, it is adviceable to keep at least one device, for each models you are using, to test that upgrades are ok. Or eventually recover it using an `USB Serial Adapter`.
87-
:::
88-
89-
### Tools
90-
Tools to upgrade the base OpenWrt version and LibreMesh packages:
91-
- `eupgrade` - provide semi-automated upgrades checking if a new firmware is available from an https server.
92-
- `owut` - provides upgrades using an [`ASU`](https://github.com/openwrt/asu) (online imagebuilder) instance. Test it installing the package `profile-antennine.org-an-lime-owut`
93-
- `safe-upgrade` - Wrapper around `sysupgrade`. Requires large flash storage, at least the double of the firmware-size, to rollback in case something didn't work.
77+
Refers to the page [Upgrade](/guide/upgrade) for recommended operations with LibreMesh.

docs/guide/upgrade.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Upgrade
2+
3+
::: tip CAUTION
4+
From times to times it could be that some OpenWrt devices encounter issues upgrading, and result `bricked` or `soft-bricked`
5+
Be sure to have **read the OpenWrt release notes** for the `version`/`branch` you are installing.
6+
7+
In **production environments with multiple LibreMesh nodes** deployed, it is adviceable to keep at least one device, for each models you are using, to test that upgrades are ok. Or eventually recover it using an `USB Serial Adapter`.
8+
:::
9+
10+
Refers to the OpenWrt Wiki for details about the upgrade process:
11+
- [Upgrading OpenWrt firmware using LuCI and CLI](https://openwrt.org/docs/guide-user/installation/generic.sysupgrade)
12+
- [Preserving OpenWrt settings during firmware upgrade](https://openwrt.org/docs/guide-quick-start/admingui_sysupgrade_keepsettings)
13+
14+
15+
## Examples
16+
17+
### Upgrade to a new major OpenWrt release
18+
Example that keeps only `lime-node` and `dropbear`.
19+
20+
Override the list of files to be preserved keeping only the essential.
21+
Recommended if the whole configuration is in the `lime-node`.
22+
```
23+
mkdir /tmp/keep.d; mv /lib/upgrade/keep.d/* /tmp/keep.d/
24+
mv /usr/lib/opkg/status /tmp/opkg_status
25+
for i in /etc/config/dropbear /etc/dropbear /etc/config/lime-node; do echo $i >> /etc/sysupgrade.conf; done
26+
sysupgrade -l
27+
```
28+
29+
Download the sysupgrade file
30+
```
31+
wget -O /tmp/firmware.bin <sysupgrade_file>
32+
```
33+
syupgrade file url is for instance https://sysupgrade-01.antennine.org/store/45347ae7f75029abc37f0a4e41ebf9af72ef7b9ce8c93ff27a7d7ec5e9a54b2e/openwrt-25.12.0-82ccd0311e22-mediatek-filogic-cudy_wr3000s-v1-squashfs-sysupgrade.bin
34+
35+
Upgrade the router
36+
```
37+
sysupgrade -v /tmp/firmware.bin
38+
```
39+
40+
## Tools
41+
Tools to upgrade the base OpenWrt version and LibreMesh packages:
42+
43+
### eupgrade
44+
provide semi-automated upgrades checking if a new firmware is available from an https server.
45+
46+
### owut
47+
provides upgrades using an [`ASU`](https://github.com/openwrt/asu) (online imagebuilder) instance. Test it installing the package `profile-antennine.org-an-lime-owut`
48+
49+
### safe-upgrade
50+
Wrapper around `sysupgrade`. Requires large flash storage, at least the double of the firmware-size, to rollback in case something didn't work.

docs/openwrt.data.js

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
let json = {
2-
"stable_version": "24.10.5",
3-
"oldstable_version": "23.05.6",
4-
"upcoming_version": "25.12.0-rc5",
5-
"versions_list": ["25.12.0-rc5","25.12.0-rc4","25.12.0-rc3","25.12.0-rc2","25.12.0-rc1","24.10.5","24.10.4","24.10.3","24.10.2","24.10.1","24.10.0-rc7","24.10.0-rc6","24.10.0-rc5","24.10.0-rc4","24.10.0-rc3","24.10.0-rc2","24.10.0-rc1","24.10.0","23.05.6","23.05.5","23.05.4","23.05.3","23.05.2","23.05.1","23.05.0-rc4","23.05.0-rc3","23.05.0-rc2","23.05.0-rc1","23.05.0","22.03.7","22.03.6","22.03.5","22.03.4","22.03.3","22.03.2","22.03.1","22.03.0-rc6","22.03.0-rc5","22.03.0-rc4","22.03.0-rc1","22.03.0","21.02.7","21.02.6","21.02.5","21.02.4","21.02.3","21.02.2","21.02.1","21.02.0-rc4","21.02.0-rc3","21.02.0-rc2","21.02.0","19.07.10","19.07.9","19.07.8","19.07.7","19.07.6","19.07.5","19.07.4","19.07.3","19.07.2","19.07.1","19.07.0","18.06.9","18.06.8","18.06.7","18.06.6","18.06.5","18.06.4","18.06.3","18.06.2","18.06.1","18.06.0","17.01.7","17.01.6","17.01.5","17.01.4","17.01.3","17.01.2","17.01.1"]
6-
}
1+
// let json = {
2+
// "stable_version": "24.10.5",
3+
// "oldstable_version": "23.05.6",
4+
// "upcoming_version": "25.12.0-rc5",
5+
// "versions_list": ["25.12.0-rc5","25.12.0-rc4","25.12.0-rc3","25.12.0-rc2","25.12.0-rc1","24.10.5","24.10.4","24.10.3","24.10.2","24.10.1","24.10.0-rc7","24.10.0-rc6","24.10.0-rc5","24.10.0-rc4","24.10.0-rc3","24.10.0-rc2","24.10.0-rc1","24.10.0","23.05.6","23.05.5","23.05.4","23.05.3","23.05.2","23.05.1","23.05.0-rc4","23.05.0-rc3","23.05.0-rc2","23.05.0-rc1","23.05.0","22.03.7","22.03.6","22.03.5","22.03.4","22.03.3","22.03.2","22.03.1","22.03.0-rc6","22.03.0-rc5","22.03.0-rc4","22.03.0-rc1","22.03.0","21.02.7","21.02.6","21.02.5","21.02.4","21.02.3","21.02.2","21.02.1","21.02.0-rc4","21.02.0-rc3","21.02.0-rc2","21.02.0","19.07.10","19.07.9","19.07.8","19.07.7","19.07.6","19.07.5","19.07.4","19.07.3","19.07.2","19.07.1","19.07.0","18.06.9","18.06.8","18.06.7","18.06.6","18.06.5","18.06.4","18.06.3","18.06.2","18.06.1","18.06.0","17.01.7","17.01.6","17.01.5","17.01.4","17.01.3","17.01.2","17.01.1"]
6+
// }
77

88

99
export default {
1010
async load() {
1111
// fetch remote data
12-
return json
13-
// return (await fetch('https://downloads.openwrt.org/.versions.json')).json()
12+
return (await fetch('https://downloads.openwrt.org/.versions.json')).json()
1413
}
1514
}

prepare_data.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,9 +293,7 @@ async function addRepoDoc() {
293293
await copyFiles(from_dir, to_dir, 'CONTRIBUTING.md', 'contributing.md')
294294
await copyFiles(from_dir, './docs/', 'CHANGELOG.md', 'changelog.md')
295295

296-
let testing = await replaceInFile(to_dir+'testing.md', "# Testing", "---\noutline: deep\n---\n# Testing")
297-
let contributing = await replaceInFile(to_dir+'contributing.md', "# Contributing", "---\noutline: deep\n---\n# Contributing")
298-
contributing = await replaceInFile(to_dir+'contributing.md', /]\(TESTING.md\)/, "](testing)")
296+
await replaceInFile(to_dir+'contributing.md', /]\(TESTING.md\)/, "](testing)")
299297
}
300298

301299
// copy VIRTUALIZING.md TESTING.md HACKING.Md

0 commit comments

Comments
 (0)