Quick image building guide

See also: Using the toolchain, Using the Image Builder

The goal of this guide is to let you build your own flashable firmware in as few simple steps as possible. The main advantage of building your own firmware is that it compresses the files, so that you will have room for much more stuff. It is particularly noticeable on routers with 16 MB flash RAM or less. It also lets you change some options that can only be changed at build time, for instance the features included in BusyBox and the block size of SquashFS. Larger block size will give better compression, but may also slow down the loading of files.

  1. Set up a build machine in VirtualBox This first step is optionnal, as you can use whatever build system you might want, but it is recommended to avoid possible unknown problem; look at the prerequesites in the next step.
  • You select a package using space one or more times. When you select something, always make sure it has a * and not an M in the selected field. * means it will be included in the image, while M means that it will only create a package for it, which kind of defeats the point of following this guide.
  • Except for choosing the target I suggest that you don't mess with the options above Base system. Also, in general, don't uncheck anything that is selected by default unless you really know what you're doing. If something is selected with -*- (so you can't uncheck it) it is because something else depends on it.
  • Instructions on how to include config files in the image (for instance from the backup you can download from the router): Custom files
  1. Do a web search for <your router model> wikidevi. For instance, if you have an Asus RT-N56U then search for RT-N56U wikidevi. This would give https://wikidevi.com/wiki/ASUS_RT-N56U as the first response on most search engines. Find CPU on the page. In the case of RT-N56U it says Ralink RT3662F. If you type / in the builder you can search for RT-N56U. This will give a bunch of hits, which among other things says Symbol: TARGET_DEVICE_PACKAGES_ramips_rt3883_DEVICE_rt-n56u. Notice the ramips part. Now select Target System. In the list you will find “Mediatek Ralink ARM” and “Mediatek Ralink MIPS”. Given the information we have you can probably guess that the correct choice is “Mediatek Ralink MIPS”.
  2. Select Subtarget. From the wikidevi page you know that it is a Ralink RT3662F, and the best fit in the list is “RT3662/RT3883 based boards”.
  3. Select Target Profile. Asus RT-N56U is now listed here, so you know you chose the correct target and subtarget.
  • Don't remove any of the default packages unless you know what you are doing. Some of them are crucial. See Saving firmware space
  • You'll probably want the LuCi web admin interface, so choose LuCi/Collections/luci. If LuCI is not available then you have not successfully checked out the feeds, or they have been removed. This can also happen if you for instance run make clean.
  • The selectable software is in the submenues from “Base system” and downwards. Start by going to LuCI / Applications, as this section lists the LuCI packages for the most commonly used software. Selecting them will also include the required dependencies.
  • When you build your own firmware you can't use the downloadable kernel packages (packages named kmod-<something>), so try to make sure you select everything you need. If you need more kernel modules later you will have to build a new firmware. It is also possible to select all the kernel modules using m and copy them to the router later if needed. Packages are placed in bin/targets/*/*/packages/.
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/01/06 23:39
  • by solsticedhiver