введение
я не претендую на подробности. более того считаю что вы уже что-то знаете например сами можете сделать ссылку на дирикторий(ю) в другой файловой системе. понимаете назначение программы fsck. т.е. обычный пользователь, который самостоятельно может установить пакет прикладных программ, имет базовые представления о файловой системе.
вот говорят про все эти юникс-подобные ОС что они альтернатива виндуз. это так и нет. дело в том, что реальной альтернативой они стали относительно недавно, когда wayland стал достаточно стабильным. при использовании системы графического отображения до этого X11 можно было назвать альтернативой лишь отчасти. хотя конечно для неё существует некоторое количество костылей позволяющие сносно работать на современном графическом оборудовании.
вы скажите: а как же самая лучшая в мире Mac OS X? ну дело в том что macOS использует собственную оконную систему Quartz Compositor. X11 сервер в macOS - это отдельный опциональный пакет. т.е. Wayland архитектурно ближе к Quartz чем к X11
сами «иксы» очень старые - начало разработки в 80. в те темные времена компьютеры были большими и понятия видеокарты отсутствовало ну или не было распространено. графический сервер запускался на специализированном компьютере и принимал подключения от других компьютеров по сети.
в тех условиях это было вполне себе решением, но современные видеокарты это мощный вычислитель который способен обрабатывать 3D графику в реальном времени, обрабатывать сжатые видеопотоки, выполнять вычисления. т.е. фактически это и есть специализированный компьютер к которому можно обратится как к устройству. т.е. функционал старой графической системы стал излишним.
wayland это новый протокол ориентированные на работу с видеокартой по средствам подсистемы KMS, которая является частью ядра ОС, она изначально разрабатывалась для linux.
фактически реализуется небольшая часть X-сервера. wayland ничего не рисует - это протокол взаимодействия. поэтому основную роль играет композитный менеджер. он все сваливает на библиотеку типа QT которая может использовать рендринг на видеокарте используя любой доступный протокол (OpenGL, Vulkan, software). задача композитного менеджера собрать все вместе и оправить и как можно быстрее в KMS для отображения этих данных видеокартой. как рисовать определяет приложение или библиотека типа QT, а где рисовать, положение окон и т.п. определяет композитный менеджер.
сейчас реализация wayland и использование этого протокола сторонними проектами типа KDE набрали определённую зрелость и вполне могут использоваться.
и у меня несколько иное мнение о *nix на десктопе ( от англ. desktop [désktɒp] — «поверхность стола» обычный компьютер для повседневного или офисного использования). я не считаю что из линукса нужно городить винду - угадывать чего хочет пользователь. при чем я и не сторонник сложной настройки. я считаю пользователь должен понимать что и для чего он делает.
т.е. сделать должно быть легко, но в телепатию "чего хочет пользователь?" играть не надо. базовая система должна быть достаточно проста без экзотических fs и кучи ненужного софта. а я уж сам решу что мне нужно сейчас: веб сервер, BRAS или десктоп с офисным набором программ.
моим критериям соответствует проект FreeBSD. проект не стремится к ненужным упрощениям, имеет достаточно хорошую поддержку разнообразного "железа", хоть несколько хуже linux. FreeBSD отлично подходит для десктопа, но она плохо рассчитана на неаккуратное обращение.
пользователь может нажать рэсэт в самый неподходящий момент или вырубить питание. и тогда приходится использовать знания утилиты fsck или читать хендбук, что как выяснилось, даже для нового поколения системных администраторов ужас-ужас. я расскажу как я настраиваю систему как DE. считаете что я это делаю неправильно - увижу интересное замечание напишу постскриптум.
статью я начинал писать во времена 14.2 stable и plasma 5.27, но на носу релиз 14.4, а у меня установлена plasma 6.4.5. я стараюсь статью поддерживать в актуальном состоянии, но я думаю через месяц опять придётся что-то дописывать.
моя система
первое у меня в системе два диска - физически разных т.е. именно два винта. а не раздела. на первом установлена система, своп и раздел который я монтирую в /var на втором винте у меня один раздел который я монтирую в /archive, он служит просто хламовником.
на первом винте вам надо использовать такую разметку чтобы ваш биос был способен с этого винта загрузится соответственно используете MBR или GPT. для второго лучше использовать GPT. у меня в /archive монтируется раздел который занимает весь второй винт.
и так вы установили систему. она теперь по-дифолту тоже делает один раздел на все. для физически одного винта я делаю
- 60 Гигов /
- 8 Гигов swap
- остальное занимаю разделом под /var
> dmsg
.....
ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <ADATA SU650 HP3418C5> ACS-4 ATA SATA 3.x device
ada0: Serial Number 4O4321428576
ada0: 300.000MB/s transfers (SATA 2.x, ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <INTEL SSDSA2M160G2GC 2CV102HA> ATA-7 SATA 2.x device ada0: Serial Number CVPO005304RW160AGN ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada0: Command Queueing enabled ada0: 152627MB (312581808 512 byte sectors) ada0: quirks=0x1<4K>UDMA6, PIO 4096bytes)
ada0: Command Queueing enabled
ada0: 244198MB (500118192 512 byte sectors)
ada1 at ahcich2 bus 0 scbus2 target 0 lun 0
ada1: <INTEL SSDSA2M160G2GC 2CV102HA> ATA-7 SATA 2.x device
ada1: Serial Number CVPO005304RW160AGN
ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada1: Command Queueing enabled
ada1: 152627MB (312581808 512 byte sectors)
ada1: quirks=0x1<4K>
....
>df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ada0s1a 58G 27G 27G 50% /
devfs 1,0K 0B 1,0K 0% /dev
/dev/ada0s1d 165G 9,0G 142G 6% /var
/dev/gpt/archive 144G 21G 112G 16% /archive
систему установили. все смонтировали:
> cat /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/ada0s1a / ufs rw,noatime 1 1
/dev/ada0s1d /var ufs rw 2 2
/dev/gpt/archive /archive ufs rw,noatime,noauto 1 1
/dev/ada0s1b none swap sw 0 0
первое что я делаю это переношу /tmp и /home в /var при помощи ссылки.
> ls -l /tmp
lrwxr-xr-x 1 root wheel 8 4 апр. 15:08 /tmp -> /var/tmp
кроме того если вы работаете с исходниками системы и портами, то поступить с ними надо так же.
> ls -l /usr/src /usr/ports
lrwxr-xr-x 1 root wheel 10 28 марта 21:55 /usr/ports -> /var/ports
lrwxr-xr-x 1 root wheel 8 28 марта 15:06 /usr/src -> /var/src
предварительная настройка все. перезагрузитесь, убедитесь что все правильно монтируется и вы сделали правильные ссылки.
КMS
теперь нужно настроить KMS (Kernel Mode Setting). использование КMS рекомендуется даже для старой графической подсистемы X11. wayland без KMS работать просто не будет. для хорошей работы KMS я рекомендую не очень новые видеокарты AMD. AMD открывает документацию и как правило имеет хорошую поддержку, чем и обеспечивает моё уважение. но лучше все же ознакомится со списком поддерживаемых карт AMD. сейчас одна из наиболее поддерживаемых проектом карт RX 580
настройка несложная. вам нужно установить соответствующий пэкэдж. для 14.2(3) STABLE это drm-61-kmod. drm-61-kmod стабилен для большинства карт AMD
обращаю ваше внимание, что вы поставили не все. нужны прошивки для вашей видеокарты и если вы испытываете проблемы с drm-61-kmod вам этот пэкэдж нужно собрать самому из портов.
конечно можно поставить все прошивки скопом - drm-kmod это метапорт поставит все необходимое, но я ставлю то что мне надо: gpu-firmware-radeon-kmod-cayman для моей видеокарты.
установки drm-kmod достаточно для видео карт ATI и INTEL. для nvidia существует nvidia-drm-61-kmod, но я никогда им не пользовался - наверное работает. я не в курсе. добавьте настройку в rc.conf соответствующую вашему драйверу, чтобы необходимые модули загружались при старте системы. например для меня:
> cat /etc/rc.conf
kld_list="radeonkms"
. . .
если вы всё сделали правильно, то при перезагрузке вы получите что-то типа этого:
> dmsg
.....
[drm] radeon kernel modesetting enabled.
drmn0: <drmn> on vgapci0 vgapci0: child drmn0 requested pci_enable_io vgapci0: child drmn0 requested pci_enable_io sysctl_warn_reuse: can't re-use a leaf (hw.dri.debug)! [drm] initializing kernel modesetting (CAYMAN 0x1002:0x6718 0x174B:0xE182 0x00).
.....
а /dev/dri/ будет выглядеть примерно так
> ls /dev/dri/
card0 renderD128
вообще сразу лучше не добавлять что-либо в rc.conf - загрузите модуль в ручную, если все OK отредактируйте основной конфигурационный файл.
если KMS настроен фря запускает новую подсистему терминала в высоком разрешении - маленькие аккуратненькие буковки. это в общем-то основное. если видеокарта подцепилась KMS то проблем дальше обычно не возникает.
дополнительно я собираю своё ядро. вообще у меня привычка по максимум запихнуть в ядро все мне нужное и вышвырнуть из него все мне ненужное: см статью про сборку ядра. тут самое главное здравый смысл.
plasma6
заведите пользователя под которым собираетесь работать и задайте ему пароль и создайте домашнюю директорию, настройте права:
> pw user add BigBoss -L russian -d /var/home/BB -s /bin/csh -g wheel -G video
> passwd BigBoss
> mkdir /var/home/BB
> chown BigBoss /var/home/BB
> chmod 700 /var/home/BB
- russian - логин класс
- /var/home/BB - домашняя директория
- /bin/csh - шел
- wheel - членам группы позволяют стать рутом
- video - членам группы дают возможность работать с KMS
дальше установите необходимые пакеты: kde, для 6 плазмы понадобятся plasma6-sddm-kcm, sddm, xorg(xorg-minimal), seatd. установите x11 драйвер для вашей видеокарты. для меня это xf86-video-ati. после установки всего хлама, основой файл конфигурации у меня выглядит так, я его редактирую вручную мне кажется так проще:
> cat /etc/rc.conf
kld_list="radeonkms"
hostname="uh1"
ifconfig_em0="DHCP"
ifconfig_em0_ipv6="inet6 accept_rtadv"
firewall_enable="YES"
firewall_script="/usr/local/etc/ipfw.sh"
dumpdev="NO"
moused_enable="YES"
ntpd_sync_on_start="YES"
dvtws_enable="YES"
dbus_enable="YES"
sddm_enable="YES"
seatd_enable="YES"
сакральный смысл программки dvtws НазватьНельзя. в тем более НельзяНазвать для чего могут понадобится такие правила фаирвола:
> cat /usr/local/etc/ipfw.sh
#!/bin/sh
fw="/sbin/ipfw"
${fw} -f flush
${fw} add divert 900 ip from me to any 443 out not diverted xmit em0
${fw}add allow all from any to any
и такой скрипт:
> cat /usr/local/etc/rc.d/dvtws
#!/bin/sh
# PROVIDE: dvtws
# REQUIRE: DAEMON
# KEYWORD: shutdown
. /etc/rc.subr
name="dvtws"
rcvar="${name}_enable"
load_rc_config "$name"
command="/usr/local/bin/dvtws"
procname=${command}
pidfile="/var/run/${name}.pid"
command_args="--user=nobody --daemon --pidfile=$pidfile --port=900 --dpi-desync=multisplit --dpi-desync-split-seqovl=652 --dpi-desync-split-pos=2,sld-1,endsld-5,endsld"
run_rc_command "$1"
если все работает нормально скажите запускать сессию wayland sddm используйте пароль пользователя BigBoss. я так и не привел до конца в порядок sddm, поэтому запускаю DE из системного терминала
в графике тоже есть терминал из него доставьте пакетов по-вкусу. я дополнительно ставлю ставлю LiberWolf (это немного подкрученный FireFox), LibreОffice, GIMP, FreeCAD.
для запуска сессии в системном терминале из под пользователя BigBoss скажите:
> dbus-launch --exit-with-x11 ck-launch-session startplasma-wayland --no-global-shortcuts
чтобы не набивать каждый раз столько аргументов сделайте удобный alias например de - см ~/.cshrc. это даёт возможность в принципе обходится без sddm.
я раньше запускал sddm как терминал - старомодный способ. вообще он штатно имеет rc.d скрипт. добавьте sddm_enable="YES" в rc.conf.
всё настроили? замечу что было сделано всё для того чтобы в корень ничего не писать - можете смонтировать его в RO. в месте с атрибутом noatime это несколько уменьшит расход ресурса вашего SSD, хотя основная идея сделать максимально возможную защиту от дурака.
принципиально уменьшит расход ресурса SSD большое количество памяти - потому что практически не будет использоваться своп. дополнительно можно /tmp сделать в памяти. тогда фактически ресурс будет расходоваться только на запись конфигурационных файлов и документов пользовательскими программами. так что впихнуть 16 гигов оперативной памяти это в общем-то не такая плохая идея. тут вопрос рентабельности - проще SDD менять чаще. для нормальной работы я рекомендую не менее 4 гигов ОЗУ у меня установлено 8.
плазма 6 заставила потратить некое количество нервов. если честно такого не видел лет 20: я поставил 14.2 периодически обновлял её до STABLE пока очередное обновление не поломало KMS - открыл PR. однако мне быстро объяснили что виноват я в общем то сам - проблема описана на странице релиза - надо пересобрать систему полностью и поставить drm-61-kmod из портов, а не из пэкеджей. ну а дальше начались эксперименты с 6-той плазмой и wayland, которая на том момент была devel. сейчас в пекаджах дотупна plasma 6.4.5.
plasma6 практически полноценно работает на wayland с версии 6.4.4 на 14.3-STABLE.
в принципе вам необязательно бежать впереди паровоза, однако если вам невтерпёж попробовать новую графическую систему и новые кеды - попробуйте поэкспериментировать. wayland сравнительно давно доступен под FreeBSD уж для ati/intel видюх точно. 6 плазма разрабатывается на wayland по умолчанию, однако ничто не мешает её использовать с x11
если что-то пошло не так:
- загружайтесь в сингл мод.
- перемонтируйте корень в режим запись/чтение, если вы его не испохабили mount -o rw /
- объявите терминал set TERM=xterm
- ee вам в помощь