OpenWRT Build System for CentOS 7: Difference between revisions

 
(4 intermediate revisions by the same user not shown)
Line 3: Line 3:
==Other Tutorials==
==Other Tutorials==


*General Guide for building firmware: https://openwrt.org/docs/guide-user/additional-software/beginners-build-guide
*General{{Citation needed}} Guide for building firmware: https://openwrt.org/docs/guide-user/additional-software/beginners-build-guide
**Start of detailed Information: https://openwrt.org/docs/guide-developer/build-system/start
**Start of detailed Information: https://openwrt.org/docs/guide-developer/build-system/start
**Pre-requisites for a : https://openwrt.org/docs/guide-developer/build-system/install-buildsystem
**Pre-requisites for a<span> </span>: https://openwrt.org/docs/guide-developer/build-system/install-buildsystem
**Some additional granular detail for working with specific versions: https://openwrt.org/docs/guide-developer/build-system/use-buildsystem
**Some additional granular detail for working with specific versions: https://openwrt.org/docs/guide-developer/build-system/use-buildsystem
*Build environment tips: https://openwrt.org/docs/guide-developer/env
*Build environment tips: https://openwrt.org/docs/guide-developer/env
Line 135: Line 135:
The following interesting observations were made after the above noted event
The following interesting observations were made after the above noted event


*git tag : Lists all "major" and "minor" version branches of OpenWRT available.
*git tag<span> </span>: Lists all "major" and "minor" version branches of OpenWRT available.
**v17.01.0
**v17.01.0
**v17.01.0-rc1
**v17.01.0-rc1
Line 165: Line 165:
**v19.07.4
**v19.07.4


*git branch -r : Shows available "major versions" of OpenWRT available.
*git branch -r<span> </span>: Shows available "major versions" of OpenWRT available.
**  origin/HEAD -> origin/master
**  origin/HEAD -> origin/master
**  origin/lede-17.01
**  origin/lede-17.01
Line 225: Line 225:
**It was noticed at minimum, the last line: $(eval $(call BuildPackage,WhatEverName)) had to be changed too.
**It was noticed at minimum, the last line: $(eval $(call BuildPackage,WhatEverName)) had to be changed too.


== Notes from 9.11.2020 ==
==Notes from 9.11.2020==
<br />
<br />


* Name of Package in Makefile
*Name of Package in Makefile
** define Package/openssl-custom
**define Package/openssl-custom
** define Package/openssl-custom/description
**define Package/openssl-custom/description
** define Package/openssl-custom/install
**define Package/openssl-custom/install
** $(eval $(call BuildPackage,openssl-custom))
**$(eval $(call BuildPackage,openssl-custom))
* Name of Directory in "feedscustom" must match items in Makefile
*Name of Directory in "feedscustom" must match items in Makefile
** source "$(SOURCE)/Config.in"
**source "$(SOURCE)/Config.in"
 
 
==Notes on 09.13.2020==
'''SOLUTION for the below:''' (from: https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem ):
 
* ...CD to the SCRIPTS Directory from the "GIT Cloned" version of OpenWRT
** ./feeds update -a
** ./feeds install -a
 
...all fixed.  Naturally installing 'feeds' solves the issue of missing dependencies, etc.
 
Here's a stupid error that makes complete sense, yet shouldn't even exist in this situation: Makefile 'package/linux/Makefile' has a dependency on 'kmod-phy-bcm-ns-usb2', which does not exist
 
What's the situation?  This is a build for a WRT3200ACM, with no Broadcom chips.  So what the fuck package is in the official SDK for this same router that has a dependency like this?
 
Oh, and better yet, what about the below?
 
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'r8169-firmware', which does not exist
 
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'e100-firmware', which does not exist
 
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'bnx2-firmware', which does not exist
 
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'ar3k-firmware', which does not exist
 
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'mwifiex-sdio-firmware', which does not exist
 
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'kmod-phy-bcm-ns-usb2', which does not exist
 
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'edgeport-firmware', which does not exist
 
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'kmod-phy-bcm-ns-usb3', which does not exist
 
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'amdgpu-firmware', which does not exist
 
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'radeon-firmware', which does not exist
 
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'prism54-firmware', which does not exist
 
WARNING: Makefile 'package/linux/Makefile' has a dependency on 'rtl8192su-firmware', which does not exist
 
 
Of course none of this shit exists, it's a GOD DAMNED SDK for the WRT3200ACM!
 
 
There is no solution to all the above errors.  Just tolerate it amongst all the other fucked up shit.
 
 
Also, do NOT delete any of the newly created Directories in the ......feeds Directory as they are actually symbolic links to WhatEver custom Feeds Directory structure was created.
 
 
And if one is looking for the OpenSSL package, it is of course intuitively named openssl-util.  And following that very clear path, the Makefile file for openssl is located in /feeds/base/package/libs/openssl
 
==09.13.2013 - Less Vitriolic Notes==
git clone -b openwrt-19.07 <nowiki>https://github.com/openwrt/openwrt.git</nowiki> /root/openwrtSDK.Manual: Copies the 19.07 (IE, the lateversion of files from the OpenWRT sources at GitHub
 
git checkout v19.07.3
 
make distclean: https://stackoverflow.com/questions/51837675/what-are-the-differences-between-make-clean-make-clobber-make-distclean-make
 
./scripts/feeds update -a: Downloads all the v19.07.3 Makefiles and associated "stuff"
 
./scripts/feeds install -a: Creates indexes used by "make menuconfig", which in turn creates the visual selections within menuconfig script.
 
make menuconfig: run the menuconfig script (the Build the OpenWrt SDK will create an SDK PACKAGE)
 
make toolchain/install V=sc: use the toolchain/Config.in file and install it (see the Config.in file in the root openwrt...  directory, then the /toolchain/Config.in file), the -V=sc enables verbose output with details of what it is compiling instead of a boring command prompt.
 
 
staging_dir/host: Seems to contain x86_64 files that are "translated" to other platforms
 
Another observation that seems a bit obvious, but isn't really explicitly stated anywhere is that the "make menuconfig" "script" settings apply only in certain circumstances.  For instance, when using the above make... ...toolchain/config command, there were no packages compiled and put into a bin directory.  As a test, selected the openssl package (which includes libssl) to be created as a modular package.  And it wasn't created, nor should it have been.