FreeBSD на десктопе

Dec 22, 2024 15:31


я не претендую на подробности. более того считаю что вы уже что-то знаете например сами можете сделать ссылку на дирикторий(ю) в другой смонтированной файловой системе. знаете сакральный смысл программы fsck. т.е. обычный пользователь, который самостоятельно может поставть пакет прикладных праграмм, имет базовые представления о файловой системе.

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

вы скажите а как же самый лучшая в мире Mac OS X? ну делов том что она скоре имитирует сервер Х. в принципе также сдедано и в wayland.

сами «иксы» очень старые - начало разработки в 80. в те темные времена копьютеры были большими и понятия видеокарты отсутствовало ну или не было распространено. графический сервер запускался на специализированном компьютере и принимал подключения от других копьютеров по сети.

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



wayland это довольно легкий графический сервер ориентированый на работу с видеокартой по средствам подсистемы KMS которая является частью ядра ОС она изначально разрабатывалась для linux.

фактически реализуется небольшая часть X-сервера. wayland ничего не рисует он все сваливает на библиотеку типа QT или Vulkan или даже реализацию Direct3D.  задача wayland предоставить быстрый унифицированный доступ к нижележащему обородуванию.

сейчас wayland набрал определенную зрелость и вполне может использоваться, хотя у меня некоторые проги не работают: например я не могу сделать скриншот штатной утилиткой, но особо жить не мешает.

и у меня несколько иное мнение о *nix на десктопе ( от англ. desktop [désktɒp] - «поверхность стола» обычный компьютер для повседневного или офисного использования). хоть например фря отлично подходит для этой задачи, но она плохо рассчитана на неаккуратное обращение. пользователь может нажать ресэт в самый неподходящий момент или вырубить питание. и тогда приходится использовать сакральные знания. я расскажу как я настраиваю систему как DE. считаете что я это делаю неправильно - увижу интересное замечание напишу постскриптум.

первое у меня в системе два диска - физически разных т.е. именно два винта. а не раздела. на первом установлена система, а второй я монтирую в /home.

на первом винте вам надо использовать такую разметку чтобы ваш биос был способен с этого винта загрузится соответственно используете MBR или GPT. для второго лучше использовать GPT. у меня один раздел на который я валю все.

и так вы установили систему. она теперь по-дифолту тоже делает один раздел на все. т.е. / у вас первый винт целиком. он не должен быть большим. теоритически хватит гигов 40, но я не рекомендую делать впритык. у меня

> dmsg
.....
ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: 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>
....

> df -h Filesystem Size Used Avail Capacity Mounted on
/dev/ada0s1a 144G 25G 108G 19%
/ devfs 1.0K 0B 1.0K 0%
/dev /dev/ada1p1 902G 29G 801G 4% /home

винты выпускали при царе горохе. да лучше чтобы / был SSD и пошустрее. второй винт у меня НЖМД. старый с заниженной скоростью вращения шпинделя, но довольно надежный.

но как видно ничего не мешает использовать один винт и два раздела. под систему не менее 30 гигов. остальное займите другим разделом.

систему установили. создаем раздел на большом винте (оставшемся свободном месте) и монтируем его в /home.

у меня моунт выглядит вот так:

> mount
/dev/ada0s1a on / (ufs, local, read-only)
devfs on /dev (devfs)
/dev/ada1p1 on /home (ufs, local, soft-updates)

но не торопитесь монтировать корень в RO это можно сделать после всех настроек.

первое что я делаю это переношу /var и /tmp в /home при помощи ссылки.

> ls -l /var lrwxr-xr-x 1 root wheel 9 Nov 29 23:24 /var -> /home/var

кроме того если вы работаете с исходниками системы и портами, то поступить с ними надо так же.

еще в /home нужно положить своп. я для ОЗУ 8 гигов создаю своп еще 8 гигов. сделайте файл с помощью утилиты dd. теперь fstab выглядит так:

> cat /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/ada0s1a/ ufs rw 1 1
/dev/ada1p1   /home ufs rw 2 2
md0 none swap sw,file=/home/swap 0 0

конечно устройства у вас могут быть другие, но смысл такой.

теперь нужно настроить KMS. я рекомендую не очень новые видеокарты AMD. AMD открывает документацию и как правило имеет хорошую поддержку, чем и обеспечивает моё уважение.

настройка не сложная. вам нужно установить соотвествующий порт, добавить настройку в rc.conf. если KMS настроен вы видите что-то в этом духе:

> dmsg
.....
[drm] radeon kernel modesetting enabled.
drmn0: 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).
.....

если KMS настроен фря запускает терминал в высоком разрешении - маленькие аккуратненькие буковки. это в общем-то основное если видеокарта подцепилась KMS то проблем обычно не возникает.

заведите пользователя под которым собираетесь работать и задайте ему пароль и создайте домашную директорию, настройте права:

> pw user add BigBoss -L russian -d /home/BB -s /bin/csh -g wheel -G video
> passwd BigBoss
> mkdir /home/BB
> chown BigBoss
> chmod 700 /home/BB

  • russian - логин класс
  • /home/BB - домашняя директория
  • /bin/csh - шел
  • wheel - членам группы позволяют стать рутом
  • video - членам групы дают возможность работать с KMS

дальше установите необходимые пакеты. я ставлю kde5, plasma5-sddm-kcm, sddm, xorg (может КДЕ уже будет новее)

я обхожусь без sddm, но возможно вам захочется красивостей. добавьте sddm_enable="YES".

у меня основой файл конфигурации выглядит так:

> cat /etc/rc.conf
kld_list="radeonkms"hostname="uh1"

ifconfig_em0="DHCP"
ifconfig_em0_ipv6="inet6 accept_rtadv"

moused_enable="YES"
ntpd_sync_on_start="YES"

dumpdev="NO"

firewall_enable="YES"
firewall_script="/home/ipfw.sh"
dvtws_enable="YES"

dbus_enable="YES"

сакральный смысл программки dvtws НазватьНельзя. в тем более НельзяНазвать для чего могут понадобится такие правила фаирвола:

> cat /home/ipfw.sh
#!/bin/sh
fw="/sbin/ipfw"

${fw} -f flush
${fw} add divert 900 ip from me to any 443 tcpflags ack 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="--daemon --pidfile=$pidfile --port=900 --dpi-desync=split2 --dpi-desync-split-seqovl=652 --dpi-desync-split-pos=2"
run_rc_command "$1"

если все работает нормально скажите из под пользователя BigBoss startplasma-wayland.sh в графике тоже есть терминал из него доставьте пакетов по-вкусу. я дополнительно ставлю ставлю FireFox, LibreОffice, GIMP, FreeCAD.

все настроили подправьте fstab и перемонтируйте корень в RO. конечно вы можете использовать два раздела на одном винте. корень в RO делает систему более устойчивой.

вам всеравно рано или поздно придется чекать файловые системы. нужно сделать так что было проще. чтоб система могла загрузится. уж прочекаете /home. рекомендую пользователю BigBoss добавить пару удобных макросов и автостарт вайланда. в /home/BB создайте файл .cshrc

> cat .cshrc
set prompt = "%~ >"
alias la ls -aF
alias lf ls -FA
alias ll ls -lAFh
if ( $?WAYLAND_DISPLAY ) then
    echo "WAYLAND RUNNING DISPLAY $WAYLAND_DISPLAY"
else
    startplasma-wayland.sh
endif

freebsd

Previous post
Up