Adding repository to OpenWrt

Hi

How do I create repository, from my compilation ?

Get the module/packages/driver, compiled.
Where to put them.
How to tell OpenWrt where to find them.

  1. Put your packages with the Packages.gz and Packages.sig online accessible with a webserver like nginx or apache

  2. Add your build-key.pub from your root dir of the openwrt source with the fingerprint (usign -F /path/to/build-key.pub) as filename into /etc/opkg/keys

  3. Add your custom http(s) path to /etc/opkg/customfeeds.conf like in /etc/opkg/distfeeds.conf for the official package repos

  4. Then a opkg update on your device should result in:

...
Downloading http://downloads.my-custom-packages.com/Packages.gz
Downloading http://downloads.my-custom-packages.com/Packages.sig
Signature check passed.
...

Now you can simply install your custom packages through opkg install my-custom-openwrt-package ...

4 Likes

Tanks Juppin

But all package are compiled form default or need to be enabled on menuconfig ?
What folder do I find them in?

Any new compilation, revision, etc., do I have to put all the packages in a new address ?

Also in Luci, tab firmware ?
But Luci page/module, are enabled installing package, or only menuconfig enable it ?

Don't know what by default means, but you have to select the packages to build in menuconfig...

I assume in the folder bin, but i'm not absolutely sure...
Do a find . -name "*.ipk" from the main openwrt source dir after you have build the package(s).

Add it to you previous address and update Packages.gz and Packages.sig...

Yes

I do not understand

There are 6 folders which contain many .ipk one .gz and one .sig
\bin\packages\mipsel_24kc\base
\bin\packages\mipsel_24kc\lucy
\bin\packages\mipsel_24kc\mtk
\bin\packages\mipsel_24kc\packages
\bin\packages\mipsel_24kc\routing
\bin\packages\mipsel_24kc\telephony\

Also this contains .ipk and .gz and .sig
\bin\targets\ramips\rt305x\packages

What are these errors I have with make menuconfig ?

~/openwrt$ make menuconfig
WARNING: Makefile 'package/feeds/telephony/asterisk-16.x/Makefile' has a dependency on 'liblua5.3', which does not existWARNING: Makefile 'package/feeds/packages/at/Makefile' has a dependency on 'libelf', which does not exist
WARNING: Makefile 'package/feeds/packages/auc/Makefile' has a dependency on 'ucert', which does not exist
WARNING: Makefile 'package/feeds/packages/avrdude/Makefile' has a dependency on 'libelf', which does not exist
WARNING: Makefile 'package/feeds/packages/docker-ce/Makefile' has a dependency on 'kmod-nf-ipvs', which does not exist
WARNING: Makefile 'package/feeds/packages/elektra/Makefile' has a dependency on 'lua5.3', which does not exist
WARNING: Makefile 'package/feeds/packages/gnutls/Makefile' has a dependency on 'kmod-cryptodev', which does not exist
WARNING: Makefile 'package/feeds/packages/ipvsadm/Makefile' has a dependency on 'kmod-nf-ipvs', which does not exist
WARNING: Makefile 'package/feeds/packages/luasocket/Makefile' has a dependency on 'liblua5.3', which does not exist
WARNING: Makefile 'package/feeds/packages/nft-qos/Makefile' has a dependency on 'kmod-nft-netdev', which does not exist
WARNING: Makefile 'package/feeds/packages/openvswitch/Makefile' has a dependency on 'kmod-nsh', which does not exist
feeds/packages/net/samba4/Config.in:11:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
feeds/packages/net/samba4/Config.in:11: symbol SAMBA4_SERVER_AD_DC depends on PACKAGE_samba4-server
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:115756:  symbol PACKAGE_samba4-server is selected by PACKAGE_luci-app-samba4
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:70561:   symbol PACKAGE_luci-app-samba4 depends on SAMBA4_SERVER_AD_DC
tmp/.config-package.in:23939:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:23939:   symbol PACKAGE_python-crypto is selected by PACKAGE_samba4-libs
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:115724:  symbol PACKAGE_samba4-libs is selected by PACKAGE_samba4-admin
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:115686:  symbol PACKAGE_samba4-admin depends on PACKAGE_python-crypto
tmp/.config-package.in:29578:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:29578:   symbol PACKAGE_python3-influxdb depends on PACKAGE_python3-requests
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:31216:   symbol PACKAGE_python3-requests is selected by PACKAGE_python3-influxdb
tmp/.config-package.in:27744:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:27744:   symbol PACKAGE_python3-certifi is selected by PACKAGE_python3-sentry-sdk
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:31473:   symbol PACKAGE_python3-sentry-sdk depends on PACKAGE_python3-certifi
tmp/.config-package.in:27127:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:27127:   symbol PACKAGE_python3-aiohttp is selected by PACKAGE_python3-aiohttp-cors
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:27153:   symbol PACKAGE_python3-aiohttp-cors depends on PACKAGE_python3-attrs
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:27377:   symbol PACKAGE_python3-attrs is selected by PACKAGE_python3-aiohttp
tmp/.config-package.in:28343:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:28343:   symbol PACKAGE_python3-dateutil is selected by PACKAGE_python3-six
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:31617:   symbol PACKAGE_python3-six is selected by PACKAGE_python3-dateutil
tmp/.config-package.in:29805:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:29805:   symbol PACKAGE_python3-jsonpath-ng depends on PACKAGE_python3-ply
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:30666:   symbol PACKAGE_python3-ply is selected by PACKAGE_python3-jsonpath-ng
tmp/.config-package.in:31100:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:31100:   symbol PACKAGE_python3-pytz is selected by PACKAGE_python3-pytz
tmp/.config-package.in:86771:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:86771:   symbol PACKAGE_wget is selected by PACKAGE_wget
tmp/.config-package.in:12504:error: recursive dependency detected!
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
tmp/.config-package.in:12504:   symbol PACKAGE_kmod-openvswitch is selected by PACKAGE_kmod-openvswitch


*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

But on
\bin\targets\ramips\rt305x\packages

There are only 104 files.
There are not all module.

I don't know where your custom module is located as you doesn't said what custom stuff you added where...???
You should share more info about your added custom stuff and/or config file(s).

There should be all target specific packages (mostly kernel module files) that you have selected in menuconfig.
If you want all, you have to select the option to build all kmod packages... Don't know the exact name of the config symbol at the moment, but you should find it in menuconfig easily.

Thank you for your patience Juppin
I don't know how to share my project.
I put here a link to .config ? Or all .config content ?

  1. Is there a way to know before compiling, how much space does it take up?
    I am compiling countless times because it tells me too large file, I only have 8Mb

  2. If I do two compilations, to have two image versions, changing the / files /, can I have the same repository?
    packages, Packages.gz, Packages.sig, build-key.pub Can be the same ?

  3. I can't find build-key.pub, is it generated by compilation?

  4. In / files / I also put banners, the message of when you open ssh
    Is there any way to see the original banner? Are there any final OpenWrt files somewhere?

github?
The content of the .config is very huge...
Post a diffconfig generated with ./scripts/diffconfig.sh and use the preformated text function </> for posting it here.

No

Depends... Same or different config?

Yes it´s generated if not available in root dir of openwrt source...
Probably is the name a little bit different, used the build system some time ago...

Sure there is a way ;-), but i don´t know without my own research...

11 posts were split to a new topic: Self compiled image too big

Fixed all the other problems and returning to the main theme.

This opkg/distfeeds.conf
src/gz openwrt_core http://downloads.openwrt.org/snapshots/targets/ramips/rt305x/packages
src/gz openwrt_base http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base

But compiler make many folder: (\bin\packages\mipsel_24kc)
base
luci
management
packages
routing
telephony

I make ?
src/gz openwrt_routing ...
etc

Core are not.
This could be the core?
\bin\targets\ramips\rt305x\packages

Thanks juppin

I guess the key changes when I download all repositories, and does not change when I update feed.
I do not understand when there are change in feed and when the sources.

If I upgrade the feed in a year, the main program is old ?

And if I download the source code, and put the old key, it may be that feeds do not work in the old build ?

Can I assume that since I only update the feeds, I can replace them in the repository, but if I download the new sources have to create a new repository ?

How often do they update your sources and how often feeds ?

git log often shows daily changes to both on master.

The build-key and build-key.pub is only generated if there is none in your root directory of the openwrt source.
So backup you key files and place it in your root directory of the openwrt source before executing make.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.