Debian na Macbooku Pro Late 2013 (11,3)

Posted on Mon 08 February 2021 in Linux, Macbook • 10 min read

Mam nadzieję, że tytuł mówi o czym jest ten artykuł, do rzeczy więc…

Poniższe słowa powstały ponad rok temu i przeleżały wszystkie te miesiące w postaci szkicu, uzupełnianego o nowe pozycje. Wiele się w tym czasie zmieniło więc znajduje się tu mieszanina różnych wersji jądra i samego systemu. Na początku był Jessie, a teraz jest Buster. Wiele problemów rozwiązały kolejne edycje kernela - po prostu pojawiały się nowe sterowniki.

Dziś, czyli w połowie lutego 2021 roku, po ponad roku niby pandemii, nie działa klawiatura, jest problem z USB i HDMI - ewidentnie Macbook dożywa już ostatnich dni.

Z perspektywy ponad 1,5 roku pracy pod Linuksem mogę szczerze powiedzieć, że Macbook to sprzętowa tragedia i odradzam jego zakup jeśli nie ma się zamiaru używać wyłącznie macOSa.
Implementacja USB to porażka, nigdy dobrze nie działało, w poprzednich modelach też miałem z problem z tymi portami. Aluminiowe obudowy są wrażliwe na nacisk dłoni, mój pierwszy Macbook lekko mnie kopał kiedy dotykałem innego sprzętu pod napięciem, oba miały problemy z klawiaturą jeśli oparłem zbyt mocno lewą rękę.

MacOS za to stał się fatalnym systemem, piszę „stał sięâ€? bo jeszcze parę wydań temu był mi miły ale ostatnie aktualizacje sprawiały, że coraz bardziej czułem się osaczony kolejnymi „ochronamiâ€? i „udogodnieniamiâ€?.

Wracając do artykułu, nowości pojawiały się tu w miarę jak dostrajałem Macbooka do swoich skromnych potrzeb, a były to:

  • pozbycie się macOS, z powodów które już wyjaśniłem,
  • działające X-y z możliwością przełączenia na konsolę (to się nie udało i raczej już nie uda),
  • Xmonad jako Window Manager, xmobar jako centrum informacyjne,
  • działające specjalne funkcje (regulacja podświetlenia klawiatury, monitora, regulacja dźwięku, itd.),
  • trackpad działający równie gładko jak w macOS (udało się połowicznie),
  • działające WiFi,
  • działająca hibernacja
  • drobne usprawnienia softwarowe.

Instalację wykonałem podobnie jak w opisie z (https://blog.jessfraz.com/post/linux-on-mac/), tzn. że również mam refinda jako boot managera, trochę tylko podkoloryzowanego, żeby robić wrażenie i udawać hakiera.

Pierwotnie zainstalowałem kernel 3.18.36. Włączyłem obsługę Thunderbolta. Kartę Ethernet mam na USB i działa z difoltu więc bez kłopotów mogłem od razu uaktualniać i instalować software. Przeboje z wbudowaną kartą WiFi zostawiłem ale są już passe.

Terminal

Zmieniłem fonty  w konsoli na czytelne. Można jednorazowo:

setfont /usr/share/consolefonts/Lat7-Terminus28x14.psf

lub na stałe:

dpkg-reconfigure -plow console-setup

Kolory w konsoli ustawiłem wg tego linku: http://user.it.uu.se/~embe8573/cols/www/index.html:

Xorg

Nvidia

Możesz to czytać dla sportu, a dla niecierpliwych: skocz do następnego punktu.

Xorg działało od razu na driverze nouveau czyli opensource’owym sterowniku dla Nvidii.
Zachciało mi się jednak oryginalnego sterownika. Mimo wielu prób nie kompilowały mi się moduły jądra. Podczas kompilacji wyskakiwał błąd, że brak jest pliku include/generated/autoconf.h, chociaż plik jak najbardziej był na właściwym miejscu.
Nie chciało mi się kopać z koniem, inni też się wymęczyli, więc użyłem repozytorium jessie-backports (wg.: https://wiki.debian.org/NvidiaGraphicsDrivers#jessie-352):

do /etc/apt/sources.list dodałem:

deb http://httpredir.debian.org/debian jessie-backports main contrib non-free
apt-get update
apt-get install -t jessie-backports nvidia-driver
Trzeba usunąć /etc/X11/xorg.conf, bez niego server X używa domyślnych ustawień i działa prawidłowo.
Na konfigurację przyjdzie jeszcze czas…
Przerzuciłem się na zamknięty sterownik od NVidii (ten z .run na końcu). Jest OK ale nadal nie działa przechodzenie między X-ami, a konsolą. Podobno ten trick załatwia sprawę:
setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0

Aktualizacja: niestety, to nie działa.

Przełączenie na zintegrowaną kartę Intel:

Dlaczego w ogóle warto zawracać sobie tym głowę?

Po pierwsze, gdy używam opesource’owego sterownika do kart Nvidii - Nouveau - nie działa hibernacja. A właściwie działa ale po wyjściu z zamrożenia użycie procesora skacze do ponad 90%, kernel zaś pluje taką ilością ostrzeżeń, że po kilku minutach syslog może spuchnąć do wielu gigabajtów.

Po drugie, po przejściu na komercyjne sterowniki Nvidii traci się możliwość przejścia z X-ów do konsoli, ekran robi się czarny i… koniec. Trzeba restartować system na ślepo.

Po trzecie, Nvidia na komercyjnych sterownikach żre mnóstwo prądu, skracając czas działania na baterii.

Jak to zrobić?

W pliku /boot/efi/EFI/refind/refind.conf dodaj linię:

spoof_osx_version 10.9

która sprawia, że Macbook „myśliâ€?, że bootuje w macOS-ie.

Pobierz gpu-switch ze strony: https://github.com/0xbb/gpu-switch. Użyj go z przełącznikiem „-iâ€?:

gpu-switch -i

Spowoduje to przełączenie na kartę Intela. Teraz reboot.

Zainstaluj pakiet: xserver-xorg-video-intel i gotowe.

A teraz jazda bez trzymanki czyi próba wyłączenia Nvidii, mnie się nie udaje, mam błędy kernela i kończy się kompletnym zwisem. Lecz jeśli jej nie wyłączę to wszystko ładnie hasa.

Działa i hibernacja i komputer nie żre prądu ale.. patrz gdzieś na koniec artykułu wpisu dotyczącego problemów z przerwaniami.

i tu:

https://gist.github.com/0xbb/974999591da4b1b2635c

HiDPI

Mój Macbook to model 11,3 czyli posiada gęsty ekran o nazwie Retina. Pod poniższym linkiem jest genialny poradnik co włączyć, żeby tekst na taki ekranie był czytelny. Chyba jedyne co nie zadziałało, to programy napisane w Tkinterze.

https://wiki.archlinux.org/index.php/HiDPI

Przejście na Display Managera: sddm

dpkg-reconfigure sddm

w /etc/sddm.conf dodać wpis:

[Theme]
Current=debian-paczor
FacesDir=/home/paczor/Pictures/faces
Tematy są w: /usr/share/sddm/themes/
Skopiowałem debian-breeze jako debian-paczor i zmieniam konfigurację jak chcę.

Ustawiam losową twarz skryptem ~/bin/change_face.sh:

#!/usr/bin/env bash
FACE="face$(( ( RANDOM % 6 ) + 1 )).png"
ln -f /home/paczor/Pictures/$FACE ~/.face.icon

A wywołuję go z pliku ~/.zlogout (bo używam zsh).

XSCREENSAVER

Chcę, żeby startował automatycznie po zalogowaniu się do sesji X-ów.
Tworzę katalog:
mkdir ~/.config/systemd/user

a w nim plik: xscreensaver.service z następującą zawartością:

[Unit]
Description=XScreenSaver Daemon
[Service]
ExecStart=/usr/bin/xscreensaver --no-splash
[Install]
WantedBy=default.target

Następnie włączam serwis:

systemctl --user enable xscreensaver.service

i uruchamiam:

systemctl --user start xscreensaver.service

TOUCHPAD

W /etc/X11/xorg.conf.d dodałem dwa pliki, właściwie to pozostałość po poprzednich próbach i spokojnie można oba skonsolidować.
W 50-synaptics-clickpad.conf:
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
# Option "VertScrollDelta" "-111"
# Option "HorizScrollDelta" "-111"
# Option "MinSpeed" "0.5"
# Option "MaxSpeed" "1.0"
# Option "AccelFactor" "0.075"
# Option "LBCornerButton" "8"
# browser "back" btn
# Option "RBCornerButton" "9"
# browser "forward" btn
EndSection

a w 60-synaptics.conf:

Section "InputClass"
Identifier "touchpad"
Driver "synaptics"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "FingerHigh" "50"
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
Option "RTCornerButton" "0"
Option "RBCornerButton" "0"
Option "LTCornerButton" "0"
Option "LBCornerButton" "0"
Option "MinSpeed" "0.7"
Option "MaxSpeed" "1.7"
Option "SHMConfig" "on"
Option "TapAndDragGesture" "off"
Option "PalmDetect" "on"
Option "PalmMinWidth" "8"
Option "PalmMinz" "200"
EndSection
Ostatnie 3 linijki mają ogromne znaczenie przy pisaniu na klawiaturze ponieważ „PalmDetectâ€? włącza wykrywanie przypadkowych dotknięć touchpadu przy pisaniu na klawiaturze. Pozostałe dwa to szerokość dotknięcia i siła nacisku.
Ustawienia te można obserwować za pomocą narzędzia: evtest.
apt-get install evtest evetet /dev/input/event8

(/dev/input8 to u mnie Touchpad)

WiFi

Ta część już się zdeaktualizowała, sterownik jest w nowym kernelu.
apt-get install -t jessie-backports broadcom-sta-dkms

Ale nie kompiluje się sterownik do karty WiFi.

:(pactl set-sink-mute 1 toggle

Powrót do kernela 3.17.4.

I od razu skasowanie nieudanego 3.18.36:

ap-get purge -auto-remove linux-image-3.18.*

Jeśli robiło się już:

apt-get install firmware-linux-nonfree broadcom-sta-dkms

to ponowna kompilacja modułów do kernela 3.17.4:


dkms build broadcom-sta -v 6.30.223.248 -k 3.17.4

KLAWIATURA

Przełączenie klawiszy funkcyjnych w działanie podobne jak w macOS czyli tylko z wciśniętym kalwiszem Fn funkcyjny np. F1 daje dodatkową funkcję, np. zmniejszenie jasności ekranu.

Doinstalowuję pakiet do systemu sysfs:
apt-get install sysfsutils

a do /etc/sysfs.conf dopisuję linię:
module/hid_apple/parameters/fnmode = 2

(można to zrobić na kilka sposobów, tu jest dokładny opis:
https://help.ubuntu.com/community/AppleKeyboard)

Reboot i... wszystko na razie działa!

Sysfs przyda się jeszcze do podpięcia klawiszy obsługujących funkcje specjalne,
takich jak: jasność ekranu, podświetlanie klawiatury, głośność, hibernacja/wyłączenie.
Najpierw kody klawiszy wyłapane za pomocą:
xev | sed -n 's/^.*keycode *\([0-9]\+\).*$/keycode \1 = /p'

Fn+F1 = 232
Fn+F2 = 233
Fn+F3 = 128
Fn+F4 = 212
Fn+F5 = daje nic
Fn+F6 = daje nic
Fn+Shift+F5 = 237
Fn+Shift+F6 = 238
Fn+F7 = 173
Fn+F8 = 172
Fn+F9 = 171
Fn+F10 = 121
Fn+F11 = 122
Fn+F12 = 123

Nie używam Capslocka więc go wyłączam w ~/.Xmodmap:
keycode 66 =

Podświetlanie
Wpisy w ~/.Xmodmap:
keycode 232 = XF86MonBrightnessDown
keycode 233 = XF86MonBrightnessUp
keycode 237 = XF86KbdBrightnessDown
keycode 238 = XF86KbdBrightnessUp

Wpisy w ~/.i3/config (używałem kiedyś window managera i3):
bindsym XF86MonBrightnessUp exec sudo screen-backlight up
bindsym XF86MonBrightnessDown exec sudo screen-backlight down
bindsym XF86KbdBrightnessDown exec sudo keyboard-backlight down
bindsym XF86KbdBrightnessUp exec sudo keyboard-backlight up

Do /usr/local/bin skopiowałem dwa skrypty, których zadaniem jest wpisywanie
odpowiednich wartości w sysfs. Jeden kontroluje jasność monitora, drugi jasność
podświetlenia klawiatury.
Ich nazwy to odpowiednio: screen-backlight:
https://raw.githubusercontent.com/jessfraz/dotfiles/master/bin/screen-backlight
i keyboard-backlight:
https://raw.githubusercontent.com/jessfraz/dotfiles/master/bin/keyboard-backlight

Za pomocą visudo dodaję odpowiednie wpisy by uruchamiać je na prawach roota bez podawania hasła:
paczor ALL= NOPASSWD: /usr/local/bin/keyboard-backlight
paczor ALL= NOPASSWD: /usr/local/bin/screen-backlight

Klawiatura + dźwięk
W ~/.Xmodmap
keycode 121 = XF86AudioMute
keycode 122 = XF86AudioLowerVolume
keycode 123 = XF86AudioRaiseVolume
W ~/.i3/config:
# dla PulseAudio:
bindsym XF86AudioMute exec pactl set-sink-mute 1 toggle
# dla Alsa
bindsym XF86AudioMute exec amixer -c 0 -- set Master toggle
bindsym XF86AudioLowerVolume exec amixer -c 0 -- set Master 2-
bindsym XF86AudioRaiseVolume exec amixer -c 0 -- set Master 2+

Mam problem z mute, zrobiłem to raz i karta już milczy. Musiałem zrobić reset SMC (wyłączony komputer i trzymając Shift+Alt+Command naciskam Power) i PRAM (wyłączony komputer, włączam i jak usłyszę dźwięk staru trzymam Alt+Command+P+R  usłyszę drugi dźwięk startu i wtedy puszczam). Nie wiem czy to potrzebne ale wolałem zaczynać z czystym kontem. Musiałem też ponownie użyć Refinda.
Zainstalowałem pulseaudio: apt-get install pulseaudio i zainstalowałem:
apt-get install alsa-firmware-loaders
 Reboot i pomogło!

Hibernacja:

Najlepiej zacząć od zmiany domyślnej konfiguracji. Uwaga, gdy używałem zamkniętych sterowników Nvidii hibernacja zakończyła się ostatecznie całkowitą rozwałką sytemu. Po przejściu na Intela na razie nie miałem tak tragicznych konsekwencji ale system po zamknięciu klapy laptopa nie przechodził z trybu Suspend w Hibernate. Podejrzewam, że miałem źle skonfigurowane dwa główne pliki. Ale do rzeczy…

Konfigurujemy dwa pliki:

sudo vim  /etc/systemd/sleep.conf
sudo vim  /etc/systemd/logind.conf

W sleep.conf zezwalamy zarówno na Suspend, jak i na Hibernate oraz ustalamy po jakim czasie system będący w Suspend przejdzie w Hibernate jeśli nie nastąpi jakieś przerywające uśpienie zdarzenie (u mnie jest to 10 minut):

[Sleep]
AllowSuspend=yes
AllowHibernation=yes
AllowSuspendThenHibernate=yes
#AllowHybridSleep=yes
#SuspendMode=
#SuspendState=mem standby freeze
#HibernateMode=platform shutdown
#HibernateState=disk
#HybridSleepMode=suspend platform shutdown
#HybridSleepState=disk
HibernateDelaySec=10m

Natomiast w pliku logind.conf ustawiamy wybrane tryby i zdarzenia, które wyzwalają te tryby. Zdarzeniami są najczęściej: wciśniecie klawisza/przycisku albo zamknięcie pokrywy laptopa.

[Login]
#NAutoVTs=6
#ReserveVT=6
#KillUserProcesses=no
#KillOnlyUsers=
#KillExcludeUsers=root
#InhibitDelayMaxSec=5
HandlePowerKey=suspend-then-hibernate
HandleSuspendKey=suspend-then-hibernate
HandleHibernateKey=suspend-then-hibernate
HandleLidSwitch=suspend-then-hibernate
HandleLidSwitchDocked=ignore
#PowerKeyIgnoreInhibited=no
#SuspendKeyIgnoreInhibited=no
#HibernateKeyIgnoreInhibited=no
#LidSwitchIgnoreInhibited=yes
#HoldoffTimeoutSec=30s
IdleAction=suspend-then-hibernate
IdleActionSec=10min
#RuntimeDirectorySize=10%
#RemoveIPC=yes
#InhibitorsMax=8192
#SessionsMax=8192
#UserTasksMax=33%

Przydatne informacje są w manualach:

man systemd-sleep.conf
man logind.conf

Polecenie uaktualniające po zmianie konfiguracji, może nastąpić uśpienie albo hibernacja - zależnie od wprowadzonych zmian:

sudo systemctl restart systemd-logind.service

Wyświetlenie statusu obsługi:

sudo systemctl status systemd-logind.service

U mnie zwraca to:

● systemd-logind.service - Login Service
   Loaded: loaded (/lib/systemd/system/systemd-logind.service; static; vendor preset: enabled)
   Active: active (running) since Fri 2020-06-12 00:27:31 CEST; 11h ago
     Docs: man:systemd-logind.service(8)
           man:logind.conf(5)
           https://www.freedesktop.org/wiki/Software/systemd/logind
           https://www.freedesktop.org/wiki/Software/systemd/multiseat
 Main PID: 963 (systemd-logind)
   Status: "Processing requests..."
    Tasks: 1 (limit: 4915)
   Memory: 3.2M
   CGroup: /system.slice/systemd-logind.service
           └─963 /lib/systemd/systemd-logind

Jun 12 00:27:31 eclipse systemd-logind[963]: Watching system buttons on /dev/input/event0 (Lid Switch)
Jun 12 00:27:31 eclipse systemd-logind[963]: Watching system buttons on /dev/input/event2 (Sleep Button)
Jun 12 00:27:31 eclipse systemd-logind[963]: Watching system buttons on /dev/input/event7 (Apple Inc. Apple Internal Keyboard / Trackpad)
Jun 12 00:27:31 eclipse systemd[1]: Started Login Service.

Jak widać obserwowane są:

  • Lid Switch - czyli klapa lapa
  • Sleep Button - czyli główny wyłącznik
  • Apple Internal Keyboard/Trackpad - klawiatura i trackpad, po to żeby wybudzić z uśpienia czyli przerwać odliczanie do hibernacji (to ustawione wcześniej 10 minut)

Polecenie wyłączające suspend i hibernację:

sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

To raczej ostateczność: https://itsfoss.com/ubuntu-close-lid-suspend/

PROBLEMY

Problemy z przerwaniami

Chłodzenie Macbooka często „wietrzyłoâ€? komputer i pożerało cenne Ampery. Musiałem, jako root, dodać do crontaba linię wyłączającą przerwanie 06:

@reboot echo "disable" > /sys/firmware/acpi/interrupts/gpe06

Pomogło!

https://unix.stackexchange.com/questions/242013/disable-gpe-acpi-interrupts-on-boot

https://www.google.com/search?client=ubuntu&channel=fs&q=linux+disable+acpi+interrrupt&ie=utf-8&oe=utf-8

SOFTWARE

MUTT (wolę Alpine)

Instalacja mutta i konfigurowanie wielu kont. Tu podparłem się doskonałą stroną: https://www.df7cb.de/blog/2010/Using_multiple_IMAP_accounts_with_Mutt.html
Wszystko pięknie zadziałało.

Do mutta dołożyłem książkę adresową zasysaną z Ownclouda wg. tego przepisu: https://got-tty.org/mutt-kontakte-aus-owncloud-nutzen (po niemiecku ale wszystko zrozumiałe).

Oglądanie urli za pomocą linksa albo lynxa:

apt-get install urlview

Do ~/.muttrc:

macro pager \cu |urlview\n

Skopiowałem /etc/urlview/system.urlview i /etc/urlview/url_handler.sh lokalnie bo chciałem zmienić kolejność szukanych browserów, a nie chcę ustawiać zmiennej BROWSER.

p.s. Na koniec i tak wróciłem do Alpine i chwalę sobie. Działa przepięknie, konfigurację opisałem w innym artykule:


FIREFOX + VIMPERATOR (Tridactyl lepszy)

Vimperator ma buga: w trybie pełnoekranowym F11 znika statusbar i przestają działać hinty. Rozwiązaniem jest zablokowanie automatycznego

chowania się statusbaru. W vimperatorze wydajemy komendę:

:set statuslinevisibility=visible

i zachowujemy do pliku konfiguracyjnego:

mkvimperatorrc

p.s. Przerzuciłem się na Tridactyla: https://github.com/tridactyl/tridactyl

VPN:

Używam skomplikowanego systemu skryptów, który jest łatwy w obsłudze. Opiszę to kiedyś, jeśli pokonam uczucie żenady w jaki sposób to działa albo przepiszę pod Pythonem.

https://site.elastichosts.com/blog/linux-l2tpipsec-vpn-client/

Xmonad:

Używam xmonada bo jest szalenie piękny! Konfiguracja trwała długo i jeszcze nie jest pełna. Opis zajmie osobny wpis. Tutaj wstęp i sugestia:

https://xiangji.me/2018/11/19/my-xmonad-configuration/

Rofi i skrypty

Posiadam sporą kolekcję skryptów w Bashu wykorzystujących Rofi switcher: https://github.com/davatorium/rofi


rofi do VPN (skrypt wyświetlający połączone VPN-y),
rofi do Mikrotika (steruję zdalnie routerem),
rofi do wyświetlania Helpa (jeden skrót i widzę podpowiedzi),
rofi do qalc (jeden skrót i liczę oraz konwertuję).

khal, vdirsyncer oraz keyring

Używam khal do obsługi kalendarzy w chmurze, vdirsyncer synchronizuje zarówno kalendarze jak i książkę adresową, a keyring sprawia, że nie muszę wpisywać hasła. Polecam.

MariaDB

Po „sudo rebootâ€? bardzo długo zamyka się system, wyświetlając komunikat: “A stop job is running to …â€?. Pomaga to:

sudo dpkg-reconfigure tzdata

Nextcloud client:

cat /etc/apt/sources.list.d/nextcloud-devs-ubuntu-client-groovy.list
deb http://ppa.launchpad.net/nextcloud-devs/client/ubuntu groovy main
#deb-src http://ppa.launchpad.net/nextcloud-devs/client/ubuntu groovy main

sudo gpg --keyserver keyserver.ubuntu.com --recv 60EE47FBAD3DD469
sudo gpg --export --armor 60EE47FBAD3DD469 | sudo apt-key add -

VirtualBox:

cat /etc/apt/sources.list.d/virtualbox.list
deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian buster contrib

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install virtualbox-6.1
wget https://download.virtualbox.org/virtualbox/6.1.6/Oracle_VM_VirtualBox_Extension_Pack-6.1.6.vbox-extpack
sudo virtualbox Downloads/Oracle_VM_VirtualBox_Extension_Pack-6.1.6.vbox-extpack
sudo usermod -a -G vboxusers $USER

Partycje APFS:

Dostęp do partycji Apple Filesystem:

https://linuxnewbieguide.org/how-to-mount-macos-apfs-disk-volumes-in-linux

APFS z dysku: https://github.com/sgan81/apfs-fuse

sudo apt install fuse libfuse3-dev bzip2 libbz2-dev cmake git libattr1-dev zlib1g-dev
git clone https://github.com/sgan81/apfs-fuse.git
cd apfs-fuse
git submodule init
git submodule update
mkdir build
cd build
cmake ..
# jeśli chcesz zmienić ustawienia to:
# sudo apt install cmake-curses-gui
# ccmake .
make
sudo make install
sudo cp apfsutil /usr/local/bin
# wylistowanie dostępnych partycji i nazw woluminów
sudo apfsutil /dev/sdc2

Volume 4 FD331FC1-1327-45D7-7538-E6B19B5139F6
---------------------------------------------
Role:               No specific role
Name:               MEDIA-torba (Case-insensitive)
Capacity Consumed:  18652901376 Bytes
FileVault:          No

Volume 5 AA7F7F57-D871-4570-A6C9-CAC113F57167
---------------------------------------------
Role:               No specific role
Name:               VIRT-torba (Case-insensitive)
Capacity Consumed:  174489903104 Bytes
FileVault:          No


i montując należy podać nazwę voluminu, np. żeby zamontować volume 5:
sudo apfs-fuse -o uid=1000,gid=1000,allow_other -v 5 /dev/sdc2 /mnt/torba
# opcje po -o, pozwalają na dostęp userom
A na stałe dodać do /etc/fstab:

mount.apfs#/dev/sdc2    /mnt/apple_hd   fuse  user,allow_other  0  0

an2linux

Czyli powiadomienia z Androida na laptopie:`https://github.com/rootkiwi/an2linuxserver <https://github.com/rootkiwi/an2linuxserver>`__
instalacja w systemd:`https://github.com/rootkiwi/an2linuxserver/tree/master/init/systemd-user <https://github.com/rootkiwi/an2linuxserver/tree/master/init/systemd-user>`__

TLPd (energia)

Nie próbowałem.

https://linrunner.de/tlp/