This is the master repository for the source code for the Asus BRT-AC828 router firmware.
Several parts of that source code are or will be split out to their own repository and linked to this one via git submodules.
The firmware for the BRT-AC828 router, like many other Asus routers, is composed of various Free Software components. And Asus actually honors their obligation to provide the source code of their (derived) product. When Asus released version
126.96.36.199.382_70348 of their firmware, I noticed the corresponding source code was not available (it was for a previous 380 version), so I wrote them an email requesting the source code and they put it online the next day! :-D
So I downloaded the archive (
GPL_BRT-AC828_188.8.131.52.382.70348-gb917269.tar.bz2) which is 778.5 MiB in size and after extraction it's a whopping 2.9 GiB. While git can technically manage that, it's unpractical. So I'll split the project up in this main repo and various git submodule repos, linked into this repo.
The reason it's so large is that it contains the source code of all the components from which the firmware is build. From the archive you can built firmware for a number of different Asus router models by giving the proper argument to
make. As they not all use the same versions of the components, you'll end up with multiple copies of f.e.
It also includes a (heavily) modified copy of the Linux kernel (393.9 MiB) that is used by this router. And also what seems like a repository (468.7 MiB) to install additional software on the router.
Logically that means we can split the archive/repo in several sections, like kernel, router software, a router software repo and possibly more. That means that each separate repo would become better manageable (and/because it's smaller).
Getting rid of f.e. the multiple copies of the same software also seems useful. Such a task is best done under (
git's) version control. Once I've determined all the things that can be thrown away, I can then create a new and clean git repo with only the software I need and change the submodule of the main repo to point to the clean version. The old repo could then be deleted, but I'll probably keep it as it could contain useful info for when someone else wants to embark on a similar journey.
I may also try to convert the Linux repo into a style used by Debian, which contains only the (infrastructure and) modifications and configuration of the upstream kernel, but not the kernel code itself.
Here is a list of the git submodules used in this project: