Difference between revisions of "OpenWRT Build System for CentOS 7"

Wiki.TerraBase.info
Jump to navigation Jump to search
m
Line 106: Line 106:
***https://openwrt.org/docs/guide-developer/packages
***https://openwrt.org/docs/guide-developer/packages


== Environment Variables ==
==Environment Variables==
export FORCE_UNSAFE_CONFIGURE=1
export FORCE_UNSAFE_CONFIGURE=1


Line 121: Line 121:
Other package default path variables ~/openwrt/include/package-defaults.mk
Other package default path variables ~/openwrt/include/package-defaults.mk


* Created when git clone is used
*Created when git clone is used
** Feeds Directory: ~/openwrt/feeds/packages/admin, utils, etc.
**Feeds Directory: ~/openwrt/feeds/packages/admin, utils, etc.
** Feeds Symbolic Links in this Directory (for convenience?): ~/openwrt/package/feeds/packages/ (created when the ''./scripts/feeds update -a'' command is used)
**Feeds Symbolic Links in this Directory (for convenience?): ~/openwrt/package/feeds/packages/ (created when the ''./scripts/feeds update -a'' command is used)


== Notes on 9.7.2020 ==
On Monday 9.7.2020 during the late afternoon (UTC-8) it was observed that OpenWRT 19.07.4 was released on Tuesday 9.8.2020.  This would seem to indicate the server for OpenWRT downloads is somewhere in Europe.


Notes on 9.7.2020
*Downloads.OpenWRT.org: 176.9.48.73 is allocated to a company located in Germany (https://search.arin.net/rdap/?query=176.9.48.73)
*www.OpenWRT.org: 139.59.209.225 is allocated to a company in New York, United States (https://search.arin.net/rdap/?query=139.59.209.225)


* OpenWRT 19.07.4 was released on Tuesday 9.8.2020, indicating the server for OpenWRT is in another part of the world
The following interesting observations were made after the above noted event
** Downloads.OpenWRT.org: 176.9.48.73 seems to be located in Germany (https://search.arin.net/rdap/?query=176.9.48.73)
** www.OpenWRT.org: 139.59.209.225 seems to be located in New York, United States (https://search.arin.net/rdap/?query=139.59.209.225)


* git tag : Lists all major and minor versions of OpenWRT available
*git tag : Lists all "major" and "minor" version branches of OpenWRT available.
** v17.01.0
**v17.01.0
** v17.01.0-rc1
**v17.01.0-rc1
** v17.01.0-rc2
**v17.01.0-rc2
** v17.01.1
**v17.01.1
** v17.01.2
**v17.01.2
** v17.01.3
**v17.01.3
** v17.01.4
**v17.01.4
** v17.01.5
**v17.01.5
** v17.01.6
**v17.01.6
** v17.01.7
**v17.01.7
** v18.06.0
**v18.06.0
** v18.06.0-rc1
**v18.06.0-rc1
** v18.06.0-rc2
**v18.06.0-rc2
** v18.06.1
**v18.06.1
** v18.06.2
**v18.06.2
** v18.06.3
**v18.06.3
** v18.06.4
**v18.06.4
** v18.06.5
**v18.06.5
** v18.06.6
**v18.06.6
** v18.06.7
**v18.06.7
** v18.06.8
**v18.06.8
** v19.07.0
**v19.07.0
** v19.07.0-rc1
**v19.07.0-rc1
** v19.07.0-rc2
**v19.07.0-rc2
** v19.07.1
**v19.07.1
** v19.07.2
**v19.07.2
** v19.07.3
**v19.07.3
** v19.07.4
**v19.07.4


* git branch -r : Shows available major versions of OpenWRT available
*git branch -r : Shows available "major versions" of OpenWRT available.
**   origin/HEAD -> origin/master
**  origin/HEAD -> origin/master
**   origin/lede-17.01
**  origin/lede-17.01
**   origin/master
**  origin/master
**   origin/openwrt-18.06
**  origin/openwrt-18.06
**   origin/openwrt-19.07
**  origin/openwrt-19.07


* git clone -b v19.07.3 <nowiki>https://github.com/openwrt/openwrt.git</nowiki> produces the following output
*git clone -b v19.07.3 <nowiki>https://github.com/openwrt/openwrt.git</nowiki> produces the following output
** Cloning into '/root/openwrtSDK'...  remote: Enumerating objects: 13, done.  remote: Counting objects: 100% (13/13), done.  remote: Compressing objects: 100% (11/11), done.  remote: Total 530753 (delta 0), reused 6 (delta 0), pack-reused 530740  Receiving objects: 100% (530753/530753), 183.81 MiB | 3.68 MiB/s, done.  Resolving deltas: 100% (362276/362276), done.  Note: checking out 'f3f38f40da74a193b4177be8d0fa746d00a753ea'.  You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.  If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name
**Cloning into '/root/openwrtSDK'...  remote: Enumerating objects: 13, done.  remote: Counting objects: 100% (13/13), done.  remote: Compressing objects: 100% (11/11), done.  remote: Total 530753 (delta 0), reused 6 (delta 0), pack-reused 530740  Receiving objects: 100% (530753/530753), 183.81 MiB | 3.68 MiB/s, done.  Resolving deltas: 100% (362276/362276), done.  Note: checking out 'f3f38f40da74a193b4177be8d0fa746d00a753ea'.  You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.  If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name
** ...and git branch produces this output: fatal: Not a git repository (or any of the parent directories): .git
**...and git branch produces this output: fatal: Not a git repository (or any of the parent directories): .git.  (Given that "HEAD" refers to a local copy of OpenWRT, this is not an issue)
* git clone -b openwrt-19.07 <nowiki>https://github.com/openwrt/openwrt.git</nowiki> produces the following output
*git clone -b openwrt-19.07 <nowiki>https://github.com/openwrt/openwrt.git</nowiki> produces the following output
** Cloning into '/root/openwrt-19.07'...  remote: Enumerating objects: 13, done.  remote: Counting objects: 100% (13/13), done.  remote: Compressing objects: 100% (11/11), done.  remote: Total 530753 (delta 0), reused 6 (delta 0), pack-reused 530740  Receiving objects: 100% (530753/530753), 183.81 MiB | 3.69 MiB/s, done.  Resolving deltas: 100% (362276/362276), done.
**Cloning into '/root/openwrt-19.07'...  remote: Enumerating objects: 13, done.  remote: Counting objects: 100% (13/13), done.  remote: Compressing objects: 100% (11/11), done.  remote: Total 530753 (delta 0), reused 6 (delta 0), pack-reused 530740  Receiving objects: 100% (530753/530753), 183.81 MiB | 3.69 MiB/s, done.  Resolving deltas: 100% (362276/362276), done.
** ...and git branch produces this output: * openwrt-19.07 (the asterisk indicates the "checked out" version if multiple versions existed)
**...and git branch produces this output: * openwrt-19.07 (the asterisk indicates the "checked out" version if multiple versions existed)
* On 9.6.2020 this was contents of the feeds file included with cloning OpenWRT using openwrt-19.07;
*On 9.6.2020 this was contents of the feeds file included with cloning OpenWRT using openwrt-19.07;
** src-git base <nowiki>https://git.openwrt.org/openwrt/openwrt.git;v19.07.3</nowiki>
**src-git base <nowiki>https://git.openwrt.org/openwrt/openwrt.git;v19.07.3</nowiki>
** src-git packages <nowiki>https://git.openwrt.org/feed/packages.git^2e6bd4cb86682b224803325127d3f777d40b3231</nowiki>
**src-git packages <nowiki>https://git.openwrt.org/feed/packages.git^2e6bd4cb86682b224803325127d3f777d40b3231</nowiki>
** src-git luci <nowiki>https://git.openwrt.org/project/luci.git^fb2f36306756d0d0782dcab8413a8bb7ec379e54</nowiki>
**src-git luci <nowiki>https://git.openwrt.org/project/luci.git^fb2f36306756d0d0782dcab8413a8bb7ec379e54</nowiki>
** src-git routing <nowiki>https://git.openwrt.org/feed/routing.git^3f8571194c2765ed31aa73459e86c2ebf943d27d</nowiki>
**src-git routing <nowiki>https://git.openwrt.org/feed/routing.git^3f8571194c2765ed31aa73459e86c2ebf943d27d</nowiki>
** src-git telephony <nowiki>https://git.openwrt.org/feed/telephony.git^036cd451c35b82b3d8cac519864986894d9f6958</nowiki>
**src-git telephony <nowiki>https://git.openwrt.org/feed/telephony.git^036cd451c35b82b3d8cac519864986894d9f6958</nowiki>


* On 9.7.2020 this was contents of the feeds file included with cloning OpenWRT with both the openwrt-19.07 and v19.07.3;
*On 9.7.2020 this was contents of the feeds file included with cloning OpenWRT with both the openwrt-19.07 and v19.07.3;
** src-git packages <nowiki>https://git.openwrt.org/feed/packages.git;openwrt-19.07</nowiki>
**src-git packages <nowiki>https://git.openwrt.org/feed/packages.git;openwrt-19.07</nowiki>
** src-git luci <nowiki>https://git.openwrt.org/project/luci.git;openwrt-19.07</nowiki>
**src-git luci <nowiki>https://git.openwrt.org/project/luci.git;openwrt-19.07</nowiki>
** src-git routing <nowiki>https://git.openwrt.org/feed/routing.git;openwrt-19.07</nowiki>
**src-git routing <nowiki>https://git.openwrt.org/feed/routing.git;openwrt-19.07</nowiki>
** src-git telephony <nowiki>https://git.openwrt.org/feed/telephony.git;openwrt-19.07</nowiki>
**src-git telephony <nowiki>https://git.openwrt.org/feed/telephony.git;openwrt-19.07</nowiki>





Revision as of 09:42, 10 September 2020

How does one create a "build system" (AKA Cross Compile / Cross-Compile / CrossCompile Build System) for OpenWRT?

Other Tutorials

Environment

  • Build System for Cross-Compiling: CentOS 7.8 (There seem to be some missing packages in CentOS 8, so CentOS 7.8 was chosen)
  • OpenWRT 19.07.3 (Linux Kernel 4.14.180)
  • Linksys WRT3200ACM Platform Information (see here for additional information)

Steps (as of 9.2020 for the above Environment)

All of the below assumes one is storing files in the user's home directory.

OpenWRT recommends NOT compiling as a root users. To bypass this restriction;

  • export FORCE_UNSAFE_CONFIGURE=1 (the export command adds the variable to the current user session, it will not persist if logging off, confirm with printenv or export -p)

Obtain Source Files from OpenWRT

  • To clone into the current directory: git clone -b 19.07.3 https://github.com/openwrt/openwrt.git (downloads the 19.07 branch of OpenWRT, which also includes the latest version, 19.07.3)

Environment Variables

export FORCE_UNSAFE_CONFIGURE=1

Standard Location: PATH=~/openwrt/staging_dir/host/bin:$PATH

For examples on OpenWRT "Hello World" Examples: export PATH=/home/buildbot/source/staging_dir/host/bin:$PATH

For persistent settings across reboots or logins: Add to ~/.bash_profile file

feeds.conf.default, feeds.conf, ~/openwrt/feeds.con, ~/openwrt/

Script that attempts to set Linux environment default variables for Make / Cmake: ~/openwrt/staging_dir/host/share/cmake-3.15/Modules/Platform/UnixPaths.cmake

Other package default path variables ~/openwrt/include/package-defaults.mk

  • Created when git clone is used
    • Feeds Directory: ~/openwrt/feeds/packages/admin, utils, etc.
    • Feeds Symbolic Links in this Directory (for convenience?): ~/openwrt/package/feeds/packages/ (created when the ./scripts/feeds update -a command is used)

Notes on 9.7.2020

On Monday 9.7.2020 during the late afternoon (UTC-8) it was observed that OpenWRT 19.07.4 was released on Tuesday 9.8.2020. This would seem to indicate the server for OpenWRT downloads is somewhere in Europe.

The following interesting observations were made after the above noted event

  • git tag : Lists all "major" and "minor" version branches of OpenWRT available.
    • v17.01.0
    • v17.01.0-rc1
    • v17.01.0-rc2
    • v17.01.1
    • v17.01.2
    • v17.01.3
    • v17.01.4
    • v17.01.5
    • v17.01.6
    • v17.01.7
    • v18.06.0
    • v18.06.0-rc1
    • v18.06.0-rc2
    • v18.06.1
    • v18.06.2
    • v18.06.3
    • v18.06.4
    • v18.06.5
    • v18.06.6
    • v18.06.7
    • v18.06.8
    • v19.07.0
    • v19.07.0-rc1
    • v19.07.0-rc2
    • v19.07.1
    • v19.07.2
    • v19.07.3
    • v19.07.4
  • git branch -r : Shows available "major versions" of OpenWRT available.
    •   origin/HEAD -> origin/master
    •   origin/lede-17.01
    •   origin/master
    •   origin/openwrt-18.06
    •   origin/openwrt-19.07
  • git clone -b v19.07.3 https://github.com/openwrt/openwrt.git produces the following output
    • Cloning into '/root/openwrtSDK'... remote: Enumerating objects: 13, done. remote: Counting objects: 100% (13/13), done. remote: Compressing objects: 100% (11/11), done. remote: Total 530753 (delta 0), reused 6 (delta 0), pack-reused 530740 Receiving objects: 100% (530753/530753), 183.81 MiB | 3.68 MiB/s, done. Resolving deltas: 100% (362276/362276), done. Note: checking out 'f3f38f40da74a193b4177be8d0fa746d00a753ea'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name
    • ...and git branch produces this output: fatal: Not a git repository (or any of the parent directories): .git. (Given that "HEAD" refers to a local copy of OpenWRT, this is not an issue)
  • git clone -b openwrt-19.07 https://github.com/openwrt/openwrt.git produces the following output
    • Cloning into '/root/openwrt-19.07'... remote: Enumerating objects: 13, done. remote: Counting objects: 100% (13/13), done. remote: Compressing objects: 100% (11/11), done. remote: Total 530753 (delta 0), reused 6 (delta 0), pack-reused 530740 Receiving objects: 100% (530753/530753), 183.81 MiB | 3.69 MiB/s, done. Resolving deltas: 100% (362276/362276), done.
    • ...and git branch produces this output: * openwrt-19.07 (the asterisk indicates the "checked out" version if multiple versions existed)
  • On 9.6.2020 this was contents of the feeds file included with cloning OpenWRT using openwrt-19.07;
    • src-git base https://git.openwrt.org/openwrt/openwrt.git;v19.07.3
    • src-git packages https://git.openwrt.org/feed/packages.git^2e6bd4cb86682b224803325127d3f777d40b3231
    • src-git luci https://git.openwrt.org/project/luci.git^fb2f36306756d0d0782dcab8413a8bb7ec379e54
    • src-git routing https://git.openwrt.org/feed/routing.git^3f8571194c2765ed31aa73459e86c2ebf943d27d
    • src-git telephony https://git.openwrt.org/feed/telephony.git^036cd451c35b82b3d8cac519864986894d9f6958
  • On 9.7.2020 this was contents of the feeds file included with cloning OpenWRT with both the openwrt-19.07 and v19.07.3;
    • src-git packages https://git.openwrt.org/feed/packages.git;openwrt-19.07
    • src-git luci https://git.openwrt.org/project/luci.git;openwrt-19.07
    • src-git routing https://git.openwrt.org/feed/routing.git;openwrt-19.07
    • src-git telephony https://git.openwrt.org/feed/telephony.git;openwrt-19.07