вторник, 1 мая 2012 г.

Linux, Mandriva, Macbook Air


Я немного писал про Mandriva/ROSA прошлым летом, когда текущая версия дистрибутива еще находилась в глубоком тестинге, и еще было непонятно что из этого всего получится. Хотя, нет, понятно, конечно, было, но верить хотелось в обратное. В конце-концов релиз таки вышел, Powerpack продается, причем продается достаточно задорого, а многострадальная французская компания в который раз очутилась на грани банкротства. Очередное банкротство Mandriva – тоже нифига не сюрприз, последние несколько лет для меня остается загадкой на чем они, хотя бы планируют, или планировали, зарабатывать деньги. Явно не на конечных пользователях, коих дистрибутив теряет легко и беззаботно. Но, сегодня, история не про это.

Еще со времени первого знакомства, тогда еще с релиз-кандидатом ROSA Desktop 2011, у меня сложилось ощущение что разработчики этого дела явно ходят за вдохновением в OS X. Кое-где явно, кое-где не очень, но ассоциации с операционной системой от Apple так или иначе напрашиваются сами собой. В принципе, в обсуждениях дистрибутива на unixforum это тоже неоднократно всплывало. В связи с этим, где-то в глубинах подсознания засела идея посмотреть на эту самую Mandriva, в естественной, так сказать, среде обитания: на компьютере от Apple. Единственное что останавливало, это то, что все же, машины несколько необычные, есть свои особенности разбивки диска и загрузки, от чего установка Linux, сама по себе, может превратится в вялотекущий квест. В конечном итоге, все же решил попробовать.

Итак, дано: MacBook Air, версии года 2011:

[root@localhost]# dmidecode -s system-product-name
MacBookAir4,2

13”, 4Gb RAM, Core i5 1.7GHz, WiFi BCM43224, SSD 256Gb. C OS X – вполне неплохой, вполне быстрый ноутбук. Тихий, легкий, тонкий. Мечта идиота :)

Задача установки Linux несколько усложняется двумя фактами: нет CD-привода, поэтому просто вставить диск и прокликать не получится(и в случае чего вставить recovery CD для восстановления OS X тоже не получится, но это уже другая история, не будем про это), нет "проводной" сетевой карты, с которыми обычно в современных Linux’ах проблем нет, есть только WiFi, с которым проблемы обычно есть.

Тем не менее, общая стратегия установки для многих современных дистрибутивов достаточно проста:
  1. Качаем установчный iso, желательно не netinstall, а что-то покрупнее. И в той же OS X простым dd переносим этот образ на флешку. В духе:
    sudo dd if=Downloads/Mandriva.2011.x86_64.1.iso of=/dev/rdisk1
    Тут стоит обратить внимание на то, что иногда в OS X эта команда почему-то не спешит останавливаться, даже после того как образ скопирован. Причин не знаю, экспертом в области dd не являюсь. Можно или загодя ограничить количество перегоняемых байт размером образа, или, если уже бежит, то минут через 20 можно остановить с помощью Ctrl+C, скорее всего все уже скопировалось :)
  2. С помощью Disk Utility освобождаем немного свободного места на диске. Разделов создавать не нужно, достаточно просто сделать «Free Space»:

  3. Ставим refit
  4. После чего можно попробовать с помощью refit и такой-то матери загрузить инсталятор с флешки. В опциях ядра для загрузки скорее всего придется убрать vga=, если присутствует, и добавить nomodeset. Иначе ничего разумного на экране не увидите(впрочем, не всегда).
  5. Устанавливаем дистрибутив как привыкли. Только загрузчик ставим не в MBR, а на корневой раздел(если поставите в MBR, ничего особо плохого не случится, есть даже шансы что все загрузится, и ничего не поломается, но лучше не экспериментировать).
  6. После установки нужно сделать gptsync(в Linux) или, тоже самое, с помощью  Partitioning Tool в refit. Если повезло – все будет работать. То есть то что вы установили  - таки загрузится.

По этой схеме вполне удачно можно поставить Debian testing. Правда, возможно, во время установки вы захотите подсунуть ему фирмварь для WiFi, тогда придется помучится(Немного на эту тему можно прочитать вот здесь). Если не захотите, пакет вполне можно поставить и потом, и продолжить обновления и установки пакетов не попавших на установочную флешку уже опосля. Возможно, так же, интересным вариантом, может быть загрузка без использования refit, по приведенной ссылке есть описание того как этого можно добиться: не пробовал.

Запустить инсталятор и  даже что-то поставить так же можно для openSuSE и Mandriva, правда без дополнительных телодвижений загрузить установленное у меня не получилось(вот тут отличие от Debian). Скорее всего стратегия будет работать для Fedora, не пробовал, скорее всего не будет работать для Ubuntu: тоже не пробовал. Где-то встречал упоминание о том что для Ubuntu нужен какой-то особый уличный iso-шник, вполне возможно что это действительно так. В любом случае, в убунтовской wiki есть целый раздел про установку на маки, если вы хотите поставить  на макбук убунту, обязательно сходите туда, и даже если планируете ставить что-то другое, - не стоит отказываться от этого источника информации только потому что пользуетесь другим дистрибутивом.

Важное замечание: если получилось загрузить инсталятор, и даже что-то с его помощью установить, скорее всего загрузить то что установлено получится. Возможно, не с первого раза, возможно, несколько раз придется переустановить GRUB, возможно загрузившись в каком-нить режиме восстановления с той же флешки. Если загрузка дошла до выбора ядер/ОС в GRUB’е – скорее всего все загрузится. Для первой загрузки не стоит забывать про nomodeset.

Hint1: В случае с установкой Mandriva, мне помогло удаление всех загрузщиков которые я наустанавливал во время установок и в последующих попытках загрузить то что установлено: в MBR, на раздел, на другой раздел, и переустановка GRUB’а банальным grub-install’ом. Удалить загрузчик можно тем же dd:

dd if=/dev/zero of=/dev/sda4 bs=446 count=1

Hint2: В случае Mandriva загрузится в установленную систему можно с помощью той же установочной флешки. Просто, в опциях загрузки убиваем все кроме ядра и initrd, и вписываем root=раздел_который_подходит_по_смыслу, в моем случае это был root=/dev/sda4. Насколько я помню, обычно, такой финт ушами с инсталяторами других дистрибутивов не прокатывает.


Hint3: Редактирование опций загрузки в GRUB’е - 'e' , в инсталяторе Mandriva - Tab  . Подсказки, обычно, находятся прямо под меню выбора ОС, главное их читать.

После всех странных манипуляций мы получаем загружающуюся Mandriva, но с несколько маленьким разрешением. Не знаю точной физики процесса, но, совет поставить ядро поновее сработал, поэтому в других вариантах(если они есть) решения проблемы не копался. Возможно, при современном развитии десктопостроительства вариант "собрать ядро после установки системы" кажется диким, но почему бы и нет.

Неплохой конфиг можно найти здесь. После make oldconfig, нужно обратить внимание на то что Device Drivers → Broadcom Specific AMBA → BCMA support – включен(модуль), и Device Drivers → Network Device Support → Wireless LAN → Broadcom IEEE802.11n PCIe SoftMAC WLAN driver, тоже не оставлен без внимания. Последний драйвер требует фирмвари, которая в Mandriva уже есть, если нет, можно последовать соответствующей инструкции с linuxwireless для brcmsmac .

В сухом остатке мы получаем загружающуюся систему, с первого взгляда вполне работоспособную и готовую к дальнейшим настройкам и прочим манипуляциям. Этот текст был набран в свежеустановленной Mandriva на MacBook Air, но редактировался уже в OS X, поскольку бороться с тачпадом сил уже не было, а по умолчанию он не то что не помогает, а скорее мешает, обеспечивая рэндомное положение курсора в редактируемом тексте.

Литература по теме:

1. Уже упомянутая статья про установку OpenSuSE на MacBook Air, мне кажется наиболее разумный и полезный источник информации, для этапа установки. В том числе и для дистрибутивов с openSuSE никак не связанных.

2. Евгений Додонов, некогда работавший в Mandriva(вроде уже нет?) описывал свои опыты с установкой дистриубтива на творение яблочной компании. Как по мне, есть сомнительных операций, но в конечном счете, если это работает, то почему бы и нет.

3. Ubuntu и Debian имеют интересные разделы про MacBook'и в своих wiki. Стоит ознакомится.

1 комментарий:

Анонимный комментирует...

Гонево;
судя по скрину, стоит обычный хард на 250 гигов, такие в прошках ставили