PinePhone prakticky
Stránka s dostupným SW - https://wiki.pine64.org/wiki/PinePhone_Software_Releases
Komunikační kanály:
Běžná obsluha
editovat- aktivace obrazovky
- poklepání - pohotovostní režimu
- ⏻ - uspaný telefon
- hlasitost - 🔉/🔊
- vypnutí obrazovky - ⏻
- vypnutí/restart telefonu - ⏻ (2 s)
- zamrznutý telefon - ⏻ (8 s)
- multi-distro - ⏻ (15 s resp. počkat, dokud se neobjeví úvodní nabídka)
- zobrazení nabídky (multi-distro) - při spouštění podržet 🔉 současně s ⏻
- ve výchozím nastavení se spouští první systém na uSD kartě. Pro změnu stačí podržet tlačítko ⏻ dokud nedojde ke zvýraznění položky
Distribuce
editovat- multi-distro
- fórum - https://forum.pine64.org/showthread.php?tid=11347
- kód - https://megous.com/git/pinephone-multi-boot/
- "průběžná" aktualizace jádra - http://dl.xnux.eu/
- zpětná vazba mailem na p-boot@xnux.eu
- web - https://xnux.eu/p-boot-demo/
- aktualizace
- dílčích distribucí
- aktualizovat dle zvyklostí distribuce
- (aktualizace jádra)
- úkon sice stáhne potřebný software, ale nedojde k jeho aplikaci, protože distribuce předpokládají namapování /boot, které multi-distro neprovádí
# yes | pacman -S linux-firmware linux-pinephone | tee pacman_logs/upgrade_core-$(date +%F-%T).log
- ukázka pro Manjaro/PlaMo
- položek menu a jádra multi-distra viz. blog
- dílčích distribucí
- poznámky
- jednotlivé distribuce jsou mírně upravené, např. je sjednoceno heslo primárního uživatele a roota na 1111 nebo mechanizmus uspávání do RAM
- distribuce lze průběžně aktualizovat, ale jsou zablokovány aktualizace měnící záváděč a jádro (viz. např. Manjaro/PlaMo)
- na pouze 10 GB obrazu[pozn. 1] byly distribuce vměstnány deduplikací na souborové úrovni a využitím btrfs podsvazků, což při chybě usnadňuje návrat do výchozího stavu
- úprava menu a přidání vlastních distribucí - návod
- Manjaro/Phosh
- fórum - https://forum.manjaro.org/tag/phosh
- kód - https://github.com/manjaro-pinephone
- testování
- denně jsou aktualizovány vývojářské obrazy sytému PP. Nevýhodou je nutnost poměrně pracného reflashe a ztráta veškerých uživatelských dat
- správce balíčků lze přepnout na nestabilní větev XX-doplnit návod
- Manjaro/PlaMo
- fórum - https://forum.manjaro.org/tag/plasma-mobile
- kód - https://github.com/manjaro-pinephone
- testování
- denně jsou aktualizovány vývojářské obrazy sytému PP (používají hlavní git větev KDE). Nevýhodou je nutnost poměrně pracného reflashe a ztráta veškerých uživatelských dat
- správce balíčků lze přepnout na nestabilní větev
# pacman-mirrors --api --set-branch unstable
. Aktualizace balíčků (systému) tak nahraje nejnovější verzi software, ale konfigurační soubory nemusí těmto změnám odpovídat, což může vést k nesprávné funkci.
- poznámky
- poinstalační průvodce nastavením není součástí PlaMo, ale Manjara
- vývojová verze záměrně neobsahuje národní lokalizace
Grafická rozhraní
editovat- Phone shell (Phosh)
- chat - https://im.puri.sm/#/room/#phosh:talk.puri.sm
- kód
- Phosh aplikace
- obecně GNOME aplikace - https://apps.gnome.org
- sada aplikací Librem 5 (leč seznam už tam není) - https://developer.puri.sm/Librem5/Contact/Issues.html#base-applications
- prostředí (výchozí obrazovka, ??) - https://gitlab.gnome.org/World/Phosh/phosh/
- Phosh aplikace
- web (spíše stránka) - https://puri.sm/pureos/phosh/
- wiki - https://wiki.postmarketos.org/wiki/Phosh
- vypnutí vibrací -
$ gsettings set org.sigxcpu.feedbackd profile silent
- vypnutí vibrací -
- Plasma Mobile (PlaMo)
- chat - https://matrix.to/#/#plasmamobile:kde.org
- kód[pozn. 2]
- mobilní KDE aplikace - https://invent.kde.org/plasma-mobile
- komponenty prostředí (výchozí obrazovka, panel úloh a horní panel, odhlášení, ..) - https://invent.kde.org/plasma/plasma-phone-components
- komponenty společné s běžnými počítači (Plasma, KWin, ..) - https://bugs.kde.org/[1]
- web - https://www.plasma-mobile.org/
- přehled aplikací je v sekci "Applications"
Scénáře použití
editovatDenní použití kombinované s testováním/vývojem
editovat- eMM
- "stabilní" prostředí pro denní použití
- občasná aktualizace známé "spolehlivé verze)
- Manjaro/PlaMo
- uSD
- testovací, vývojové a ukázkové prostředí
- průběžná aktualizace dílčích distribucí (aktuálně 15)
- multi-distro
Velké soubory např. obrazy PP je vhodné ukládat na větší úložiště - obvykle uSD.
Návody
editovatAktualizace distribuce
editovatProvádí se prostřednictvím správce aplikací/balíčků dané distribuce[pozn. 3] včetně volby, zda používat bezpečně otestovanou nebo vývojovou variantu. Z důvodu případných problému je vhodné pořizovat záznamy úprav např. takto pro Manjaro/PlaMo:
- otevřít terminál nebo se připojit pomocí
ssh
- (přepnutí na nestabilní větev
# pacman-mirrors --api --set-branch unstable
[pozn. 4]) - vytvořit složku pro záznamy
# mkdir ~/pacman_logs
a předpnout se do ní# cd ~/pacman_logs
# yes | pacman -Syyu --noconfirm | tee ~/pacman_logs/pacman-$(date +%F-%T).log
- dostupné aktualizace vypíše příkaz
# pacman -Syup
- dostupné aktualizace vypíše příkaz
- přidat nové balíčky
- stáhnout seznam balíčků nového vydání[2]
# wget <URL vydání PP><soubor>-pkgs.txt
- vypsat do souboru aktuální balíčky
# pacman -Q > pkgs.txt
- instalovat chybějící
# yes | pacman --overwrite "*" -S $(diff --new-line-format="" --unchanged-line-format="" <(cut -d' ' -f1 <soubor>-pkgs.txt) <(cut -d' ' -f1 pkgs.txt) | sed ':a;/$/{N;s/\n/ /;ba}') | tee ~/pacman_logs/pacman-$(date +%F-%T).log
- nemá-li nové vydání žádné nové balíčky, objeví se chybové hlášení
error: no targets specified (use -h for help)
tj. Pacman nemá co instalovat - (částí
diff --new-line-format="" --unchanged-line-format="" <(cut -d' ' -f1 <soubor>-pkgs.txt) <(cut -d' ' -f1 pkgs.txt) | sed ':a;/$/{N;s/\n/ /;ba}'
lze vypsat chystané změny před jejich provedením)
- nemá-li nové vydání žádné nové balíčky, objeví se chybové hlášení
- stáhnout seznam balíčků nového vydání[2]
Aktualizace firmware modemu
editovatModem je připojen pomocí USB, tudíž informace o něm lze získat pomocí $ lsusb
(z balíčku usbutils
). Příslušný software "Pinephone Modem SDK" obsahuje také návod, ale některé kroky stojí za přiblížení, byť vše lze vykonat jediným příkazem (viz. níže pod jejich popisem) s nainstalovaným balíčkem android-tools
:
- krok 2: firmware je ke stažení jako
package.tar.gz
na konci bloku ve sbalené sekci Assets, verze jsou drobná čísla vlevo od bloků jako např.0.4.2
. Recovery firmware je potřeba jen výjimečně.- balíček neobsahuje žádný adresář, tudíž přehlednější rozbalení bude s jeho vytvořením
# mkdir v0.4.2 && tar xzvf package.tar.gz -C v0.4.2/
- počínaje krokem 5 je nutné jednotlivé příkazy volat z vytvořeného adresáře tj. po
# cd v0.4.2
- balíček neobsahuje žádný adresář, tudíž přehlednější rozbalení bude s jeho vytvořením
- krok 3: obvykle stačí
# echo -ne "AT+QFASTBOOT\r" > /dev/EG25.AT
[pozn. 5] - krok 5: je prvním, ve kterém se provádí změny, tudíž ještě můžete couvnout příkazem
# fastboot reboot
z kroku 8 - krok 6: s tímto hlášení jsem se nesetkal. Pouze OKAY a Finished
- krok 7: existuje novější verze jádra. Soubor
boot-mdm9607.img
nahraďtemdm9607-perf-boot.img
(zdroj) - krok 8: přepnutí do běžného režimu lze ověřit stejně jako v kroku 4, jen je třeba chvilku počkat, než modem nastartuje. Výpis pak bude
$ lsusb .. Bus 002 Device 007: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem ..
- (+ krok 9:) - ověření výsledků
# echo -ne "AT+ADBON\r" > /dev/EG25.AT # povolí na modemu ADB # adb shell openqti -v # verze firmware openQTI Version 0.4.2 od verze 0.5.0 lze použít # mmcli -m any --command="AT+GETSWREV" # adb shell uname -a # verze jádra Linux mdm9607 3.18.140 #309 PREEMPT Thu Nov 11 06:15:29 CET 2021 armv7l GNU/Linux
Všechny kroky trvají maximálně několik sekund. Najednou je lze vykonat spuštěním skriptu # ./flashall
za méně než 30s. Postup obsáhleji komentoval např. Sebastian Späth. Před ověřením výsledné verze je potřeba asi půl minuty počkat na restart modemu, jinak hlásí "error: couldn't find modem".
Doporučuje se upravit některá nastavení modemu.
S modemem lze také komunikovat pomocí SMS zasláním příkazu na číslo +22 33 44 55 66 77.
AT příkazy
editovatNevyzrálost ekosystému linuxového mobilu občas vede k nutnosti komunikovat se modemem pomocí AT příkazů. Jejichž použití naznačuje PinePhone wiki, nováčkům pomůže obecnější pojednání. Zde pár tipů:
# mmcli -m any --command="AT+QGMR"
- výpis verze firmware modemu jako rychlý test funkčnost AT příkazů pomocímmcli
[pozn. 6]- hodnota
any
parametru-m
řeší problém s proměnlivou hodnotou indexu modemu 0, 1, atd. # echo AT+QGMR | atinout - /dev/EG25.AT -
- totéž pomocíatinout
Vhodné v případě problémů s ModemManagerem. Na rozdíl odnmcli
umožňuje zadat AT příkaz také malými písmeny
- hodnota
# mmcli -m any --command="AT+QGPS=?"
- výpis podrobností o příkazu# mmcli -m any --command="AT+QGPS?"
- výpis aktuálně nastavené hodnoty# mmcli -m any --command="AT+QGPS=1"
- nastavení hodnoty na 1, což aktivuje GPS modul[pozn. 7]- příkazy obsahující další funkce (zde nastavení GPS)
- výpis podrobností je shodný např. mmcli -m any --command="AT+QGPSCFG=?"
- výpis hodnot se musí vypořádat s tím, že názvy funkcí se vkládají do
"
# mmcli -m any --command='AT+QGPSCFG="NMEASRC"'
- celý příkaz v parametru se vloží mezi'
# echo AT+QGPSCFG=\"NMEASRC\" | atinout - /dev/EG25.AT -
- před každou"
se připíše\
- nastavení hodnoty je obdobné
# mmcli -m any --command='AT+QGPSCFG="NMEASRC",1'
# echo AT+QGPSCFG=\"NMEASRC\",1 | atinout - /dev/EG25.AT -
Manuální připojení k WiFi
editovat- zjistit dostupné sítě
$ nmcli dev wifi list
- připojit se
# nmcli --ask dev wifi connect <SSID>
- přesvědčit se o přiděleni IP adresy
$ ip a s wlan0
Nouzové ovládání
editovatVzhledem k intenzivnímu vývoji může nastat situace, kdy systém linuxového telefonu např. po aktualizaci nenastartuje korektně a nelze jej tudíž ovládat pomocí dotykové obrazovky. V příznivějším případě bude fungovat běžné ssh, v méně příznivém lze využít postup pro připojení pomocí seriového kabelu, kde alternativou k Emacs terminálu je např. # picocom -b 115200 /dev/ttyUSB0
.
Poloha, navigace a trasování
editovatAčkoliv PP dosud nemá vyřešeno určování směru pomocí magnetometru, příjem signálu[pozn. 8] satelitní navigace využívající NMEA standard funguje. Z podrobného pojednání se může hodit:
- rychlé ověření stavu a vyzkoušení z příkazové řádky
# mmcli -m any --location-status -------------------------------- Location | capabilities: 3gpp-lac-ci, gps-raw, gps-nmea, gps-unmanaged, agps-msa, | agps-msb | enabled: 3gpp-lac-ci | signals: no -------------------------------- GPS | refresh rate: 3600 seconds | supported assistance: xtra | assistance servers: http://xtrapath1.izatcloud.net/xtra3gr.bin | http://xtrapath2.izatcloud.net/xtra3gr.bin | http://xtrapath3.izatcloud.net/xtra3gr.bin případně AT příkazu, kde 0 = vypnuto, 1 = zapnuto # mmcli -m any --command="AT+QGPS?" # mmcli -m any --location-enable-gps-nmea successfully setup location gathering nebo zapnutí # mmcli -m any --command="AT+QGPS=1" (vypnutí) # mmcli -m any --command="AT+QGPSEND" # mmcli -m any --location-get výpis NMEA komunikace pak # screen /dev/EG25.NMEA # ukončuje se pomocí Ctrl+a, k
- pokud vše funguje a je dostupný signál, pak se v obdobném výpisu na řádku začínajícím
$GPGGA
objeví víc, než$GPGGA,,,,,,0,,,,,,,,*66
(podrobná interpretace výpisů)
- pokud vše funguje a je dostupný signál, pak se v obdobném výpisu na řádku začínajícím
- nebo pomocí JavaScriptu v prohlížeči. Kód stačí v PP uložit jako HTML soubor a otevřít v prohlížeči (Firefox při každé aktivaci geolokace vyžaduje souhlas na rozdíl od svižnějšího GNOME Web)
- šikovnou aplikaci kombinující mapy (i offline), navigaci a trasování je osmin
- Nextcloudová aplikace PhoneTrack se příliš neosvědčila, protože není schopna fungovat bez mobilních dat, což v terénu bývá problém
Poznámky
- inicializace navigace (získání almanachu pozic satelitů) může trvat i několik minut, tudíž první údaje bývají nesmyslné
- interakce s GSM modemem
- vypnutí mobilní sítě způsobí vypnutí také přijímače navigačního signálu. Totéž platí pro mechanický vypínač
- JavaScript a lokalizační služby v prohlížečů obecně vyžadují mít aktivní mobilní data. Netýká se CLI nebo osminu
- problém bude v ModemManageru.
- HW a SW specifikace, zejména manuál s AT příkazy pro GNSS
- získání pozice pomocí AT příkazu
$ mmcli -m any --command="AT+QGPSLOC"
nefunguje, ale nezdá se, že by to něčemu vadilo
Přepnutí zvukového systému
editovatLinuxový svět zavádí PipeWire namísto PulseAudia. Systém však není dostatečně vyzrálý, tak je občas potřeba mezi oběma systémy přepnout a zároveň ponechat nainstalované příslušné balíčky s ohledem na existující závislosti. Následujíc je platné pro Manjaro/Phosh, ale situace u jiných distribucí bude obdobná
- PipeWire
- vypnutí
# systemctl --machine=manjaro@.host list-unit-files --user | grep pipewire # zjištění názvů služeb (# ls -la /usr/lib/systemd/user/ | grep pipewire # obdoba předchozího) # systemctl --machine=manjaro@.host --user stop pipewire.service pipewire.socket pipewire-media-session # vypne PipeWire # su manjaro -c "XDG_RUNTIME_DIR=/run/user/1000 pw-cli info 0" # ověření # systemctl --machine=manjaro@.host --user mask pipewire.service pipewire.socket pipewire-media-session # zabránění spuštění PipeWire # systemctl --machine=manjaro@.host --user list-unit-files --state=masked # ověření
- spuštění je opakem předchozího, ověření výsledku je identické
# systemctl --machine=manjaro@.host --user unmask pipewire.service pipewire.socket pipewire-media-session # ukončí blokování PipeWire # systemctl --machine=manjaro@.host --user restart pipewire.service pipewire.socket pipewire-media-session # spuštění PipeWire
- vypnutí
- PulseAudio
- vypnutí
# systemctl --machine=manjaro@.host list-unit-files --user | grep pulseaudio # zjištění názvů služeb (# ls -la /usr/lib/systemd/user/ | grep pulseaudio # obdoba předchozího) # systemctl --machine=manjaro@.host --user stop pulseaudio.service pulseaudio.socket # vypne PulseAudio # su manjaro -c "XDG_RUNTIME_DIR=/run/user/1000 pactl info" # ověření # systemctl --machine=manjaro@.host --user mask pulseaudio.service pulseaudio.socket # zabránění spuštění PulseAudia # systemctl --machine=manjaro@.host --user list-unit-files --state=masked # ověření
- spuštění je opakem předchozího, ověření výsledku je identické
# systemctl --machine=manjaro@.host --user unmask pulseaudio.service pulseaudio.socket # ukončí blokování PulseAudia # systemctl --machine=manjaro@.host --user restart pulseaudio.service pulseaudio.socket # spuštění PulseAudia
- vypnutí
Reflash eMMC
editovatManjaro/PlaMo
- spustit mobil z uSD a otevřít terminál nebo se připojit pomocí
ssh
- stáhnout obraz PP[2]
$ wget -c -t 0 --timeout=60 --waitretry=60 -P <cílová složka> <URL vydání PP>
- ověřit úplnost staženého souboru porovnáním čísla v <URL vydání PP><soubor>.sha1 s výstupem
$ sha1sum <soubor>
- vypsat bloková zařízení, kde řádek 4 odpovídá uSD a 7 eMMC (velikost napoví 😉)
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS .. mmcblk0 179:0 0 58.9G 0 disk ├─mmcblk0p1 179:1 0 196M 0 part └─mmcblk0p2 179:2 0 58.7G 0 part / mmcblk2 179:8 0 29.1G 0 disk ├─mmcblk2p1 179:9 0 213.6M 0 part └─mmcblk2p2 179:10 0 28.9G 0 part ..
- provést reflesh eMMC (trvá několik minut). Jde o nevratný krok, tedy je vhodné si 3x zkontrolovat znění příkazu
# unxz --stdout <soubor> | dd of=/dev/mmcblk2 bs=1M oflag=direct status=progress 6354919936 bytes (6.4 GB, 5.9 GiB) copied, 1310 s, 4.9 MB/s 12425216+0 records in 12425216+0 records out 6361710592 bytes (6.4 GB, 5.9 GiB) copied, 1310.81 s, 4.9 MB/s druhý pokus 6360510976 bytes (6.4 GB, 5.9 GiB) copied, 1237 s, 5.1 MB/s 12425216+0 records in 12425216+0 records out 6361710592 bytes (6.4 GB, 5.9 GiB) copied, 1241.73 s, 5.1 MB/s
- restartovat mobil a spustit systém na eMMC
Reflash pouze zaváděcího oddílu eMMC
editovatManjaro/PlaMo
- spustit mobil z eMMC či uSD a otevřít terminál nebo se připojit pomocí
ssh
- stáhnout obraz PP
$ wget -c -t 0 --timeout=60 --waitretry=60 -P <cílová složka> <URL vydání PP>
- ověřit úplnost staženého souboru porovnáním čísla v <URL vydání PP><soubor>.sha1 s výstupem
$ sha1sum <soubor>
- dekomprimovat stažený soubor
$ unxz <soubor>
tj. získat <obraz PP> - zpřístupnit obraz jako bloková zařízení
# losetup -Pf <obraz PP>
- vypsat bloková zařízení, kde řádek 3 odpovídá obrazu PP, 6 uSD a 9 eMMC
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 5.9G 0 loop ├─loop0p1 259:0 0 213.6M 0 part └─loop0p2 259:1 0 5.7G 0 part mmcblk0 179:0 0 58.9G 0 disk ├─mmcblk0p1 179:1 0 196M 0 part └─mmcblk0p2 179:2 0 58.7G 0 part /root/mnt2 mmcblk2 179:32 0 29.1G 0 disk ├─mmcblk2p1 179:33 0 213.6M 0 part /boot └─mmcblk2p2 179:34 0 28.9G 0 part / ..
- provést reflesh zaváděcího oddílu eMMC. Jde o nevratný krok, tedy je vhodné si 3x zkontrolovat znění příkazu
# dd if=/dev/loop0p1 of=/dev/mmcblk2p1 bs=1M oflag=direct status=progress 222020096 bytes (222 MB, 212 MiB) copied, 8 s, 27.7 MB/s 437501+0 records in 437501+0 records out 224000512 bytes (224 MB, 214 MiB) copied, 8.0737 s, 27.7 MB/s
- nahradit obsah složky /lib/modules/ (možná je lepší původní obsah ponechat)
# mount /dev/loop0p2 mntImgPar2 # rm -fr /lib/modules/* # cp -r mntImgPar2/lib/modules/* /lib/modules/ (možná také # cp mntImgPar2/etc/mkinitcpio.d/linux-pinephone.preset /etc/mkinitcpio.d/)
- restartovat mobil do reflashnutého systému a provést provést aktualizaci
- USB kabel
- (v dohlednu by mělo fungovat automaticky)
- vytvořit a aktivovat rozhraní usb0[pozn. 9]
$ wget https://gist.githubusercontent.com/bmatusiak/ca96afe69cf3e16783d18f1650aafb50/raw/427c1b5acaf7f446e00cfdab2587f90f8c8c01bc/usb_gadget_setup.sh # stažení příslušného kódu $ chmod +x usb_gadget_setup.sh # nastavení souboru jako spustitelného # ./usb_gadget_setup.sh up # vytvoření a aktivace zařízení
- vznik zařízení již při startu PP lze zajistit systémovou službou pomocí souboru
/etc/systemd/system/usb_gadget_setup.service
[Unit] Description=Creats USB gadget Wants=network.target After=syslog.target network-online.target [Service] Type=simple ExecStart=/root/usb_gadget_setup.sh up Restart=on-failure RestartSec=10 KillMode=process [Install] WantedBy=multi-user.target
- s povolením automatického spuštění
# systemctl enable usb_gadget_setup.service
- vznik zařízení již při startu PP lze zajistit systémovou službou pomocí souboru
- a síťové spojení pro NetworkManager
- vytvoření
# nmcli con add type ethernet con-name usbTethering ifname usb0 ipv4.method shared
- aktivace
# nmcli con up usbTethering
- začlenění rozhraní pod správu NetvorkManageru[pozn. 10] souborem
/etc/NetworkManager/conf.d/80-usbTethering.conf
[device] match-device=interface-name:usb0 managed=true
- vytvoření
- WiFi - v aplikaci nastavení mobilu zvolit "Hotspot" a vyplnit požadované položky
Mutli-distro místo iptables používá modernější nftables, na což většinou nejsou distribuce připravené, tudíž je potřeba pro spojení na Internet vytvořit směrovací tabulku ručně:
- kontrola aktuálního stavu
# nft -s list ruleset
- aplikace
nft
je v balíčkunftables
- aplikace
- v případě prázdného výpisu je třeba vytvořit tabulku, zřetězení i pravidlo vytvořením souboru
/etc/nftables.conf
[pozn. 11]flush ruleset table inet nat { chain postrouting { type nat hook postrouting priority srcnat; policy accept; oifname "wwan0" masquerade } }
- a povolit automatické načítání
# systemctl enable nftables.service
- aplikovat nastavení
# systemctl restart nftables.service
Při testování, obzvlášť, je-li k dispozici více síťových rozhraní (WiFi, ethernet, .. viz. výstup $ ip a
), pozor na priority (hodnoty "metric" ve výpisu $ ip r
) a zapnutý firewall.[pozn. 12]
Sdílený root případně primární uživatel
editovat
Při přepínání do jiných systémů multi-distra se hodí jednotné místo pro uživatelská data jako jsou stažené soubory, fotografie či historie příkazů. Toho se dá dosáhnout namapováním domovského adresáře do vyhrazeného btrfs podsvazku pomocí úpravy souboru fstab
# mkdir ~/m
# mount /dev/mmcblk0p2 m
# cd m/
# btrfs subvolume list . # výpis stávajících
# btrfs subvolume create multi-root
# vim /etc/fstab # v případě aktuálního systému. Obdobně v příslušných podsvazcích ostatních
přidáním řádku /dev/mmcblk0p2 /root/ btrfs subvol=multi-root,compress=zstd 0 2
.
V případě roota již není díky standardizaci potřeba nic dalšího. Postup u primárního uživatele mobilu je analogický, žel běžně se dle distribucí liší názvem, číslem či domovským adresářem, a je tak při sjednocování potřeba postupovat individuálně. Společné je sjednocení UID/GID např. na nekolizní hodnotě 1111 úpravou souborů /etc/passwd
a /etc/group
i nastavení vlastnictví podsvazku pojmenovaného třeba multi-home pomocí # chown -R 1111:1111 <domovský adresář>
.[pozn. 13]
- Manjaro/Phosh
- manjaro:users /home/manjaro
- nastavit
User=1111
v/usr/lib/systemd/system/phosh.service
[pozn. 14]
- Manjaro/PlaMo
- <volí uživatel při prvním spuštění>:<shodné s názvem uživatele> /home/<název uživatele>
Zvýšenému riziku poškození dat primárního uživatele díky např. jinému formátu databází pro ukládání SMS se dá čelit pořizováním btrfs snímků.
Snímek obrazovky
editovat- Phosh
- GUI: ne
- CLI:
# su manjaro -c "XDG_RUNTIME_DIR=/run/user/1000 XDG_PICTURES_DIR=~/Pictures grim"
- PlaMo
- GUI: zcela rozbalit horní panel, kliknout na Screenshot
- CLI: nefungovalo
Vypnutí USB napájení
editovatHodí se, když nechcete vyčerpávat baterky notebooku, který máte propojený USB kabelem s PP - # echo 0 > /sys/class/power_supply/axp20x-usb/online
. Jednička napájení opět aktivuje, stejně jako znovupřipojení kabelu, restart apod. Nezapomeňte, že se vypnutím napájení začnou uplatňovat předvolby řízení spotřeby.
Vzdálená plocha
editovatPři častých experimentech nebo obyčejném psaní SMS by se může hodit obsluhovat mobil přímo z počítače. Toho lze dosáhnout:
- spuštěním VNC serveru na PP
# su manjaro -c "XDG_RUNTIME_DIR=/run/user/1000 WLR_BACKENDS=headless WLR_LIBINPUT_NO_DEVICES=1 wayvnc -k cz &"
[pozn. 15]- wayvnc nepodporuje rozšířené kódování schránky, tudíž takto lze přenášet pouze ASCII znaky[3][pozn. 16]
- a připojením se z počítače pomocí nějakého VNC klienta prostřednictvím ssh a přesměrování portů, tedy po spuštění
$ ssh -i ~/.ssh/<soukromý klíč> -L 5900:localhost:5900 root@<IP adresa PP>
připojíme VNC klienta nalocalhost:5900
- objeví-li se při pokusu o navázání spojení oznámení o jeho ukončení, je na PP potřeba ručně aktivovat obrazovku a znovu se připojit
Vzdálené přihlášení roota
editovat- předpokladem je připojení do stejné sítě např. pomocí WiFi a vygenerované ssh klíče
- v terminálu mobilu dočasně povolit přihlášení roota pomocí hesla nastavením
PermitRootLogin yes
v souboru/etc/ssh/sshd_config
- restartovat službu
# systemctl restart sshd
- na počítači spustit
$ ssh-copy-id -i ~/.ssh/<veřejný klíč> root@<IP adresa PP>
- vrátit
PermitRootLogin
na původní hodnotu (obvykleprohibit-password
) a opět restartovat službusshd
- vzdáleně se připojit k PP
$ ssh -i ~/.ssh/<soukromý klíč> root@<IP adresa PP>
- při častém používání
- povolit automatické spouštění služby
systemctl enable sshd
- usnadnit přihlašování (zadávání hesla) autentizačním agentem)
- povolit automatické spouštění služby
Zpětná vazba, hlášení závad
editovatZávisí na zkušenostech, protože chyba může být specifická pro distribuci, grafické rozhraní (GNOME, KDE) nebo aplikaci včetně jádra systému. Nejjistější, nikoliv však nejefektivnější a nejrychlejší, je použít zpětnou vazbu distribuce.[pozn. 17] Bývá potřeba uvést podrobnosti o použitém HW a SW, např. pro Manjaro/PlaMo[pozn. 18]:
- verze PP např. PinePhone v1.2b
- prostředí
$ uname -a Linux manjaro-arm 5.14.5-1-MANJARO-ARM #1 SMP PREEMPT Thu Sep 16 16:39:22 UTC 2021 aarch64 GNU/Linux $ kf5-config --version Qt: 5.15.2 KDE Frameworks: 5.86.0 kf5-config: 1.0 $ export $(cat /proc/$(pidof plasmashell)/environ | tr '\0' '\n') # při volání z ssh viz. https://wiki.postmarketos.org/wiki/Plasma_Mobile#Running_Apps_from_SSH_session $ plasmashell --version plasmashell 5.22.5
- software většinou podporuje dotaz
<název aplikace> --version
, nebo lze využít správcepacman -Q <název balíčku>
. Výpis podrobnějších informací (-Qi
) navíc napoví, kam se zpětnou vazbou:$ plasma-phonebook --version plasma-phonebook 21.08 $ pacman -Q plasma-phonebook plasma-phonebook 21.08-1 $ pacman -Qi plasma-phonebook Name : plasma-phonebook Version : 21.08-1 Description : Phonebook application for Mobile Devices running Plasma Architecture : aarch64 URL : https://www.plasma-mobile.org/ ..
Řešení problémů
editovatTriky, jak se dostat z problémových situací
- restart grafického prostředí
# systemctl restart phosh.service
- restart modemu když např. nefunguje vytáčení
# systemctl restart ModemManager.service
Poznámky
editovat- ↑ uSD karta se samozřejmě doporučuje větší, aby byl prostor pro uživatelská data, aktualizace nebo další distribuce.
- ↑ Pro hlášení závad se doporučuje především bugs.kde.org/. Pokud zde příslušná aplikace/komponenta není, pak invent.kde.org/.
- ↑ Prostředí PlaMo zavádí na distribucích nezávislou aplikaci Discover, ale zatím není dostatečně odladěná.
- ↑ Zjištění aktuální větve Manjara
$ pacman-mirrors --get-branch
. - ↑
/dev/EG25.AT
je pouze názornější alias pro/dev/ttyUSB2
- ↑ Slouží ke správě ModemManageru z příkazového řádku a tudíž bude vždy nainstalován.
- ↑ V tomto případě nelze nastavit hodnotu 0 přímo, ale voláním
# mmcli -m any --command="AT+QGPSEND"
- ↑ V místnosti prakticky nereálné.
- ↑ Kód obsahuje nepodstatné chyby a věci, které nejsou pro sdílení připojení nezbytné, je tedy vhodné si jej dle potřeb trošku doladit např. takto.
- ↑ Zajistí se tím např. obnova při restartu NetworkManageru
- ↑ Vznikne-li vzorový soubor již instalací balíčku (např. Manjarno), pak jej stačí upravit
- ↑ Ověření stavu závisí na distribuci/operačním systému. Neprázdný výpis tabulek (
# iptables -L
nebo již zmíněný# nft -s list rulese
) jej dává tušit, ale nemusí být aktivní. - ↑ Tuto změnu je nutné promítnout do některých zde uvedených příkazů např.
XDG_RUNTIME_DIR=/run/user/1111
- ↑ Tento soubor je často přepisován při aktualizaci systém, tudíž bývá potřeba upravat opakovaně.
- ↑ Lze zadat též IP adresu, ale není to doporučený postup.
- ↑ To např. v kombinaci s aktuálním připojením pomocí KRDC vede ke komolení diakritiky ve schránce celého systému tj. nejen při přenosu lokální počítač - PP
- ↑ Opačnou strategií je dávat podněty přímo tam, kde je kód zveřejněn.
- ↑ Údaje o HW a prostředí lze vyčíst v Nastavení > Informace o systému, ale nejdou zkopírovat.
Reference
editovat- ↑ Contributing. Plasma Mobile [online]. [cit. 2021-09-20]. Dostupné online. (en)
- ↑ 2,0 2,1 GitHub - manjaro-pinephone/plasma-mobile: Manjaro Plasma-Mobile. GitHub [online]. [cit. 2021-09-19]. Dostupné online. (en)
- ↑ Wayvnc does not accept non-ASCII characters · Issue #119. GitHub [online]. Komunita wayvnc, 2021-12-20 [cit. 2021-12-20]. Dostupné online. (en)