Project Tri-Pong Mac OS
- 1Netbooting Apple Mac
- 1.1Using stones (aka startup keys)
- 1.1.1ISC DHCP Server
- 1.2Using bless
- 1.1Using stones (aka startup keys)
Mac OS Projects, a Studio on Scratch. For Mac Projects, such as Destroying or Coded Mac OS. If you make something REALLY good, I will promote you. Native Mac apps built with Mac Catalyst can share code with your iPad apps, and you can add more features just for Mac. In macOS Big Sur, you can create even more powerful versions of your apps and take advantage of every pixel on the screen by running them at native Mac resolution. Apps built with Mac Catalyst can now be fully controlled using just the keyboard, access more iOS.
Netbooting Apple Mac
- The Mac operating system continues to gain market share of the desktop operating system in a slow but steady climb over the years. The ability of well-designed Mac computer models to operate web-based applications has now made it a familiar business work desktop for project management.
- Use a Boot Camp partition to install Window OS on your Mac, then install MS Project there, or Use Parallels or VMware Fusion to create a Virtual Machine, install Windows on the VM, then install MS Project there,.
Intel Macintoshs all use (U)EFI - where common PCs have a BIOS - to bootstrap and to some extent talk to hardware. Several different ways exist to make those Macs boot from network. Depending on your preference and setup choose whichever suites you.
Untested hint: Verbose Mac OS boot: sudo /usr/sbin/nvram boot-args='-v' (https://groups.google.com/forum/#!topic/macenterprise/y1RnrjpvSr4)
Using stones (aka startup keys)
On startup (when you hear the sound, before Apple sign comes up) you can hold down different keys to make the Mac boot from network. Apple uses a kind of special protocol called BSDP which is partly similar to the well known DHCP protocol. But there is more to it. Find a detailed explanation here if you want to dig into it. This method is called 'Using stones' as people use stones or other similar objects to boot a whole lab of Mac clients by putting a stone on the keyboard to hold down the 'n' key - but there are other ways to achieve this too!
ISC DHCP Server
To make a Mac client boot from network you need to extend your DHCP server configuration. Add the following option to your subnet section:
Project Tri-pong Mac Os Download
To issue special answers to Mac clients you also need to define a class:
Important note: This simple config might only work with older Mac OS clients like MacBook1,1, MacBook6.2 and others. For newer models you need the advanced config
Restart the DHCP server after saving the configuration. Then booting up your Mac client hold down the 'n' key and you will see a globe spinning instead of the usual apple sign. The Mac requests an IP from the DHCP server which advises it to load iPXE via TFTP and boot that up.
architecture
That was easy. So now we can go into the details of delivering different iPXE binaries for varying Mac platforms:
Important note: This simple config might only work with older Mac OS clients like MacBook1,1, MacBook6.2 and others. For newer models you need the advanced config
To lookup Mac models and their architecture/CPU this website comes in very handy!
fancy
Newer Macs also have a fancy version of network booting. Hold down the 'alt' key and you will see different disks and network images to boot from. To make this work you need to modify the class definition:
Important note: This advanced config is proved to work with Macmini5,2, Macmini6,2, Macbook1,1, Macbook6,1, iMac12,1 and Macbookpro9,2
For more information about the rows of hex numbers see this excellent example. And here you can find a even more advanced example configuration.
Startup Disk
When using a proper Mac OS X server one can configure a NetBoot device/server in System Preferences -> Startup Disk. See here:
Unfortunatelly our previously configured NetBoot ISC DHCP server is not showing up in that dialog. It's just one simple thing preventing that. Mac OS sends a DHCPINFORM broadcast message to enumerate NetBoot images on the network. Usually DHCP messages are sent from UDP source port 68. But not in this case - Startup Disk enumeration sends DHCPINFORM with a random source port smaller 1024 (don't ask me why!). Here you can find a patch to make ICS DHCP server answer those messages properly.
DNSmasq
As well as ISC DHCP also dnsmasq can be configured to serve as netboot server for Mac clients:
Note: Only works with old Macs like Macbook1,1 and Macbook6,1...
Add those five lines to your configuration, save and restart the service. Try booting one of your Macintoshs holding down the 'n' key while it comes up. You should see a globe - instead of the apple - on the screen!
The more advanced config for dnsmasq looks like this:
This still does not address the issue of selecting the correct iPXE binary for 32 or 64 bit.
Using bless
An Apple Mac can be 'blessed' to boot from whichever source you want via commandline. This setting is saved in NVRAM and not changed by cloning your Macs via FOG. I'd suggest activating SSH on your Macs and use clusterssh to bless all of them without having walk to and login to each and every client.
To 'bless' your Mac turn it on and let it boot up as usual. Login and open the Terminal App and run the following command (use a proper IP instead of x.x.x.x):
According to this website the bless command is part of Mac OS X since 10.4.5. Earlier versions probably don't work that way!
No special DHCP configuration is needed for this! BUT if your server ip changes for example you'd have to run this command on all your clients again.
Culprits
Newer Mac OS X releases do not allow blessing as is. You need to allow using the address with a tool called csrutil. See here for more details: https://support.apple.com/en-us/HT205054
iPXE for Macintosh
As noted earlier there is a fundamental difference between Mac-EFI and PC-BIOS. Not just with configuring network boot but also when it comes to the binary being loaded via TFTP and executed on the client. To make iPXE work on Macs a lot of work has been done in 2014. Check out this thread if you are interested in the details: http://forum.ipxe.org/showthread.php?tid=7323
The mentioned DHCP class should point the client to the correct iPXE binary (ipxe.efi). FOG includes this binary in current SVN development tree or you can download a binary from the repository if you are still using an older version of FOG: https://svn.code.sf.net/p/freeghost/code/trunk/packages/tftp/
Depending on the hardware you have this might work for you straight away. If not, please get in contact with us on the forums so we can work on it to find a solution!!
Working devices
Macbook1,1 ...
Macbook6,1 (W89452MK8PX), nVidia NForce MCP79 (PCI ID 10de:0ab0) - http://www.everymac.com/systems/apple/macbook/specs/macbook-core-2-duo-2.26-white-13-polycarbonate-unibody-late-2009-specs.html
Macmini5,2 (C07G3W4ADJD1), Broadcom NetXtreme BCM57765 (PCI ID 14e4:16b4) - http://www.everymac.com/systems/apple/mac_mini/specs/mac-mini-core-i5-2.5-mid-2011-specs.html
Macmini6,2 (C07LR0UQDY3H), Broadcom NetXtreme BCM57766 (PCI ID 14e4:1686) - http://www.everymac.com/systems/apple/mac_mini/specs/mac-mini-core-i7-2.6-late-2012-specs.html
Notes from developers
Apple and its proprietary way of doing things. Simple explanation, netboot is not pxe boot. OS X is very picky about netboot. The efi iPxe file first must be named boot.efi as well as match the architecture of the machine that is booting (for you thats 64 bit) secondly not all ethernet or wifi adapters will be visible to iPxe after handoff. DHCP must point to that file as well as the boot file also.
Basically you have a few options but I will line out what we do. When I create an image, on the “master” machine I create the smallest partition possible. In that partition I add the folders:/System/Library/CoreServices/
After that I add the 64 or 32 bit ipxe file naming it boot.efi. Again for you thats a 64 bit file
Now on reboot, hold down option and select that partition. If it is able to find your nics and boot to FOG then you are in good shape!!. If it works copy the partition you just created to a usb disk. Now use that to boot your machines. Realize that you can simply select the usb disk in the boot manager and once iPxe loads up pull it out, and use it on another machine (if you are doing multiple machines). Because of limitations in iPxe do not expect a pretty FOG Menu. No background picture and such.
If your nics are not visible to the efi iPXE then you will need to use the undionly.kpxe file.
Reference: https://forums.fogproject.org/topic/7358/cannot-boot-macbook-7-1-from-pxe/9
Related articles
Articles related to ISC-DHCP
Development Tools and Libraries
CRAN R 4.0.0 builds and higher no longer use any custom compilers and thus this directory is no longer relevant. We now use Apple Xcode 10.1 and GNU Fortran 8.2 from https://github.com/fxcoudert/gfortran-for-macOS/releases.For more details on compiling R, please see alsohttps://mac.R-project.org/tools/Previous tools
The following is provided as support of older versions of R. If you use R 4.0.0 or higher, please disregard and read the top section.R 3.5.0-3.6.3 El Capitan binaries and higer were using more recent Clang compiler and GNU Fortran 6.1 to provide OpenMP parallelization support and C++17 standard features. If you want to compile R packages from sources, please download GNU Fortran binary from the official GNU Fortran Binaries page - in particular OS X 10.11 gfortran 6.1. Alternatively, we are providing a copy here as well as Clang binaries for OS X 10.11 and higher - see below for the download links.
Files:
clang-8.0.0.pkg (OS X 10.11+, signed, 64-bit) MD5-hash: 664582b0722cb59802cb762b2ad7548b (ca. 482Mb) | Clang 8.0.0 for OS X 10.11 and higher, release build for x86_64, signed package, installs into /usr/local/clang8. To be used with El Capitan builds of R 3.7.0 and higher. It is an installer version of the official LLVM released binaries only modified to use the path above. |
clang-7.0.0.pkg (OS X 10.11+, signed, 64-bit) MD5-hash: cef3fd2a5c165d00f9941f64ea4024f7 (ca. 463Mb) | Clang 7.0.0 for OS X 10.11 and higher, release build for x86_64, signed package, installs into /usr/local/clang7. To be used with El Capitan builds of R 3.6.x. It is an installer version of the official LLVM released binaries only modified to use the path above. |
clang-6.0.0.pkg (OS X 10.11+, signed, 64-bit) MD5-hash: c29700c4e7b2914073ef7e741eb105bc (ca. 418Mb) | Clang 6.0.0 for OS X 10.11 and higher, static build for x86_64, signed package, installs into /usr/local/clang6. To be used with El Capitan builds of R 3.5.x. |
gfortran-6.1.pkg (OS X 10.11+, signed, 64-bit) MD5-hash: 201026216e8b373d9cd2efc0cc474bb8 (ca. 73Mb) | GNU Fortran 6.1 for OS X 10.11 and higher - a copy from GFortranBinaries pages for x86_64, signed package, installs into /usr/local/gfortran (identical content, re-packaged to a flat Installer package and signed). To be used with El Capitan builds of R. |
The following binaries are obsolete and only provided for historical reasons | |
gfortran-4.2.3.pkg (OS X 10.5+, signed, 64-bit driver) MD5-hash: 8783f803038abe6487a362ad5b8995ea (ca. 27MB) gfortran-4.2.3.dmg (OS X 10.4, 32-bit driver) MD5-hash: 9551fc46f55537dd1db581154daf27ef (ca. 27MB) | Universal GNU Fortran 4.2.3 for Mac OS X 10.4 and higher. It is necessary in order to build R packages from sources that contain Fortran code. Unlike many other builds, this is a fully universal build of GNU Fortran that uses Apple's driver and supports all target architectures (i386, ppc, x86_64 and ppc64). As such it fully supports compilation into fat files like gfortran -arch i386 -arch ppc -arch x86_64 -arch ppc64 t.f -o ton both Intel Macs and PowerPC Macs (32- and 64-bit). Dependent libraries are fat as well, avoiding problems known from other Fortran builds (such as those from HPC). It installs in /usr/local and comes with an uninstall-script. |
tcltk-8.5.5-x11.pkg (OS X 10.5+, signed) MD5-hash: e7c406d91762ffdc4539b23c5b5a3ab4 (ca. 9MB) tcltk-8.5.5-x11.dmg (OS X 10.4) MD5-hash: c32dda1b9f2c2776a02cec4e03befc76 (ca. 9MB) | Universal build of Tcl/Tk 8.5.5 for X11 (32-bit and 64-bit). This library is necessary in order to use the tcltk R package (for R 2.8.0 - 2.15.3 only!). It installs in /usr/local. Requires Mac OS X 10.4 (Tiger) or higher for 32-bit R and Mac OS X 10.5 (Leopard) or higher for 64-bit R. NOTE: R 3.0.0 and higher comes bundled with Tck/Tk 8.6.0 so you do not need this package |
For other (optional) 3rd party libraries for development see http://mac.R-project.org/libs/. The devpack has been superseded by those libraries. For R you may want to download and install libpng, libjpeg, readline, freetype, fontconfig, pixman and cairo.
Project Tri-pong Mac Os X
Source code for all 3rd party libraries can be found at http://mac.R-project.org/src/
The dependency libraries used by the CRAN macOS build system are now managed by build recipes. Package authors wishing to add static dependendies can create a pull request to add a dependency.
Subdirectories:
old | Previous versions of tools as supplied with legacy R versions. |
You may also want to read the R FAQ and R for Mac OS X FAQ. For discussion of Mac-related topics and reporting Mac-specific bugs, please use the R-SIG-Mac mailing list.
Information, tools and most recent daily builds of the R GUI, R-patched and R-devel can be found at http://mac.R-project.org/. Please visit that page especially during beta stages to help us test the Mac OS X binaries before final release! The page also contains links to experimental builds as such 64-bit R for OS X.
Link to corresponding sources: http://mac.R-project.org/src/
Project Tri-pong Mac Os 11
Last modified: 2020/04/24, by Simon Urbanek
Project Tri-Pong Mac OS