Macbook
Статья будет об установке ALT Regular Gnome, как завести все устройства и настроить систему, чтобы она жила на уровне с MacOS (никакой магии нет, есть только настройки) Статья охватывает только установку автора на Macbook 11,1 он же Macbook Pro 13" Late 2013
Установка
Настоятельно рекомендую, возьми диск, nas или ещё что-либо равное объёму диска макбука и сделай Time Machine резервную копию. Линукс это круто и безвозвратный прыжок в этот мир, может помочь бороться с трудностями, но лучше иметь бэкап, чем не иметь. Восстановиться можно будет в тот же день, в котором начали - синяя таблетка Нео и ты никогда не узнаешь суровой реальности Linux.
- Качаем образ и пишем на флешку
- Выключаем мак и подключаем флешку
- Включаем мак с зажатой клавишей Alt/Option
- На этапе выбора нам нужен жёлтый диск со странным названием EFI, это наш
- Далее устанавливаем, как на обычным PC, никакой разницы.
Настройка
Настраивать нам нужно многое, но всё не так страшно. Нам понадобится доступ в сеть. Перед всеми манипуляциями обнови систему:
su -
apt-get update && apt-get dist-upgrade
Wi-Fi
Прошли те времена, когда это вызывало боль, на сегодня Broadcom даёт свои драйвера под распространение, нам нужно их только установить:
su -
apt-get install kernel-modules-bcmwl-un-def
apt-get install bcmwl-kernel-conf
reboot
Внимание
Данные по поддержке в таблице устарели, не смотрите туда
После перезагрузки появится возможность подключиться и использовать Wi-Fi.
Улучшаем энергосбережение
Перво-наперво - заходим в меню в правом верхнем углу и выбираем энергосбережение.
PC6/PC7 состояния CPU Для начала, нам нужно сказать маку, что мы не притворяемся linux или windows, мы вообще macos, ну почти. И это разблокирует возможности переключаться в состояния PC6 и PC7, то что даст нам 5-7W потребления и почти 10ч от батареи, как на MacOS
su -
mcedit /etc/sysconfig/grub2
Добавляем в параметр GRUB_CMDLINE_LINUX_DEFAULT
значение в конец acpi_osi=
прям вот так, пустой. И сохраняем.
grub-mkconfig -o /boot/grub/grub.cfg
обновляем GRUB с новой конфигурацией и перезагружаемся
- Powertop нам друг
su -
powertop
Табом дойти до tunable вкладки, заодно можете полюбоваться Idle State в левом столбце Pkg(HW) должны быть проценты не нулевые у C6/C7 Дойдя до Tunable - пробелом протыкиваем всё Bad в Good кроме клавиатуры и трекпадом иначе может не выходить из сна.
Так мы уже разительно снизили потребление
Facetime Camera
Запуск камеры в пару простых действий
- Установка всего необходимого
su -
apt-get install git kernel-headers-un-def kernel-headers-modules-un-def
- Создадим bash скрипт, который сделает всё по красоте за нас. Например пусть будет facetimehd.sh
#!/bin/bash
set -e
export CONFIG_MODULE_SIG=n
export CONFIG_MODULE_SIG_ALL=n
# For current kernel
export KERNELRELEASE=$(cat /proc/version | awk '{print $3}')
temp_dir=$(mktemp -d)
echo "Installing FacetimeHD camera for $KERNELRELEASE"
cd $temp_dir
git clone https://github.com/patjak/facetimehd-firmware.git
git clone https://github.com/patjak/bcwc_pcie.git
cd $temp_dir/facetimehd-firmware
pwd
make
make install
cd $temp_dir/bcwc_pcie
pwd
make
make install
rm -rf $temp_dir
if [ ! -d "/etc/modules-load.d" ]; then
mkdir -p "/etc/modules-load.d"
fi
cat > "/etc/modules-load.d/facetimehd.conf" << EOL
videobuf2-core
videobuf2_v4l2
videobuf2-dma-sg
facetimehd
EOL
# Workaround for depmod being skipped above with error:
# Warning: modules_install: missing 'System.map' file. Skipping depmod
echo "Generate modules.dep and map files"
sudo depmod
echo "Adding kernel modules"
sudo modprobe -r bdc_pci
sudo modprobe facetimehd
echo "Install complete"
- Делаем его исполняемым
chmod +x facetimehd.sh
- Собираем и устанавливаем
sudo ./facetimehd.sh
- Если будет ошибка
modprobe: FATAL: Module bdc_pci not found.
не паримся и делаем такsudo modprobe facetimehd
Ну всё, вот камера и работает 😃
Включаем двойную графику и собираем GPU-Switch
Предисловие
В Macbook Pro 11,3 по умолчанию для Linux разрешена только дискретная карта Nvidia GT 750M, однако для обычной работы её слишком много, как много и потребления питания при её работе.
Чтобы исправить это положение дел предлагается следующее решение:
GPU switcher
Для переключения режима достаточно скачать приложение gpu-switch с репозитория
Эта программа позволяет переключить видеокарту на требуемую.
Информация
Переключение происходит непосредственно после перезагрузки
su -
git clone https://github.com/0xbb/gpu-switch.git
cd gpu-switch
# для интегрированной карты (Intel)
./gpu-switch -i
# или для дискретной карты (NVidia)
./gpu-switch -d
Включаем Intel
Однако на этом ноутбуке требуется дополнительные действия для включения видеокарты Intel. Самое простое это собрать EFI модуль для обхода ограничения Apple. Модуль можно собрать следующим образом:
su -
apt-get install gcc gnu-efi
git clone https://github.com/0xbb/apple_set_os.efi apple-set-os
cd apple-set-os
git apply ./alt-linux-lib64.patch
make
Сохраните патч ниже, как alt-linux-lib64.patch
для команды выше в папку apple-set-os
commit 7f29a978c13de7cacc6d4d1c00bb160bf3bc51ae
Author: iTux <itux@idev.pro>
Date: Sun Oct 29 17:13:43 2023 +0300
Fix libdir
diff --git a/Makefile b/Makefile
index 31e1982..77b4d5d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,5 @@
ARCH = x86_64
+LIBDIR = /usr/lib64
TARGET = apple_set_os.efi
FORMAT = efi-app-$(ARCH)
@@ -9,8 +10,8 @@ CFLAGS = -I$(INC) -I$(INC)/$(ARCH) \
-fno-stack-protector -maccumulate-outgoing-args \
-Wall -D$(ARCH) -Werror -m64 -mno-red-zone
-LDFLAGS = -T /usr/lib/elf_$(ARCH)_efi.lds -Bsymbolic -shared -nostdlib -znocombreloc \
- /usr/lib/crt0-efi-$(ARCH).o
+LDFLAGS = -T $(LIBDIR)/elf_$(ARCH)_efi.lds -Bsymbolic -shared -nostdlib -znocombreloc \
+ $(LIBDIR)/crt0-efi-$(ARCH).o
%.efi: %.so
objcopy -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \
@@ -18,7 +19,7 @@ LDFLAGS = -T /usr/lib/elf_$(ARCH)_efi.lds -Bsymbolic -shared -nostdlib -znocombr
%.so: %.o
$(LD) $(LDFLAGS) -o $@ $^ $(shell $(CC) $(CFLAGS) -print-libgcc-file-name) \
- /usr/lib/libgnuefi.a
+ $(LIBDIR)/libgnuefi.a
all: $(TARGET)
Далее надо подключить этот модуль
- Копируем
mkdir /boot/efi/EFI/custom
cp apple_set_os.efi /boot/efi/EFI/custom
- Включаем модуль
nano -w /etc/grub.d/40_custom
# в конец файла добавляем
search --no-floppy --set=root --label EFI
chainloader (${root})/EFI/custom/apple_set_os.efi
boot
# сохраняем и выходим из редактора
- Обновляем конфигурацию
grub-mkconfig -o /boot/grub/grub.cfg
update-grub
И перезагружаемся...
Проверка
Чтобы проверить работает или нет, достаточно взглянуть на результат команды inxi -G
inxi -G
#Graphics:
# Device-1: Intel Crystal Well Integrated Graphics driver: i915
# Device-2: NVIDIA GK107M [GeForce GT 750M Mac Edition] driver: nouveau
Полезные ссылки:
ToDo
- Табличку поддержки может добавить, что работает, а что нет
- ToDo tune kernel - стабильно дойти до PC7
- ToDo tune планировщиков для улучшения жизни от батареи