Pull to refresh

Отчёт подумывающим об установке Linux

Level of difficultyMedium
Легко установим EndeavourOS, версию Mercury Neo
Легко установим EndeavourOS, версию Mercury Neo

Тем, кто подумывает о переходе на Линукс, может быть интересно посмотреть запись того, как это выглядело в конкретном случае. Оцените объём работ и то, насколько хорошо Вы понимаете процесс. Это как ролик в стиле о «прогулка по» на Замедленном — без купюр, с минимумом комментариев, и так, как реально получилось.

Искателям копи с целью пасты и вкатунам с нуля — текст не рекомендуется.

С какой стати

Есть на Линукс десктопное окружение i3w, иногда именуемое полнее, как i3-wm. В нём а) окна естественным образом располагаются вплотную одно к другому, но могут переводиться в обычный плавающий режим, б) управление окнами заточено под клавиатуру, то есть под горячие клавиши, даже запуск приложения идёт через вызов списка горячей клавишей и немедленную его фильтрацию с клавиатуры, и в) практически отсутствуют "родные" графические конфигурационные утилиты, редактирование конфигурационных файлов по классике вместо них.

Чтобы посмотреть действительно ли так быстрее, удобнее и вызывает меньшую когнитивную нагрузку, Линукс был переустановлен. Оказалось, что в общем да, но не на много. Больше всего, по сравнению с KDE, заметно снижение номинального потребления памяти, однако, KDE хоть и создаёт своп, но не особо им пользуется и работает практически столь же плавно.

Тайловый режим на уровне DE показался перебором. Располагать окна рядом KDE умеет, в основных приложениях, Konsole, Tmux и NeoVim, и тайловый режим свой, и горячие клавиши свои. Получается - пятьдесят на пятьдесят, от силы 53 на 47 в пользу i3w. А когда обнаружмлось, что x0vncserver падает когда Firefox открывает окошко при нажатии на иконку расшмрения, было решено вернуться на KDE.

Записывать все шаги я решил вспомнив, что когда-то давно, на Windows, это былополезно. Потом, глядя на статьи о смысле if в языках программирования, решил выложить запись в песочницу и посмотреть что из этого выйдет.

Начало

Установим RDE Plasma в EndeavourOS, это Arch с человеческим лицом разумными как установками по умолчанию так и выбором пакетов, в сетевом режиме, чтобы система сразу была актуальна и не требовала обновления, и с входом сразу в графику, без ппроля.

Подробности опускаю, поскольку если с этим сложности - нужно скачать Puppy Linux, это не страшно поскольку устанавливать на диск его не нужно, и немного поиграть с иаковым. Единственное, что нужно на этом этапе - запомнить кем назвался (andy), пароль и какой менеджер выбрал (sddm).

Осматриваемся

$ lsmod
$ env
$ ps -A | grep sh
$ ps -A | grep dm
$ ps -A | grep way
$ ps -p $$
$ yay -S bat nnn neovim
$ yay -Qi bat
$ yay -Qi nnn
$ yay -S sshfs
$ yay -Qi neovim
$ yay -S wl-clipboard
$ bat /etc/sddm.conf
$ yay -Rns wl-clipboard
$ yay -S xsel
$ yay -S obsidian

Отлично, работает проприетарный драйвер nvidia, шеллом идёт bash и сессией wayland. Нужно было не забывать после установки пакета (-S) посмотреть его якобы не обязательные зависимости (-Qi) без которых ничего толком не работает. Дистрибутивы Линукс так строят специально, веселья для.

Логическая петля с установкой wl-clipboard и её немедленным сносом (-Rns) вызвана тем, что команды wl-copy и wl-paste работали, но Neovim их в упор не видел, хотя по докам должен был, и к системным clipboard, а их сейчас две - в wayland своя и в слое совместимости с X11 - своя, обратиться не мог. Поэтому вместо wl-clipboard будет xsel.

Готовим bash

В дальнейшем точно придётся менять переменные окружения. Самое время подготовиться к этому - создать ~/.bash_my.

$ bat -p ~/.bash_profile 
#
# ~/.bash_profile
#

[[ -f ~/.bashrc ]] && . ~/.bashrc
$ 
$ bat -p ~/.bashrc
#
# ~/.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

alias ls='ls --color=auto'
alias grep='grep --color=auto'
PS1='[\u@\h \W]\$ '
$ 
$ neovim ~/.bashrc
$ neovim ~/.bash_my
$
$ bat -p ~/.bashrc
#
# ~/.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

alias ls='ls --color=auto'
alias grep='grep --color=auto'
PS1='[\u@\h \W]\$ '

[[ -f ~/.bash_my ]] && . ~/.bash_my
$ 
$ bat -p ~/.bash_my
PS1='\$ '
export VNC_USERNAME=andy
export VNC_PASSWORD=cantor

$

Переменные окружения для VNC должны будут позволить vncviewer заходить на другие компьютеры без ввода пароля.

Swap

$ lsblk -f
$ sudo nvim /etc/fstab
$ bat /etc/fstab | grep swap  
UUID=7674848d-8fff-4cff-976e-3fd318a151dd  none  swap  defaults  0  0  

Да, в установщике EndeavourOS конфигурация свопа если и есть, то точно не бросается в глаза.

Plasma

  • добавить виртуальные десктопы со второго по четвёртый, i3w убедил что 2 - мало

  • ограничить Search свеже созданной папкой ~/Notes, иначе индексация будет мешать

  • установить размер и положение panel по желанию, тут желания меняются и меняются...

  • выбрать цветовую схему

  • выбрать активацию в один клик

  • убрать экран блокировки, коты не столь злонамерены как кажется авторам Линукс

  • убрать переход в сон, можно проснуться в чёрный экран, а при использовании headless - не проснуться вообще

Иными словами и по моему мнению - Plasma из коробки, считай, идеальна.

VNC

Есть много способов организовать удалённый доступ, но если это нужно сделать с большого числа устройств, то проще - старый добрый TigerVnc.

yay -S tigervnc
$ vncpasswd
$ neovim ~/.config/tigervnc/config
$
$ ls -l ~/.config/tigervnc/
total 12
-rw-r--r-- 1 andy andy 50 Apr 10 17:14 config
-rw-r--r-- 1 andy andy 65 Apr 12 13:56 default.tigervnc
-rw------- 1 andy andy  8 Apr  9 19:52 passwd
$ 
$ bat -p ~/.config/tigervnc/config 
session=plasmax11
geometry=1280x720
alwaysshared
$ 

Файл config понадобится если захочется перенастроить машину как headless server. Теперь можно попробовать зайти на другую машину

$ vncviewer

Оказывается, пароль в переменных окружения то работает то нет, но в целом всё хорошо. Можно пробовать подключиться к этой машине. Попробуем зайти с другой машины

$ x0vncserver -rfbauth ~/.config/tigervnc/passwd -localhost no

и берём в руки iPad. Видим чёрный экран, причём и курсор и клавиатура позволяет управлять машиной с iPad, просто смотреть надо на монитор. Вывод - совместимость wayland с X11 так и не доделали, любопытство удовлетворено, надежды сдохли, возвращаемся в иксы.

$ sudo neovim /etc/sddm.conf
bat -p /etc/sddm.conf 
[Autologin]  
User=andy  
#Session=plasma  
Session=plasma11
$
$ reboot

Загрузим библиотеку libvnc.so из пакета tigervnc согласно докам и с целью оптимизации.

$ cd /etc/X11/xorg.conf.d/
$ sudo nvim 10-vnc.conf
$ bat -p 10-vnc.conf    
Section "Module"     
Load "vnc"  
EndSection    

Section "Screen"     
Identifier "Screen0"     
Option "UserPasswdVerifier" "VncAuth"     
Option "PasswordFile" "/home/andy/.config/tigervnc/passwd"  
EndSection  
$
$ firewall-cmd  --permanent --zone=public  --add-service  vnc-server
$ firewall-cmd  --zone=public  --add-service  vnc-server
$ reboot

Результат удивляет - VNC клиент подключается, но показывает не все окна. Сносим модную библиотеку. И запускаем старый добрый x0vncviewer.

$ sudo rm /etc/X11/xorg.conf.d/10-vnc.conf
$ nvim ~/.xprofile
$ bat -p ~/.xprofile    
x0vncserver -rfbauth ~/.config/tigervnc/passwd -localhost no &  
$
$ reboot

Так - работает.

SSH

$ yay -S openssh
$ ssh-keygen
$ ls ~/.ssh  
authorized_keys id_ed25519 known_hosts config id_ed25519.pub  known_hosts.old  
$
$ sudo nvim /etc/ssh/sshd_config
$
$ bat -p /etc/ssh/sshd_config | grep -v "^#" | grep -v "^$" 
Include /etc/ssh/sshd_config.d/*.conf  
AuthorizedKeysFile      .ssh/authorized_keys  
PasswordAuthentication no  
KbdInteractiveAuthentication no  
Subsystem       sftp    /usr/lib/ssh/sftp-server  
$
$ systemctl start sshd
$ systemctl enable sshd

Теперь запускаем утилиту Firewall и разрешаем доступ к себе, а на каждой машине, к которой хотим подключаться, дописываем наш ~/.ssh/id_ed25519.pub к ~/.ssh/authorized_keys и удаляем старый ключ из ~/.ssh/authorized_keys и из ~/.ssh/known_hosts. Последнее важно, иначе при подключении удалённая машина заподозрит неладное.

Вообще то, ssh - старый протокол, из времени предшествующего безумию заботы о "рядовом пользователе", поэтому настраивается просто и работает хорошо.

Samba

Как клиент, работает в dolphin из коробки. Но не вполне.

В сети есть роутер доступный по SMB к которому подключен HDD, но роутер работает только с первой, ныне устаревшей, версией протокола. Dolphin к нему не подключается, поэтому

sudo neovim /etc/fstab
$ bat -p /etc/fstab | grep R
//192.168.1.1/Router  /mnt/Router  cifs  vers=1.0,username=assa,password=assa,noperm,nofail,noauto,users  0  2
$ mount /mnt/Router

Теперь дадим Dolphin возможность шарить папки через user shares.

$ yay -Qi dolphin
$ yay -S kdenetwork-filesharing

Что даёт сервер samba как зависимость.

$ sudo mkdir /var/lib/samba/usershares  
$ sudo groupadd -r sambashare  
$ sudo chown root:sambashare /var/lib/samba/usershares/  
$ sudo chmod 1770 /var/lib/samba/usershares/  
$ bat -p /etc/samba/smb.conf    
[global]  
  
workgroup = MYGROUP  
client min protocol = NT1  
force user = andy  
server string = Samba Server  
server role = standalone server  
log file = /home/andy/.cache/samba/log.%m  
max log size = 10000  
passdb backend = tdbsam  
dns proxy = no  
  
usershare path = /var/lib/samba/usershares  
usershare max shares = 100  
usershare allow guests = yes  
usershare owner only = yes  
  
[media]  
path = /run/media/andy  
valid users = andy  
public = no  
writable = yes  
create mask = 0765  
$    
$ sudo gpasswd sambashare -a andy  
Adding user andy to group sambashare  
$ sudo pdbedit -L -v  
$ sudo smbpasswd -a andy  
New SMB password:  
Retype new SMB password:  
Added user andy.  
$ sudo pdbedit -L -v  
---------------  
Unix username:        andy  
NT username:             
Account Flags:        [U          ]  
User SID:             S-1-5-21-1782492179-2422990894-669341090-1000  
Primary Group SID:    S-1-5-21-1782492179-2422990894-669341090-513  
Full Name:            Andrey  
Home Directory:       \\ANDREY-GAMING\andy  
HomeDir Drive:           
Logon Script:            
Profile Path:         \\ANDREY-GAMING\andy\profile  
Domain:               ANDREY-GAMING  
Account desc:            
Workstations:            
Munged dial:             
Logon time:           0  
Logoff time:          Wed, 06 Feb 2036 18:06:39 MSK  
Kickoff time:         Wed, 06 Feb 2036 18:06:39 MSK  
Password last set:    Fri, 11 Apr 2025 13:23:59 MSK  
Password can change:  Fri, 11 Apr 2025 13:23:59 MSK  
Password must change: never  
Last bad password   : 0  
Bad password count  : 0  
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF  
$
$ systemctl start smb  
$ systemctl enable smb  
Created symlink '/etc/systemd/system/multi-user.target.wants/smb.service' → '/usr/lib/systemd/system/smb.service'.  
$
$ reboot

Теперь папку можно шарить из Dolphin. Заметьте, что файл /etc/samba/smb.conf появился из ниоткуда. Дело в том, что этот критически важный файл конфигурации отсутствует в пакете samba, так понятней что samba — творение Микрософт, то есть зла. Можно скачать его как «пример» из документации, а можно взять с другой машины, что и было сделано.

Заметьте и то, что пользователь должен быть добавлен в базу pdbedit, о чём большинство доков по теме умалчивает.

Экран ввода пароля при загрузке

Его не должно быть, а он есть, после входа в графику и перед splash screen собственно Plasma. Гугол и доки безмолвствуют. Deep Seek тоже ничего не знает, но подаёт здравую мысль - это не sddm, это что-то ещё. А всё, что я делал - совершал экскурсию в Wayland. Следовательно, возвращаемся туда

$ sudo neovim /etc/sddm.conf
bat -p /etc/sddm.conf 
[Autologin]  
User=andy  
Session=plasma  
#Session=plasma11
$
$ reboot

Теперь загружаем приложение System Settings и по крайне логичному пути Colors and Themes -> Login Screen -> Behavior меняем Plasma на Plasma (X11). После чего конфигурация sddm меняется чудесным образом.

$ bat /etc/sddm.conf  
──────┬────────────────────────────────────────────  
      │ File: /etc/sddm.conf   <EMPTY>  
──────┴────────────────────────────────────────────  
$ ls /etc/sddm.conf  
sddm.conf    sddm.conf.d/    
$ ls /etc/sddm.conf.d/  
10-endeavouros.conf  kde_settings.conf  
$ bat /etc/sddm.conf.d/10-endeavouros.conf    
──────┬────────────────────────────────────────────  
      │ File: /etc/sddm.conf.d/10-endeavouros.conf  
──────┼────────────────────────────────────────────  
  1   │ [Theme]  
  2   │ Current=eos-breeze  
──────┴────────────────────────────────────────────  
$ bat /etc/sddm.conf.d/kde_settings.conf    
──────┬────────────────────────────────────────────  
      │ File: /etc/sddm.conf.d/kde_settings.conf 
──────┼────────────────────────────────────────────  
  1   │ [Autologin]  
  2   │ Relogin=false  
  3   │ Session=plasmax11  
  4   │ User=andy  
  5   │    
  6   │ [General]  
  7   │ HaltCommand=/usr/bin/systemctl poweroff  
  8   │ RebootCommand=/usr/bin/systemctl reboot  
  9   │    
 10   │ [Theme]  
 11   │ Current=eos-breeze  
 12   │    
 13   │ [Users]  
 14   │ MaximumUid=60513  
 15   │ MinimumUid=1000  
──────┴──────────────────────────────────────────────  
$

И экрана ввода пароля больше нет. Настройка sddm не изменилась, просто переехала из одного файла в другой. Что ещё при этом опустело или было удалено - неизвестно.

Последняя, скорее крайняя, странность

При заходе на машину по VNC с iPad, русские заглавные буквы не набираются если на экранной клавиатуре они большие, но набираются если отдельно ввести Shift. И набираются с подключённой к iPad клавиатуры.

Но с этим можно жить, минимально рабочая конфигурация Линукс достигнута.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.