Linux для macbook pro

Я больше никогда не откажусь от MacBook в пользу других ноутбуков

Около 4 лет использования MacBook Pro 2009 года сделали все, чтобы я больше никогда не мог пользоваться ноутбуками на Windows и Linux. Все началось с того, как в один прекрасный день на Avito в 2016 году я купил старенький MacBook 2009 года за 16 тысяч рублей. Бедный студент нашел замену дешевому Windows-аппарату от PackardBell и был сильно тому рад. Это был обычный MacBook на Core2Duo со 160 ГБ встроенной памяти из Америки. Тогда я был в полном восторге после Windows-ноутбука начального уровня за 12 тысяч, и можно долго смеяться над всей ситуацией, которая произошла после, но тот факт, что я пишу данный материал с того самого MacBook 2009 года говорит о многом.

Я больше никогда не откажусь от MacBook в пользу Windows/Linux-решений

Старый MacBook сегодня действительно сложно использовать по ряду причин. Основная — это низкая производительность. Но плюсов даже у старого «мака» в сравнении с новыми ноутбуками на Windows или Linux гораздо больше. В 2012 году нам писали об опыте перехода с Linux на Mac OS, сейчас же я попытаюсь, наоборот, рассказать о переходе с MacBook на Linux-устройство.

Около 6 месяцев назад я приобрел Asus Vivobook S13 в качестве замены старому «маку» по Интернету. И это было ошибкой — никогда не нужно покупать ноутбук, не потрогав его. Он стоил 40 тысяч рублей, и на фоне 16 тысяч за MacBook мне казалось, что рост в качестве должен быть соизмерим тому, сколько я потеряю в финансовом вопросе, но нет. Экран Vivobook S13 хоть и с FullHD-разрешением, но он проигрывает MacBook 2009 года в цветопередаче. Хотя, просмотрев все обзоры в Сети, я не наткнулся на то, чтобы кто-то жаловался на плохую картинку. Тачпад в устройстве пластиковый и довольно плохо реагирует на касания. Жаль, ведь я даже не предполагал, что в ноутбуке 2018 года за 40 тысяч рублей будет тачпад, который так сильно уступает решению в MacBook 2009 года. Прошло 10 лет, но производители так и не научились делать нормальные тачпады.

Asus VivoBook S13

Корпус — это тоже отдельная история, ведь он здесь якобы металлический, но ощущается как пластик. Сегодня производители часто прибегают к подобным решениям, когда смешивается поликарбонат с металлом с целью удешевить производство. И, конечно, я трогал в магазинах дорогие ноутбуки за 100 и более тысяч, например, какой-нибудь HP Spectre или Huawei MateBook X, поверьте, тактильно металл там ощущается менее приятным в сравнении с MacBook.

MacOS vs Linux

Брал я устройство для веб-разработки, потому что старый MacBook попросту не способен нормально работать с обычным редактором кода типа VS Code. Windows в вопросе разработки мне не очень нравится, комфортнее все же работать с консолью bash, к тому же 4 года с MacOS дают о себе знать, поэтому я через какое-то период использования Windows решил переключиться на Linux (Ubuntu 19.10), которая концептуально, я бы сказал, очень похожа на MacOS.

Все началось с того, что в настройках системы вы не найдете возможности масштабирования интерфейса. Пользователи MacBook могут не знать, но в Windows-ноутбуках есть функция масштабирования, которая адаптирует систему под hiDPI-экраны. Без масштабирования интерфейс очень маленький — пользоваться им невозможно. В моем случае речь идет о FullHD-разрешении при 13 дюймах — оптимальным является 150% масштабирование экрана.

Читайте также:  Windows command line press any key

И в Windows функция реализована отлично, проблем с ней нет, но Linux предлагает лишь два состояния масштабирования: 100% и 200%. Последний вариант неплох, если вы используете, например, 4K-дисплей, но в ноутбуках пока все же популярно именно FullHD-разрешение. Читайте наши новости в Телеграм.

Как же решить проблему масштабирования?

Linux позволяет устанавливать различные оболочки (интерфейсы). В Ubuntu 19.10 используется оболочка GNOME, в которой не так давно появилась экспериментальная функция fractional scaling (дробное масштабирование), активируя ее через команду в консоли, в настройках системы, помимо 100% и 200%, появится 125%, 150% и 175% масштабирование. Проблема решена? Да, но есть одно «но».

Ubuntu 19.10 работает очень нестабильно. И если вам казалось, что Windows нестабильна, вы еще не пробовали ставить Ubuntu 19.10. Ноутбук с этой версией теряет 100% заряда за 1-2 часа, сильно нагревается и шумит, имеются проблемы с вертикальной синхронизацией, когда при скроллинге страницы в браузере картинка обрывается, и кажется, что кто-то разрезал сайт ножницами. Пользователи Linux скажут — зачем ставить нестабильную версию Ubuntu. Да, можно поставить Ubuntu 18. В этом случае проблем с производительностью и автономностью не было, но на 18-ой версии не работает функция дробного масштабирования. Окей, может попробовать другой дистрибутив Linux? Да!

Chrome vs Firefox

Тогда я скачал Fedora. Она также использует GNOME и поддерживает масштабирование. Но, в отличие от Ubuntu, никак не решает проблему масштабирования сторонних приложений. Firefox адаптирован — с ним все хорошо, но проблемы возникают с другими решениями. Например, вы получите размытые приложения, использующие в качестве основы движок V8. Это касается браузера Chrome и всех приложений на Electron, например, Slack, Skype, VS Code и другие. Пользоваться можно, но сложно. В Ubuntu это решается путем двукратного увеличения разрешения окна приложения, при этом страдает производительность.

Про другие дистрибутивы рассказывать даже нет смысла, все они в этом вопросе решают проблему лишь увеличением шрифта, а не элементов интерфейса. И ведь кого-то такое решение устраивает — удивительно.

В этом весь Linux

Вы получаете систему, которая не рассчитана на обычного обладателя ноутбука с hiDPI-экраном. В 2020 году нет нормального дистрибутива с поддержкой таких дисплеев. И это просто удивительно. Чтобы нормально использовать Linux, вы должны обладать ноутбуком с разрешением 1366 x 768 точек и радоваться видимым пикселям на экране. Класс! После такого опыта начинаешь ценить MacOS и MacBook еще сильнее и уважать Apple.

Новости, статьи и анонсы публикаций

Свободное общение и обсуждение материалов

Лонгриды для вас

Пожалуй, главный недостаток iPhone по сравнению с любыми Android-смартфонами заключается в том, что его можно заблокировать по iCloud. Рассказываем о том, как это происходит, где злоумышленники берут данные ваших аккаунтов и как с этим бороться

Apple работает над новым монитором Pro Display XDR на базе процессора A13 Bionic. Нет, он нужен тут не для мощности, а для более эффективной обработки графики. Правда, мы пока не знаем, выйдет новинка на рынок или нет

Между разноцветным iMac G3 и iMac M1 2021 года — больше 20 лет разницы. Тем не менее у них есть немало общего! И цветом сходства не ограничиваются. Рассказываем, что еще объединяет компьютеры разных тысячелетий.

Пользуюсь iMac 21.5 inch 2013 с 2014 года, пользуюсь MacBook Air 13 inch 2017 года с 2018 года. Очень высоко ценю macOS как операционку. и теперь низачто не вернусь на. Windows платформу. Мне всё нравится в MacOs и iMac и MacBook.
Спасибо  за такие продукты.

Читайте также:  Adding user root group linux

Источник

Заставляем работать MacBook Pro 2018 T2 c ArchLinux (dualboot)

Достаточно много было шумихи по поводу того, что из-за нового чипа T2 невозможно установить linux на новые MacBook 2018 года с тачбаром. Шло время, и под конец 2019 года стронними разработчиками был реализован ряд драйверов и патчей ядра для взаимодействия с чипом T2. Основной драйвер для MacBook моделей 2018 и новее реализует работу VHCI (работа тача/клавиатуры/и.т.д.), а также функционирование звука.

Проект mbp2018-bridge-drv разделен на 3 основных компонента:

  • BCE (Buffer Copy Engine) — устанавливает основной канал связи с T2. VHCI и Audio требуют этот компонент.
  • VHCI — это виртуальный хост-контроллер USB; клавиатура, мышь и другие компоненты системы предоставляются этим компонентом (другие драйверы используют этот хост-контроллер для обеспечения большей функциональности.
  • Audio — драйвер для аудиоинтерфейса T2, в настоящее время поддерживается только вывод звука через встроенные динамики MacBook

Второй проект называется macbook12-spi-driver, и он реализует возможность работы драйвера ввода для клавиатуры, трекпада SPI, тачбара для MacBook Pro конца 2016 г. и более поздних версий. Часть драйверов для клавиатуры/трекпада теперь включена в ядро, начиная с версии 5.3.

Также была реализована поддержка таких устройств, как wi-fi, тачпад, etc, с помощью патчей ядра. На текущий момент версия ядра 5.3.5-1

Что работает на данный момент

  1. NVMe
  2. Клавиатура
  3. USB-C (Thunderbolt не проверялся, при автоматической загрузке модуля подвешивает систему намертво)
  4. Тачбар (с возможностью включения клавиш Fn, подсветка, ESC итп)
  5. Звук (только встроенные динамики)
  6. Модуль Wi-Fi (через brcmfmac и только через iw)
  7. DisplayPort через USB-C
  8. Сенсоры
  9. Suspend/Resume (частично)
  10. etc..

Данный туториал применим для macbookpro15,1 и macbookpro15,2. За основу была взята статья с гитхаба на английском отсюда. Не все из этой статьи заработало, поэтому пришлось искать решение самостоятельно.

Что потребуется для установки

1. Отключаем запрет загрузки с внешних носителей

2. Выделяем свободное место с помощью Disk Utility

Для удобства я сразу выделил 30Гб на диск, отформатировав его в exfat в самом Disk Utility. Разбиение физического диска на разделы Disk Utility.

3. Формируем iso образ

  1. Можно пойти простым путем и скачать готовый образ с ядром 5.3.5-1 и пачтами от aunali1ссылка на готовый образ
  2. Сформировать образ самостоятельно через archlive (необходима система с дистрибутивом арча)

Добавляем репозиторий в pacman.conf:

Игнорируем оригинальное ядро в pacman.conf:

Добавляем необходимые пакеты, в конце добавляем ядро linux-mbp и linux-mbp-headers

Изменяем скрипт для работы в интерактивном режиме (заменяем pacstrap -C на pacstrap -i -C):

Нажимаем Y, чтобы пропустить игнорируемые пакеты, затем пишем iso-образ на usb флешку:

4. Первая загрузка

Перезагружаемся с вставленной флешкой и клавиатурой. Нажимаем options при появлении яблока, выбираем EFI BOOT.

Далее необходимо нажать клавишу «e» и вписать в конец командной строки module_blacklist=thunderbolt. Если этого не сделать, то система может не загрузиться, и вылетит ошибка Thunderbolt ICM Error.

С помощью fdisk/cfdisk находим наш раздел (у меня это nvme0n1p4), форматируем и производим установку арча. Можно воспользоваться официальной инструкцией или строронней.

Загрузочный раздел не создаем, загрузчик будем писать в /dev/nvme0n1p1
После того, как полностью сформировано окружение в /mnt и перед тем, как перейти в arch-chroot, пишем:

Добавляем в /etc/pacman.conf:

Прописываем thunderbolt и applesmc в /etc/modprobe.d/blacklist.conf

Клавиатура, тачбар, etc

Устанавливаем модули для работы тачбара:

Добавляем модули в автозагрузку: /etc/modules-load.d/apple.conf

Устанавливаем модули ядра для работы клавиатуры. В репозитории anuali1 есть готовый пакет, он называется apple-bce-dkms-git. Чтобы его установить, пишем в консоли:

В этом случае модуль ядра будет называться apple-bce. В случае самостоятельной сборки он называется bce. Соответственно, если вы хотите прописать модуль в раздел MODULES в файл mkinicpio.conf, то не забудьте, какой модуль вы устанавливали.

Добавляем модуль bce или apple-bce в автозагрузку: /etc/modules-load.d/bce.conf

Если хотите использовать по умолчанию кнопки Fn, то в файл /etc/modprobe.d/apple-tb.conf пишем:

Обновляем ядро и initramfs.

5. Загрузчик

После того, как внутри chroot все основные пакеты установлены, можно приступать к установке загрузчика.

Мне так и не удалось заставить работать grub. С внешнего usb-диска grub загружается, но при попытке прописать его в nvme через

grub-install —target=x86_64-efi —efi-directory=/boot —bootloader-id=grub

система улетала в kernel panic, и после перезагрузки нового пункта через options не появлялось. Какого-то внятного решения данной проблемы я не нашел и поэтому решил попробовать реализовать загрузку с помощью systemd-boot.

и улетаем в kernel panic. Выключаем MacBook, включаем заново, жмем options (usb-c хаб с клавиатурой не отключаем)

  • Проверяем, что появилась новая запись EFI BOOT помимо внешнего устройства
  • Выбираем загрузку с внешнего usb-диска, как при первой установке (не забываем прописать module_blacklist=thunderbolt)
  • Монтируем наш диск и переходим в окружение через arch-chroot
  • Если необходимо, чтобы клавиатура работала до полной загрузки системы (это необходимо в случае использования шифрования luks/dm-crypt) то прописываем в файл /etc/mkinicpio.conf в разделе MODULES:

    Обновляем ядро и initramfs.

    Настраиваем systemd-boot

    Редактируем файл /boot/loader/loader.conf, удаляем все, что там внутри, и вносим следующее:

    Переходим в папку /boot/loader/entries, создаем файл arch.conf и пишем:

    В случае, если использовали luks и lvm, то

    Перезагружаемся в MacOS.

    6. Настройка Wi-Fi

    Как в итоге выяснилось, файлы прошивок для wi-fi адаптера MacOS хранит в папке /usr/share/firmware/wifi , и можно их от туда взять в виде блобов и скормить модулю ядра brcmfmac. Для того, чтобы выяснить, какие именно файлы использует ваш адаптер, открываем терминал в MacOS и пишем:

    Получаем длинный список. Нам нужны файлы только из раздела RequestedFiles:

    В вашем случае названия файлов могут отличаться. Копируем их из папки /usr/share/firmware/wifi на флешку и переименовываем в следующий вид:

    В данном случае последний текстовый файл содержит названия модели, если ваша модель не macbookpro15,2, то необходимо переименовать этот файл в соответствии с вашей моделью макбука.

    Перезагружаемся в арч.

    Копируем файлы с флешки в папку /lib/firmware/brcm/

    Проверяем работоспособность модуля:

    Убеждаемся, что сетевой интерфейс появился через ifconfig/ip.
    Настраиваем wifi через iwctl

    Внимание. Через netctl, nmcli, etc. интерфейс не работает, только через iwd.

    Заставляем NetworkManager использовать iwd. Для этого создаем файл /etc/NetworkManager/NetworkManager.conf и пишем:

    Запускаем службу NetworkManager

    7. Звук

    Для того, чтобы заработал звук, необходимо установить pulseaudio:

    Скачиваем три файла:

    8. Suspend/Resume

    На текущий момент 16.10.2019 приходится выбирать либо звук, либо suspend/resume. Ждем, пока автор bce модуля допилит функционал.

    Чтобы собрать модуль с поддержкой susped/resume, необходимо выполнить следующее:

    Если вы устанавливали готовый модуль apple-bce из репозитория anuali1, то необходимо его предварительно удалить и только после этого собирать и устанавливать bce модуль с поддежкой suspend режима.

    Также, необходимо добавить в blacklist модуль applesmc (если вы этого не сделали ранее) и убедиться, что в /boot/loader/entries/arch.conf в строке options в конце добавлен параметр pcie_ports=compat.

    На текущий момент драйвер тачбара вылетает при входе в режим suspend, а драйвер thunderbolt иногда подвешивает систему более чем на 30 секунд, а при возобновлении — на несколько минут. Это можно исправить путем автоматической выгрузки проблемных модулей.

    Создайте скрипт /lib/systemd/system-sleep/rmmod.sh:

    Сделайте его исполняемым:

    На этом пока все. В итоге получась вполне работоспособная система, за исключением некоторых нюансов с suspend/resume. Никаких вылетов и kernel panic не наблюдается на протяжении нескольких дней аптайма. Надеюсь, в ближайшее время автор модуля bce его допилит, и мы получим полноценную поддержку suspend/resume и звука.

    Источник

    Читайте также:  Создание сети linux windows
    Оцените статью