A changelog and archival tool for the firmware GPL SDKs of Teltonika routers.
Teltochronicle retrieves firmware metadata and changelogs from the official Teltonika wiki, downloads and archives GPL SDK tarballs, and builds per-model Git histories from the extracted SDK contents. These histories allow detailed inspection of differences between SDK releases across firmware versions.
Each model maintains:
- Markdown changelog
- Firmware metadata in JSON
- directory of downloaded SDK archives (managed with git-lfs)
- Git submodule containing the SDK history
The dates of the commits in each submodule match the release dates of the respective firmware version in order to keep a feeling for the relation between file updates/changes and their age.
All processing is performed by the teltochronicle.py tool.
- Firmware Changelog
- Repo: see submodule in
models/RUT951/repo - SDKs
- JSON
- Firmware Changelog
- Repo: see submodule in
models/RUT950/repo - SDKs
- JSON
- Firmware Changelog
- Repo: see submodule in
models/RUTX09/repo - SDKs
- JSON
In order to avoid downloading the entire SDK archive history from Git LFS and only fetch metadata as well as all submodule repositories, use the following command:
GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/wirelane/teltochronicle.git
cd teltochronicle
make pull-submodules
Teltochronicle is capable of recognizing Git LFS pointers if necessary and then fetching the files from LFS on an as-needed basis (assuming you have Git LFS installed - see below).
Make sure that you have Git LFS installed and set up with
git lfs install.
To ensure that SDK archives and history submodules are correctly retrieved, run:
make pull
To regenerate firmware metadata, changelogs, SDK history and also commit and push everything, run:
make all
If you want to review before pushing everything, run instead:
make prepare
Add the model to the configuration in teltochronicle.py:
MODEL_CONFIG = {
...
"<MODEL>": "<PRODUCT CODE>",
}
Run the following command to create all artificats for the new model as well as adding the origin to the repository and the submodule including pushing all changes to the given remote:
make add-model MODEL=<MODEL> REPO_URL=<REPO URL>