понедельник, 30 ноября 2009 г.

Macbook + Linux....

Как-то летом, когда на Линуксфорум наползло троллей яростно выбирающих Windows, стало складываться ощущение что все разумное, доброе и вечное из мира ушло. Поэтому, для того чтобы восстановить потерянное равновесие, я создал тему с вопросом "А за что вы любите Линукс?". Ответов было много разных, и практически без образчиков предсказуемого идиотизма в духе: "Как можно любить операционную систему? Любить надо женщин". Ничего не имею против второй части утверждения, но мои жалкие знания русского языка подсказывают что любить можно еще и Родину, пиво, и много-много чего другого. Почему не может быть любимой операционной системы, если есть, скажем, любимый свитер, или любимый сорт сыра непонятно.

Можно относится к компьютерной программе как к некоторой абстракции, имеющей вполне определенный функционал. И это в принципе будет правильно. Можно даже пойти дальше, и утверждать что программы нужно выбирать исходя из поставленных задач, основываясь на законах логики, и никаким "любимым программам" в серьезном мире не место, да и вообще эмоции в отношении программного обеспечения - это бред. Но, допустим, у нас есть несколько программ обладающих примерно одинаковым функционалом: vim vs. emacs, Opera vs. Firefox, etc. Обе программы неплохи, сами по себе, но если мы возьмем двух живых пользователей, с примерно одинаковыми требованиями, которые обоими программами покрываются с головой, они могут сделать разный выбор, и потом ночами на пролет доказывать друг другу на очередном форуме, что собеседник неправ. Логика отходит в сторону уступая место тем самым эмоциям, ассоциациям и беспокойному дедушке Фрейду.

Я, наверное как и многие линуксоиды, ради интереса, чтобы поиграться, устанавливал себе практически все дистрибутивы к которым мог дотянуться. Ответить на вопрос о любимом дистрибутиве мне будет несколько сложно, хотя это, безусловно Debian. С нелюбимыми все гораздо проще: Mandriva и Ubuntu, причем какой-то разумной аргументации привести я не смогу, поскольку ни тем, ни другим никогда сколько-нибудь долго не пользовался... до последнего времени не пользовался:

diesel@indie:~$ cat /etc/issue
Ubuntu 9.10 \n \l

diesel@indie:~$ uptime
02:31:56 up 3 days, 6 min, 5 users, load average: 0.38, 0.56, 0.55
diesel@indie:~$

Возможно, свою роль сыграло здесь то, что я последние полторы недели болел: не на столько сильно, чтобы вообще не подходить к компьютеру, но все же никакого устойчивого желания думать, копаться, разбираться не возникало. В тоже самое время, желание перевести в конце-то концов и MacBook на Linux возникло давно, и крепло. На всякий случай, здесь и далее речь идет о:

diesel@indie:~$ sudo dmidecode -s system-product-name
MacBook4,1

diesel@indie:~$ lspci
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03)
00:1f.2 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 03)
02:00.0 Network controller: Broadcom Corporation BCM4328 802.11a/b/g/n (rev 03)
03:00.0 Ethernet controller: Marvell Technology Group Ltd. Marvell Yukon 88E8058 PCI-E Gigabit Ethernet Controller (rev 13)
04:03.0 FireWire (IEEE 1394): Agere Systems FW322/323 (rev 61)


Начинка вполне стандартная, ничего особенного там нет, установка практически ничем не отличается от установки на любой другой ноутбук. Есть нюансы с разбивкой диска и установкой загрузщика(потому что http://en.wikipedia.org/wiki/GUID_Partition_Table). Нюансы хорошо документированы в Debian-wiki( http://wiki.debian.org/MacBook ), даже если вы не собираетесь устанавливать именно Debian, советую прочитать, это наиболее полное и наиболее доходчивое описание особенностей установки.

Пробовал устанавливать:
* openSuSE 11.2, x64: устанавливается, загружается. Во время установки нужно или придумать как сделать gptsync после разбивки дисков, или же дождаться окончания установки, сделать gptsync средствами refit и переустановить загрузщик(не уверен что не рассказываю ужасы, но кажется, gptsync оно таки не делает).
* Debian Lenny, х32: устанавливается, загружается, собственно история таже самая: или gptsync, после разбивки диска(этот момент освещен в wiki), или просто потом нужно будет переустановить загрузщик.
* Ubuntu 9.10, х64: устанавливается, загружается, ничего дополнительно делать не надо(кроме собственно установки refit).

openSuSE только установил, посмотрел что работает, дальше разбираться желание не появилось.

Две целиком стандартные проблемы Linux на ноутбуках: засыпание и wifi.И в Debian(обновленном до unstable) и в Ubuntu практически все одинаково. Засыпание при закрытии крышки - работает из коробки, ничего специально не устанавливал. Какой "подвид" засыпания срабатывает когда закрываем крышку - не знаю, не разбирался, я про это с одной стороны практически ничего не знаю, с другой - мне это совершенно неинтересно. Процесс засыпания и пробуждения несколько дольше чем в OS X, но в принципе терпимо.

Wifi. В debian'е собирал драйвера отсюда: http://www.broadcom.com/support/802.11/linux_sta.php, после этого все заработало. В ubuntu: установил судя по всему тоже самое через их менеджер драйверов. С ubuntu'вским менеджером драйверов было забавное приключение - нормально он заработал только после обновления системы, до этого ничего сканировать не хотел, и соответственно карточку не находил (не знаю, возможно его как-то можно принудительно заставить посмотреть на железо), после обновления - все вроде заработало нормально.

Для того чтобы закончить железную тему окончательно: у Macbook несколько необычная, по сравнению с обычными ноутбуками клавиатура, и неплохой тачпад.

Клавиатура:
* следует обратить внимание на пакет pommed

root@indie:/home/diesel# aptitude search pommed
i pommed - Apple laptops hotkeys event handler

По-умолчанию, и в OS X, и в Linux F1-F12 клавиши ориентированы на специальные функции, такие как изменение яркости дисплея и далее по списку. Если вы, хотите использовать эти клавиши в приложениях, нужно нажимать Fn+F[1-12], это может быть несколько неудобно, и это поведение можно изменить с помощью pommed.

* клавиатура MacBook'а несколько специфична в плане расположения control-клавиш: Fn - Ctrl - Alt -Cmd. В OS X активно используются клавиатурные комбинации с Cmd, например Cmd+C/Cmd+V, вместо милых любому виндузятнику Ctrl+C/Ctrl+V. Окончательного мнения по поводу того как с этим быть в Linux пока не имею.

Тачпад(synaptics toucpad). Есть некоторые особенности(перечисляю те которыми я пользовался в OS X):
* у тачпада одна кнопка, соответствует левой кнопке мыши
* так же левая кнопка - это "Tap" по тачпаду одним пальцем
* правая кнопка - это "Tap" по тачпаду двумя пальцами
* Горизонтальная/Вертикальная прокрутка - двумя пальцами по тачпаду, в любом месте.
В принципе, это все работает, кое-что правда требует включения: через xorg.conf, hal'овы настройки X-ов, GUI-конфигуратор мыши, консольный synclient - на выбор. "Feel" сильно отличается от такового в OS X, дело скорее всего в мелочах, очень много разных временных параметров можно выставить для тачпада:

root@indie:/home/diesel# synclient -l | wc -l
70

Apple'овцы с этой задачей справились лучше. В Ubuntu без дополнительных настроек тачпад ведет себя гораздо приятнее, в Debian - ужасно. Собственно это главная причина почему сейчас выбор пал на Ubuntu. Переносить настройки в Debian с LiveCD Ubuntu не пробовал, man synaptics, хотя и содержит описание всех возможных опций настройки, ответа на главный вопрос: как сделать так чтобы этим можно было пользоваться, не дает. Тем не менее, не смотря на то что тому как работает тачпад в Ubuntu далеко до того как он работает в OS X, пользоваться тачпадом,вместо мыши, и не чувствовать себя обделенным получается: за обычным нетбуком/ноутбуком это гораздо сложнее, там уж или полноценную мышь подключай, или хоткеи настраивай на все случаи жизни во всех приложениях.

Возвращаясь к тому с чего начинал. Ubuntu на Macbook'е уже четыре дня, и я этой системой активно пользуюсь, хотя, многое еще не настроено и очень далеко до идеала. Для меня это точно персональный рекорд - раньше убунту редко выживала после первой перезагрузки - становилось неинтересно и я ее сносил. Я не собирался писать даже краткого обзора установки Linux на Macbook, но поскольку так уже получилось, то на этом разрешите откланяться. Продолжение будет.

5 комментариев:

malcolm комментирует...

Гики такие гики. Всюду пытаются Linux запихнуть, не сидится им спокойно :) Шучу конечно, а за пост спасибо :)

kostix комментирует...

То есть ты хочешь сказать, что добился настроек тачпада в убунте, аналогичных макосным?

А можно увидеть вывод `synclient -l`?

Очень инетересует вот это:
* правая кнопка - это "Tap" по тачпаду двумя пальцами
* Горизонтальная/Вертикальная прокрутка - двумя пальцами по тачпаду, в любом месте.

diesel комментирует...

Можно.
По обоим пунктами: вроде работает.. но "ощущения" несколько другие, как я уже писал.

diesel@indie:~$ synclient -l
Parameter settings:
LeftEdge = 103
RightEdge = 1112
TopEdge = 48
BottomEdge = 527
FingerLow = 29
FingerHigh = 35
FingerPress = 300
MaxTapTime = 180
MaxTapMove = 59
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
FastTaps = 0
EmulateMidButtonTime = 75
EmulateTwoFingerMinZ = 330
EmulateTwoFingerMinW = 7
VertScrollDelta = 26
HorizScrollDelta = 26
VertEdgeScroll = 0
HorizEdgeScroll = 0
CornerCoasting = 0
VertTwoFingerScroll = 1
HorizTwoFingerScroll = 1
MinSpeed = 0.4
MaxSpeed = 0.7
AccelFactor = 0.0372024
TrackstickSpeed = 40
EdgeMotionMinZ = 35
EdgeMotionMaxZ = 187
EdgeMotionMinSpeed = 1
EdgeMotionMaxSpeed = 107
EdgeMotionUseAlways = 0
UpDownScrolling = 1
LeftRightScrolling = 1
UpDownScrollRepeat = 1
LeftRightScrollRepeat = 1
ScrollButtonRepeat = 100
TouchpadOff = 1
GuestMouseOff = 0
LockedDrags = 0
LockedDragTimeout = 5000
RTCornerButton = 0
RBCornerButton = 3
LTCornerButton = 0
LBCornerButton = 0
TapButton1 = 1
TapButton2 = 3
TapButton3 = 2
ClickFinger1 = 1
ClickFinger2 = 3
ClickFinger3 = 2
CircularScrolling = 0
CircScrollDelta = 0.1
CircScrollTrigger = 0
CircularPad = 0
PalmDetect = 0
PalmMinWidth = 10
PalmMinZ = 234
CoastingSpeed = 0
PressureMotionMinZ = 35
PressureMotionMaxZ = 187
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
GrabEventDevice = 1
AreaLeftEdge = 0
AreaRightEdge = 0
AreaTopEdge = 0
AreaBottomEdge = 0
JumpyCursorThreshold = 0
diesel@indie:~$

mazh комментирует...

а регулируется у вас яркость экрана под ubuntu ? никак не могу добиться этого... ubuntu на маке стоит уже пол года как. все отлично работает, кроме регулировки яркости ...

diesel комментирует...

если честно - не помню, я вернул OS X на мак, поэтому щас сказать не могу. Ничего специального для регулировки яркости не делал,- это точно.