Просмотр полной версии : OSX x64 вопросы и проблемы
Люди подскажите, купил себе Air по умолчанию он грузится в 32 битном режиме, пробовал при загрузке 6 и 4 зажимать не помогает. В boot прописывал arch=x86_64 и даже -x64 на тоже не помогает, может кто подскажет что не так делаю.
alexlov, изначально это ограничение фирмы-производителя. Впрочем кое-что можно попробовать...
в терминале введите:ioreg -l -p IODeviceTree | grep firmware-abi
Если результат будет, как у меня на макбуке:"firmware-abi" = <"EFI32">
то ИМХО лучше не пытаться дальше. Никакие "boot- args=" просто так не заведут ядро в 64-х битах.
SnowLeopard and 64-bit.
August 14th 2009 Posted to Snow Leopard
It looks like not all users understand about 64-bit support in snow leopard.
So, here is how it works:
on all Macs, except xserve, system boots by default 32-bit kernel.
This kernel can run 64-bit apps justs fine on core 2/core i7 based cpuz.
64-bit kernel works only on macs with 64-bit efi, this is limitation set by Apple,
technicaly 64-bit kernel can be launched by 32-bit efi just fine.
also Apple disabled 64-bit kernel support for any macbooks, even with 64-bit efi.
64-bit Kernel can run both 32 and 64 bit apps.
On hackintosh only cpus with ssse3 can run 64-bit kernel/apps, its core2/corei7 based cpus.
if kernel is 64-bit, then it can load only 64-bit kexts.
if kernel is 32-bit, then it can load only 32-bit kexts.
Userspace program cant load plugins with other architecture, for example menumeters will work only when you booted legacy, so menubar created by 32-bit application.
Quicktime uses InterProcess Communications(IPC) to load 32-bit codecs in 64-bit player.
64-bit safari uses IPC to load 32-bit flash player plugin.
To try to boot x86_64 kernel on Macintosh, edit this file:
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
find there:
<key>Kernel Flags</key>
<string></string>
and change it to
<key>Kernel Flags</key>
<string>arch=x86_64</string>
Если у вас EFI64, отпишитесь. Не вы первый задумали запустить кернел в 64 битах на макбуке, вот только вопрос на сколько далеко вы готовы пойти ради этого.. =)
информация для осмысления, но никак не руководство к действию:
If you really need to boot into K64 on such a machine with 64-bit EFI, you can—at your own peril—"fix" things within boot.efi by setting the appropriate bits in the hardcoded list of models. To ensure that we’re talking about the same multiarchitecture version of boot.efi, compare the SHA-1 checksum of that file.
$ shasum boot.efi
2fb9fc10e5b4bb06f62c38b01bd9836a433897f8 boot.efi
Then, change the 1 byte at the corresponding model-specific position in the following table to the corresponding new value. Rather than overwriting the original boot.efi, we will copy the original to a new file, say, boot-k64.efi, and edit the latter.
Model (with 64-bit EFI) Byte Position in boot.efi Old Value New Value
Mac mini 0x266D8 0x00 0x04
MacBook 0x266E8 0x00 0x04
MacBook Air 0x266F8 0x00 0x04
iMac 0x26718 0x08 0x0c
For the specific case of the MacBook, which is the only one I've actually tried, the before and after bytes will look like the following:
0x266E0:
38 47 01 00 00 00 00 00 00 00 00 00 00 00 00 00
0x266E0:
38 47 01 00 00 00 00 00 04 00 00 00 00 00 00 00
We'll place the boot-k64.efi file somewhere on the root volume—/System/Library/CoreServices/ is fine. Then, we need to reset volume bootability through the bless command-line program. Optionally, we can also set the ownership and user immutable flag on the file to "proper" values.
$ sudo cp boot-k64.efi /System/Library/CoreServices/
$ cd /System/Library/CoreServices/
$ sudo chown root:wheel boot-k64.efi
$ sudo chflags uchg boot-k64.efi
$ sudo bless --folder /System/Library/CoreServices \
--file /System/Library/CoreServices/boot-k64.efi
Your mileage may vary depending on whether your installation has 64-bit versions of all necessary drivers for the model of your specific machine. Since I have not tried any other "excluded" machine besides a 64-bit MacBook, I don't know about other models. (Unavailability or instability of certain 64-bit drivers could be a plausible reason for these models to be excluded in the first place.)
If you do render your system unbootable, you can simply run bless again to restore volume bootability as it was before. That is, you can tell bless to use the original boot.efi. Of course, to do that, you'll need to either boot from a different volume (a system install disc would be fine), or be able to access and write to the unbootable volume from another computer.
$ sudo bless --folder /Volumes/BrokenMac/System/Library/CoreServices \
--file /Volumes/BrokenMac/System/Library/CoreServices/boot.efi
"firmware-abi" = <"EFI64">
Так и есть efi 64 что можно попробовать, я готов идти дальше
alexlov, в принципе я уже все данные написал. Прийдется открыть boot.efi в hex редакторе и заменить одну цифру.
Для начала в терминале
shasum /System/Library/CoreServices/boot.efi
если совпадет с 2fb9fc10e5b4bb06f62c38b01bd9836a433897f8, то можно попробовать пройти по рекомендациям в статье Amit Singh.
-скопировать свой boot.efi в ту же папку с именем boot64.efi
в терминале:
sudo -s
cp /System/Library/CoreServices/boot.efi /System/Library/CoreServices/boot64.efi
chflags nouchg /System/Library/CoreServices/boot64.efi
Hex редактор любой, например:
_http://www.suavetech.com/cgi-bin/download.cgi?0xED.tar.bz2
В нем открываем /System/Library/CoreServices/boot64.efi
Далее переход на позицию 0x266F8:
ПОЗИЦИЯ старое новое
Mac mini 0x266D8 0x00 0x04
MacBook 0x266E8 0x00 0x04
MacBook Air 0x266F8 0x00 0x04
iMac 0x26718 0x08 0x0c
и редактируем значение
0x266F8: 00 00 00 00
0x266F8: 04 00 00 00
Далее в терминале:
cd /System/Library/CoreServices/
sudo chown root:wheel boot64.efi
sudo chflags uchg boot64.efi
sudo bless −−folder /System/Library/CoreServices/ \
−−file /System/Library/CoreServices/boot64.efi
Ну и не забыть в boot.plist
<dict>
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string>arch=x86_64</string>
</dict>
Перезагрузка.
upd:
Поправочка So I spent all morning reversing the new 10.6.5 boot.efi, and I was able to get my Mac Mini 3,1 booting 64bit again. I’ve also got some relevant information regarding offsets (although I haven’t figured out any of the other model numbers just yet).
The models->64 bit enable table starts at 0×286d0 in the new boot.efi. The model “signature” is a pattern of 3 bytes: MODELNO + 42 02. Model entries are 12 Words (4bytes) wide including the signature. The byte which determines if the system can boot 64bit is the first byte in the second word of the entry.
The model table for the new boot.efi is +0×2000 offset from the original boot.efi (the original’s boot table starts at 0×266D0). Models entries in the old version are only 4 words wide. The model number is plus +28h from the old entry, and the “signature” bytes are + now 0×42 0×02
Ex: old boot.efi (Mac Mini 3,1 identifier):
0×266D0: 30 47 01
New boot.efi Mac Mini 3,1 identifier:
0×286D0: 58 42 02
Example (unaltered) for the Mac Mini 3,1
0×286D0: 58 42 02 00 | 00 00 00 00 | 04 00 00 00 | 01 00 00 00 (8 more words of 0s until next model omitted)
To enable 64bit booting for a model, simply add 4 to the enabler byte: the Mac Mini 3,1 altered to boot 64 bit:
0×286D0: 58 42 02 00 | 00 00 00 00 | 08 00 00 00 | 01 00 00 00 (8 more words of 0s until next model omitted).
So basically, it would probably be safe to look for the signature:
| XX 04 02 00 | 00 00 00 00 | YY 00 00 00
where XX is a model number, and change the value in YY to +4 until you find one that enables 64bit mode for your model.
Но это еще надо осмыслить. Я, честно говоря, сразу не могу сказать как распространить это замечание на новый boot.efi для вашего air.. Его надо бы как-то в руки взять, для наглядности..
Для восстановления изначального состояния, если загрузка не стартовала, нужно будет загрузиться с установочного диска/флешки и в терминале выполнить:
$ sudo bless --folder /Volumes/yuorsystemdisk/System/Library/CoreServices \
--file /Volumes/yuorsystemdisk/System/Library/CoreServices/boot.efi
Для возврата в прежнее состояние.
Возможно лучше поискать готовые, патченные boot64.efi для вашей именно модели. Народ после выхода в свет этой статьи озаботился вопросом и наверняка есть готовые решения.
Имейте ввиду, что даже в случае успешного старта в 64 битах, кой-чего может отвалиться в результате того, что не будет 64-х битных кекстов. Например Airport, как вариант....
Я не совсем понимаю, в рекомендации для нового ефи как пример речь идет о mini. Судя потому что мне выдал терминал "76430c7022bf7b3d68a9094d22589673c30323f2 " ни как не могу сообразить да и переводчик как то не складно переводит. Как мне узнать какую именно цифру заменить и как?
Добавлено через 1 минуту
Его надо бы как-то в руки взять, для наглядности..
Подскажи как, я дам
alexlov, скопируйте boot.efi например на рабочий стол:
терминалом:
sudo-s
cp /System/Library/CoreServices/boot.efi /Users/ваша папка/Desktop/boot.efi
Положить на rapidshare и ссылку сюда.
Попробую списаться с автором комментария и уточнить у него.. У меня под руками нет макбука с подходящим efi.. (хотя не уверен: валяется какой-то черный американец. Сравню какой у него и какой у вас)
Вобще это вы для чего замыслили? Нужно какое-то 64-битное приложение, или спортивный интерес?
Спортивный естественно, вот только через терминал не получается "comand not found" Хотя корневой пользователь включен, может как то без терминала можно его вытянуть?
alexlov, поставьте, например forklift, чтобы не включать показ скрытых файлов в файндере... Иначе рабочий стол начнет пестрить всяким ненужным. И им уже найти System/Library/CoreServices/boot.efi
chiefontech
10.03.2011, 14:49
А утилита "32- or 64-bit Kernel Startup Mode Selector" не поможет в этом?
А утилита "32- or 64-bit Kernel Startup Mode Selector" не поможет в этом?
Уже пробовал и мак пилот тоже.
Добавлено через 11 минут
Sharer: буду очень признателен если поможите вот ссылка-http://rapidshare.com/files/451869440/boot.efi
Всем спасибо, проблему решил-просто поставил Leon. Как ни странно но он по умолчанию уже грузится в 64 bit.
"firmware-abi" = <"EFI64">
скажите, а что даст загрузка в 64-битном режиме? или ссылку? если не сложно
PS точнее не загрузка, а работа в 64 бита?
vBulletin® v3.8.9, Copyright ©2000-2026, vBulletin Solutions, Inc.