- Я больше никогда не откажусь от MacBook в пользу других ноутбуков
- MacOS vs Linux
- Как же решить проблему масштабирования?
- В этом весь Linux
- Лонгриды для вас
- Заставляем работать MacBook Pro 2018 T2 c ArchLinux (dualboot)
- Что работает на данный момент
- Что потребуется для установки
- 1. Отключаем запрет загрузки с внешних носителей
- 2. Выделяем свободное место с помощью Disk Utility
- 3. Формируем iso образ
- 4. Первая загрузка
- Клавиатура, тачбар, etc
- 5. Загрузчик
- Настраиваем systemd-boot
- 6. Настройка Wi-Fi
- 7. Звук
- 8. Suspend/Resume
Я больше никогда не откажусь от 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 функция реализована отлично, проблем с ней нет, но 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.
Спасибо за такие продукты.
Источник
Заставляем работать 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
Что работает на данный момент
- NVMe
- Клавиатура
- USB-C (Thunderbolt не проверялся, при автоматической загрузке модуля подвешивает систему намертво)
- Тачбар (с возможностью включения клавиш Fn, подсветка, ESC итп)
- Звук (только встроенные динамики)
- Модуль Wi-Fi (через brcmfmac и только через iw)
- DisplayPort через USB-C
- Сенсоры
- Suspend/Resume (частично)
- etc..
Данный туториал применим для macbookpro15,1 и macbookpro15,2. За основу была взята статья с гитхаба на английском отсюда. Не все из этой статьи заработало, поэтому пришлось искать решение самостоятельно.
Что потребуется для установки
1. Отключаем запрет загрузки с внешних носителей
2. Выделяем свободное место с помощью Disk Utility
Для удобства я сразу выделил 30Гб на диск, отформатировав его в exfat в самом Disk Utility. Разбиение физического диска на разделы Disk Utility.
3. Формируем iso образ
- Можно пойти простым путем и скачать готовый образ с ядром 5.3.5-1 и пачтами от aunali1ссылка на готовый образ
- Сформировать образ самостоятельно через 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 хаб с клавиатурой не отключаем)
Если необходимо, чтобы клавиатура работала до полной загрузки системы (это необходимо в случае использования шифрования 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 и звука.
Источник