Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docs:guide-developer:toolchain:buildroot.exigence.macosx [2022/04/01 07:33] – improving the "warning" seciton under HomeBrew, changed indentations to bring paragraphs more left-side, etc. aterikdocs:guide-developer:toolchain:buildroot.exigence.macosx [2022/04/04 11:52] (current) – adding info on "PumpKIN" tool (opensource, free, GUI based TFTP server & client for macOS), etc aterik
Line 6: Line 6:
  
 Tested with [[wp>MacOS|macOS]] 10.15.7 (Darwin v19.6.0), [[wp>Xcode|Xcode]] 12.1 build 12A7403, & packages from homebrew.\\ Tested with [[wp>MacOS|macOS]] 10.15.7 (Darwin v19.6.0), [[wp>Xcode|Xcode]] 12.1 build 12A7403, & packages from homebrew.\\
-Tested with [[wp>MacOS|macOS]] 11.6 (Darwin v20.6.0) [[wp>Xcode|Xcode]] 13.0 build 13A233, arm64 kernel, & packages from homebrew.\\+Tested with [[wp>MacOS|macOS]] 11.6 (Darwin v20.6.0) [[wp>Xcode|Xcode]] 13.0 build 13A233, arm64 kernel, & packages from homebrew. 
 ● to view macOS version numbers, etc, run **:** ''sw_vers''\\ ● to view macOS version numbers, etc, run **:** ''sw_vers''\\
 ● to view Darwin version numbers, etc, run **:** ''sysctl kern.osrelease''\\ ● to view Darwin version numbers, etc, run **:** ''sysctl kern.osrelease''\\
Line 13: Line 14:
  
 === macOS & Darwin Unix: === === macOS & Darwin Unix: ===
-Brief/short info on macOS and Darwin Unix **:** [[wp>MacOS|macOS]] contains //(BSD licensed, and)// opensource [[wp>Darwin_(operating_system)|Darwin]]<sup>[[https://github.com/apple/darwin-xnu|2]]</sup> Unix based XNU hybrid core/kernel, & also contains Darwin unix as internal subsystem to support commandline based tools & functionalities. Darwin supports POSIX API because of its BSD unix based lineage and because of largely FreeBSD userland tools, etc. GUI layer is proprietary (not-opensource) licensed. Build tools need to be compatible with "darwin".  +You can skip this section //(if you want to)//, & goto next section ''A. Obtain build toolchain''.\\ 
-  * In macOS v10.15.x //(Catalina)// & earlier versions, the Kernel modules, hardware drivers, etc are known-as & usually loaded as kext //(kernel extension)// inside kernel space/layer, & uses [[wp>Loadable_kernel_module|LKM]] with KPI //(kernel programming interface)// & d-KPI<sup>[[https://developer.apple.com/support/kernel-extensions/|1]]</sup> //(deprecated-KPI)//. But, since macOS v11 //(Big Sur)// & newer versions, the newer sext/sysext //(system extension)// and (older) kext without d-KPI are used in user space/layer. And newer dext //(driver extension)// in macOS v11 & later also runs in user space/layout, and replaces earlier I/O kit. So hardware/software developer/MFR should still supply sext/dext & kext (without d-KPI).+Brief/short info on macOS and Darwin Unix **:** [[wp>MacOS|macOS]] contains APSL //(Apple Public Source License)// & BSD //(Berkeley Software Distribution)// and others licensed opensource<sup>[[https://github.com/apple/darwin-xnu|1]], [[https://code.google.com/p/voodoo-kernel/source/checkout|2]], [[https://opensource.apple.com/|3]]</sup> [[wp>Darwin_(operating_system)|Darwin]] Unix based XNU<sup>[[wp>XNU|1]]</sup> hybrid core/kernel, & also contains Darwin unix as internal subsystem to support commandline based tools (from various Unix Linux distros). Darwin supports POSIX API because of its BSD unix based lineage and because of largely FreeBSD userland tools, etc. Most drivers, & GUI layer's most components are proprietary (not-opensource) licensed. Build tools need to be compatible with "darwin"
 +  * In macOS v10.15.x //(Catalina)// & earlier versions, the Kernel modules, hardware drivers, etc are known-as & usually loaded as kext //(kernel extension)// inside kernel space/layer, & uses [[wp>Loadable_kernel_module|LKM]] with KPI //(kernel programming interface)// & d-KPI<sup>[[https://developer.apple.com/support/kernel-extensions/|1]]</sup> //(deprecated-KPI)//. But, since macOS v11 //(Big Sur)// & newer versions, the newer sext/sysext //(system extension)// and (older) kext without d-KPI are used in user space/layer. And newer dext //(driver extension)// in macOS v11 & later also runs in user space/layout, and replaces earlier I/O kit. So hardware/software developer/MFR should still supply sext/dext & kext (without d-KPI). Earlier macOS/darwin used HFS partition, now uses APFS. 
 +  * A derivative, OpenDarwin project released last stable v7.2.1 on July 16, 2004, then shutdown on July 25, 2006. Some free software community, ISC, etc particiapted with Apple to develop OpenDarwin<sup>[[https://sourceforge.net/projects/darwinsource/|1]]</sup>, and some ideas were used to build GNU-Darwin<sup>[[http://gnu-darwin.org/|1]], [[https://sourceforge.net/projects/gnu-darwin/|2]]</sup>. Another derivative, PureDarwin<sup>[[https://github.com/PureDarwin/PureDarwin/wiki/Xmas|1]]</sup> released a preview based Darwin 9 with X11 GUI in 2015, followed by a command-line only 17.4 Beta based on Darwin 17 in 2019. 
 +  * Drivers**:** Wireless: [[http://wirelessdriver.sourceforge.net/|1]], [[http://sourceforge.net/projects/iwi2200|2]]. NIC: [[http://sourceforge.net/projects/darwin-tulip/|1]], [[http://sourceforge.net/projects/darwin-rtl8139|2]], [[http://sourceforge.net/projects/rtl8150lm|3]]. Zyxel modem: [[http://sourceforge.net/projects/darwinmodems|1]]. Card-readers: [[http://pccardata.sourceforge.net/|1]]. Ext2 & Ext3 (Linux filesystem support) under macOS: [[http://sourceforge.net/projects/ext2fsx/|1]], [[http://sourceforge.net/projects/ext2fuse|2]].
 \\ \\
  
  
 === A. Obtain build toolchain: === === A. Obtain build toolchain: ===
-Obtain build toolchain that is more suitable for Apple hardware & macOS & Darwin Unix.\\+Obtain build toolchain that is more suitable for Apple hardware & macOS & Darwin Unix. 
 ● Install __Xcode__ or __CLT__**:** ● Install __Xcode__ or __CLT__**:**
   - Obtain Xcode<sup>[[wp>Xcode|1]]</sup> from [[https://developer.apple.com/support/xcode/|here]]. Note**:** installer file download is over/near 5 GB, and needs 17+ GB space. Xcode 11.5 : 16,958,217,326 bytes (10.5 GB on disk).   - Obtain Xcode<sup>[[wp>Xcode|1]]</sup> from [[https://developer.apple.com/support/xcode/|here]]. Note**:** installer file download is over/near 5 GB, and needs 17+ GB space. Xcode 11.5 : 16,958,217,326 bytes (10.5 GB on disk).
Line 26: Line 31:
     * obtain [[https://stackoverflow.com/questions/9329243/|Command-Line-Tools]]<sup>[[wp>Xcode|1]]</sup> (**CLT**) from [[https://developer.apple.com/download/|here]], or Load it from ''App Store'' in macOS, or use below command, or obtain apple-gcc package via package manager software. CLT is also known as Command Line Developer Tools. Note**:** installer download is under/near 300 MB, and may need around ~ 2 GB space.     * obtain [[https://stackoverflow.com/questions/9329243/|Command-Line-Tools]]<sup>[[wp>Xcode|1]]</sup> (**CLT**) from [[https://developer.apple.com/download/|here]], or Load it from ''App Store'' in macOS, or use below command, or obtain apple-gcc package via package manager software. CLT is also known as Command Line Developer Tools. Note**:** installer download is under/near 300 MB, and may need around ~ 2 GB space.
     * inside ''Terminal''<sup>[[wp>Terminal_(macOS)|1]]</sup> utility/app, run this command to load CLT**:** <code bash>xcode-select --install</code>     * inside ''Terminal''<sup>[[wp>Terminal_(macOS)|1]]</sup> utility/app, run this command to load CLT**:** <code bash>xcode-select --install</code>
-      * to view installed CLT version number, run this command **:** ''pkgutil --pkg-info=com.apple.pkg.CLTools_Executables'' . If output not-showing verison number or showing msg that //"...No receipt..."// then CLT is not installed, or its bundled inside+with Xcode. To view pre-installed pkgs you may run **:** ''pkgutil --pkgs''\\ \\+      * to view installed CLT version number, run this command **:** ''pkgutil --pkg-info=com.apple.pkg.CLTools_Executables'' . If output not-showing verison number or showing msg that //"...No receipt..."// then CLT is not installed, or its bundled inside+with Xcode. To view pre-installed pkgs you may run **:** ''pkgutil --pkgs'' 
 ● To view toolchain version numbers, directory, etc info, run this command**:** <code bash>gcc -v && llvm-gcc -v && clang -v</code> ● To view toolchain version numbers, directory, etc info, run this command**:** <code bash>gcc -v && llvm-gcc -v && clang -v</code>
 ● you may also run ''xcrun clang'' command, & see what it outputs**:** <code bash>UserMacBook:~ username$  xcrun clang ● you may also run ''xcrun clang'' command, & see what it outputs**:** <code bash>UserMacBook:~ username$  xcrun clang
 clang: error: no input files</code> clang: error: no input files</code>
-  * if output is NOT this message ''clang: error: no input files'', then either installation has error or executable files are not in PATH env var correctly.\\ \\+  * if output is NOT this message ''clang: error: no input files'', then either installation has error or executable files are not in PATH env var correctly. 
 ● Build toolchain (Xcode or CLT) from apple is used (in first stage) to create a software components for openwrt build purpose, then (in second stage) those software components are used to create the final openwrt components, in order to create openwrt firmware, etc, that are widely compatible with cross-platform.\\ ● Build toolchain (Xcode or CLT) from apple is used (in first stage) to create a software components for openwrt build purpose, then (in second stage) those software components are used to create the final openwrt components, in order to create openwrt firmware, etc, that are widely compatible with cross-platform.\\
 \\ \\
Line 55: Line 62:
  
 === C. Install Package-Manager: === === C. Install Package-Manager: ===
-Install any one of the (3rd-party) [[wp>List_of_software_package_management_systems|package manager]] (**pkg-mngr**) software in macOS**:**\\ +Install any one of the (3rd-party) [[wp>List_of_software_package_management_systems|package manager]] (**pkg-mngr**) software in macOS**:** 
-\\ + 
-(1) Homebrew, or (2) MacPorts, or (3) pkgsrc.\\ +(1) Homebrew, or (2) MacPorts, or (3) pkgsrc. 
-\\ + 
-1. [[https://Brew.sh/|Homebrew]]**:**\\ +  * Notice/CAUTION **:** Usually most of the time, using source //(or binary)// packages distributed from primary/original author/developer is much much better than next-level (aka: downstreampackage distributorslikeOS/distro developer //(dev)//, computer MFR //(manufacturer)//, etc distributed packagesAnd usually most of the time OS/distro dev's or computer MFR's distributed package is better than 3rd-party Package-Manager //(pkg-mngr)// maintainer distributed packageBut often OS/distro dev or computer MFR does not update their pre-included packagesor uses older versionor does not include option for user to obtain other/related packages (from OS/distro dev or computer MFR)So in such casesnext best option isobtain the //(src/bin)// package from original author's website for your OS/distro via secure conneciton. //(Package'source (srccode/file needs to be compiled to build package'binary/executable (bin) file⒮)//. If original author shares only sourcethen that means author wants you to compile sourceSo your next best option iscompile the source obtained from original author/developer, after you patched the source to make it compatible & compilable for your OS/distro. Compile //(compilation)// process builds package'binary //(aka: executable)//, etc file(s). If previous steps are not possible for you, //(because"patching" requires software developmentand OS/distro platformand harwdare platform based knowledge, etc)// then in such cases using 3rd-party package-manager //(pkg-mngr)// may be necessary for youSome //(3rd-party)// pkg-mngr by default downloads package's source //(and dependencies / pre-requisites)// & also auto compiles it in your OS/distro to create/build binary file(s). Usually package'maintainer patches the original-source to make it suitable for compile/run in target OS/distroSome //(3rd-party)// pkg-mngr downloads binary that is pre-built with already patched source for your OS/distro. When binaries are properly compiled built in your own OS/distro then that is more trustworthy better, than faster & directly download (pre-built) binaries. "Trust" is more important & safer secure, than "Fast"/"Slow"macOS has native pkg-mngr known as ''App Store'', it has various or too many unfair restrictions & wallsset by macOS dev apple, does not allow various types of open-source apps, etc, So that is why sometime we need to use 3rd-party pkg-mngrYou must not download compile use source //(src)// or binary //(bin)// from any non-original author website or postEither download src/bin over secure/encrypted connection from original-author's website, OR, you must use OpenPGP/GPG/PGP based authentication to make sure downloaded src/bin is indeed actually released by actual original authorPkg-manager tool internally includes option to use //(some form of)// authentication verification for any download. 
-it is opensource & free //(3rd-party)// pkg-mngr for macOS, etc.\\ + 
-● Notice WARNING CAUTION **:** homebrew is opensource pkg-mngr but this tool is programmed by it's developers to share user's usage & private data with Ggl (including IP-address, which is private & tracking data), [[wp>Criticism_of_Google|Ggl]] stores user's all data forever for whatever purpose they want to use it for<sup>[[https://news.ycombinator.com/item?id=11566720|1]][[https://docs.brew.sh/Analytics|2]]</sup>, homebrew also changes permission where it should avoid<sup>[[https://applehelpwriter.com/2018/03/21/how-homebrew-invites-users-to-get-pwned/|1]]</sup>.\\ +**1**. **[[https://Brew.sh/|Homebrew]]:**\\ 
-  * If you want to, you can/may **avoid //(or skip)// reading below paragraphs under this "Warning" section**. +it is opensource & free //(3rd-party)// pkg-mngr for macOSetc. Homebrew was built 7yrs after MacPorts pkg-mngr //(formerly known as ''DarwinPorts'')//
-  * if cigarette can have cancer warning on smoking, then other life-threatning or very harmful or human-rights violating things also needs to have warning / caution / notice label. Excessive data collection & sharing by Ggl & similar other businesses have caused life-threat or grave harms for multiple individuals, //(and also in mass-scale)//. Criminals have-to register & notify various database to show where they are locatedand criminals cannot locate themselves close to non-criminals areas. See more infocourt case info on Ggl & similar others: [[https://www.BBC.co.uk/news/technology-11827862|1]], [[https://www.HRW.org/english/docs/2006/08/09/china13940.htm|2]], [[https://www.TheGuardian.com/world/2013/jun/06/us-tech-giants-nsa-data|3]], [[http://GeekFeminism.org/2010/06/10/hacker-news-and-pseudonymity/|4]], [[http://curia.Europa.eu/jcms/jcms/P_127116/|5]], [[https://www.NYTIMES.com/2014/05/14/technology/google-should-erase-web-links-to-some-personal-data-europes-highest-court-says.html|6]][[https://www.Reuters.com/article/us-google-privacy-france-idUSBREA161BS20140207|7]][[https://www.Bloomberg.com/apps/news?pid=20601109&sid=agImLlGaNKaw&refer=home|8]], [[https://www.NYTIMES.com/2013/11/19/technology/google-to-pay-17-million-to-settle-privacy-case.html?partner=rss&emc=rss|9]], [[https://www.NYTIMES.com/2019/09/04/technology/google-youtube-fine-ftc.html|10]][[https://www.NYTIMES.com/2013/06/07/us/nsa-verizon-calls.html|11]], [[https://www.Salon.com/2014/02/05/4_ways_google_is_destroying_privacy_and_collecting_your_data_partner/|12]], [[http://EPIC.org/privacy/gmail/faq.html#13|13]], [[https://web.archive.org/web/20100528181755/http://finance.yahoo.com/news/Google-grabs-personal-info-apf-2162289993.html?x=0|14]], [[https://www.ComputerBase.de/2011-09/google-plus-klarnamenzwang-disput-verwirrt-unionspolitiker/|15]], [[http://www.DW-World.de/dw/article/0,,6006085,00.html|16]], [[http://SeerPress.com/czech-republic-blocks-googles-data-mapping-feature/7691/|17]], [[https://www.ZDnet.com/article/dutch-government-report-says-microsoft-office-telemetry-collection-breaks-gdpr/|18]], [[https://www.ASPI.org.au/report/uyghurs-sale|19]], [[https://www.ACLU.org/blog/national-security-technology-and-liberty/aclu-files-lawsuit-challenging-nsas-patriot-act-phone|20]], [[https://web.archive.org/web/20130609085431/http://www.paul.senate.gov/?p=press_release&id=838|21]], few more [[wp>Google_litigation|here]]. + 
-  * Assistance to such mass scale data theft / collection activities are also given + provided + supported + promoted by (official/unofficialpartners, supporters & enablers & software developers, etc. All of them are assisting & submitting private<sup>[[wp>Right_to_privacy|1]], [[wp>Information_privacy|2]], [[wp>Consumer_protection|3]], [[wp>Consumer_privacy|4]]</sup> & tracking data into Ggl & others. So all of our all activities are digitally tracked recorded //(without court warrants)//, it means we are all inside virtual / cyber / digital jail(s), we are arrested+observed+monitored inside jail(swithout commiting crime and despite our objections to any such jails(s), such //[[wp>Privacy_concerns_regarding_Google|(anti privacy-rights, anti freedom/liberty, etcactivities]]//<sup>[[wp>Invasion_of_privacy|1]]</sup> are not only unconstitutional in USA<sup>[[wp>Privacy_laws_of_the_United_States#Constitutional_basis_for_right_to_privacy|1]][[wp>Fourth_Amendment_to_the_United_States_Constitution|2]], [[wp>California_Consumer_Privacy_Act|3]], [[wp>Consumer_protection|4]]</sup>, those activities also violating international<sup>[[https://research.un.org/udhr70/12-21|1]]</sup> agreements & laws<sup>[[wp>Right_to_privacy|1]], [[wp>Privacy_law|2]], [[wp>Information_privacy_law|3]]</sup> on human-rights<sup>[[https://www.UN.org/en/about-us/universal-declaration-of-human-rights|1]][[wp>General_Data_Protection_Regulation|2]]</sup>, & such activities also create more opportunities for more mass scale crimes & violations & exploitations, & also create more opportunities to go after //(or target)// specific individual human/person(s). +● Notice WARNING __CAUTION__ **:** homebrew is opensource pkg-mngr but this tool uses Google Analytics to collect usage telemetry. If you use homebrew: use OPT OUT option/command <code bash>brew analytics off</code> or by setting <code bash>export HOMEBREW_NO_ANALYTICS=1</code> 
-  * if you use homebrew**:** then use OPT OUT option/command in homebrew, to opt out from their data collection/theft of your usage/personal data, and that is not enough, also load specific site connection blocker //(to block Ggl [[wp>Privacy_concerns_regarding_Google|Analytic]], etc)// configuration or settings in your computer or in your firewall app/rule or in your computer'''hosts''<sup>[[https://github.com/StevenBlack/hosts|1]]</sup> file. + 
-    * macOS (until 10.14.x macOS Mojaveuses ''/etc/hosts'' file& macOS (10.15.x) Catalina uses ''/private/etc/hosts'' file. <code>0.0.0.0 google-analytics.com +   
-0.0.0.0 www.google-analytics.com</code> +**2****[[https://www.MacPorts.org/|MacPorts]]:**\\ 
-    * sometime above ''hosts'' file based solution is not-enough : ip-addresses (and ranges) of Ggl Analytic site need to be blocked carefully via firewall rules, for specific app(s)/tool(s). +it is opensource & free //(3rd party)// pkg-mngr //(package manager)// for macOS, etc, & it does not steal your usage/private data. MacPorts [[https://guide.macports.org/|guide]]. It can obtain source or binary or both //(for most)// package. After downloading source, it can auto compile in your OS/distro to create/build trustworthy binary files. MacPorts was created 7yrs before homebrew. [[wp>MacPorts|wp]].\\ 
-  * Most of the time, private data & private tracking-data theft / collection / recording by //(Ggl or other)// search engine is not possible to block normally at all. Whenever you or an app/tool connects with //(Ggl or other)// search engine **directly** to search for somethingthen that //(Ggl or other)// search engine can collect / record ip-addresssearch stringapp infoUSER-AGENT info, etc various private & tracking data/info, and then some search engine company/corporation //(in.example: Ggl)// stores such private & tracking data permanently forever. So also see: [[https://stackoverflow.com/a/1251931|1]], [[wp>Search_engine_privacy|2]], [[https://www.eff.org/deeplinks/2020/03/google-says-it-doesnt-sell-your-data-heres-how-company-shares-monetizes-and|eff]]. +● download/obtain MacPorts installer dmg/pkg file, install it. More info [[https://www.macports.org/install.php|here]].\\ 
-  * so to overcome this type of mass-scale & human-rights violating data tracking & theft, you would need to use proxy or VPN or Tor or SSH based **indirect** connection //(or tunnel or network-connection)// into //(Ggl or other)// search engineSearch engine //(in.example: Ggl)// will still record/steal ip-address tracking //(and other private)// data //(forever)// but that will be VPN or Tor or SSH or proxy exit-point'ip-address. +● Before MacPorts is installed, your ''~/.bash_profile'' file (inside your home directory) may look close to like this**:** <code bash>
-  * do not encourage //(your family or)// others to expand data theft or digital jail or more abuse or more violation. +
-    * create //(tiny or small or big)// barriers/obstacles for greedy monsters & criminals who are recording private data.\\ private data is your private property. your voice, your face, your fingerprint, your body, your private-key, your own //(personal private)// data, etc are your private property. if any software transfers/stores/copies these private data out of your device into any type of remote server or remote cloud or remote processing, then it violated your privacy rights other human-rights//( CPU, GPU, etc are now powerful to process such data inside a computing device. Even if it is slow to process, private data cannot goto remote/cloud location, if it goes then it does not remain "privateanymore, & that is a violation. Privacy security of private dataetc are more important for human safety than convenience of "fast"/"fasterword based deceptive responses )//.\\ your family is your family property, your family is not any other family's or any other non-family person's property. but you do not have right to violate human-rights on even your own family members.\\ to prevent violations & to prevent spread of harm & to prevent impunity for crimes //(or violations)//, when any private //(or public)// entity //(or association or business)// which begins to store/collect multiple other public / person's info, or when begins to do any type of business or when begins to provide service for multiple people/personthen this type of entity //(or association or business)// MUST be under inspection, oversight, accountability, etc. public element of accountability data must be made available to publicso that public is informed & can take informed decision.\\ access to information is human-rights //(essential for human brain & healthy mind)//, in the way: access to water is human-rights //(essential for human body)//.\\ if such entity //(or association or business)// can operate with impunity of their crimes human-rights violations consumer-rights violations, then it is not-good & not-beneficial entity in the long run for human //(or earth)//.\\ Human-rights violating laws passed by corrupt group of politicians or brainwashed (or ignorant or unbalancely informed) citizens are actually not-good law & actually not-"law" //(such is "corruption" & "violation" & "injustice", "inequality" etc)// & such is not-good for human / family / society / community / country / earth in the long run.\\ in.example: if you mock or say to a person without shirt, he is inferior than you //(or your brother or your father)//, after you //(or your brother or your father)// steal the shirt from him //(or from his brother or father, who were to give the shirt to him)//, etc, then YOU are inferior, as loss of shirt situation is created by you //(or your brother or your father)//, you not only abused the person verbally //(knowingly or unknowingly)//, you //(or your brother or your father)// also deprived the person from what he was to receive.\\ And after you create obstacle(s) for recording ip-address tracking, etc data, we strongly request to you/user, that you/user also MUST not engage into any type of human-rights violating or criminal or abusive activities, you/user MUST have to uphold //(good)// moralities ethics & humanity that is beneficial for ALL human/people, for earth/environment, etc, for now & future generations.\\ Inside cyber //(aka: digital, virtual, internet)// worldyour encryption //(aka: crypto)// key //(or certificate)// is your helmet + shirt/jacket + pant + shoe protection/tool to keey your body protected shielded from natural or artifical harms. Create multiple crypto keyscreate multi-layer encrypted connections to destination(s), to create delay in decryption/theft of data. Connect with others in related fields to continue to improve your keys & connection security. Trustworthy beneficial encryption creates protection & safety & security for life-saving devices/tools inside digital/cyber world. Do not support entities who undermine this essential //(aka: fundamental)// protection.\\ +
-\\ +
-2. [[https://www.MacPorts.org/|MacPorts]]**:**\\ +
-it is opensource & free //(3rd party)// pkg-mngr //(package manager)// for macOS, etc, & it does not steal your usage/private data. MacPorts [[https://guide.macports.org/|guide]]. +
-  download/obtain MacPorts installer dmg/pkg file, install it. More info [[https://www.macports.org/install.php|here]]. +
-  Before MacPorts is installed, your ''~/.bash_profile'' file (inside your home directory) may look close to like this**:** <code bash>+
 # .bash_profile for BASH # .bash_profile for BASH
 # PROMPT_COMMAND=update_terminal_cwd # PROMPT_COMMAND=update_terminal_cwd
Line 84: Line 84:
 PS4='+ ' PS4='+ '
 PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
-export PATH</code> +export PATH 
-  MacPorts installer webpage will instruct you to add ''macports'' pkg-mngr executable file locations in the end of your PATH variable, like this**:** <code bash>PATH="$PATH:/opt/macports/bin:/opt/macports/sbin"</code> +</code> 
-    * after you add above line manually in ''~/.bash_profile'' file, it will look like below**:** <code bash>+● MacPorts installer webpage will instruct you to add ''macports'' pkg-mngr executable file locations in the end of your PATH variable, like this**:** <code bash>PATH="$PATH:/opt/macports/bin:/opt/macports/sbin"</code> 
 +  * after you add above line manually in ''~/.bash_profile'' file, it will look like below**:** <code bash>
 # .bash_profile for BASH # .bash_profile for BASH
 # PROMPT_COMMAND=update_terminal_cwd # PROMPT_COMMAND=update_terminal_cwd
Line 94: Line 95:
 PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
 PATH="$PATH:/opt/macports/bin:/opt/macports/sbin" PATH="$PATH:/opt/macports/bin:/opt/macports/sbin"
-export PATH</code> +export PATH 
-    * you can use this command to edit the ''~/.bash_profile'' file**:** <code bash>sudo nano ~/.bash_profile</code> +</code> 
-  When MacPorts is installed, installer will add locations in PATH where macports port package executables are stored, inside the ''~/.bash_profile'' file. In that way, your macOS user account can find+use the installed macports port package files, after you login. But we have to change it little bit.\\ Here is what you will usually see in ''~/.bash_profile'' file (after macports is installed)**:** <code bash>+  * you can use this command to edit the ''~/.bash_profile'' file**:** <code bash>sudo nano ~/.bash_profile</code> 
 +● When MacPorts is installed, installer will add locations in PATH where macports port package executables are stored, inside the ''~/.bash_profile'' file. In that way, your macOS user account can find+use the installed macports port package files, after you login. But we have to change it little bit.\\ Here is what you will usually see in ''~/.bash_profile'' file (after macports is installed)**:** <code bash>
 # .bash_profile for BASH # .bash_profile for BASH
 # PROMPT_COMMAND=update_terminal_cwd # PROMPT_COMMAND=update_terminal_cwd
Line 111: Line 113:
 # MacPorts Installer addition on 2021-08-29_at_16:38:31: adding an appropriate PATH variable for use with MacPorts. # MacPorts Installer addition on 2021-08-29_at_16:38:31: adding an appropriate PATH variable for use with MacPorts.
 export PATH="/opt/local/bin:/opt/local/sbin:$PATH" export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
-# Finished adapting your PATH environment variable for use with MacPorts.</code> +# Finished adapting your PATH environment variable for use with MacPorts. 
-  **Change above codes**, into below code**:** <code bash>+</code> 
 +● **Change above codes**, into below code**:** <code bash>
 # .bash_profile for BASH # .bash_profile for BASH
 # PROMPT_COMMAND=update_terminal_cwd # PROMPT_COMMAND=update_terminal_cwd
Line 128: Line 131:
 # export PATH="/opt/local/bin:/opt/local/sbin:$PATH" # export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
 export PATH export PATH
-# Finished adapting your PATH environment variable for use with MacPorts.</code> +# Finished adapting your PATH environment variable for use with MacPorts. 
-  * in above we have disabled MacPorts based port package locations from PATH, but locations of MacPorts pkg-mngr itself are kept in PATH. The "PATH" is an essential environment variable which indicates the sequence of directories/folders where to look for a specific (executable) program. The changes we made, will allow newly installed (MacPorts) packages stay out of touch of other software which does not need to use them. These (MacPorts) packages are needed for development/build purpose of OpenWRT, so we will create a separate executable file (**''env.sh''**) to load PATH (and other build environment variables), which is suitable for using inside a shell-manager's specific shell TAB(s) only, for openwrt build/development purpose. See step/section **F** in below for details on creating this ''env.sh'' file.\\ +</code> 
-\\ +  * in above we have disabled MacPorts based port package locations from PATH, but locations of MacPorts pkg-mngr itself are kept in PATH. The "PATH" is an essential environment variable which indicates the sequence of directories/folders where to look for a specific (executable) program. The changes we made, will allow newly installed (MacPorts) packages stay out of touch of other software which does not need to use them. These (MacPorts) packages are needed for development/build purpose of OpenWRT, so we will create a separate executable file (**''env.sh''**) to load PATH (and other build environment variables), which is suitable for using inside a shell-manager's specific shell TAB(s) only, for openwrt build/development purpose. See step/section **F** in below for details on creating this ''env.sh'' file.
-3. [[https://www.pkgsrc.org/|pkgsrc]]**:**\\ +
-it is opensource & free //(3rd-party)// pkg-mngr //(package-manager)// for NetBSD unix OS, but can also be used by other OS, including macOS/darwin. Download: [[https://pkgsrc.joyent.com/|dev]], Src: [[https://github.com/NetBSD/pkgsrc.git|gh]], More info: [[wp>Pkgsrc|wp]].+
  
-Warning **:** macOS keeps the default PATH in ''/etc/paths'' file, but **do not edit/change it**, because such change can affect entire or many parts of macOS system. We only need to change build environment only for 1 or 2 shell instance(s), and not for entire macOS system, and also not for all other apps in macOS.\\+Tips for MacPorts users**:** 
 +  * to search for a pkg: ''port search --name --glob '*pkgName*' '' 
 +  * to view info on a pkg: ''port info pkgName'' 
 +  * to view what depencies are needed for a pkg: ''port deps pkgName'' 
 +  * to install a pkg: ''sudo port install pkgName'' 
 + 
 +**3**. **[[https://www.pkgsrc.org/|pkgsrc]]:**\\ 
 +it is opensource & free //(3rd-party)// pkg-mngr //(package-manager)// for NetBSD unix OS, but can also be used by other OS, including macOS/darwin. It can obtain binary packages. Download: [[https://pkgsrc.joyent.com/|dev]], Src: [[https://github.com/NetBSD/pkgsrc.git|gh]], More info: [[wp>Pkgsrc|wp]]. 
 + 
 +__Warning__ **:** macOS keeps the default PATH in ''/etc/paths'' file, but **do not edit/change it**, because such change can affect entire or many parts of macOS system. We only need to change build environment only for 1 or 2 shell instance(s), and not for entire macOS system, and also not for all other apps in macOS.\\
 \\ \\
  
Line 145: Line 155:
 hdiutil create -size 20g -type SPARSE -fs "Case-sensitive HFS+" -volname OpenWrt OpenWrt.sparseimage hdiutil create -size 20g -type SPARSE -fs "Case-sensitive HFS+" -volname OpenWrt OpenWrt.sparseimage
 hdiutil attach OpenWrt.sparseimage</code> hdiutil attach OpenWrt.sparseimage</code>
-    * the command ''cd ~'' in above is taking developer-user inside the HOME directory of user-account in macOS, then ''OpenWrt.sparseimage'' file is created there. But if you want to create the SPARSE image file in a different directory, then change the ''cd ~'' line & go inside your preferred volume/directory.\\ \\ +  * the command ''cd ~'' in above is taking developer-user inside the HOME directory of user-account in macOS, then ''OpenWrt.sparseimage'' file is created there. But if you want to create the SPARSE image file in a different directory, then change the ''cd ~'' line & go inside your preferred volume/directory. 
-● Optional/Informational**:**\\ + 
-    * if you want to open the ''OpenWRT'' Volume (aka: Drive, aka: Disk) after creating then use below command as 3rd-command line in above**:** <code bash>+● Optional/Informational**:** 
 +  * if you want to open the ''OpenWRT'' Volume (aka: Drive, aka: Disk) after creating then use below command as 3rd-command line in above**:** <code bash>
 hdiutil attach OpenWrt.sparseimage -autoopenrw</code> hdiutil attach OpenWrt.sparseimage -autoopenrw</code>
-    * after a reboot, if ''OpenWRT'' volume is not available in your macOS, then run**:** <code bash>+  * after a reboot, if ''OpenWRT'' volume is not available in your macOS, then run**:** <code bash>
 cd ~ && hdiutil attach OpenWrt.sparseimage -autoopenrw</code> cd ~ && hdiutil attach OpenWrt.sparseimage -autoopenrw</code>
-    * if you want to keep the ''OpenWRT'' volume always attached, then**:** <code bash>+  * if you want to keep the ''OpenWRT'' volume always attached, then**:** <code bash>
 cd ~ && sudo hdiutil attach OpenWrt.sparseimage -notremovable -autoopenrw</code> cd ~ && sudo hdiutil attach OpenWrt.sparseimage -notremovable -autoopenrw</code>
-    * if you want to detach (aka: unmount) the ''OpenWRT'' volume, then**:** <code bash>+  * if you want to detach (aka: unmount) the ''OpenWRT'' volume, then**:** <code bash>
 hdiutil detach /Volumes/OpenWrt</code> hdiutil detach /Volumes/OpenWrt</code>
-    * More info on ''hdiutil'' is [[https://www.unix.com/man-page/OSX/1/hdiutil/|here]].+  * More info on ''hdiutil'' is [[https://www.unix.com/man-page/OSX/1/hdiutil/|here]].\\
 \\ \\
  
  
 === E. Goto OpenWRT build volume: === === E. Goto OpenWRT build volume: ===
-Go inside the OpenWRT build volume, with below command, in Terminal**:** <code bash>cd /Volumes/OpenWrt</code>\\+Go inside the OpenWRT build volume, with below command, in Terminal**:** <code bash>cd /Volumes/OpenWrt</code>
 \\ \\
  
  
 === F. Create location indicator & build environment file: === === F. Create location indicator & build environment file: ===
-● Create a file called **''env.sh''** inside ''/Volumes/OpenWrt'' to indicate location of installed packages. It will also help us to create openwrt build friendly environment, inside a specific shell [[wp>Tab_(interface)|tab]]/instance in shell-manager software like ''Terminal''.\\+● Create a file called **''env.sh''** inside ''/Volumes/OpenWrt'' to indicate location of installed packages. It will also help us to create openwrt build friendly environment, inside a specific shell [[wp>Tab_(interface)|tab]]/instance in shell-manager software like ''Terminal''.
   * This is to allow packages from pkg-mngr (which we will install in next step) to be used, instead of the macOS provided ones.   * This is to allow packages from pkg-mngr (which we will install in next step) to be used, instead of the macOS provided ones.
  
-● For **x86_64** Apple hardware, & when you have **MacPorts**, then create ''env.sh'' file with below content, save it inside ''/Volumes/OpenWrt'' location**:** <file bash env.sh>+Based on your pkg-mngr //(package-manager)//, follow one of the below appropriate section**:** 
 + 
 +● For **x86_64** Apple hardware, & when you have **MacPorts** pkg-mngr, then create ''env.sh'' file with below content, save it inside ''/Volumes/OpenWrt'' location**:** <file bash env.sh>
 #!/opt/local/bin/bash #!/opt/local/bin/bash
 PS1='\h:\W \u\$ ';PS2='> ';PS4='+ '; PS1='\h:\W \u\$ ';PS2='> ';PS4='+ ';
Line 214: Line 227:
 PATH="/opt/homebrew/opt/findutils/libexec/gnubin:$PATH" PATH="/opt/homebrew/opt/findutils/libexec/gnubin:$PATH"
 export PATH export PATH
-</code> +</code>\\ 
-  Optional **:** you may check [[https://docs.brew.sh/Installation|homebrew official page]] or [[https://guide.macports.org/|MacPorts-guide]] if you need more information related to PATH variable, or other info on pkg-mngr. + 
-  * Optional **:** turn ''env.sh'' file an executable shell script file**:** ''chmod +x /Volumes/OpenWrt/env.sh''+● Optional**:*
 +  * you may check [[https://docs.brew.sh/Installation|homebrew official page]] or [[https://guide.macports.org/|MacPorts-guide]] if you need more information related to PATH variable, or other info on pkg-mngr. 
 +  * turn ''env.sh'' file an executable shell script file**:** ''chmod +x /Volumes/OpenWrt/env.sh''
 \\ \\
  
  
 === G. Install necessary packages: === === G. Install necessary packages: ===
-Install necessary packages via pkg-mngr, packages which help to build openwrt components. Use below commands inside a shell instance/tab in ''Terminal''. Note: Packages will be installed inside macOS default volume, not inside ''/Volumes/OpenWrt''\\ +Install necessary packages via pkg-mngr, packages which help to build openwrt components. Use below commands inside a shell instance/tab in ''Terminal''. Note: Packages will be installed inside macOS default volume, not inside ''/Volumes/OpenWrt'' 
-\\+ 
 +Based on your pkg-mngr //(package-manager)// follow one of the below appropriate section**:** 
 ● if you have **homebrew** pkg-mngr then run this command**:** <code bash> ● if you have **homebrew** pkg-mngr then run this command**:** <code bash>
 brew install coreutils findutils gawk grep gnu-getopt gnu-tar wget diffutils git-extras quilt svn make ncurses pkg-config</code> brew install coreutils findutils gawk grep gnu-getopt gnu-tar wget diffutils git-extras quilt svn make ncurses pkg-config</code>
-  * in above, homebrew command does **not** include the pre-requisites (aka: dependencies) packages mentioned [[:docs:guide-developer:toolchain:install-buildsystem|here]].\\ +  * in above, homebrew command does **not** include the pre-requisites (aka: dependencies) packages mentioned [[:docs:guide-developer:toolchain:install-buildsystem|here]]. 
-\\+
 ● if you have **MacPorts** pkg-mngr then run below 2 commands**:** <code bash> ● if you have **MacPorts** pkg-mngr then run below 2 commands**:** <code bash>
 source ~/MacPorts.sh source ~/MacPorts.sh
 sudo port install libiconv gettext-runtime coreutils findutils gwhich gawk zlib pcre bzip2 ncurses grep getopt gettext-tools-libs gettext diffutils sharutils util-linux libxslt libxml2 help2man readline gtime gnutar unzip zip lzma xz libelf fastjar libusb libftdi0 expat sqlite3 openssl3 openssl kerberos5 dbus lz4 libunistring nettle icu gnutls p11-kit wget quilt subversion gmake pkgconfig libzip cdrtools ccache curl xxhashlib rsync libidn perl5 p5.28-xml-parser p5.30-xml-parser p5-extutils-makemaker p5-data-dumper boost-jam boost boost-build bash bash-completion binutils m4 flex intltool patchutils swig git-extras git openjdk17 openjdk7-zulu luajit libtool glib2 file python27 python310 libzzip mercurial asciidoc sdcc gnu-classpath</code> sudo port install libiconv gettext-runtime coreutils findutils gwhich gawk zlib pcre bzip2 ncurses grep getopt gettext-tools-libs gettext diffutils sharutils util-linux libxslt libxml2 help2man readline gtime gnutar unzip zip lzma xz libelf fastjar libusb libftdi0 expat sqlite3 openssl3 openssl kerberos5 dbus lz4 libunistring nettle icu gnutls p11-kit wget quilt subversion gmake pkgconfig libzip cdrtools ccache curl xxhashlib rsync libidn perl5 p5.28-xml-parser p5.30-xml-parser p5-extutils-makemaker p5-data-dumper boost-jam boost boost-build bash bash-completion binutils m4 flex intltool patchutils swig git-extras git openjdk17 openjdk7-zulu luajit libtool glib2 file python27 python310 libzzip mercurial asciidoc sdcc gnu-classpath</code>
-  * in above, MacPorts command includes the pre-requisites (aka: dependencies) packages mentioned [[:docs:guide-developer:toolchain:install-buildsystem|here]]. Space initially used by all of these packages **:** 4,190,442,792 bytes (2.57 GB on disk) for 129,623 items, (as of March-11, 2022). Note**:** As different packages are continuously modified & improved by their devs or releaser or adopter or maintainer, so their occupying space size & items count will be different in your computer in different time. +  * in above, MacPorts command includes the pre-requisites (aka: dependencies) packages mentioned [[:docs:guide-developer:toolchain:install-buildsystem|here]]. Space initially used by all of these packages **:** 4,190,442,792 bytes (2.57 GB on disk) for 129,623 items, (as of March-11, 2022). Note**:** As different packages are continuously modified & improved by their devs or releaser or adopter or maintainer, so their occupying space size & items count will be different in your computer in different time.\\ 
-  Optional tools via MacPorts**:** +● Optional tools via MacPorts**:** 
-    * if you need ''picocom'' tool to communicate with router via [[:docs:techref:hardware:port.serial|serial]] adapter/cable<sup>[[:docs:techref:hardware:port.serial.cables|1]]</sup> connection, then**:** <code bash>sudo port install picocom</code> +  * if you need ''picocom'' tool to communicate with router via [[:docs:techref:hardware:port.serial|serial]] adapter/cable<sup>[[:docs:techref:hardware:port.serial.cables|1]]</sup> connection, then**:** <code bash>sudo port install picocom</code> 
-    * if you need last stable ''openssh'' (aka: ''ssh''), ''sftp'', ''scp'' tools for [[:docs:guide-quick-start:sshadministration|secure]] communication or file-transfer, then**:** <code bash>sudo port install openssh</code> +  * if you need last stable ''openssh'' (aka: ''ssh''), ''sftp'', ''scp'' tools for [[:docs:guide-quick-start:sshadministration|secure]] communication or file-transfer, then**:** <code bash>sudo port install openssh</code> 
-    * if you need TFTP daemon/server (''tftpd'') to [[:docs:guide-user:troubleshooting:tftpserver|receive]] files from router, then**:** <code bash>sudo port install tftp-hpa</code> +  * if you need to use last stable ''telnet''<sup>[[:toh:netgear:telnet.console|1]]</sup>, ''ftp'', ''rsh'', ''rlogin'', ''tftp''<sup>[[:docs:guide-user:troubleshooting:tftpserver|1]]</sup> tools and corresponding daemons/servers, then**:** <code bash>sudo port install inetutils</code> 
-    * if you need to use last stable ''telnet''<sup>[[:toh:netgear:telnet.console|1]]</sup>, ''ftp'', ''rsh'', ''rlogin'', ''tftp''<sup>[[:docs:guide-user:troubleshooting:tftpserver|1]]</sup> tools and corresponding daemons/servers, then**:** <code bash>sudo port install inetutils</code> +    * if you need other type of bundled packages, then look here: [[https://ports.macports.org/search/?q=utils&name=on|1]]. 
-      * if you need other type of bundled packages, then look here: [[https://ports.macports.org/search/?q=utils&name=on|1]].\\ \\ +    * if you need other TFTP daemon/server (''tftpd''), then you may try below. TFTP server alows to [[:docs:guide-user:troubleshooting:tftpserver|receive]] files from router, or allows (bricked) router to boot from TFTP server, etc**:** <code bash>sudo port install tftp-hpa</code> 
-    * if you need these type of tools, (more info: [[https://ports.macports.org/category/cross/|1]]), then**:** <code bash>sudo port install arm-elf-binutils i386-elf-binutils m68k-elf-binutils mips-elf-binutils x86_64-elf-binutils</code>+  * if you need these type of tools, (more info: [[https://ports.macports.org/category/cross/|1]]), then**:** <code bash>sudo port install arm-elf-binutils i386-elf-binutils m68k-elf-binutils mips-elf-binutils x86_64-elf-binutils</code>
 \\ \\
  
  
 === H. Optional-step: Start build friendly shell: === === H. Optional-step: Start build friendly shell: ===
-macOS by default uses a very old version of ''bash'' [[wp>Comparison_of_command_shells|shell]]. So, we can+should start a build/compile friendly common last+stable or recent version of **bash** shell inside macOS-Terminal's specific ''tab'', as such recent version can be obtained & used by most developer users. Shell-manager software ''Terminal'' can run multiple shell instances, by using multiple Terminal-tabs. Select one (or more) Terminal-tab(s) to use for openwrt build purpose, then run below command to have same (last+stable) build environment.\\ +macOS by default uses a very old version of ''bash'' [[wp>Comparison_of_command_shells|shell]]. So, we can+should start a build/compile friendly common last+stable or recent version of **bash** shell inside macOS-Terminal's specific ''tab'', as such recent version can be obtained & used by most developer users. Shell-manager software ''Terminal'' can run multiple shell instances, by using multiple Terminal-tabs. Select one (or more) Terminal-tab(s) to use for openwrt build purpose, then run below command to have same (last+stable) build environment. 
-\\ + 
-If you installed new **bash** package, then start new bash shell inside a specific tab in Terminal, (when you have **MacPorts** based bash package), with this command**:** <code bash>exec /opt/local/bin/bash</code> +● If you installed new **bash** package, then start new bash shell inside a specific tab in Terminal, (when you have **MacPorts** based bash package), with this command**:** <code bash>exec /opt/local/bin/bash</code> 
-  optional **:** approve/permit new bash shell in macOS with this command: ''echo "/opt/local/bin/bash" | sudo tee -a /private/etc/shells'' +● optional**:*
-  * optional **:** if you want to continue to use the new bash always, then: click on apple **** symbol in topside apple menu-bar > ''System Preferences...'' > ''Users & Groups'' > Unlock the 🔒pane > control click on your user-name > select ''Advanced Options...'' > then update/change the ''Login shell'' into ''/opt/local/bin/bash'' > ''ok''.+  * approve/permit new bash shell in macOS with this command**:**\\ ''echo "/opt/local/bin/bash" | sudo tee -a /private/etc/shells'' 
 +  * if you want to continue to use the new bash always, then: click on apple **** symbol in topside apple menu-bar > ''System Preferences...'' > ''Users & Groups'' > Unlock the 🔒pane > control click on your user-name > select ''Advanced Options...'' > then update/change the ''Login shell'' into ''/opt/local/bin/bash'' > ''ok''.
 \\ \\
  
  
 === I. Load build environment: === === I. Load build environment: ===
-We need to load build package locations indicator file as shell environment. OpenWRT developing (aka: building, aka: compiling, aka: compilation) is done inside a suitable (aka: build friendly) shell environment. So, we have to allow openwrt build commands to find packages that we installed via pkg-mngr, by loading build package location indicator file **''env.sh''** into one of the ''Terminal'' shell environment tab, to create that openwrt build friendly & suitable shell environment.\\ +We need to load build package locations indicator file as shell environment. OpenWRT developing (aka: building, aka: compiling, aka: compilation) is done inside a suitable (aka: build friendly) shell environment. So, we have to allow openwrt build commands to find packages that we installed via pkg-mngr, by loading build package location indicator file **''env.sh''** into one of the ''Terminal'' shell environment tab, to create that openwrt build friendly & suitable shell environment. 
-\\+
 When developing (aka: building, aka: compiling), run below command to set up build-friendly PATH (and other) variable(s). This leaves your system in a clean state without symlinking. <code bash>source /Volumes/OpenWrt/env.sh</code> When developing (aka: building, aka: compiling), run below command to set up build-friendly PATH (and other) variable(s). This leaves your system in a clean state without symlinking. <code bash>source /Volumes/OpenWrt/env.sh</code>
   * Optional **:** So from next time or after a reboot, when you want to enter into openwrt build mode, then run below 2 commands inside a specific tab in Terminal, when you have MacPorts based bash package**:** <code bash>   * Optional **:** So from next time or after a reboot, when you want to enter into openwrt build mode, then run below 2 commands inside a specific tab in Terminal, when you have MacPorts based bash package**:** <code bash>
Line 261: Line 279:
  
 === J. Build: === === J. Build: ===
-Now proceed normally, (that is, start to follow build related other steps/proceduresshown in parent/previous page).+Now proceed normally, (that is, start to follow build related other steps/procedures shown in parent/previous page).
 \\ \\
  
  
-====== B43-FWCutter ======+====== Other Tools: ====== 
 +Some users may need below some of the tool. 
 +\\ 
 + 
 +===== B43-FWCutter =====
  
-Users who are developing openwrt firmware for Broadcom (BCM) 43xx chipset, need this b43-fwcutter tool to extract wireless drivers from firmware.+Users who are developing openwrt firmware for Broadcom (BCM) 43xx chipset, //(to use in OpenWRT)//, those users need this b43-fwcutter tool to extract wireless drivers from firmware.
   * More info [[https://wireless.wiki.kernel.org/en/users/drivers/b43|here]].   * More info [[https://wireless.wiki.kernel.org/en/users/drivers/b43|here]].
   * Package manager ''homebrew'' has this tool, and ''MacPorts'' does not.   * Package manager ''homebrew'' has this tool, and ''MacPorts'' does not.
Line 274: Line 296:
  
  
-====== Golang related ======+===== Golang related =====
  
 Golang<sup>[[wp>Go_(programming_language)|1]]</sup>: For darwin/arm64 and linux/aarch64 golang package (feed "packages") golang C-bootstrap method doesn't work, but it is possible to use external golang bootstrap. On MacOS arm64 the easiest way is to install golang using brew and use installed golang as bootstrap:\\ Golang<sup>[[wp>Go_(programming_language)|1]]</sup>: For darwin/arm64 and linux/aarch64 golang package (feed "packages") golang C-bootstrap method doesn't work, but it is possible to use external golang bootstrap. On MacOS arm64 the easiest way is to install golang using brew and use installed golang as bootstrap:\\
Line 282: Line 304:
  
  
-====== Optional Tools ======+====== Optional Tools====== 
 +optional tools, drivers, software, etc for macOS, to assist into build/compile process, & to increase security. 
 +\\ 
 + 
 +===== Software Tools: ===== 
 +No need to install these, unless you specifically need such tool/app/utility to assist your build related works. Here is a small list of some optional/extra tools related to openwrt software code build & test & usage & diagnostics, etc, and also list of some optional/extra tools related to network device test/diagnostics, etc to run/use in macOS (apple macintosh operating system) and apple hardware. For more, goto [[wp>List_of_Macintosh_software|wp]]. 
 + 
 +● __XQuartz__ ([[https://www.xquartz.org/|dev]], [[wp>XQuartz|wp]], [[https://github.com/XQuartz/XQuartz|src]], [[https://github.com/XQuartz/XQuartz/releases/|dnld]]) : it allows cross-platform (GNU-Linux, etc) apps/tools (which were developed to use ''X11'' GUI), to run on macOS & use macOS's native ''Quartz'' GUI, etc. Many GUI apps/tools need this. It is opensource tool. 
 + 
 +● __PeaZip__ ([[https://peazip.github.io/|dev]], [[https://sourceforge.net/projects/peazip/files/|dnld]], [[https://github.com/peazip/PeaZip|src]], [[wp>PeaZip|wp]], [[wp>Comparison_of_file_archivers|comparison]]) : it is a free & opensource archiver (zip, compress) & unarchiver (unzip, decompress) app/tool. GUI //(Graphical User Interface)// based. Allows to create: 7Z, ARC, Brotli, BZ2 (BZip), GZ (GZip), PAQ/ZPAQ, PEA, QUAD/BALZ/BCM, sfx, TAR, WIM, XZ, ZPAQ, ZIP, Zstandard, etc, and peazip allows to Open & Extract 200+ file types: ACE, CAB, DEB, ISO, RAR, UDF, ZIPX, etc. Do not download this app from any other website.
  
-No need to install these, unless you specifically need such tool/app/utility to assist your build related works. Here is a small list of some optional/extra tools related to openwrt software code build & test & usage & diagnostics, etc, and also list of some optional/extra tools related to network device test/diagnostics, etc to run/use in macOS (apple macintosh operating system) and apple hardware. For more, goto [[wp>List_of_Macintosh_software|wp]].\\ +● __GnuPG for OSX__ ([[https://sourceforge.net/projects/gpgosx/|dev]], [[https://sourceforge.net/projects/gpgosx/files/|dnld]]) : verifies file's/message's authenticity. [[https://gnupg.org/|GnuPG]] is aka //(also known as)// [[wp>GNU_Privacy_Guard|GPG]]. We need this tool to verify/authenticate downloaded files //(or messages)// to find-out whether files //(or messages)// are indeed what actual file //(or message)// creator/author/developer actually released/shared/created/sent, So this tool will indicate/tell us whether received files //(or messages)// were modified/altered/changed/abused/corrupted by someone or some-device in the middle of file/msg travel path or during file/msg travel path, or this tool will indicate to us NO modification was done during file/msg travel path.  File's //(or message's)// actual creator/developer shares their //(GnuPG/GPG or PGP or [[wp>Pretty_Good_Privacy#OpenPGP|OpenPGP]] based)// crypto //([[wp>Public-key_cryptography|cryptographic]])// digital **pub**-key file as **pub** file or as **asc** file with public. Most trustworthy way to obtain such pub-key is: goto a [[wp>Key_signing_party|KSP]] or conference and meet actual file/msg creator/developer & obtain pub-key file directly, (or else, the next (slightly-less) trustworthy solution is: use [[wp>Web_of_trust|WoT]] & inspect pub-key components to compare & verify a pub-key's authenticity). File/msg creator/developer [[wp>Digital_signature|signs]] main-file //(or main-msg)// with their **prv**-key, & that creates an unique **sig** //(signature)// file for a main-file //(or main-msg)//, then file/msg creator/dev shares main-file //(or main-msg)// & sig-file with public. This (GnuPG) tool can use sig-file, pub-key file, & main-file //(or main-msg)//, & can indicate if the main-file //(or main-msg)// was actually released by the actual holder of the pub-key, or not. Install a GUI frontend / wrapper for this tool.
-● __XQuartz__ ([[https://www.xquartz.org/|dev]], [[wp>XQuartz|wp]], [[https://github.com/XQuartz/XQuartz|src]], [[https://github.com/XQuartz/XQuartz/releases/|dnld]]) : it allows cross-platform (GNU-Linux, etc) apps/tools (which were developed to use ''X11'' GUI), to run on macOS & use macOS's native ''Quartz'' GUI, etc. Many GUI apps/tools need this. It is opensource tool.\\ +
-● __PeaZip__ ([[https://peazip.github.io/|dev]], [[https://sourceforge.net/projects/peazip/files/|dnld]], [[https://github.com/peazip/PeaZip|src]], [[wp>PeaZip|wp]], [[wp>Comparison_of_file_archivers|comparison]]) : it is a free & opensource archiver (zip, compress) & unarchiver (unzip, decompress) app/tool. GUI //(Graphical User Interface)// based. Allows to create: 7Z, ARC, Brotli, BZ2 (BZip), GZ (GZip), PAQ/ZPAQ, PEA, QUAD/BALZ/BCM, sfx, TAR, WIM, XZ, ZPAQ, ZIP, Zstandard, etc, and peazip allows to Open & Extract 200+ file types: ACE, CAB, DEB, ISO, RAR, UDF, ZIPX, etc.\\ +
-● __GnuPG for OSX__ ([[https://sourceforge.net/projects/gpgosx/|dev]], [[https://sourceforge.net/projects/gpgosx/files/|dnld]]) : verifies file's/message's authenticity. GnuPG is aka //(also known as)// GPG. We need this tool to verify/authenticate downloaded files //(or messages)// to find-out whether files //(or messages)// are indeed what actual file //(or message)// creator/author/developer actually released/shared/created/sent, So this tool will indicate/tell us whether received files //(or messages)// were modified/altered/changed/abused/corrupted by someone or some-device in the middle of file/msg travel path or during file/msg travel path, or this tool will indicate to us NO modification was done during file/msg travel path.  File's //(or message's)// actual creator/developer shares their //([[https://gnupg.org/|GnuPG]]/[[wp>GNU_Privacy_Guard|GPG]] or PGP or [[wp>Pretty_Good_Privacy#OpenPGP|OpenPGP]] based)// crypto //([[wp>Public-key_cryptography|cryptographic]])// digital **pub**-key file as **pub** file or as **asc** file with public. Most trustworthy way to obtain such pub-key is: goto a [[wp>Key_signing_party|KSP]] or conference and meet actual file/msg creator/developer & obtain pub-key file directly, (or else, the next (slightly-less) trustworthy solution is: use [[wp>Web_of_trust|WoT]] & inspect pub-key components to compare & verify a pub-key's authenticity). File/msg creator/developer [[wp>Digital_signature|signs]] main-file //(or main-msg)// with their **prv**-key, & that creates an unique **sig** //(signature)// file for a main-file //(or main-msg)//, then file/msg creator/dev shares main-file //(or main-msg)// & sig-file with public. This (GnuPG) tool can use sig-file, pub-key file, & main-file //(or main-msg)//, & can indicate if the main-file //(or main-msg)// was actually released by the actual holder of the pub-key, or not. Install a GUI frontend / wrapper for this tool.+
   * to know directory location of installed ''gpg2'' which your system will find (via PATH env var) & use, run **:** ''which gpg2''   * to know directory location of installed ''gpg2'' which your system will find (via PATH env var) & use, run **:** ''which gpg2''
   * the GnuPG tool can also be loaded via MacPorts pkg-mngr, when you run this command **:** ''sudo port install gnupg2''   * the GnuPG tool can also be loaded via MacPorts pkg-mngr, when you run this command **:** ''sudo port install gnupg2''
-  * __GpgFrontend__ ([[https://www.gpgfrontend.pub/|dev]], [[https://github.com/saturneric/GpgFrontend|src]], [[https://github.com/saturneric/GpgFrontend/releases|dnld]]) : opensource, free tool to authenticate file, to authenticate message, etc. it contains OpenPGP crypto tool and can also function as a frontend / wrapper for GnuPG. See ''GnuPG for OSX'' item in above.\\+  * __GpgFrontend__ ([[https://www.gpgfrontend.pub/|dev]], [[https://github.com/saturneric/GpgFrontend|src]], [[https://github.com/saturneric/GpgFrontend/releases|dnld]]) : opensource, free tool to authenticate file, to authenticate message, etc. it contains OpenPGP crypto tool and can also function as a frontend / wrapper for GnuPG. See ''GnuPG for OSX'' item in above. 
 ● __DevUtils__ ([[https://github.com/DevUtilsApp/DevUtils-app|dev]], [[https://devutils.app/|dnld]], [[https://apps.apple.com/us/app/id1533756032|appstore]]) : it has various functionalities to perform various development related activities. App is free & opensource, but source-code requires a payment. ● __DevUtils__ ([[https://github.com/DevUtilsApp/DevUtils-app|dev]], [[https://devutils.app/|dnld]], [[https://apps.apple.com/us/app/id1533756032|appstore]]) : it has various functionalities to perform various development related activities. App is free & opensource, but source-code requires a payment.
-  * Various tools/apps for Build, Deployment, etc are here: [[https://github.com/smashism/awesome-macadmin-tools|1]].\\ +  * Various tools/apps for Build, Deployment, etc are here: [[https://github.com/smashism/awesome-macadmin-tools|1]]. 
-● __TimeUTC__ ([[https://apps.apple.com/us/app/timeutc/id1293572792?mt=12|AppStore]]) : it can add a second date & clock in your  topside apple  menu bar, to display current UTC time & date. freeware.\\ + 
-● __FileZilla__ ([[https://filezilla-project.org/|dev]], [[https://filezilla-project.org/download.php?type=client|dnld]], [[https://svn.filezilla-project.org/filezilla/FileZilla3/|src]], [[wp>Comparison_of_FTP_client_software|comparison]]) : it is a client app for FTP, FTP over TLS (FTPS), SFTP SSH, SFTP. Opensource & free & GUI based.\\ +● __TimeUTC__ ([[https://apps.apple.com/us/app/timeutc/id1293572792?mt=12|AppStore]]) : it can add a second date & clock in your  topside apple  menu bar, to display current UTC time & date. freeware. 
-● __ProFTPD__ ([[http://www.proftpd.org/ProFTPD|dev]], [[https://github.com/proftpd/proftpd/releases|dnld]], [[https://github.com/proftpd/proftpd|src]]) : For FTP / FTPS / SFTP server. opensource & free. + 
-  * And also get web (GUI) based admin interface app __proFTPd-admin__ (from [[https://sourceforge.net/projects/proftpd-adm/|here]]) for ProFTPD.\\ +● __PumpKIN__ ([[https://kin.klever.net/pumpkin/|dev]], [[https://kin.klever.net/pumpkin/repository/|src]]<sup>[[https://github.com/hacker/pumpkin|2]]</sup>, [[https://kin.klever.net/pumpkin/binaries/|dnld]]) : opensource & free & GUI based. it is a TFTP server & client app, //(with builtin TFTP server & client functionalities)//. For macOS //(and Windows)//. It was tested & can run on macOS ''Mountain Lion''. TFTP can abused/exploited to do harmful things, so keep it firewalled or disable it after you are done working with this app, and also disable it when you pause to work on something else. Do not keep this running. More info [[:docs:guide-user:troubleshooting:tftpserver|here]]. 
-● __Github Desktop for Mac__ ([[https://desktop.github.com/|dev]]) : allows a developer user to access & collaborate & develop software, etc on Github.com site. GUI based free app.\\ + 
-● __TextMate__ ([[https://github.com/textmate/textmate|dev]], [[https://macromates.com/download|dnld]], [[wp>Comparison_of_text_editors|comparison]]) : a text editor. Opensource & GUI based free app. Few features : multi tabs, multi windows, regex based search & replacement, etc.\\ +● __FileZilla__ ([[https://filezilla-project.org/|dev]], [[https://filezilla-project.org/download.php?type=client|dnld]], [[https://svn.filezilla-project.org/filezilla/FileZilla3/|src]], [[wp>Comparison_of_FTP_client_software|comparison]]) : it is a client app for FTP, FTP over TLS (FTPS), SFTP SSH, SFTP. Opensource & free & GUI based. Do not download this app from any other website. 
-● __Kate__ ([[https://kate-editor.org/|dev]], [[https://kate-editor.org/get-it/|dnld]]) : opensource & free code/text editor.\\ + 
-● __LuLu__ ([[https://github.com/objective-see/LuLu|dev]]) : it is GUI based & free & opensource firewall app to control outbound internet data traffic of apps/tools in macOS.\\ +● __ProFTPD__ ([[http://www.proftpd.org/ProFTPD|dev]], [[https://github.com/proftpd/proftpd/releases|dnld]], [[https://github.com/proftpd/proftpd|src]], [[wp>Comparison_of_FTP_client_software|comparison]]) : For FTP / FTPS / SFTP server. opensource & free. CLI based. Get a GUI frontend / wrapper for this tool
-● __Loading__ ([[https://github.com/BonzaiThePenguin/Loading|dev]]) : it can show a spinning progress wheel in  menu bar when network is being used by app/tool. Clicking the icon can show the apps/tools that are using network, & holding down the option key can show individual processes. Opensource, free & GUI based tool.\\ +  * And also get web (GUI) based admin interface app __proFTPd-admin__ (from [[https://sourceforge.net/projects/proftpd-adm/|here]]) for ProFTPD. Do not keep this app running, when you pause to work on something else. It can be abused / exploited to do harmful things. 
-● __OpenSSH //(Portable)//__ ([[https://www.openssh.com/|dev]], [[https://github.com/openssh/openssh-portable|src]], [[https://www.openssh.com/portable.html#http|dnld-src]], [[wp>Comparison_of_SSH_clients|comparison]]) : opensource & free. it is a remote-access client tool to connect with SSH-servers<sup>[[wp>Comparison_of_SSH_servers|1]]</sup>. It can encrypt all traffic into SSH-server to eliminate eavesdropping, connection hijacking, and other attacks, it has large suite of secure tunneling capabilities, several authentication methods, and sophisticated configuration options. Includes ssh, scp, sftp<sup>[[wp>SSH_File_Transfer_Protocol|1]]</sup>, ssh-add, ssh-agent, ssh-keygen, ssh-keyscan. Source can be compiled/built in macOS, or download openssh from macports pkg-mngr, or download dependencies via macports & then build/compile. CLI based. Get a GUI wrapper / frontend for this tool.\\ + 
-● __Fugu__ ([[http://rsug.itd.umich.edu/software/fugu|dev]], [[https://sourceforge.net/p/fugussh/|src]]-2, [[wp>Fugu_(software)|wp]]) : a free & opensource & GUI based frontend / wrapper for OpenSSH ssh,sftp,scp, etc commandline tools. Very old, but still useful to handle SSH keys, etc. It is a SFTP client, SSH app.\\ +● __Github Desktop for Mac__ ([[https://desktop.github.com/|dev]]) : allows a developer user to access & collaborate & develop software, etc on Github.com site. GUI based free app. 
-● __PuTTY__ ([[https://www.chiark.greenend.org.uk/~sgtatham/putty/|dev]], [[wp>PuTTY|wp]], [[https://git.tartarus.org/?p=simon/putty.git|src]], [[wp>Comparison_of_SSH_clients|comparison]]) : it is a free & open-source terminal emulator, serial console and network file transfer tool, & supports several network protocols: SCP, SSH, Telnet, rlogin, and raw socket connection. Actually developed for Windows OS, but has been ported into MacPorts pkg-mngr to use in macOS. GUI based. To install via Macports pkg-mngr, run**:** ''sudo port install putty'' + 
-  * PuTTY in MacPorts needs these dependencies //(these wil be auto-loaded by macports)//**:** pkgconfig, gtk2. And ''gtk2'' needs these dependenicies**:** gtk-doc, pkgconfig, perl5, autoconf, automake, libtool, xz, atk, pango, gdk-pixbuf2, gobject-introspection, xorg-libXi, xorg-libXrandr, xorg-libXcursor, xorg-libXinerama, xorg-libXdamage, xorg-libXcomposite, xorg-libXfixes, shared-mime-info, hicolor-icon-theme.\\ +● __TextMate__ ([[https://github.com/textmate/textmate|dev]], [[https://macromates.com/download|dnld]], [[wp>Comparison_of_text_editors|comparison]]) : a text editor. Opensource & GUI based free app. Few features : multi tabs, multi windows, regex based search & replacement, etc. 
-● __Coccinellida__ ([[https://sourceforge.net/projects/coccinellida/|dev]], [[https://sourceforge.net/projects/coccinellida/files/|dnld]]) : a simple SSH tunnel manager app. opensource, free. GUI based.\\ + 
-● __STM //(SSH Tunnel Manager)//__ ([[https://www.tynsoe.org/stm/|dev]], [[https://www.tynsoe.org/stm/documentation/|doc]], [[http://itunes.apple.com/us/app/ssh-tunnel-manager/id424470626?mt=12|appstore]]) : it can manage multiple ssh tunnels / connections: local, remote, socks-proxy, etc. it is a GUI based fronend / wrapper for ssh tool, but for socks-proxy it can use builtin ssh on some situations. freeware. not-opensource. GUI based & also frontend for SSH.\\ +● __Kate__ ([[https://kate-editor.org/|dev]], [[https://kate-editor.org/get-it/|dnld]]) : opensource & free code/text editor. 
-● __OpenVPN Connect__ ([[https://openvpn.net/|dev]], [[https://openvpn.net/download-open-vpn/|dnld]], [[https://itunes.apple.com/us/app/openvpn-connect/id590379981?mt=8|appstore]], [[https://openvpn.net/community-downloads/|community-dnld]], [[wp>OpenVPN|wp]]) : opensource & free. VPN //(virtual private network)// connector client tool. GUI based. //(There are many other types of VPN<sup>[[wp>Virtual_private_network|1]]</sup> connector client/server app/tool)//.\\ + 
-● __TunnelBlick__ ([[https://github.com/Tunnelblick/Tunnelblick|dev]]) : a free & opensource & GUI based frontend / wrapper for OpenVPN commandline tool.\\ +● __LuLu__ ([[https://github.com/objective-see/LuLu|dev]]) : it is GUI based & free & opensource firewall app to control outbound internet data traffic of apps/tools in macOS. 
-● __WireShark__ ([[https://www.wireshark.org/|dev]], [[https://www.wireshark.org/#download|dnld]], [[https://gitlab.com/wireshark/wireshark.git|src]], [[wp>Comparison_of_packet_analyzers|comparison]], [[https://gitlab.com/wireshark/wireshark/-/wikis/home|wiki]]) : it is a network data packet analyzer (aka: network protocol analyzer = NPA) software. Opensource, free & GUI based.\\ + 
-● __VirtualBox__ ([[https://www.virtualbox.org/|dev]], [[https://www.virtualbox.org/wiki/Downloads|dnld]], [[wp>Comparison_of_platform_virtualization_software|comparison]]<sup>[[wp>Comparison_of_application_virtualization_software|2]]</sup>) : a free & opensource & GUI based virtualizer software (from Oracle) to create (software based) virtual-machine (VM) inside a hardware based host machine. So with this app, user can run+use multiple+different operating systems (OS) simultaneously. User can create VM as client, VM as server, client+server VM, Desktop OS VM, Mobile OS VM, etc, etc. First version used codes from QEMU. It can emulate these (hardware) architectures as VM: x86, x86-64.\\ +● __Loading__ ([[https://github.com/BonzaiThePenguin/Loading|dev]]) : it can show a spinning progress wheel in  menu bar when network is being used by app/tool. Clicking the icon can show the apps/tools that are using network, & holding down the option key can show individual processes. Opensource, free & GUI based tool. 
-● __QEMU__ ([[https://www.qemu.org/|dev]], [[https://www.qemu.org/download/#macos|dnld]], [[https://git.qemu.org/git/qemu.git|src]], [[wp>QEMU|wp]]) : it is free & opensource. It is a generic & open source machine emulator and virtualizer. It can emulate various (hardware) architectures as VM, such as: x86, x86-64, MIPS64 (up to Release 6), SPARC (sun4m and sun4u) (32/64), ARM (Integrator/CP and Versatile/PB), SuperH, PowerPC (PReP and Power Macintosh), ETRAX CRIS, MicroBlaze, and RISC-V, OpenRisc32, Alpha, LM32, M68k, S/390, SH4, Unicore32, Xtensa, etc.\\ + 
-● __NTFS for Mac__ (Microsoft NTFS for Mac By Tuxera) ([[https://ntfsformac.tuxera.com/|dev]]) : The functionality or ability to read NTFS partitions inside macOS is very helpful feature to transfer file(s) between NTFS partition HDD/SSD and your APFS (apple macOS file-system). This "NTFS for Mac" by Tuxera tool is not free (aka: as freedom of software), it is proprietary tool. Only trial version is freeware for 15days, tiral version has some helpful functionalities. Full functionalities (after 15 days trial) requires a payment. +● __OpenSSH //(Portable)//__ ([[https://www.openssh.com/|dev]], [[https://github.com/openssh/openssh-portable|src]], [[https://www.openssh.com/portable.html#http|dnld-src]], [[wp>Comparison_of_SSH_clients|comparison]]) : opensource & free. it is a remote-access client tool to connect with SSH-servers<sup>[[wp>Comparison_of_SSH_servers|1]]</sup>. It can encrypt all traffic into SSH-server to eliminate eavesdropping, connection hijacking, and other attacks, it has large suite of secure tunneling capabilities, several authentication methods, and sophisticated configuration options. Includes ssh, scp, sftp<sup>[[wp>SSH_File_Transfer_Protocol|1]]</sup>, ssh-add, ssh-agent, ssh-keygen, ssh-keyscan. Source can be compiled/built in macOS, or download openssh from macports pkg-mngr, or download dependencies via macports & then build/compile. CLI based. Get a GUI wrapper / frontend for this tool. 
-  * HDD/SSD storage device MFR (aka: manufacturers) also includes ''NTFS for Mac'' (NTFS for Mac By Paragon<sup>[[https://www.paragon-software.com/home/ntfs-mac/|1]]</sup>, etc) software for macOS, with their some HDD/SSD storage device, So if your HDD/SSD drive (in your computer) matches with MFR's HDD/SSD then you may use that ''NTFS for Mac'' software (by obtaining it from HDD/SSD MFR's website). + 
-  * Earlier helpful software ''FUSE for macOS''<sup>[[https://osxfuse.github.io/|1]], [[https://github.com/libfuse/libfuse|2]], [[wp>Filesystem_in_Userspace|3]]</sup> is not anymore ''free'' (as in freedom of software) for macOS, it is now proprietary for macOS. The ''Mounty for NTFS''<sup>[[https://mounty.app/|1]]</sup> and ''NTFS-3G''<sup>[[https://github.com/tuxera/ntfs-3g|1]], [[https://www.tuxera.com/community/ntfs-3g-download/|2]]</sup> are free & opensource, but slow. Linux kernel v5.15 & onward has began to support NTFS<sup>[[https://www.kernel.org/doc/html/latest/filesystems/ntfs3.html|1]]</sup> 3.1 & earlier versions, NTFS driver was provided by Paragon.\\ +● __Fugu__ ([[http://rsug.itd.umich.edu/software/fugu|dev]], [[https://sourceforge.net/p/fugussh/|src]]-2, [[wp>Fugu_(software)|wp]]) : a free & opensource & GUI based frontend / wrapper for OpenSSH ssh,sftp,scp, etc commandline tools. Very old, but still useful to handle SSH keys, etc. It is a SFTP client, SSH app. 
-● __Deluge__ ([[https://deluge-torrent.org/|dev]], [[https://ftp.osuosl.org/pub/deluge/mac_osx/?C=M;O=D|dnld]], [[wp>Comparison_of_BitTorrent_clients|comparison]]) : a bittorrent network based file-sharing software. free & opensource. Encrypt or Password protect files before sharing, & share password via a separate (private) channel. Filename can have contact info if you wish to be contacted, but remember that such contact info will also be abused by someone out there. More info [[https://dev.deluge-torrent.org/wiki/Installing/MacOSX#MacPorts|here]].\\ + 
-● __Thunderbird__ ([[https://www.thunderbird.net/|dev]], [[https://www.thunderbird.net/thunderbird/all/|dnld]], [[https://hg.mozilla.org/comm-central|src]], [[wp>Comparison_of_email_clients|comparison]]) : multi data communication-protocol supporting client, but more commonly known as an Email client app //(for viewing, reading, sending emails)//, so it is a PIM<sup>[[wp>Personal_information_manager|1]]</sup>/PDM<sup>[[wp>Personal_data_manager|1]]</sup> client //(that supports personal/private information like: emails, address-book, calendar dates, emails, instant messages, passwords, alerts, browsing site data, etc, etc)//. Thunderbird is free & opensource. It is also client app/tool for: newsfeeds<sup>[[wp>List_of_Usenet_newsreaders|1]]</sup>/newsgroups<sup>[[wp>List_of_newsgroups|1]], [[wp>Comparison_of_Usenet_newsreaders|2]]</sup> //(NNTP<sup>[[wp>NNTP|1]]</sup> client, NNTPS)// , web feeds<sup>[[wp>Comparison_of_feed_aggregators|1]], [[https://support.mozilla.org/en-US/kb/how-subscribe-news-feeds-and-blogs|2]]</sup> //(news aggregators<sup>[[wp>News_aggregator|1]]</sup>, like: Atom<sup>[[wp>Atom_(Web_standard)|1]]</sup>, RSS<sup>[[wp>RSS|1]]</sup>, etc)// client, instant messaging<sup>[[https://support.mozilla.org/en-US/kb/instant-messaging-and-chat|1]]</sup> //(aka: chat<sup>[[wp>Chat_client|1]]</sup> networks, like IRC<sup>[[wp>IRC|1]]</sup>, XMPP<sup>[[wp>XMPP|1]]</sup>, Google-Talk, <del>Twitter</del>, Odnoklassniki, etc)// client, address auto-completion (LDAP) client, etc. Thunderbird contains core/engine of Mozilla Firefox web-browser, which allows thunderbird to connect with various types of web-servers / web-sites to use various web-servicesas HTTP/HTTPS& other protocols cleints, and firefox web-browser core also allows thunderbird to open<sup>[[https://addons.thunderbird.net/thunderbird/addon/browseintab/|1]], [[https://addons.thunderbird.net/thunderbird/addon/new-tab-button/|2]], [[https://addons.thunderbird.net/thunderbird/addon/open-tab/|3]]</sup> multiple web-browser tab(s) //(inside thunderbird)// to be used by users, manually. Send yourself email //(or chat-msg)// with URL-links to various web-site services, then inside thinderbird right-click on link //(inside email or chat-msg)// & select the option to open the link inside a New Tab inside thunderbird<sup>[[https://stackoverflow.com/questions/63253091/|1]]</sup>, in this way you can use/access various WebMails<sup>[[https://stackoverflow.com/questions/63253091/|1]], [[wp>Comparison_of_webmail_providers|2]]</sup>, Twitter<sup>[[https://m.twitter.com/|1]]</sup>, etc. More info on how to approve cookies & JS for such web-service website and dependent 3rd-party web-services //(inside thunderbird)//, are explained [[https://stackoverflow.com/questions/63253091/|here]]. Thunderbird addons can also allow access to various web-services more easily: Google-Chat<sup>[[https://addons.thunderbird.net/thunderbird/addon/google-chat-tab/|1]]</sup>, Skype-WebApp<sup>[[https://addons.thunderbird.net/thunderbird/addon/skypewebapp/|1]]</sup>, Telegram-Web<sup>[[https://addons.thunderbird.net/thunderbird/addon/telegramwebapp/|1]], [[https://addons.thunderbird.net/thunderbird/addon/telegram-web-in-thunderbird/|2]]</sup>. This type of app is very helpful to keep multi channel communications with openwrt & other various project developers, and to test your own servers. Get firefox addon uBlock Origin<sup>[[https://addons.mozilla.org/firefox/addon/ublock-origin/|1]]</sup>, & load into Thunderbird, that addon allows you to stop un-approved Advertisements that are using+stealing your computing (CPU, GPU, etc) resources, & //(limited & costly)// data allotments from your ISP, etc, without your consent/permission/approval.\\ +● __PuTTY__ ([[https://www.chiark.greenend.org.uk/~sgtatham/putty/|dev]], [[wp>PuTTY|wp]], [[https://git.tartarus.org/?p=simon/putty.git|src]]) : it is a free & open-source terminal emulator, serial console and network file transfer tool, & supports several network protocols: SCP, SSH, Telnet, rlogin, and raw socket connection. Actually developed for Windows OS, but has been ported into MacPorts pkg-mngr to use in macOS. GUI based. To install via Macports pkg-mngr, run**:** ''sudo port install putty'' 
-● __Apparency__ ([[https://www.mothersruin.com/software/Apparency/|dev]], [[https://www.mothersruin.com/software/Apparency/get.html|dnld]]) : it can inspect software application bundles (pkg, app, etc) for macOS, & then it can show info on code signing requirements, notarization, signatures, included frameworks, etc. it is a freeware.\\ +  * PuTTY in MacPorts needs these dependencies //(these wil be auto-loaded by macports)//**:** pkgconfig, gtk2. And ''gtk2'' needs these dependenicies**:** gtk-doc, pkgconfig, perl5, autoconf, automake, libtool, xz, atk, pango, gdk-pixbuf2, gobject-introspection, xorg-libXi, xorg-libXrandr, xorg-libXcursor, xorg-libXinerama, xorg-libXdamage, xorg-libXcomposite, xorg-libXfixes, shared-mime-info, hicolor-icon-theme. 
-● __AppCleaner__ ([[https://freemacsoft.net/appcleaner/|dev]]) : open ''Finder'' > goto ''Application'' in any finder-tab > open this ''AppCleaner'' app, then drag the app that you want to remove/uninstall from ''Application'' folder/directory, & drop it inside the ''AppCleaner'', it will inspect & find-out & show all elements used by that unwanted app, & also show you option to Remove. it is freeware.\\+ 
 +● __Coccinellida__ ([[https://sourceforge.net/projects/coccinellida/|dev]], [[https://sourceforge.net/projects/coccinellida/files/|dnld]]) : a simple SSH tunnel manager app. opensource, free. GUI based. 
 + 
 +● __STM //(SSH Tunnel Manager)//__ ([[https://www.tynsoe.org/stm/|dev]], [[https://www.tynsoe.org/stm/documentation/|doc]], [[http://itunes.apple.com/us/app/ssh-tunnel-manager/id424470626?mt=12|appstore]]) : it can manage multiple ssh tunnels / connections: local, remote, socks-proxy, etc. it is a GUI based fronend / wrapper for ssh tool, but for socks-proxy it can use builtin ssh on some situations. freeware. not-opensource. GUI based & also frontend for SSH. 
 + 
 +● __OpenVPN Connect__ ([[https://openvpn.net/|dev]], [[https://openvpn.net/download-open-vpn/|dnld]], [[https://itunes.apple.com/us/app/openvpn-connect/id590379981?mt=8|appstore]], [[https://openvpn.net/community-downloads/|community-dnld]], [[wp>OpenVPN|wp]]) : opensource & free. VPN //(virtual private network)// connector client tool. GUI based. //(There are many other types of VPN<sup>[[wp>Virtual_private_network|1]]</sup> connector client/server app/tool)//. 
 + 
 +● __TunnelBlick__ ([[https://github.com/Tunnelblick/Tunnelblick|dev]]) : a free & opensource & GUI based frontend / wrapper for OpenVPN commandline tool. 
 + 
 +● __WireShark__ ([[https://www.wireshark.org/|dev]], [[https://www.wireshark.org/#download|dnld]], [[https://gitlab.com/wireshark/wireshark.git|src]], [[wp>Comparison_of_packet_analyzers|comparison]], [[https://gitlab.com/wireshark/wireshark/-/wikis/home|wiki]]) : it is a network data packet analyzer (aka: network protocol analyzer = NPA) software. Opensource, free & GUI based. 
 + 
 +● __VirtualBox__ ([[https://www.virtualbox.org/|dev]], [[https://www.virtualbox.org/wiki/Downloads|dnld]], [[wp>Comparison_of_platform_virtualization_software|comparison]]<sup>[[wp>Comparison_of_application_virtualization_software|2]]</sup>) : a free & opensource & GUI based virtualizer software (from Oracle) to create (software based) virtual-machine (VM) inside a hardware based host machine. So with this app, user can run+use multiple+different operating systems (OS) simultaneously. User can create VM as client, VM as server, client+server VM, Desktop OS VM, Mobile OS VM, etc, etc. First version used codes from QEMU. It can emulate these (hardware) architectures as VM: x86, x86-64. 
 + 
 +● __QEMU__ ([[https://www.qemu.org/|dev]], [[https://www.qemu.org/download/#macos|dnld]], [[https://git.qemu.org/git/qemu.git|src]], [[wp>QEMU|wp]]) : it is free & opensource. It is a generic & open source machine emulator and virtualizer. It can emulate various (hardware) architectures as VM, such as: x86, x86-64, MIPS64 (up to Release 6), SPARC (sun4m and sun4u) (32/64), ARM (Integrator/CP and Versatile/PB), SuperH, PowerPC (PReP and Power Macintosh), ETRAX CRIS, MicroBlaze, and RISC-V, OpenRisc32, Alpha, LM32, M68k, S/390, SH4, Unicore32, Xtensa, etc. 
 + 
 +● __NTFS for Mac__ (Microsoft NTFS for Mac By Tuxera) ([[https://ntfsformac.tuxera.com/|dev]]) : The functionality or ability to read NTFS partitions inside macOS is very helpful feature to transfer file(s) between Windows NTFS partition HDD/SSD and your APFS //(apple macOS file-system)//. This "NTFS for Mac" by Tuxera tool is not free //(aka: as freedom of software)//, it is proprietary (non-opensource) tool. Only trial version is freeware for 15days, tiral version has some helpful functionalities. Full functionalities //(after 15 days trial)// requires a payment. 
 +  * HDD/SSD storage device MFR (aka: manufacturers) also includes ''NTFS for Mac'' (__Microsoft NTFS for Mac By Paragon__<sup>[[https://www.paragon-software.com/home/ntfs-mac/|1]]</sup>, etc) software for macOS, with their some HDD/SSD storage device, So if you purchased such HDD/SSD or if your HDD/SSD drive //(in your computer)// matches with MFR'such HDD/SSD then you may use that full-version ''NTFS for Mac'' //(by Paragon)// software (by obtaining it from HDD/SSD MFR's website). a 10-day trial-version is here: [[https://www.paragon-software.com/home/ntfs-mac/|1]]
 +  * Earlier helpful software __FUSE for macOS__<sup>[[https://osxfuse.github.io/|1]], [[https://github.com/libfuse/libfuse|2]], [[wp>Filesystem_in_Userspace|3]]</sup> is not anymore ''free'' (as in freedom of software) for macOS, it is now proprietary for macOS. The __Mounty for NTFS__<sup>[[https://mounty.app/|1]]</sup> and __NTFS-3G__<sup>[[https://github.com/tuxera/ntfs-3g|1]], [[https://www.tuxera.com/community/ntfs-3g-download/|2]]</sup> are free & opensource, but slow. Linux kernel v5.15 & onward has began to support NTFS<sup>[[https://www.kernel.org/doc/html/latest/filesystems/ntfs3.html|1]]</sup> 3.1 & earlier versions, NTFS driver was provided by Paragon. 
 + 
 +● __GPT fdisk //(gdisk)//__ ([[https://www.rodsbooks.com/gdisk/|dev]], [[https://sourceforge.net/projects/gptfdisk/files/|dnld]], [[wp>List_of_disk_partitioning_software|list]]) : opensource & free partition manager tool. gdisk has TUI //(text-based semi-graphical user interface)// interface. gdisk can edit GUID partition table (GPT) definitions in Linux, FreeBSD, MacOS X, or Windows, it can convert MBR to GPT without data loss, convert BSD disklabels to GPT without data loss, create hybrid MBR or convert GPT to MBR without data loss, repair damaged GPT data structures, repair damaged MBR data structures (FixParts). macOS 10.11.x ("El Capitan") and later created some areas //(and layers)// of partitions "rootless", so users need to either disable<sup>[[http://osxdaily.com/2015/10/05/disable-rootless-system-integrity-protection-mac-os-x/|1]]</sup> SIP //(System Integrity Protection)//, or Run it from a bootable USB/CD/DVD storage disk/media (by using partition manager tools like: __PartedMagic__<sup>[[https://PartedMagic.com/|1]]</sup>). Obviously using trustworthy bootable disk is better idea+method. gdisk can work on external / USB media / disk / drive fine (without disabling SIP in macOS). it can also be installed via MacPorts pkg-mngr: ''sudo port install gptfdisk'' 
 +  * __Paragon Hard Disk Manager for Mac__ ([[https://www.paragon-software.com/hdm-mac/|dev]]) : it is a commercial & non-opensource software, GUI based. it can manage drive/disk partitions. a 10-day trial version is [[https://main-site-preproduction.paragon-software.com/us/hdm-mac/#|here]] for macOS. A community edition of //(__Paragon Partition Manager__)// is avilable which is not-trial & can continue to function for non-commercial use purpose only, but available only for Windows 7 & higher OS, [[https://www.paragon-software.com/free/pm-express/|here]]. 
 + 
 +● __UNetbootin__ ([[https://unetbootin.github.io/|dev]], [[https://sourceforge.net/projects/unetbootin/files/UNetbootin/|dnld]]<sup>[[https://github.com/unetbootin/unetbootin/releases/|2]]</sup>, [[wp>List_of_tools_to_create_Live_USB_systems|list]], [[wp>Comparison_of_boot_loaders|comparison]]) : opensource & free boot disk creator. GUI based. it allows to create bootable Live USB drives for booting Ubuntu, Fedora, and other Linux distributions without burning a CD. It can run on //(Windows, Linux, and)// macOS. You can either let UNetbootin download one of the many distributions supported out-of-the-box for you, or you can supply your own //(Linux, etc)// .iso file. 
 + 
 +● __Clonezilla__ ([[https://clonezilla.org/|dev]], [[https://sourceforge.net/projects/clonezilla/files/clonezilla_live_stable/|src]], [[https://clonezilla.org/downloads.php|dnld]], [[wp>Comparison_of_disk_cloning_software|comparison]]-(clone), [[wp>Comparison_of_disc_image_software|comparison]]-(img), [[wp>List_of_disk_cloning_software|list]]-(clone), [[wp>List_of_data_recovery_software|list]]-(recovery) ) : it is opensource & free tool to clone/backup/copy drive & partitions, from Linux OS. it has TUI //(text-based semi-graphical user interface)// based interface. Supports: FAT12, FAT16, FAT32, NTFS, ext2, ext3, ext4, ReiserFS, Reiser4, xfs, jfs, btrfs, f2fs, NILFS2, HFS+, UFS, minix, VMFS3. Obtain Clonezilla's bootable disk img file from Clonezilla dev site, After you boot from that, it will load Debian Linux & it will run Clonezilla. Usually it can be used on //(almost)// any computer (including Mac). Notice: Partitions which are proprietary & very recent & no API/access solution is yet found, support for those partitions are not yet available in this software. 
 +  * You can also use //(opensource)// __RescueZilla__<sup>[[https://RescueZilla.com/|1]]</sup> which is a Clonezilla GUI version from another developer, obtain from here: [[https://github.com/rescuezilla/rescuezilla|1]], //(it also requires booting from USB/external media/disk)//. You can also try //(opensource)// __Redo Rescue__<sup>[[http://RedoRescue.com/|1]]</sup> //(formerly "Redo Backup & Recovery")// software from here: [[https://sourceforge.net/projects/redobackup/files/|dnld]] [[https://github.com/redorescue/redorescue|src]], it is partly based on Clonezila, //(and it also requires booting from USB/external media/disk)//
 +  * __Acronis True Image 2021 for Mac__ ([[https://www.acronis.com/en-us/support/trueimage/2021mac/|dev]]) : it is non-opensource & commercial software to clone/backup/copy drive & partitions. GUI based. 30-day trial version is available [[https://www.acronis.com/en-us/support/trueimage/2021mac/|here]]. Supports: FAT32, NTFS, HFS+, APFS, ext2, ext3, ext4 and ReiserFS. Some HDD/SSD storage drive MFR //(manufacturers)// include this with their HDD/SSD, so if you've purchased drive or if your drive in your computer matches thier drive, then you can obtain the full-version from HDD/SSD MFR's website. 
 + 
 +● __Deluge__ ([[https://deluge-torrent.org/|dev]], [[https://ftp.osuosl.org/pub/deluge/mac_osx/?C=M;O=D|dnld]], [[wp>Comparison_of_BitTorrent_clients|comparison]]) : a bittorrent network based file-sharing software. free & opensource. Encrypt or Password protect files before sharing, & share password via a separate (private) channel. Filename can have contact info if you wish to be contacted, but remember that such contact info will also be abused by someone out there. More info [[https://dev.deluge-torrent.org/wiki/Installing/MacOSX#MacPorts|here]]. 
 + 
 +● __Thunderbird__ ([[https://www.thunderbird.net/|dev]], [[https://www.thunderbird.net/thunderbird/all/|dnld]], [[https://hg.mozilla.org/comm-central|src]], [[wp>Comparison_of_email_clients|comparison]]) : multi data communication-protocol supporting client, but more commonly known as an Email client app //(for viewing, reading, sending emails)//, so it is a PIM<sup>[[wp>Personal_information_manager|1]]</sup>/PDM<sup>[[wp>Personal_data_manager|1]]</sup> client //(that supports personal/private information like: emails, address-book, calendar dates, emails, instant messages, passwords, alerts, browsing site data, etc, etc)//. Thunderbird is free & opensource. It is also client app/tool for: newsfeeds<sup>[[wp>List_of_Usenet_newsreaders|1]]</sup>/newsgroups<sup>[[wp>List_of_newsgroups|1]], [[wp>Comparison_of_Usenet_newsreaders|2]]</sup> //(NNTP<sup>[[wp>NNTP|1]]</sup> client, NNTPS)// , web feeds<sup>[[wp>Comparison_of_feed_aggregators|1]], [[https://support.mozilla.org/en-US/kb/how-subscribe-news-feeds-and-blogs|2]]</sup> //(news aggregators<sup>[[wp>News_aggregator|1]]</sup>, like: Atom<sup>[[wp>Atom_(Web_standard)|1]]</sup>, RSS<sup>[[wp>RSS|1]]</sup>, etc)// client, instant messaging<sup>[[https://support.mozilla.org/en-US/kb/instant-messaging-and-chat|1]]</sup> //(aka: chat<sup>[[wp>Chat_client|1]]</sup> networks, like IRC<sup>[[wp>IRC|1]]</sup>, XMPP<sup>[[wp>XMPP|1]]</sup>, Google-Talk, <del>Twitter</del>, Odnoklassniki, etc)// client, address auto-completion (LDAP) client, etc. Thunderbird contains core/engine of Mozilla Firefox web-browser, which allows thunderbird to connect with various types of web-servers / web-sites to use various web-services as HTTP/HTTPS protocols cleints as other protocols cleints, and firefox web-browser core also allows thunderbird to open<sup>[[https://addons.thunderbird.net/thunderbird/addon/browseintab/|1]], [[https://addons.thunderbird.net/thunderbird/addon/new-tab-button/|2]], [[https://addons.thunderbird.net/thunderbird/addon/open-tab/|3]]</sup> multiple web-browser tab(s) //(inside thunderbird)// to be used by users, manually. Send yourself //(a HTML based)// email //(or chat-msg)// with URL-links to various web-site services, then inside thinderbird right-click on link //(inside email or chat-msg)// & select the option to open the link inside a New Tab inside thunderbird<sup>[[https://stackoverflow.com/questions/63253091/|1]]</sup>, in this way you can use/access various WebMails<sup>[[https://stackoverflow.com/questions/63253091/|1]], [[wp>Comparison_of_webmail_providers|2]]</sup>, Twitter<sup>[[https://m.twitter.com/|1]]</sup>, etc. More info on how to approve cookies & JS for such web-service website and dependent 3rd-party web-services //(inside thunderbird)//, are explained [[https://stackoverflow.com/questions/63253091/|here]]. Thunderbird addons can also allow access to various web-services more easily: Google-Chat<sup>[[https://addons.thunderbird.net/thunderbird/addon/google-chat-tab/|1]]</sup>, Skype-WebApp<sup>[[https://addons.thunderbird.net/thunderbird/addon/skypewebapp/|1]]</sup>, Telegram-Web<sup>[[https://addons.thunderbird.net/thunderbird/addon/telegramwebapp/|1]], [[https://addons.thunderbird.net/thunderbird/addon/telegram-web-in-thunderbird/|2]]</sup>, Google-Voice<sup>[[https://addons.thunderbird.net/thunderbird/addon/open-google-voice/|1]]</sup>, ProtonMail-Encryption-Status<sup>[[https://addons.thunderbird.net/thunderbird/addon/protonmail-encryption-status/|1]]</sup>, regimail<sup>[[https://addons.thunderbird.net/thunderbird/addon/regimail/|1]]</sup>, Google-Calendar<sup>[[https://addons.thunderbird.net/thunderbird/addon/gcaltab/|1]], [[https://addons.thunderbird.net/thunderbird/addon/google-calendar-plugin/|2]]</sup>, M-Hub Lite<sup>[[https://addons.thunderbird.net/thunderbird/addon/m-hub-lite_microsft-office-365/|1]]</sup>, TbSync<sup>[[https://addons.thunderbird.net/thunderbird/addon/tbsync/|1]]</sup>, Exquilla-for-Exchange<sup>[[https://addons.thunderbird.net/thunderbird/addon/exquilla-exchange-web-services/|1]]</sup>, Google-Contacts<sup>[[https://addons.thunderbird.net/thunderbird/addon/google-contacts/|1]], [[https://addons.thunderbird.net/thunderbird/addon/gcontactsync/|2]]</sup>, Outlook AddressBook Enabler<sup>[[https://addons.thunderbird.net/thunderbird/addon/outlook-address-book-enabler/|1]]</sup>, Display Mail User-Agnet T<sup>[[https://addons.thunderbird.net/thunderbird/addon/display-mail-user-agent-t/|1]]</sup> //(Display Email Writer's Email-Client)//, Google-Keep-(tab)<sup>[[https://addons.thunderbird.net/thunderbird/addon/google-keep-tab/|1]]</sup>, Owl (OWA) for Exchange<sup>[[https://addons.thunderbird.net/thunderbird/addon/owl-for-exchange/|1]]</sup>. This type of app is very helpful to keep multi channel communications with openwrt & other various project developers, and to test your own servers. Get firefox addon uBlock Origin<sup>[[https://addons.mozilla.org/firefox/addon/ublock-origin/|1]]</sup>, & load into Thunderbird, that addon allows you to stop un-approved Advertisements that are using+stealing your computing (CPU, GPU, etc) resources, & internet //(limited & costly)// data allotments from your ISP, etc, without your consent/permission/approval, and these advertisers also DO NOT PAY you any FEE after they used your computing & data resources. 
 + 
 +● __Apparency__ ([[https://www.mothersruin.com/software/Apparency/|dev]], [[https://www.mothersruin.com/software/Apparency/get.html|dnld]]) : it can inspect software application bundles (pkg, app, etc) for macOS, & then it can show info on code signing requirements, notarization, signatures, included frameworks, etc. it is a freeware. 
 + 
 +● __AppCleaner__ ([[https://freemacsoft.net/appcleaner/|dev]]) : open ''Finder'' > goto ''Application'' in any finder-tab > open this ''AppCleaner'' app, then drag the app that you want to remove/uninstall from ''Application'' folder/directory, & drop it inside the ''AppCleaner'', it will inspect & find-out & show all elements used by that unwanted app, & also show you option to Remove. it is freeware. 
 +\\ 
 + 
 + 
 +===== Drivers: ===== 
 +various //(opensource)// drivers for macOS, are mentioned (with website links) in this page, inside the topside ''macOS & Darwin Unix'' section. 
 + 
 +Serial-to-UART, USB-to-UART, USB-to-JTAG, etc cable/adapter's macOS/darwin drivers, to communicate with router //(from apple mac computer)//, are usually provided by the cable/adapter device's manufacturer. a slow but opensource serial-to-UART driver is also available. For more info goto [[:docs:techref:hardware:port.serial|here]].
 \\ \\
  
  • Last modified: 2022/04/01 07:33
  • by aterik