воскресенье, 20 мая 2012 г.

Mandriva, Macbook Air, Продолжение истории.


Итак, в прошлый раз, мы остановились на том, что Macbook Air, с многострадальной Mandriva на борту, таки загружается, с нормальным разрешением, с вроде как работающим WiFi’ем и вообще подает все признаки жизни.

Что можно добавить про общую работоспособность? При закрытии крышки засыпает, при открытии крышки просыпается, причем действительно быстро, совсем как OS X. При этом не отваливается WiFi, да и вообще, на первый взгляд, ничего не отваливается. Все это без каких-либо дополнительных настроек и прочих приседаний, просто работает из коробки. Это несомненный плюс. Даже не знаю Suspend to WTF он делает, хотя, поскольку swap’а я Мандриве не давал, в меру моих недалеких представлений о сновидениях в Linux, выбор не такой уж и большой :)


Вроде бы работает камера: приятно, хотя и бесполезно. Работает Bluetooth, если не забыть включить btusb в ядре. Можно даже подключить Apple Magic Mouse(там pin “0000”), которая, как на мой вкус, ведет себя гораздо адекватней чем в OS X. Это ничуть не странно: это известная багофича самой OS X – у Apple круто получается с тачпадами, но мышь, без third-party приблуд ведет себя весьма странно. Впрочем, в моем случае, это из серии “не очень то и хотелось”, особого смысла подключать мышь к MacBook’у с OS X на борту нет. Другое дело, если на борту Mandriva.

Итак, первая значительная остановка на пути “Linux на Macbook’е”:

Touchpad.

Я закончил прошлый пост тем, что написан он был в Mandriva, а вот финальные приготовления для публикации, таки пришлось делать в OS X, потому что нервов уже не хватало. Основная проблема здесь вполне известная: ноутбук, причем достаточно тонкий, руки просто “лежат” на клавиатуре, вяло нажимая какие-то клавиши, при этом, иногда ладонью слегка касаешься тачпада, и вот, ты уже продолжаешь набирать текст, в каком-то другом, рэндомном месте экрана. Я охотно поверю, что есть люди, которые принципиально так не делают, и вообще набирают текст как будто играют на фортепиано: помню в музыкальной школе нас учили, что правильное положение рук на “клавиатуре” пианины, это, естественно, навесу, причем как будто у тебя в каждой руке зажато по яблоку. Вполне возможно что так оно действительно правильно, но не всегда удобно, легко и приятно, тем более, что в нашем случае речь идет о гораздо меньшей по размерам клавиатуре.

Это я все к чему: вполне возможно, что опция “Disable touchpad when typing” для кого-то действительно не актуальна. Потому что руки никогда не попадают на тачпад, во время печатания. Но, большая часть человечества стремится вырубить тачпад нафиг, навсегда, как раз потому что очень мешает случайное позиционирование курсора :)


В Mandriva/KDE включить опцию “Disable touchpad when typing” можно в “System settings” → “Input Devices” → “Touchpad”. Там же можно задать время, через которое можно тачпад врубать назад, в пределах от 100 до 3000 ms. Как по мне, оптимальное значение где-то в пределах 1500-1700 ms, хотя это дело вкуса.

Рядом с настройками выключения тачпада во время печати можно найти и другой, на мой взгляд полезный регулятор: чувствительность(Touch Sensitivity). Небольшая чувствительность, заданная по-умолчанию – очень даже правильный выбор, можно даже еще уменьшить. Известное “лучше меньше, да лучше” здесь как раз работает, и вполне себя оправдывает.

Теперь, выбравшись из зоны неприятностей, можно переместится поближе к “приятностям”. Вкладка “Scrolling” предоставляет нам уникальную возможность выбрать между “скролом” по бокам тачпада, и привычным, уже многие годы, для пользователей OS X, двухпальцевым скролингом. И, как это ни удивительно, но если выбрать двухпальцевый скролинг, он таки работает. Причем работает вполне ожидаемо, без никаких сюрпризов, и прочих подводных течений. Прям удивительно как-то. Не ожидал.



Ходят слухи, что можно еще и мультитач поиметь, но как-то не особо и надо: кажется мне что если таки заставить работать мультитач жесты, будет это косо, криво, не везде, и только по четным дням, каждое третье воскресенье, в каком-нить не особо нужном приложении :)



Вкладка “Tapping” страшная и непонятная, но особо там и настраивать нечего. По поводу тачпада осталось два замечания. 

Во-первых, если вы пользовались ранее Lion, и привыкли к “обратному” скролу. Его можно включить в настройках мыши :) Там же в “Input Devices”, “Mouse” → “Reverse scroll direction”. Неприятная новость, как вы уже скорее всего догадались, “обратный скрол” будет и для мыши и для тачпада. То что это два разных устройства, и настройки у них не должны быть особо связаны, и могут быть эти настройки абсолютно противоположными, конечно, без Apple никто бы не догадался. Ничего, думаю когда-нить поправят, если бардак абстракций позволит.

Во-вторых, есть очень специфическая операция на тачпаде в OS X, которая кажется невозможной в Linux. Как многие наверное помнят, в новых MacBook’ах весь тачпад является одной большой кнопкой. Допустим у нас есть окно на десктопе, мы хотим его перетащить куда-нибудь. Есть два варианта: “tap” по заголовку окна, потом “полутап” - то есть опустили палец воторой раз, но не подняли, и... типа тащим окно. Другой вариант: кликаем той самой кнопкой тачпадом, и другим пальцем, находящимся на тачпаде тащим окно, ну или не окно, а что там хотим перетащить. Второй вариант возможен в OS X, в Linux’е же получается банальный “двойной клик”, поскольку вроде как два пальца на тачпаде, и что-то кликается. Достаточно неприятно, рецепта как исправить у меня в загашнике нет, не уверен что вообще исправить можно: врядли кого-то подобный “юзер експиренс” парит: ежели по тачпаду проводишь пальцем и курсор двигается, значить тачпад считаем работающим.

По ощущениям, если сравнивать с прошлой попыткой установки Ubuntu на Macbook пару лет назад, тачпад стал работать гораздо более вменяемо. Хотя, по прежнему, далеко от идеала. Основная проблема, я бы сказал, лежит не в плоскости работоспособности как таковой: тачпад работает, курсор двигает, кнопки эмулирует, и так далее и тому подобное. Проблема в количестве ошибок: не сильно широко расставил пальцы – получил клик левой клавишей, вместо правой, хотя при такой же “распальцовке” при прокрутке, все более-менее нормально. Или та же последняя история с нажатием кнопки. Или например изменение размеров окна: “тянуть” за нижний левый угол, или низ, или правую сторону окна – это требует хорошей тренировки, так как “попасть”, “зафиксировать” курсор в нужном положении, - достаточно сложная задача, а вот сверху – все хорошо. Видимо границы окон где-то в настройках выставлены по-разному, видимо это можно поправить, можно попробовать 100500 раз и таки после нескольких месяцев найти золотую середину, или же привыкнуть к тому что есть.


Клавиатура

С клавиатурой дело обстоит намного более проще, чем с настройкой тыкательного интерфейса. Оно-то в принципе и понятно: мышь, а тем более тачпад, как устройства ввода, предполагают некоторую “работу мысли” при трансляции движений пользователя, в то, что реально происходит на экране компьютера. Тут и скорости, и ускорения, и странные “кривые”. В случае с клавиатурой – все гораздо проще: нажал кнопку – соответствующий символ вылез на экране. Конечно, там где-то внутри происходит много-много чего, прежде чем символ на экран вылезет, но все же процесс гораздо более прозрачен с точки зрения простого смертного. Поэтому в настройке клавиатуры на маке, никакого особо странного вуду нет, и вообще это скорее “подстройка”, чем настройка. Здесь можно обратить внимание на три вещи:

1. MacBook Air(как и MacBook Pro), поддерживают “подсветку” клавиатуры. Кто не видел: это когда под кнопками загораются, видимо светодиодики, и немного можно крутить яркость всего этого дела. Штука, по-сути своей бесполезная, хотя, с подсветкой как-то веселее и красивее. От лишней красоты особого смысла отказываться нет, можно ее устроить и в Linux. 

Для этого:

echo 255 > /sys/class/leds/smc::kbd_backlight/brightness

0 – выключить нафиг, 255 – максимум подсветки, в этих пределах можно регулировать яркость.

На просторах интернета можно найти скриптик, который, видимо, можно привязать к соответствующим хоткеям. Не игрался. Скриптик вот тут.

Возможно, так же, кому-то будет интересен вот этот демон.

2. По-умолчанию, на макбуках, и в родной OS X и в Linux, клавиши F1-F12 отвечают за то что на них нарисовано :) То есть: яркость экрана, громкость звука и так далее. Регулировка яркостью и звуком, работает в Mandriva из коробки. Но все же, может быть не очень принципиально, но как-то привычней, когда яркость экрана: это не F1/F2, а Fn+F1/F2. Инвертировать функциональные клавиши не составляет труда:

echo 2 > /sys/module/hid_apple/parameters/fnmode

Чисто теоретически, для этих двух пунктов может работать демон под названием pommed. В Mandriva он есть в репозитории, но, видимо, MacBook Air прошлого года для него слишком новый:

May 20 16:28:43 localhost pommed[6530]: pommed v1.39 Apple laptops hotkeys handler
May 20 16:28:43 localhost pommed[6530]: Copyright (C) 2006-2011 Julien BLACHE
May 20 16:28:43 localhost pommed[6530]: Unknown Apple machine: MacBookAir4,2
May 20 16:28:43 localhost pommed[6530]: Unknown Apple machine

Если вы пытаетесь заставить работать Mandriva, или другой дистрибутив на более старом маке, или если у вас более новая версия этого демона, имеет смысл заглянуть в /etc/pommed.conf.

Опять же, хочу обратить внимание читателей на то, что достаточно информативным может быть help убунты, в котором маковской клавиатуре посвящена отдельная страница.

3. Ну и последняя в списке, но, видимо, главная по значимости вещь – это горячие клавиши. О самой главной проблеме я уже писал ранee, здесь все как было так и осталось. Так уж сложилось что на Apple-клавиатурах, нет клавиши Windows, зато есть клавиша Cmd, которая активно используется для всего на свете. В итоге, нижний ряд клавиш начинается с сочетания:

“Fn” - “Ctrl” - “Alt” - “Cmd” - “Space”.

Если по-простому, то практически все что в Windows, и частично в Linux отдано под Ctrl-хоткеи, в OS X отдано под Cmd-хоткеи. Копирование Cmd+C, Вставка – Cmd+V, отмена Cmd+Z, и так далее и тому подобное, даже переключение языка – это Cmd + Space. За исключением переключения языка, которое я бы предпочел видеть на Caps/Caps+Shift(что в OS X возможно, но через откровенно задний проход), остальное вполне удобно. Возможно, наиболее яркий пример этого удобства – это работа с терминалом, а в работе с терминалом, наиболее яркий пример - это Ctrl + C. Если вы пользуетесь Konsole, Gnome Terminal, или чем-то подобным, вам нужно выбирать: или жертвуем “общесистемной” функцией копирования, и Ctrl+C/Ctrl+V заменяем на причудливые Ctrl-Shift+C/Ctrl-Shift+V, или что-то типа, ну или нужно забыть про Ctrl+C для остановки программ. Если хоткеи “GUI-части” начинаются с Cmd, а не Ctrl, то естественно этого перекрытия не происходит в принципе. Редкая консольная утилита(даже в голову ни одной такой не приходит) по-умолчанию рассчитывает на наличие Cmd(ну или Win key).

В случае с Mandriva, из коробки, то есть с KDE, у меня, как это обычно и бывает, две новости: одна хорошая, другая плохая. Хорошая новость состоит в том что KDE через свой Control Center, позволяет переназначить все что угодно, соответственно Cmd+C/Cmd+V вместо Ctrl+C/Ctrl+V делается в два клика. Плохая новость состоит в том, что эти настройки распространяются только на KDE-приложения, и даже во всех приложениях, которые входят в состав Mandriva по-умолчанию, работать не будут. Забудьте про Cmd+C/Cmd+V в Firefox, Open Office и Thunderbird. Зато в Konsole, да, будет работать, впрочем, в Konsole есть и свой конфигуратор хоткеев, где все тоже можно переназначить.

Для Firefox есть расширение “Customizable-shortcuts”, к сожалению, сейчас, для смены маппинга Cmd->Ctrl оно бесполезно. Для Google Chrome тоже есть расширение “Shortcut Manager”, но оно тоже скорее не работает, чем работает. Open/Libre Office я особо не пользуюсь(хотя этот текст пишу именно в нем), да и не разбираюсь, поэтому ничего толкового сказать не могу: есть какой-то диалог настройки хоткеев, но его кажется не для нормальных человеков делали.

В общем, как ни печально об этом говорить, но в этом плане самая конфигурируемая система, продолжает поворачиваться к пользователю не самым приятным для созерцания местом. На форумах, и прочих местах публичного извержения мыслей, очень часто продукция Apple и словосочетание “анальное рабство” стоит в одном предложении, мол в нашей свободной ото всех, в том числе и от обязательств перед пользователем, системе, можно все, а в той же OS X, в большей части можно только то что Apple разрешит. И это правда. Но есть и другая сторона медали, в случае системы от Apple, за первоначальной конфигурацией системы стоит представление о том, как, тот самый конечный пользователь, будет этим пользоваться. Получается цельно, хоть, местами, и слабо настраиваемо. То есть итоговый продукт может нравится, и тогда вы им будете пользоваться, может не нравится, и тогда вы им пользоваться не будете. В случае со свободным и открытым миром, никакой цельности в GUI не получается. Но это уже, как и всегда, другая история.

Возвращаясь к теме работоспособности железа, вернее даже работоспособности системы на этом железе: впечатления все же скорее позитивные. То есть вроде как все работает, а то что сразу не работает, кое-как можно заставить работать, причем сделать это не есть задача сложная. Как для Mandriva в частности, так и для Linux-дистрибутивов вообще, все выглядит вполне пристойно. Если просто поменять старый лэптоп с “каким-нибудь Linux’ом” на макбук, и сразу поставить туда “какой-нибудь Linux”, особой разницы в плане поддержки или качества работы железа, наверное даже не почувствуется. Если менять OS X, которой вы долго и продуктивно пользовались, на этот самый “какой-нибудь Linux”, тот тут, конечно, будет сложнее.

вторник, 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. Стоит ознакомится.