На днях поборол жабу, и позволил себе купить на замену стокового системного HDD HGST Travelstart Z7K500 / 500Гб, новый SSD Samsung SSD 870 EVO.
Первое впечатление - систему стероидами накачали. А дальше - увлекательная процедура миграции нужного и не очень в новое окружение.
Бекап
Сохраняем, как миниум:
/etc
/home
/lib/firmware
Остальное по желанию и возможностям. У меня полностью менялся диск, поэтому старые данные не будут удаляться ещё давно (ага, а новым, по хорошему, бекап нужен :)).
UEFI
Перевёл систему на использование UEFI. BIOS позволяет, но исторически загрузка была Legacy BIOS. Secure Boot выключен. Диск размечен в GPT. Далее ничего сложного, руководство Manjaro достаточно лаконично:
Suspend / Resume на T530
Следующее, это волшебное исцеление зависания при выходе из suspend. Эти хаки больше не нужны:
- Падение Xorg после выхода из suspend - 2018 год
- ThinkPad T530: зависание при выходе из сна на ядрах 5.10+ - 2021 год
- ThinkPad T530: зависание при выходе из сна на ядрах 5.10+ (опять) - 2022 год, позволял работать на ядре 5.15.x
Причём ни один из этих костылей не лечил выход из Suspend на ядрах новее 5.15. Сейчас работают все ядра.
Но меня такие “волшебные” излечения всегда огорчают: судя по всему, из-за разного времени отклика в системах присутствует гонка, которая может вылезти боком в каких-то других сценариях. И ударить не менее “магически”.
Миграция KDE Wallet
KDE хранит там всякую полезную информацию в зашифрованном виде. Тот же Akonadi хранит там креденшиналы для доступа к . Дефолтный “бумажник” разблокируется при входе.
Просто переносим настройки:
~/.local/share/kwalletd
Желательно сделать это вне запущенной сессии KDE.
Миграция KOrganizer, Akonadi
Возможно, что настроить заново будет быстрее :)
Для начала я перенёс все настройки, которые были связаны с Akonadi:
~/.local/share/akonadi
~/.config/akonadi
- у меня в
akonadiserverrc
прописано использовать PostgreSQL вместо MySQL.
- у меня в
Перетаскивать ~/.local/share/korganizer
смысла нет, там только технические детали.
Но, оказалось, что версия Postgre обновилась с 13 на 14, поэтому пришлось сделать апгрейд по руководству:
-
https://userbase.kde.org/Akonadi/Postgres_update
А старая версия Postgre для миграции доступна в виде пакета
postgresql-old-upgrade
:
sudo pacman -S postgresql-old-upgrade
На шаге --check
у меня выдалось пару ошибок, в результате нужно устранять, удаляя новую базу и повторяя шаг initdb
. В результате база была создана такой командой:
initdb --pgdata=$HOME/.local/share/akonadi/db_data --locale=C -E UTF8
После чего check прошёл без ошибок:
pg_upgrade -b /opt/pgsql-13/bin/ -B /usr/bin -d $HOME/.local/share/akonadi/db_data_old -D $HOME/.local/share/akonadi/db_data --check
И следующим шагом запускаем эту же команду, без --check
:
pg_upgrade -b /opt/pgsql-13/bin/ -B /usr/bin -d $HOME/.local/share/akonadi/db_data_old -D $HOME/.local/share/akonadi/db_data
И запускаем Akonadi:
akonadictl start
На этом шаге нужно иметь KDE Wallet смигрированным.
Baloo
На любителя. Я сразу:
balooctl disable && balooctl purge
softu2f aka rust-u2f
Софтовый ключ U2F. Креденшиналы хранит в gnome-keyring. Поэтому нужно его сразу поставить:
sudo pacman -S gnome-keyring
Настройки:
~/.local/share/keyrings
Сам rust-u2f никакие настройки не предоставляет в системе достаточно:
systemctl --system enable softu2f.socket
systemctl --user enable softu2f.service
systemctl --system start softu2f.socket
systemctl --user start softu2f.service
где нужно, он спросит пароль.
Wine
TBD. Точнее как, можно просто перенести ~/.wine
, но потеряются все меню.
Меня переносятся:
~/.local/share/applications
~/.local/share/desktop-directories
~/.local/share/mime
Дальше ещё что-то нужно сделать. Разбираюсь.
XDG пользовательские директории
Речь про всяки ~/Мои Документа
и т.п. Я не люблю их в русской локализации, поэтому привожу файл ~/.config/user-dirs.dirs
к такому виду:
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Shared"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Video"
А файл ~/.config/user-dirs.locale
удаляю.
T530 Screen DPI
По всем канонам там 141 DPI. У меня настройка из двух шагов:
- Задание экрану ноутбука нужного DPI. После чего приложения на Qt5/Qt6 и в среде KDE замечательно подхватят и всё сделают за вас. С Gtk всё намного гиморнее. Но это другая песнь.
- Указание
Xft.dpi
.
Указываем через
~/.xprofile
:
cat > ~/.xprofile << EOF
# Setup main output DPI
xrandr --output LVDS-1 --dpi 141
EOF
Либо просто восстанавливаем из старой домашней директории. Параметр --output
здесь не нужен, но затесался исторически: --dpi
- глобальная опция. Так сто ставим по желаемому монитору, остальные пусть подтягиваются:
Следующим шагом указать Xft.dpi
. Правим ~/.Xresources
, у меня содержимое до ужаса простое:
Xft.dpi: 141
После перезагрузки, можно удостоверится:
$ xrdb -query
Xcursor.size: 24
Xcursor.theme: Bluecurve
Xft.antialias: 1
Xft.dpi: 141
Xft.hinting: 1
Xft.hintstyle: hintslight
Xft.rgba: rgb
$ xdpyinfo | grep resolution:
resolution: 141x141 dots per inch
Xorg settings: legacy way
Сохраню этот блок в исторических целях. Сейчас этот подход у меня не работает. Точнее параметры экрана замечательно считываются из EDID, драйвера это видят, как и разрешение экрана, но всё равно ставят DPI в 96.
Итак. Указание физического размера экрана в миллиметрах.
Для этого шага создаём /etc/X11/xorg.conf.d/90-monitor.conf
:
Section "Monitor"
Identifier "LVDS-1"
# DisplaySize taken from the EDID decode:
# edid-decode /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1/edid
DisplaySize 344 194
EndSection
Можно линейкой померить, я взял данные из EDID:
edid-decode /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-LVDS-1/edid
edid-decode (hex):
00 ff ff ff ff ff ff 00 0d ae b1 15 00 00 00 00
01 16 01 04 90 22 13 78 02 31 d5 9f 56 58 95 27
15 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 96 3b 80 32 71 38 3e 40 5a 3c
69 00 58 c2 10 00 00 1a 9b 25 80 ee 70 38 23 40
35 23 35 00 58 c2 10 00 00 1a 00 00 00 fe 00 56
43 4d 38 58 02 4e 31 35 36 48 47 0a 00 00 00 00
00 00 41 31 9e 00 00 00 00 02 01 0a 20 20 00 05
----------------
Block 0, Base EDID:
EDID Structure Version & Revision: 1.4
Vendor & Product Identification:
Manufacturer: CMN
Model: 5553
Made in: week 1 of 2012
Basic Display Parameters & Features:
Digital display
Bits per primary color channel: 6
Digital interface is not defined
Maximum image size: 34 cm x 19 cm
Gamma: 2.20
Supported color formats: RGB 4:4:4
First detailed timing includes the native pixel format and preferred refresh rate
Color Characteristics:
Red : 0.6210, 0.3388
Green: 0.3437, 0.5830
Blue : 0.1552, 0.0830
White: 0.3134, 0.3291
Established Timings I & II: none
Standard Timings: none
Detailed Timing Descriptors:
DTD 1: 1920x1080 60.005696 Hz 16:9 68.527 kHz 152.540000 MHz (344 mm x 194 mm) <-- оно
Hfront 90 Hsync 60 Hback 156 Hpol P
Vfront 6 Vsync 9 Vback 47 Vpol N
DTD 2: 1920x1080 40.009642 Hz 16:9 44.611 kHz 96.270000 MHz (344 mm x 194 mm)
Hfront 53 Hsync 35 Hback 150 Hpol P
Vfront 3 Vsync 5 Vback 27 Vpol N
Alphanumeric Data String: 'VCM8X'
Manufacturer-Specified Display Descriptor (0x00): 00 00 00 00 41 31 9e 00 00 00 00 02 01 0a 20 20 '....A1........ '
Checksum: 0x05
Systemd
Тут дело касается пользовательских юнитов. Переносим:
~/.local/share/systemd/user
У меня там автоматический бекап для навигатора Garmin.
Apparrmor
TBD: Оказывается он включен по умолчанию на Manjaro. Нужно покурить.
DavMail
Основной конфиг у меня в ~/.davmail.properties
, но дистрибуция предоставляет возможность запуска нескольких копий с разными конфигами через systemd индивидуально для пользователя.
Например так:
systemctl --user enable davmail@default.service
systemctl --user start davmail@default.service
default
можно меня на что угодно в любых количествах. Конфиг при этом будет искаться в ~/.config/davmail/default.properties
. Понятно, что вместо default
в имени будет то самое “что угодно”, которые вы указали в имени юнита.
У меня ~/.config/davmail/default.properties
симлинк на ~/.davmail.properties
.
QMapShack, QMapTool
В ~/.QMapShack
только кеши онлайн карт! Настройки в ~/.config/QLandkarte
. По историческим причинам: всё это выросло из QLandKarteGT (есть на этом бложике).
KiCAD
Настройки в ~/.config/kicad
, а вот всякое дополнение, типа символов и посадочных мест в ~/.local/share/kicad
.
VirtualBox
Настройки: ~/.config/VirtualBox
Виртуальные машины: ~/VirtualBox VMs
T530 PrintScreen
Следуем заметке: ThinkPad T530: клавиатура, делаем из PrintScr → Menu, а Launch1 - PrintScr. Ибо нефиг.
Revert to traditional interface names - мы за традиционные ценности (eth0, wlan0)
sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
Swapfile
Да, у меня так. Если он лежал на другом диске и разделы на нём никак не трогались, то resume_offset=
не изменится. Нужно только не забыть добавить его в параметры Grub и сделать update-grub
.
Если поменялся, запустить:
sudo filefrag -v /swapfile | grep '^[ \t]*0:'
Вывод:
0: 0.. 0: 3481600.. 3481600: 1:
Число с двумя точками: 3481600..
и есть искомая величина. Естественно без точек.
Groups
Тоже постоянно забываю. Старый /etc
я сохранил в /home/old-disk/etc
, после чего:
cat /home/old-disk/etc/group | grep -w hatred | grep -v '^hatred' | awk -F: '{print $1}' | xargs -I{} sudo gpasswd -a hatred {}
Некоторые группы создаются при установке некоторых пакетов, если появилось предупреждение, что какой-то группы нет, проверьте, установлен ли нужный вам пакет. Или забить.
dmesg wheel group access
Читать в отдельной статье: dmesg wheel group access.
T530 Bluetooth firmware
Лежит в:
/lib/firmware/brcm/BCM20702A1-0a5c-21e6.hcd
cp /home/old-disk/lib/firmware/brcm/BCM20702A1-0a5c-21e6.hcd /lib/firmware/brcm/
Ранее доставал его из драйверов под Windows, и сопровождалось такой заметкой:
Begin reading from the link:
http://www.slackwiki.com/Btfirmware-nonfree
Second useful info:
http://askubuntu.com/questions/657392/broadcom-bluetooth-module-does-not-work-in-ubuntu-15-04-broadcom-216f-bt
И код:
wget https://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/g4wb12ww.exe
innoextract g4wb12ww.exe
cp app/Win64/BCM20702A1_001.002.014.0449.0462.hex .
hex2hcd BCM20702A1_001.002.014.0449.0462.hex -o BCM20702A1-0a5c-21e6.hcd
sudo cp BCM20702A1-0a5c-21e6.hcd /lib/firmware/brcm/
Xorg settings
Выше уже было про DPI экрана. Но стоит проанализировать и прочие конфиги в /home/old-disk/etc/X11/xorg.conf.d
Logitech MX Master
Ставим logiops:
yay -S logiops
Восстанавливаем конфиг /etc/logid.cfg
:
sudo cp /home/old-disk/etc/logid.cfg /etc/
И включаем:
sudo systemctl enable logid
sudo systemctl start logid
Прочее
Отдельные приложения, типа Qt Creator, Firefox, Thunderbird хранят свои настройки достаточно изолировано и можно просто скопировать нужную директорию. Поэтому особых трудностей тут возникнуть не должно.
Стоит не забыть про “системные” директории типа:
~/.fonts
- с вашими локальными шрифтами~/.icons
- со схемами иконок~/.cache
- для там, в основном, шлак, но вдруг захочется перенести кешyay
.
Fontconfig давно переехал в ~/.config/fontconfig
.
Думаю, что вспомнил далеко не всё, что ещё вылезет - буду дополнять.