How to build with the official release configuration (and a small patch)?

Hi,

I'd like to start withLEDE on my new small home router. Version 17.01.2 is supporting my device, I just like to make some small modifications, most importantly having my SSH key in /root/authorized_keys. I tried to read the Wiki, searched the forum and looked at documentation I found with Google, but questions remain. I hope its correct to ask here.

I started to build according to Wiki and I had to make selection in make menuconfig. Probably I didn't do it right, because my image is smaller than the official (a lot smaller, ~260 KB).

Is it possible to get the config as used for the release build and build exactly the same image on my own? I think this should be a good and safe point to start, is this a good approach?

Wiki suggest to build GIT master. Shouldn't I better checkout v17.01.2 to have a solid and tested version?

For the first changes, I think in OpenWRT I added e.g. package/base-files/default/etc/dropbear/authorized_keys (IIRC! I have to admit that this was in Oct 2007, almost ten years ago :fearful:). This folder still exists, so I think I just copy the file, but Wiki tells me to put into<buildroot_dir>/files, in my case source/files.

Where to put overlay files now?

Wiki also tells images should be in source/bin/ar71xx, but I have them in source/bin/targets/ar71xx/, so I think it might not be up-to-date.

Is it OK to update the Wiki?

Any hints appreciated,
Steffen

Technical Data:
TP-Link TL-WR1043ND N450 Gigabit WLAN Router V4
3625061 lede-17.01.2-ar71xx-generic-tl-wr1043nd-v4-squashfs-factory.bin
3360347 bin/targets/ar71xx/generic/lede-ar71xx-generic-tl-wr1043nd-v4-squashfs-factory.bin

There is no special config for releases. The buildbot just builds the images for each device using that devices defaults. Additionally, LuCI GUI is included. You achieve the same just by deleting .config, seleting your router in menuconfig and selecting LuCI.

You should checkout the HEAD of the 17.01 branch to get the newest stable fixes, not the older 17.01.2 release itself.

The location of the files to be included depends on how you want to handle the issue. You may embedd them into base-files package (like you seem to have done earlier), or to the specific package (dropbear), or to the general custom files location <buildroot_dir>/files , like suggested in wiki. That is probably easiest.

Which wiki page?
LEDE has developed build system further from the old Openwrt one, so the file locaiton has changed somewhat. Content copied from Openwrt wiki may still contain references to the old stuff, so please fix it.

1 Like

Hi

thanks so much for your quick and helpful reply!
I now have almost same image size (just 10KB less - first time I missed at least LuCI :slight_smile:)

I updated the Wiki (at https://lede-project.org/docs/guide-developer/use-buildsystem#locating_images), hopefully well.

Steffen

Hi,

it's me again. I'm still trying to build the official release. The default config misses the packages that can be installed with opkg (so I'd need to use external package repository instead of my own).

Can I find the official .config anywhere?

My image seems to work fine except unfortunately Luci was not available (ECONNREFUSED). I'm afraid I built uhttpd and uhttpd-mod-ubus as module only. I'll change that and try again. "opkg install uhttpd-mod-ubus" quickly worked around (except that it downloaded from http://downloads.lede-project.org/releases/17.01-SNAPSHOT/packages/, I don't have that locally yet).

EDIT also libiwinfo-lua is missing (but needed for luci wifi config), but cannot be installed (Unknown package 'libiwinfo-lua').

I noticed that building also downloads (source tarballs) from the internet. Can I prevent downloading and use local copies of the sources? I'd like to archive my build tree and to be able to reproduce later. I'm afraid if later I git update and build, different versions will be downloaded and old versions cannot be built anymore (for example, because old packages are not avialable at the old places anymore).

Steffen

You can use make download which will download all requirments for building

sdettmer, did you ever get a definitive answer on how to build the release config? I'd like to do the same. Thanks!

1 Like

Use config.seed available on the download servers. At least at the "instant" that the snapshot/build was made (same, exact source trees. all at the same point as the "reference" bulld), it should fill out the configuration to the same state as that build. Copy to .config and run make menuconfig or the like.

1 Like

Perfect, thanks!

It would be really useful if there was a better/fuller explanation of config.seed in the buildsystem documentation https://openwrt.org/docs/guide-developer/build-system/use-buildsystem, or better still a FAQ entry on rebuilding an existing release version.

1 Like