Flat Package Editor
Magwezie
So my build has progressed by following the guides on these Forums.
I have now got to the part where I wish to install a NEW GPU (Geforce GTX960).
I have been following information provided by Stork and the link from the front page —> http://www.tonymacx86.com/graphics/161256-solving-nvidia-driver-install-problems.html
I am getting the errors and one of the fix for 2 of the issues requires the use of an application called flat Package Editor.
I have tried to get this, but it would seem you need to be a registered developer to obtain this software. Can anyone provide some advise on how to obtain this application from apple?
slim.jim
Moderator
So my build has progressed by following the guides on these Forums.
I have now got to the part where I wish to install a NEW GPU (Geforce GTX960).
I have been following information provided by Stork and the link from the front page —> http://www.tonymacx86.com/graphics/161256-solving-nvidia-driver-install-problems.html
I am getting the errors and one of the fix for 2 of the issues requires the use of an application called flat Package Editor.
I have tried to get this, but it would seem you need to be a registered developer to obtain this software. Can anyone provide some advise on how to obtain this application from apple?
You don’t have to have a paid developer account. Just register as a developer.
Magwezie
Thanks for the advise.
I finally got the application, modified the Graphic Drivers and installed successfully.
I am now booted and running using the GPU.
The only remaining issue, is that the MAX Screen resolution I have is 1080P.
My monitor supports 2560×1440 . Is there a way to force a higher resolution. I have tried holding down the Option Key but does not bring up options higher than 1080.
Step-by-step: подготовка инсталляционных пакетов Mac OS. Часть первая
Аналитики Gartner говорят, что доля Mac платформы в корпоративном секторе растет год от года. Поэтому вопрос централизованного управления Mac пакетами в корпоративных средах становится все более актуальным. Каковы преимущества использования централизованного управления ПО? Среди них:
- возможность устанавливать приложения на большое количество клиентов с едиными настройками;
- минимизация количества проблем и инцидентов с ПО за счет применения единых стандартов подготовки установочных пакетов;
- установка инсталляционных пакетов не требует действий от пользователя и каких-либо дополнительных привилегий.
Тема управления ПО достаточна обширна. Выше приведены лишь наиболее яркие и бытовые примеры. Поэтому в нашей компании подготовка инсталляционных пакетов Mac OS предоставляется в качестве отдельного сервиса.
План первой части статьи:
- Форматы, типы пакетов. В данном разделе рассмотрим разновидности пакетов и их структуру.
- Краткий обзор наиболее популярных инструментов для подготовки инсталляционных пакетов.
(под катом много фото)
1. Форматы, типы пакетов
Рассмотрим один из самых известных типов payload package:
Archive.bom – бинарный файл, который содержит список файлов для всего проекта. Для просмотра данных можно использовать Isbom в terminal.
Archive.pax.gz – отображается как pax архив и сжат с gzip tool.
Info.plist – xml файл содержащий настройки по умолчанию для всего пакета. Для просмотра содержимого используется Property list Editor tool, также можно просмотреть файл c текстовым редактором.
PkgInfo – простой текстовый файл, содержащий файл и тип создания всего пакета.
Resources – папка языкового пакета, содержащая простые строки локализации.
Meta-package
Содержит несколько payload пакетов в одном инсталляционном пакете (Contents/Packages). Meta package не устанавливает файлы сами по себе. Вместо этого он содержит в себе компоненты в виде пакетов. В Meta package можно установить отдельный package, который необходим. Meta package удобен для больших программных продуктов, когда имеется большое количество файлов, которое необходимо распространять.
Flat-package
Flat-пакет использует структуру отличную от предыдущих. Во-первых, Contents не содержит info.plist и PkgInfo. Во-вторых, сохраняет свои payload и resource на корневом уровне. И distribution.dist файл это просто Distribution.
Flat-пакет также использует более компактный формат для payload. Каждый payload имеет 3 файла. Bom файл занимает место Archive.bom. Payload файл заменяет Archive.pax.gz, а PackageInfo заменяет XML, PkgInfo. Flat-package хранит скрипты установки иначе. Pre-install, post-install action-ы стали payload action-ом. Payload состоит из главного имени пакета и тип action.
Bom – содержит список путей и файлов для всего проекта.
Payload – файлы запакованные в архив cpio.tgz.
PackageInfo – содержит информацию о пакете.
Distribution – описывает какие компоненты будут установлены на системе.
Resources – папка языкового пакета, содержащая простые строки локализации.
2. Краткий обзор инструментов для packaging
На сегодняшний день существует множество инструментов для создания package под Mac OS. Мы рассмотрим несколько наиболее известных:
Iceberg
Бесплатный инструмент разработанный Stéphan Sudre. Очень популярен среди Mac OS X администраторов. Можно создавать package и metapackage, не поддерживает создание flat-пакетов. Имеет дружелюбный интерфейс и прост в использовании, имеется подробная документация применения инструмента на сайте. Также есть поддержка создания пакетов из файловой системы через snapshot. На сегодняшний день доступная версия 1.2.9 (не обновлялась с 2010 года) может быть загружена.
Package Maker
Package Maker также может быть загружен с официального сайта Apple и считается одним из самых надежных и часто используемых из всех существующих инструментов. Microsoft, в том числе, отдает предпочтение этому инструменту и свои решения показывает в среде Package Maker. Инструмент входит в набор developer tool (XCode). Package Maker позволяет создавать Single Package, Metapackage и Distribution package. Особенностью данного инструмента является создание снимков (snapshot) файловой системы в определенный момент, что полезно, так как позволяет найти разницу в файлах. На Mac OS Package Maker находится в /Developer/Applications/Utilities.
Composer от JAMF Software
Удобный инструмент, который позволяет делать package следующих форматов: .pkg, .mpkg, .dmg. Также с его помощью можно делать снимки файловой системы для дальнейшего сравнения разницы. Он имеет хорошую документацию на английском. В свою очередь JAMF Software проводит тренинги и сертификацию для своих продуктов, и что немаловажно, существует форум, где можно найти множество советов по созданию пакетов в среде Composer. Данный инструмент является платным и на сегодняшний день стоит $99.95 (Commercial version) и $79.95 (Education version). Также можно скачать пробную версию заполнив форму request trial.
Во второй части статьи продемонстрируем, как создать пакет в среде Package Maker.
Daniel Kramnik’s Project Log
In my attempts to connect an Nvidia GTX660Ti desktop GPU to my MacBook Air, I came across the problem of being unable to install the latest Mac OSX Nvidia drivers onto my system:
Unsupported? I find that hard to believe!
Obviously, Nvidia is up to no good here! (okay, I jest, there are some pretty good reasons you don’t want everyone to be able to install Nvidia drivers on laptops without Nvidia cards)
These drivers install just fine on a Mac Pro, so we should be able to get them to run on any modern OSX 10.8.4 system, though getting them to run correctly might require some patching.
In the past, (OSX 10.8.2), installing Nvidia drivers on a MacBook Air was easy, all you had to do was right click on the driver package and select “Show Package Contents”, navigate to the Packages directory, and then run the internal “webDriverPayload” package to skip the initial check that would otherwise determine that your system is not a Mac Pro and terminate the installation:
Nvidia driver 304.00.05f02
The package within a package.
(Note: there are several ways an OSX driver package can be structure, here’s a good reference) Alternately, you could edit the Distribution.dist file directly to remove the code that checks your system’s hardware.
Unfortunately, the 10.8.4 driver prevents you from easily opening up its contents; the “Show Package Contents” option has mysteriously disappeared:
Luckily, Xcode comes to the rescue and lets up open up the package!
An Xcode accessory tool that can open and edit pkg files called PackageMaker (that actually no longer comes bundled with Xcode) can be found on the Apple developer site. Start at the Xcode download page, click on “View Downloads” under the latest version of Xcode, and sign in with an Apple ID (you don’t need to have a paid Apple developer program membership to do this — I don’t!):
The download page link.
Next, sort the list of downloads by name, scroll down to “Auxiliary Tools for Xcode – Late July 2012”, and download and mount the dmg file.
The PackageMaker download.
Once you mount the dmg file (by double clicking on it), simply drag PackageMaker into your applications folder to install it:
Now, when you right click on the driver package, you will be able to open it with “Flat Package Editor”:
Open with Flat Package Editor
In Flat Package Editor, you should be able to see some internal folders and packages, along with the Distribution.dist file (this is what we want to edit). Drag the Distribution file out of the package to copy it into the folder with your driver, and then delete the Distribution file from inside of the package:
Pulling out the Distribution File.
Now, open the copied Distribution file using Textedit:
Contents of Distribution.dist
Hmm.. that’s interesting! It looks like the “Computer Not Supported” error message is generated by a hardware checking function that simply compares the hardware model of the system to a list of allowed hardware models, and spits out a generic error message if your computer isn’t on that list. To get rid of the error message and allow the driver to be installed, delete the highlighted line of code that calls the hardware checking function, validateHardware().
Your driver’s Distribution file might have implemented this check in a different way, but the idea is still the same. Find the code that prevents the driver from installing, and make sure it never gets executed. It’s always a good idea to comment out whatever code you’re modifying instead of deleting it so that you don’t need to download the entire driver again if you mess something up.
The same technique can also be used to install new drivers on systems with old versions of OSX. Just disable the software checking function, and you’ll be able to run the driver installer.
Once the Distribution file has been modified, drag it back into the contents of the driver package in Flat Package Editor and save. Now you should be able to install the driver:
Sometimes drivers check to make sure your hardware and OSX version are supported for a good reason! In this particular case, the Nvidia graphics driver works just fine on my MacBook Air, in another case, a driver installed on an unsupported system might render it inoperable. Make sure you back up your system before you try something like this, and be prepared to spend a few hours fixing a messed up machine. Oh, and of course it should go without saying that I’m not responsible for any damage you do to your own computer.
With the Nvidia graphics driver installed, I installed CUDA drivers and added the Thunderboltizer patch from mediaPros. It’s essentially a driver code modification that enables support for a GPU over Thunderbolt by configuring the Nvidia drivers to announce that they support Thunderbolt.
Next, I plugged my GTX660Ti into a Bplus PE4H v2.1 (PCIe x1 to ExpressCard interface, $100 on eBay) and a Sonnet ExpressCard Pro (Expresscard to Thunderbolt interface, $140 on eBay), with a 16.9 second PERST# dis-assertion delay set on the PE4H, connected a computer power supply to the GPU, and wired the whole contraption to my MacBook Air using a Thunderbolt cable.
[A picture of this goes here, soon]It seems to work, mostly! The device ID corresponds to a GTX660Ti, which is correct.
I don’t have access to an external monitor to connect to the GPU at the moment, so further testing and benchmarks will have to wait. When I don’t delay dis-assertion of PERST#, the computer goes into a panic -> restart loop; verbose boot seems to indicate that some properties are missing from the Nvidia driver, which means it may require additional patching.
Once I get this working, this part of the article will get its own page that describes how to set up an eGPU on Mac OSX.