LINUX.ORG.RU

Избранные сообщения targitaj

для новичков. chroot

 

просьба не писать пожелания смерти и самозабанивания. тема chroot. не могу понять как работает.

есть usblive диск. есть ssd в пк.
гружусь с usblive.
зрю ssd. 
lsblk 
sda
  sda1

создаю директорию
mkdir vdir
mount /dev/sda1 vdir/
 
что дальше? 
надо чтобы файловые системы тоже совпадали на usblive и на ssd?
linuxpc
()

Посоветуйте дорожный велосипед (literally)

 , ,

Привет.

Я протерял свой старый велосипед и собираюсь покупать новый (long overdue). Предыдущие семь лет я ездил на этом и мне даже нравилось, но есть концепция перестать кататься по шоссе на тяжёлых кросс-кантрийных хардтейлах и наконец взять что-нибудь подходящее под задачу.

Задача — длинные (50+ км) расслабленные дорожные поездки на не очень высокой скорости (т. е. что-то типа 20-25-30 км/ч) + иметь возможность иногда ехать по слабо пересечённой местности (дороги без покрытия, лесные тропинки etc.), в пределе многодневные дорожные велопоходы. Т. е. я хочу дорожный (не горный, не кросс-кантрийный) велосипед, который при этом не является шоссейником, циклокроссом или ещё чем-то сугубо спортивным, на чём нужно ездить скрючившись буквой ξ.

Я слышал слово «гибрид» и ещё знаю слово «Specialized», но ничего более. Велосипедисты ЛОРа, расскажите, как это работает? Бюджет 200 килорублей.

А линукс тут, как водится, при том, что я с него пишу.

intelfx
()

Никогда такого не было и вот опять,пропал звук. Debian

 , , , ,

Решение - драма ниже

Короче в этом багрепорте https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=904098 который я по диагонали прочёл изначально, явно говорится про то что timidity захватывает устройство вывода, так что пульса не может к нему обращаться. если в /etc/pulse/daemon.conf установить log-level = debug то в syslog видно что бла-бла-бла card0 is busy: yes. грепаем выхлоп lsof и видим там timidity весело вместо подушки держит устройство и спит никому его не давая кроме самой альсы

Если вам не нужен timidity то драма решается просто.

su                 # какир моде on 
apt purge timidity # пургеним
killall timidity   # надёжно прибиваем хвосты
alsactl init       # снова ресканим звуковые устройства
exit               # какир моде off
pulseaudio --kill  # прибиваем пульсу
pulseaudio --start -vvv # явно запускаем с отладкой
gnome-session-quit # завершаем сессию, этому чуду оно надо

Логинимся и отворяем pavucontrol все магическим образом на месте и звук есть как полагается https://i.imgur.com/Pc9CYc8.png https://i.imgur.com/PEiLmUv.png




Не перезагружался месяца три, а тут свет вырубили, загружаюсь звука нет,вернее пульса и альса (без установленной пульсы, сносил для эксперимента) игнорируют аналоговый дуплекс выход. С ходу не пойму в чём дело.

Linux gnu 4.19.0-4-amd64 #1 SMP Debian 4.19.28-2 (2019-03-15) x86_64 GNU/Linux

         _,met$$$$$gg.           dron@gnu
      ,g$$$$$$$$$$$$$$$P.        OS: Debian testing buster
    ,g$$P""       """Y$$.".      Kernel: x86_64 Linux 4.19.0-4-amd64
   ,$$P'              `$$$.      Uptime: 25m
  ',$$P       ,ggs.     `$$b:    Packages: 4852
  `d$$'     ,$P"'   .    $$$     Shell: bash
   $$P      d$'     ,    $$P     Resolution: 1920x1080
   $$:      $$.   -    ,d$$'     DE: GNOME 
   $$\;      Y$b._   _,d$P'      WM: GNOME Shell
   Y$$.    `.`"Y$$$$P"'          WM Theme: 
   `$$b      "-.__               GTK Theme: Adwaita-dark [GTK2/3]
    `Y$$                         Icon Theme: malys-uniblue
     `Y$$.                       Font: Cantarell 11
       `$$b.                     CPU: AMD Phenom II X6 1055T @ 6x 2.8GHz [41.0°C]
         `Y$$b.                  GPU: AMD BARTS (DRM 2.50.0 / 4.19.0-4-amd64, LLVM 7.0.1)
            `"Y$b._              RAM: 2396MiB / 14026MiB
                `""""           

Аналоговое устройство есть, но alsamixer и pavucontrol его не видят везде просто фиктивный выход https://i.imgur.com/DBobLt8.png https://i.imgur.com/uY9SRBj.png есть hdmi но я физически от туда не могу звук получить, там должен быть аналоговый выход типа дуплекс в виде ALC892 но его там нет

dron@gnu:~$ sudo aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: SB [HDA ATI SB], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
dron@gnu:~$ 

dron@gnu:~$ lspci -k
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] RS880 Host Bridge
	Subsystem: ASUSTeK Computer Inc. M5A88-V EVO
00:02.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780 PCI to PCI bridge (ext gfx port 0)
	Kernel driver in use: pcieport
00:07.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 3)
	Kernel driver in use: pcieport
00:09.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 4)
	Kernel driver in use: pcieport
00:0a.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 5)
	Kernel driver in use: pcieport
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode] (rev 40)
	Subsystem: ASUSTeK Computer Inc. SB7x0/SB8x0/SB9x0 SATA Controller [IDE mode]
	Kernel driver in use: ahci
	Kernel modules: ahci
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
	Subsystem: ASUSTeK Computer Inc. M5A88-V EVO
	Kernel driver in use: ohci-pci
	Kernel modules: ohci_pci
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
	Subsystem: ASUSTeK Computer Inc. M5A88-V EVO
	Kernel driver in use: ehci-pci
	Kernel modules: ehci_pci
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
	Subsystem: ASUSTeK Computer Inc. M5A88-V EVO
	Kernel driver in use: ohci-pci
	Kernel modules: ohci_pci
00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
	Subsystem: ASUSTeK Computer Inc. M5A88-V EVO
	Kernel driver in use: ehci-pci
	Kernel modules: ehci_pci
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 42)
	Kernel modules: i2c_piix4, sp5100_tco
00:14.1 IDE interface: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 IDE Controller (rev 40)
	Subsystem: ASUSTeK Computer Inc. SB7x0/SB8x0/SB9x0 IDE Controller
	Kernel driver in use: pata_atiixp
	Kernel modules: pata_atiixp, ata_generic
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA) (rev 40)
	Subsystem: ASUSTeK Computer Inc. M5A88-V EVO
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 LPC host controller (rev 40)
	Subsystem: ASUSTeK Computer Inc. M5A88-V EVO
00:14.4 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 PCI to PCI Bridge (rev 40)
00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
	Subsystem: ASUSTeK Computer Inc. M5A88-V EVO
	Kernel driver in use: ohci-pci
	Kernel modules: ohci_pci
00:16.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
	Subsystem: ASUSTeK Computer Inc. M5A88-V EVO
	Kernel driver in use: ohci-pci
	Kernel modules: ohci_pci
00:16.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller
	Subsystem: ASUSTeK Computer Inc. M5A88-V EVO
	Kernel driver in use: ehci-pci
	Kernel modules: ehci_pci
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Address Map
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Miscellaneous Control
	Kernel driver in use: k10temp
	Kernel modules: k10temp
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Link Control
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Barts PRO [Radeon HD 6850]
	Subsystem: PC Partner Limited / Sapphire Technology Barts PRO [Radeon HD 6850]
	Kernel driver in use: radeon
	Kernel modules: radeon
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Barts HDMI Audio [Radeon HD 6790/6850/6870 / 7720 OEM]
	Subsystem: PC Partner Limited / Sapphire Technology Barts HDMI Audio [Radeon HD 6790/6850/6870 / 7720 OEM]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
02:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03)
	Subsystem: ASUSTeK Computer Inc. P8P67 Deluxe Motherboard
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
03:00.0 IDE interface: VIA Technologies, Inc. VT6415 PATA IDE Host Controller
	Subsystem: ASUSTeK Computer Inc. Motherboard
	Kernel driver in use: pata_via
	Kernel modules: pata_via, ata_generic
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
	Subsystem: ASUSTeK Computer Inc. P8P67 and other motherboards
	Kernel driver in use: r8168
	Kernel modules: r8168

sudo lsmod
[sudo] пароль для dron: 
Module                  Size  Used by
nft_chain_nat_ipv4     16384  4
ipt_MASQUERADE         16384  1
xt_state               16384  0
xt_conntrack           16384  1
ipt_REJECT             16384  1
nf_reject_ipv4         16384  1 ipt_REJECT
nft_counter            16384  10
xt_tcpudp              16384  2
nft_compat             20480  8
nf_tables             143360  50 nft_compat,nft_chain_nat_ipv4,nft_counter
nfnetlink              16384  2 nft_compat,nf_tables
nf_nat_h323            20480  0
nf_conntrack_h323      77824  1 nf_nat_h323
nf_nat_pptp            16384  0
nf_nat_proto_gre       16384  1 nf_nat_pptp
nf_conntrack_pptp      16384  1 nf_nat_pptp
nf_conntrack_proto_gre    16384  1 nf_conntrack_pptp
nf_nat_tftp            16384  0
nf_conntrack_tftp      16384  1 nf_nat_tftp
nf_nat_sip             20480  0
nf_conntrack_sip       32768  1 nf_nat_sip
nf_nat_irc             16384  0
nf_conntrack_irc       16384  1 nf_nat_irc
nf_nat_ftp             16384  0
nf_conntrack_ftp       20480  1 nf_nat_ftp
iptable_nat            16384  0
nf_nat_ipv4            16384  3 ipt_MASQUERADE,nft_chain_nat_ipv4,iptable_nat
nf_nat                 36864  8 nf_nat_irc,nf_nat_ftp,nf_nat_ipv4,nf_nat_tftp,nf_nat_pptp,nf_nat_h323,nf_nat_proto_gre,nf_nat_sip
nf_conntrack          163840  18 xt_conntrack,nf_nat_irc,nf_nat,nf_conntrack_tftp,nf_nat_ftp,xt_state,nf_conntrack_pptp,ipt_MASQUERADE,nf_nat_ipv4,nf_nat_tftp,nf_conntrack_sip,nf_conntrack_h323,nf_nat_pptp,nf_conntrack_irc,nf_conntrack_proto_gre,nf_conntrack_ftp,nf_nat_h323,nf_nat_sip
nf_defrag_ipv6         20480  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
ctr                    16384  4
ccm                    20480  6
fuse                  122880  3
appletalk              40960  0
psnap                  16384  1 appletalk
llc                    16384  1 psnap
ax25                   65536  0
snd_hrtimer            16384  1
snd_seq_midi           16384  0
snd_seq_midi_event     16384  1 snd_seq_midi
snd_rawmidi            40960  1 snd_seq_midi
snd_seq                81920  3 snd_seq_midi,snd_seq_midi_event
snd_seq_device         16384  3 snd_seq,snd_seq_midi,snd_rawmidi
cpufreq_powersave      16384  0
cpufreq_userspace      16384  0
cpufreq_conservative    16384  0
lttng_statedump        61440  0
lttng_clock            16384  0
lttng_lib_ring_buffer    69632  0
binfmt_misc            20480  1
arc4                   16384  2
snd_hda_codec_realtek   118784  1
snd_hda_codec_hdmi     57344  1
snd_hda_codec_generic    86016  1 snd_hda_codec_realtek
snd_hda_intel          45056  6
ath9k_htc              81920  0
snd_hda_codec         151552  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
ath9k_common           20480  1 ath9k_htc
ath9k_hw              487424  2 ath9k_htc,ath9k_common
snd_hda_core           94208  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
edac_mce_amd           28672  0
ath                    36864  3 ath9k_htc,ath9k_common,ath9k_hw
snd_hwdep              16384  1 snd_hda_codec
mac80211              823296  1 ath9k_htc
snd_pcm_oss            61440  0
kvm_amd               106496  0
snd_mixer_oss          28672  1 snd_pcm_oss
cfg80211              765952  4 ath9k_htc,ath9k_common,ath,mac80211
ccp                    98304  1 kvm_amd
snd_pcm               114688  6 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_pcm_oss,snd_hda_core
snd_timer              36864  4 snd_seq,snd_hrtimer,snd_pcm
rfkill                 28672  5 cfg80211
rng_core               16384  1 ccp
snd                    94208  24 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm_oss,snd_pcm,snd_rawmidi,snd_mixer_oss
soundcore              16384  1 snd
kvm                   729088  1 kvm_amd
irqbypass              16384  1 kvm
sp5100_tco             16384  0
k10temp                16384  0
sg                     36864  0
pcc_cpufreq            16384  0
acpi_cpufreq           24576  1
pcspkr                 16384  0
asus_atk0110           20480  0
serio_raw              16384  0
evdev                  28672  19
wmi_bmof               16384  0
hwmon_vid              16384  0
parport_pc             32768  1
ppdev                  20480  0
lp                     20480  0
parport                57344  3 parport_pc,lp,ppdev
sunrpc                425984  1
ip_tables              28672  1 iptable_nat
x_tables               45056  7 xt_conntrack,nft_compat,xt_state,xt_tcpudp,ipt_MASQUERADE,ipt_REJECT,ip_tables
autofs4                49152  2
ext4                  733184  2
crc16                  16384  1 ext4
mbcache                16384  1 ext4
jbd2                  122880  1 ext4
fscrypto               32768  1 ext4
ecb                    16384  0
crypto_simd            16384  0
cryptd                 28672  1 crypto_simd
glue_helper            16384  0
aes_x86_64             20480  5
btrfs                1384448  0
xor                    24576  1 btrfs
zstd_decompress        81920  1 btrfs
zstd_compress         172032  1 btrfs
xxhash                 16384  2 zstd_compress,zstd_decompress
raid6_pq              122880  1 btrfs
crc32c_generic         16384  3
libcrc32c              16384  3 nf_conntrack,nf_nat,btrfs
hid_generic            16384  0
usbhid                 57344  0
hid                   139264  2 usbhid,hid_generic
uas                    28672  0
usb_storage            73728  1 uas
sd_mod                 61440  5
ohci_pci               16384  0
radeon               1634304  13
ata_generic            16384  0
i2c_algo_bit           16384  1 radeon
ahci                   40960  1
ttm                   126976  1 radeon
libahci                40960  1 ahci
pata_atiixp            16384  0
xhci_pci               16384  0
pata_via               20480  2
xhci_hcd              266240  1 xhci_pci
drm_kms_helper        204800  1 radeon
i2c_piix4              24576  0
ohci_hcd               57344  1 ohci_pci
ehci_pci               16384  0
libata                278528  5 libahci,pata_via,ahci,ata_generic,pata_atiixp
ehci_hcd               94208  1 ehci_pci
r8168                 540672  0
drm                   483328  6 drm_kms_helper,radeon,ttm
usbcore               290816  10 ath9k_htc,xhci_hcd,ohci_hcd,ehci_pci,usbhid,usb_storage,ehci_hcd,xhci_pci,ohci_pci,uas
scsi_mod              249856  5 sd_mod,usb_storage,uas,libata,sg
usb_common             16384  1 usbcore
wmi                    28672  1 wmi_bmof
button                 16384  0
dron@gnu:~$ 

dron@gnu:~$ cat /proc/asound/card0/codec* | grep Codec
Codec: Realtek ALC892

dmesg https://paste.debian.net/1080975/

Deleted
()

Роутер Глушат. Что делать?

 ,

Вообщем такая проблема, уже 5 месяцев, у двери, где розетка, что-то глушит роутер. до него пинг пропадает.

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

пробовал отключать от него все устройства, кроме айфона, даже ethernet вынул - та же хрень.

взял 15 метров витой и отнёс роутер на балкон - всё замечательно.

как вычислить что или кто глушит вайфай связь в той точке квартиры? куда обращаться?

p.s. да, каналы менял. всё менял. делал невидимым. не помогает ничего.

провайдер сказал ниче не может сделать с этим.

veyati
()

настройка почтового релея

 ,

Приветствую. Помогите пожалуйста, на вас последняя надежда. Есть внешний IP адрес. 11.11.11.11 смотрит в локалку через роутер. В локалке нужно поднять два почтовых сервера для разных доменов. Я так понял, что это можно сделать только через релей. Есть 2 почтовока Debian/Postfix/Dovecot на (Post1)192.168.1.2 и (Post2)192.168.1.3. Порты на роутере проброшены на 192.168.1.2. Почта уходит и приходит. Какие настройки в постфиксе нужны на строне Post1 и Post2 чтобы отправлять и принимать почту на втором почтовике. Спасибо.

drsever
()

Мораль матрицы3

 ,

Хронология:
изобретают вижуал матрицу 1
лень исправлять косяки избретают Объектив матрицу 2, залатывая её девопсами на ходу
лень полностью редизайнить матрицу3 , поэтому в матрице3 три тусят и старые программы, куски нового года и ещё какие то бомжи
ИИ настолько ленива чёта делать с матрицей 3, что он выдумывает ещё пару парадигм и ОСМЯП.
Код настолько кривой, что сторожевые антивирусы начали «выносить со складов код ядра и продавать его по частям в Зеон». Старые программы стырили часть кода новых программ и устраивают содомию с железом, ходят куда попало, в область ядра, драйверов, сенсоров, совокупляются с Х сервером.

ИИ пытается ещё чота делать, но уже нифига не может, потому что не понимает...как это всё работает и зачем там эти кнопки
Зовёт человека, которые не понимает ещё больше и который успешно ломает 95%.
[хэппи енд]

мораль:
1. проводите аудит кода
2. документируйте код
3. используйте ЯП, который даёт невиданно щедрую возможность документировать то, что написал.
4. не работайте над проектами, в которых руководство заставляет устраивать содомию с железом, ходить под себя, в область безконсольщины, драйверов, сенсоров, совокупляться с Х сервером, ведь рано или поздно вам придётся звать Человека, который сломает всё, что вы «сотворили».
5. ???

darkenshvein
()

Чем нарисовать дом?

 , , , scetchup

Стоит задача: спроектировать одноэтажный дом для личных нужд.

Под офтопиком любители используют SketchUp, Renga или пиратцкий ArchiCad.

Есть ли что-то подобное под онтопик? Из того что попробовал:

  • SweetHome3D - годится только для набросков, точого позиционирования объектов я там не нашел. Как там дела что-то вроде крыши - решительно не понятно.
  • FreeCAD с верстаком Arch - 2 часа убил на их вики, пробовал уроки, но то ли слишком большой порог вхождения, то ли я тупенький.
Turbid
()

intel дрова плохо пахнут?

 , ,

Я тут много лет думал, что раз у меня интелевая карта, то и дрова используются интелевые, а вот в субботу прояснил, что фиг там. Ядерная часть это вроде как 915й драйвер, а вот в xorg никто интелевую поделку не использует.

https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-Debian-Abandon...

Что за ... Поясните кто в теме.

И да, слава Арчевской wiki, что бы я без них делал. Хотя у меня бубунта, но полезную инфу про карточку я брал у них (в том числе и ссылку на похороникс)

zloelamo
()

Релиз Wine 4.0

 ,

Группа Open Source

Команда Wine с гордостью сообщает, что стабильный релиз Wine 4.0 теперь доступен.

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

  • Поддержка Vulkan.
  • Поддержка Direct3D 12.
  • Поддержка игровых контроллеров.
  • Поддержка High-DPI на Android.

Что нового в Wine 4.0

( читать дальше... )

>>> Полный список изменений (winehq.org)

Kron4ek
()

Что будет с новыми дисками, если уже есть все от /dev/sda до /dev/sdz

 , ,

Не так уж и невероятно исчерпать все буквы, к примеру, особенно универсальные картридеры жручие - воткнул парочку и вот уже 8 букв зарезервировано.

praseodim
()

Написал небольшое howto по установке драйверов AMD Radeon RX580 в Debian 9

 , ,

Интересны комментарии, особенно владельцев карты, но и в любом случае, может где ошибся или что.

Рассматривается установка свободных драйверов OpenGL и проприетарных OpenCL на ветку stable ОС Debian 9.6 (Stretch) с ядром 4.9.0-8. Проприетарных OpenCL, поскольку карта ставится в машину с процессором старее Haswell/Ryzen, которые не поддерживаются ROCm.

Информация также должна годиться для RX570 и RX470, RX480. И скорее всего, для всех остальных RX 4xx, RX 5xx, кроме RX 590 (но может и с ней сразу заработает) - эта карточка стоит несколько особняком. В конце есть пара теоретических (самой карты нет и не пробовал) соображений, что может понадобиться, чтобы она заработала.

Сразу скажу, что информации на официальной вики проекта слишком мало https://wiki.debian.org/GraphicsCard#AMD.2FATI

В терминологии AMD у этой карты архитектура «polaris», она же «Arctic Islands» она же GCN 4th gen (4-е поколение Graphics Core Next). К ней относятся карты RX 460, RX 470, RX 480, RX 540, RX 550, RX 560, RX 570, RX 580

Микроархитектура карт (RX 470, RX 480) == (RX 570, RX580) практически до неразличимости на программно-драйверном уровне. Довольно много подробностей на эту тему можно прочесть здесь: https://wiki.gentoo.org/wiki/AMDGPU. Версия фирмвари от AMD - polaris10 для amd 480 и amd 580 (могут быть разные буквенные индексы у фирмвари).

Так как до этого на компьютере стояли карты от Nvidia надо избавиться от их драйверов. Рекомендации wiki Debian может оказаться недостаточно.

Но по порядку. Все делаем от root, разумеется.

Установка свободного драйвера OpenGL:

  1. Добавляем contrib и non-free в репозиторий (/etc/apt/sources.list), если еще этого не сделано.
  2. Добавляем dpkg --add-architecture i386
    В принципе необязательно, но весьма желательно для некоторых пакетов. В том числе для wine
  3. apt-get update
  4. apt-get install xserver-xorg-video-amdgpu libdrm-amdgpu1 libgl1-mesa-dri libgl1-mesa-glx glx-alternative-mesa
  5. apt-get install -t sid firmware-amd-graphics
    -t sid опционален. (но сам пакет ставить нужно) У меня RX580 и с фирмварью из stable работает, но возможно кому-то.нужны более новые бинарники к карте. Впрочем, вполне можно не подключать testing и sid ветки репозиториев, если отдельно скачать пакет от sid и содержимое /lib/firmware/amdgpu добавить вручную. Также фирмварь появится и при установке проприетарных драйверов, даже только OpenCL.
  6. Проверяем, что модуля nvidia нет в списке /etc/initramfs-tools/modules
    Если он там есть удаляем или коментим #
  7. Редактируем /etc/modprobe.d/nvidia.conf комментируем все записи. Добавляем строчку blacklist nvidia
  8. Выполняем update-glx --config glx
    Выбираем среди альтернатив (скорее всего от nvidia, если была карта nvidia) mesa
  9. Reboot

Должно заработать, если не заработало, то я даже не знаю. Надо будет внимательно читать лог /var/log/Xorg.1.log и смотреть, что там делает строчка nvidia =)

glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: X.Org (0x1002)
    Device: AMD POLARIS10 (DRM 3.20.0 / 4.9.0-8-amd64, LLVM 3.9.1) (0x67df)
    Version: 13.0.6
    Accelerated: yes
    Video memory: 8171MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.3
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD POLARIS10 (DRM 3.20.0 / 4.9.0-8-amd64, LLVM 3.9.1)
OpenGL core profile version string: 4.3 (Core Profile) Mesa 13.0.6
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.0 Mesa 13.0.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 13.0.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

Добавляем apt-get install mesa-vdpau-drivers libvdpau-va-gl1 для ускорения фильмов.

Вот не помню, нужно ли было для свободного драйвера ставить заголовки ядра или только для проприетарного, а также llvm. Но не исключено, что потребуется.

Добавление возможностей OpenCL

  1. Берем пакет 17.50 для Ubuntu. Официально драйвера рассчитаны на Ubuntu, SuSe или RHEL c CentOS, так как Ubuntu весьма родственна Debian, она наиболее совместимая. При этом 18-я версия для Stretch (Debian 9) не подойдет. 17.50 вроде последняя среди 17-ой версии. Версия 17.50 почему-то не находится явно по ссылкам для для предыдущих версий на сайте amd
    Поэтому скачиваем по прямой ссылке, не забудьте referer - без него не даст скачать.
    wget -c -O amdgpu-pro-17.50-511655.tar.xz --referer=http://support.amd.com https://www2.ati.com/drivers/linux/ubuntu/amdgpu-pro-17.50-511655.tar.xz

    Проверяем по контрольной сумме корректность скачивания (есть сообщения, что часто отдается битый файл, тогда надо повторять до успеха).
    md5sum 
         7c3da10af92f6e259bd5d2b250a70c91  amdgpu-pro-17.50-511655.tar.xz
    sha256sum
         a623f95b7bdbad981e19bd30304f7943f8827d230b702dc5b580793efe70ea07  amdgpu-pro-17.50-511655.tar.xz
    
  2. Создаем каталог
    #mkdir /var/opt/amdgpu-pro-local/
  3. Распаковываем туда содержимое скаченных драйверов tar -xpJf amdgpu-pro-17.50-511655.tar.xz --strip=1 -C /var/opt/amdgpu-pro-local/
    Обратите внимание на опцию --strip=1 - она убирает первый уровень вложенности каталогов, без нее внутри был бы создан вложенный каталог с пакетами, а этого нам не надо.
  4. Устанавливаем нужные права владельца:
    chown -Rv _apt:root /var/opt/amdgpu-pro-local/
    Важно. Без этого потом установка будет валиться с ошибкой типа
    N: Download is performed unsandboxed as root as file '/var/opt/amdgpu-pro-local/./amdgpu-core_17.50-511655_all.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
    - причем в том числе и если запустить установочный скрипт внутри пакета с драйверами, даже если там поменять ubuntu на debian. Вот все вроде будет нормально, но зафейлится в процессе установки на правах для установщика пакета.
  5. Создаем файл /etc/apt/sources.list.d/amdgpu-pro-local.list
    echo 'deb [ trusted=yes ] file:/var/opt/amdgpu-pro-local/ ./' > /etc/apt/sources.list.d/amdgpu-pro-local.list
  6. apt-get update
  7. apt-get install amdgpu-core amdgpu-dkms amdgpu-pro-core clinfo-amdgpu-pro ids-amdgpu libdrm-amdgpu-amdgpu1 libdrm2-amdgpu libopencl1-amdgpu-pro
    Внимательно следим за процессом установки, компиляция чере dkms драйвера и его установка должны быть безошибочными. Это ключевой момент, без чего работать ничего не будет. Разумеется должны быть установлены заголовки ядра linux-headers-4.9.0-8-common и компиляторы со всем необходимым. dkms вроде сам добавится через зависимости, если еще не стоит.
  8. Опционально. Можно переустановить пакет или скопировать из других драйверов содержимое с более свежим firmware для amd, так как amdgpu-dkms содержит каталог firmware которым перепишет старые бинарники.
  9. reboot

Теперь OpenCL версии 1.2 доступно. Можно для проверки запустить clinfo или поставить какой-нибудь пакет, его использующий, например, hashcat и запустить бенчмарк hashcat -b

Некоторые мысли по поводу RX 590. Я не знаю, может этого и не нужно или наоборот этого не хватит для работы, просто предполагаю.

В принципе, RX 590 почти тоже самое, что и RX580, но могут быть нужны новые фирмвари, которые можно взять из новейших драйверов 18.50, распотрошив файл amdgpu-dkms_18.50-708488_all.deb и достав их из каталога usr/src/amdgpu-18.50-708488/firmware/amdgpu скопировав затем в /lib/firmware/amdgpu

Также в пакете ids-amdgpu от 17.50 есть файл amdgpu.ids установленный в /opt/amdgpu/share/libdrm/amdgpu.ids - его полезно будет заменить таким же из пакета libdrm-amdgpu-common_1.0.0-708488_all.deb

Чего я не понял, это почему для OpenCL пишется что-то вроде Memory : 4048/7916 MB allocatable

Куда 4Гб памяти дели? Или так и должно быть, там какое-то разделение есть на основную и константную, может просто не понял чего насчет работы OpenCL.

praseodim
()

Случилась беда с KRoN73 :(

 ,

KRoN73 RIP

Всё написанное ниже уже неактуально :(

Друзья. Под новогодние праздники (с 29 на 30) случилась ужасная беда со старейшим участником форума - KRoN73. Инсульт. Да не просто инсульт, а такой, что сейчас Рома в реанимации в Боткинской больнице в коме после трепанации. Позачера (2.01) его состояние изменилось с «нестабильно тяжёлый» на «стабильно тяжёлый», далее без динамики состояние на 04.01 - уменьшился отёк, пытается самостоятельно дышать, но пока без сознания. Разумеется, никто никаких прогнозов не даёт (если говорить прямо, даже на жизнь)

Весь ужас ситуации в том, что:

1) У него двое несовершеннолетних детей (дочь в младших классах и сын дошкольник), супруга - кандидат биологических наук (что означает доход чуть более, чем ничего) и недавно взятая ипотека ипотеку закрыли совсем недавно, cоответственно, Рома - главный кормилец в семье.

2) Рома не успел оставить доступ к своим счетам и картам получили доступ, там есть небольшая сумма.

Я никогда не делал подобные обращения, поэтому не знаю, что писать и немного (на самом деле много) растерян.

Ромина супруга Саида неохотно опубликовала в tg-группе номер своей банковской карточки Сбербанка (оттранслировано на форум Ромы) -

4276 8380 5742 5110
Саида Шамильевна Каршиева
Пожалуйста, в назначении/сообщении платежа (если есть такое поле) указывайте «на лечение» или «добровольное пожертвование на лечение»

иначе потом могут попытаться взять подоходный налог или заблокировать карту!

Если вдруг кто что-нибудь переведёт ей - буду навечно благодарен. Также могу выступить посредником между paypal (koptev@gmail.com) и супругой Ромы (разумеется, со всеми пруфами, если понадобится). Ни разу не принимал много платежей, наверное, стоит указывать в комментарии к платежу «Роману на лечение». опытные товарищи подсказывают, что ничего не надо писать в комментарии к paypal Звонил в банк, там посоветовали всё же в paypal указывать назначение платежа (например, «На лечение Романа Каршиева»), чтобы, в случае возникновения вопросов, предоставить распечатки инвойсов из интерфейса paypal.

Пожалуйста, давайте не будем в этой теме дискутировать о политике, национальности и вероисповедании.

Deleted
()

Беспроводные наушники bluetooth

 , ,

Пошел я тут, и под давлением вау-импульса купил себе дорогущие Bluetooth-уши от зенхайзера. В мечтах мне виделась беспроводная гарнитура которая и для телефона подойдет, и чтобы на компе гамать общаясь при этом в мамбле. Реальность немного разбила эти мечты, я узнал про A2DP, aptX, avrcp, HSP, HFP и много других страшных слов. Путем черной магии и установки подпольных драйверов мне удалось включить aptX на своем рабочем ноуте на оффтопике. Чтож, уже что-то, хотя микрофоном и пришлось пожертвовать.

Но скоро я планирую покупать себе комп мечты, и эти уши предполагались как первая деталь этого будущего компа. А теперь я уже и не уверен, а как дела с aptX обстоят в линуксах? Может стоит купить звуковой передатчик типа зенхайзеровского же BT T100? Какой есть наиболее простой способ сделать так, чтобы уши хорошо завелись под линуксом. Ставить планирую федору.

morse
()

Большая зимняя распродажа на GOG!

 , , , ,

Группа Игры

И снова самый лучший праздник становится все ближе! А вместе с ним и самое приятное - тысячи DRM-Free игр на GOG с огромными скидками, бесплатные подарки и новые предложения в GOG Connect. Твой кошелек точно не выдержит этого! Новогоднее волшебство начинается сегодня.

И что же на этот раз приготовил нам GOG Moroz?

  • Бесплатный подарок - Full Throttle Remastered в течении 48 часов!
  • Бесплатные игры за покупки! Купи любой тайтл и получи бесплатно легендарную TBS Fantasy General. Когда сумма покупок превысит 499 рублей - получи в подарок потрясающий космосим EVERSPACE.
  • Новые игры в GOG Connect - перенеси всю серию Shadowrun из Steam в GOG совершенно бесплатно! Новые предложения добавляются постоянно. Освободи купленные в Steam игры от DRM!
  • Более 2000 предложений в течении 3х недель.
  • Новые ежедневные предложения с особыми скидками! Каждый день в 17:00.

Распродажа продлится до 4 января, 2:00 по московскому времени.

>>> Распродажа на GOG (gog.com)

anonymous
()

Fallout of Nevada

 

Есть такой мод на движке фолыча 2
По размеру и содержимому не уступает оригинальным частям.

Fallout: Nevada - любительский неофициальный приквел к игре Fallout. Это не сборка чужих идей или модов, не дополнение к оригинальной истории и не переименованный клон оригинала. Это полноценная конверсия, которая заимствует типовой контент и движок оригинала, остальной же ресурс (скрипты, сюжет, диалоги, персонажи, локации и пр.) создан с нуля специально для проекта.
Основные нововведения: Совершенно новый сюжет
Более 100 квестов
Новая карта мира: 12 крупных пунктов и 12 специальных встреч
2,7 Мб игрового текста (в Fallout 2 было 3,5 Мб)
Новая музыка от Nobody's Nail Machine
Особенности: Сюжет раскрывает предысторию Города Убежища, известного по игре Fallout 2.
Центральное значение отведено не боям, а квестам, историям и вселенной Fallout.
Высокая аутентичность локаций.

Брать здесь http://fallout-nevada.ucoz.ru/index/fontec/0-5
Приятной погружения.

bga_
()

OpenVPN намного медленее IPSec, почему?

 , , ,

Сабж. На одном и том же ВПСе подняты OpenVPN и IPSec (Strongswan) серверы, при этом через них очень разная скорость соединения:
20-25 Мбит/с у OpenVPN против 80-90 Мбит/с у Strongswan.
Измерял iperf'ом от клиента до сервера (хотя speedtest.net показывает примерно то же самое).
Пробовал выставлять одинаковое шифрование (AES-128 у обоих), но на результат это заметно не влияет.
Почему так может быть и как «ускорить» OpenVPN?

gasinvein
()

Веб как он есть

 , , , ,

— Эй, я получил новый веб-проект, но, если честно, я не занимался веб-кодингом в течение нескольких лет, и я слышал, все немного поменялось. Ты же самый современный веб-разработчик, правда?

— Это теперь называется Front-End инженер, но да, я — именно он. Я работаю с вебом в 2016. Визуализации, музыкальные плееры, летающие дроны, которые играют в футбол, все что угодно. Я только что вернулся из JsConf и ReactConf, так что я знаю новейшие технологии для создания веб-приложений.

— Круто. Мне нужно создать страницу, которая отображает последние действия со стороны пользователей, так что мне просто нужно получить данные от REST и отобразить их в какой-то фильтруемой таблице, ну и обновлять её, если что-то изменится на сервере. Я думал, может быть, использовать JQuery для извлечения и отображения данных?

— О, Мой Бог! Нет! Никто больше не использует JQuery. Ты должен попробовать React: это — 2016!

— Интересно. Что такое React?

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

— Звучит заманчиво. Могу ли я использовать React для отображения данных с сервера?

— Ага, но сначала нужно добавить React и React DOM в виде библиотек.

— Подожди, почему две библиотеки?

— Ну, одна — это сама библиотека, а вторая — для манипулирования DOM, который ты теперь можешь описать в JSX.

— JSX? Что такое JSX?

— JSX — это просто расширение синтаксиса JavaScript, который выглядит очень похоже на XML. Это своего рода еще один способ описать DOM. Думай о нем, как об улучшенном HTML.

— Что случилось с HTML?

— Это 2016. Никто больше не пишет на сыром HTML.

— Ну хорошо. Если я добавляю эти две библиотеки, то я могу использовать React?

— Не совсем. Нужно добавить Babel, а затем можно использовать React.

— Другая библиотека? Что за Babel?

— О, Babel — это транспайлер, он позволяет ориентироваться на конкретные версии JavaScript, в то время как пишешь код в любой версии JavaScript. Тебе не обязательно добавлять Babel для того, чтобы писать на ReactJS, но если ты это не сделаешь, то ты застрял с ES5, ну а это 2016, ты должен кодить в ES2016+ как и все крутые чуваки.

— ES5? ES2016+? Я потерялся. Что за ES5 и ES2016+?

— ES5 означает ECMAScript 5. Это версия, на которую ориентируется большинство, поскольку она реализована в большинстве браузеров на сегодняшний день.

— ECMAScript?

— Да, знаешь стандарт JavaScript, который был основан в 1999 году после его первоначального выпуска в 1995 году? Тогда, когда JavaScript был назван LiveScript и только работал в Netscape Navigator. Это было очень запутано тогда, но, к счастью, теперь все ясно, и у нас есть 7 версий этой реализации.

— 7 версий. Серьезно. А ES5 и ES2016+ это?…

— Пятое и седьмое издание соответственно.

— Подожди, а что случилось с шестым?

— ES6? Да, каждое издание является надстройкой предыдущего, так что если ты используешь ES2016+, то ты используешь все функции предыдущих версий.

— Хорошо. А зачем использовать ES2016+ над ES6 тогда?

— Ну, ты можешь использовать ES6, но для интересных штук, типа async и await, тебе нужно использовать ES2016+. В противном случае ты застрял с ES6 генераторами и сопрограммами для блокировки асинхронных вызовов и нормального управления потоком.

— Я понятия не имею, что ты только что сказал, и все эти имена запутаны. Слушай, я просто хочу загрузить кучу данных с сервера, просто подключить JQuery из CDN и просто получить данные с помощью AJAX. Почему я не могу сделать это?

— Чувак, это 2016. Никто не использует JQuery больше, это заканчивается кучей запутанного кода. Все же это знают.

— Ясно. Так что моя альтернатива — это загрузить три библиотеки для извлечения данных и отображения таблицы HTML.

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

— Понятно. А что за менеджер модулей?

— Определение зависит от окружающей среды, но для веба мы обычно подразумеваем все, что поддерживает модули AMD или CommonJS.

— Хорошооооо. А AMD и CommonJS это?…

— Определения. Есть куча способов, чтобы описать, как несколько библиотек и классов JavaScript должны взаимодействовать. Ты можешь написать несколько файлов JavaScript, определяющих API AMD или CommonJS, и использовать что-то вроде Browserify, чтобы связывать их.

— Хорошо, имеет смысл… наверное. А что такое Browserify?

— Это инструмент, который позволяет связать CommonJS описанния зависимостей для файлов, которые могут быть запущены в браузере. Он был создан, потому что большинство людей публикуют эти зависимости в NPM.

— NPM?

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

— Как CDN?

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

— О, как Bower!

— Да, но это 2016, сейчас никто больше не использует Bower.

— Хм, ясно… так мне нужно загрузить библиотеки из NPM?

— Да. Например, если ты хочешь использовать React, то загружаешь модуль React и импортируешь его в коде. Это можно сделать для почти каждой популярной библиотеки JavaScript.

— О, это как в Angular!

— Angular это слишком 2015. Но да. Angular тоже там есть, наряду с VueJS, RxJS и другими интересными библиотеками из 2016. Хочешь узнать о них?

— Давай придерживаться React, я уже узнал слишком много о нем. Так что, если мне нужно использовать React, я вытяну его из этого NPM, а затем использую Browserify?

— Да.

— Это кажется слишком сложным, чтобы просто взять кучу зависимостей и связать их вместе.

— Ага, именно поэтому ты используешь менеджер задач, типа как Grunt или Gulp, или Broccoli для автоматизации запуска Browserify. Ты даже можешь использовать Mimosa.

— Grunt? Gulp? Broccoli? Mimosa? Черт возьми, о чём мы говорим сейчас?

— Task менеджеры. Но они уже не такие крутые. Мы использовали их в стиле 2015 с Makefiles, но теперь мы перешли на Webpack.

— Makefiles? Я думал, что в основном это используется для C или C++ проектов.

— Ага, но, видимо, в вебе мы любим делать вещи сложными, а затем вернуться к основам. Мы делаем это типа каждый год. Ты подожди, через год или два мы еще запилим сборки (assemblies) в вебе.

— Пффф. Ты упомянул что-то под названием Webpack?

— Это другой менеджер модулей для браузера, в то же время он и своего рода Task менеджер. Это как улучшенная версия Browserify.

— ОК. А почему он лучше?

— Ну, может быть не лучше, но более гибкий в плане того, как зависимости связаны. Webpack позволяет использовать различные менеджеры модулей, а не только CommonJS. Например, родные модули ES6.

— Я очень запутался в этих CommonJS/ES6.

— Да все в этом запутались, но можешь больше не париться, потому что есть SystemJS.

— О, Боже, опять что-то-JS. Хорошо, а что это за SystemJS?

— Ну, в отличие от Browserify и WebPack 1.x, SystemJS представляет собой динамический модуль загрузчика, который позволяет связать несколько модулей в нескольких файлах, а не связывая их в один большой файл.

— Подожди, я думал, что мы хотели объединить наши библиотеки в один большой файл и загрузить его!

— Да, но из-за HTTP/2 несколько HTTP запросов на самом деле лучше.

— Стоять! Так чего же мы не можем просто добавить три оригинальные библиотеки для React?

— Ты, конечно, можешь добавить их в качестве внешних скриптов с CDN, но все равно нужно будет добавить Babel.

— Эх. И это плохо, не так ли?

— Да, придется включить полностью Babel-core, а это не будет эффективным для production. На production необходимо выполнить ряд предварительных задач, чтобы проект был полностью готов, а это ритуал, в сравнении с которым вызвать дьявола — это рецепт как сварить яйцо. Надо будет минимизировать файлы, сделать uglify, поиграться со стилями, подумать о загрузке скриптов…

— Понял, понял. Но если не скачивать библиотеки непосредственно с CDN, то как иначе?

— Я бы сделал транспайл из TypeScript с помощью комбо Webpack + SystemJS + Babel.

— TypeScript? Я думал, что мы пишем код на JavaScript!

— Typescript — это и есть JavaScript, или, лучше сказать, надмножество JavaScript. Более конкретно — JavaScript на версии ES6. Ну, та шестая версия, о которой мы говорили.

— Я думал, что ES2016+ — уже надмножество ES6! Почему нам сейчас нужен еще и TypeScript?

— Потому что это позволяет нам использовать JavaScript как типизированный язык и уменьшить количество ошибок во время выполнения. Это 2016, надо добавить некоторые типы в код на JavaScript.

— И TypeScript, очевидно, делает это.

— И Flow, хотя он проверяет только типы, в то время как TypeScript является надстройкой JavaScript, который нужно скомпилировать.

— Эээ… и Flow?

— Это — инструмент для проверки статической типизации, сделанный парнями из Facebook. Они написали его на OCaml, так как функциональное программирование является удивительно крутым.

— OCaml? Функциональное программирование?

— Ну это то, что сегодня юзают крутые пацаны, ну типа, знаешь, 2016. Функциональное программирование. Функции высокого порядка. Currying. Pure функции.

— Я понятия не имею, что это.

— Никто не понимает, в начале. Надо просто знать, что функциональное программирование лучше, чем объектно-ориентированное программирование, и это то, что мы должны использовать в 2016 году.

— Подожди, я учил ООП в универе, я думал, что это круто?

— Ну так было пока Oracle не купил Java. Я имею в виду, что ООП был хорош раньше, и его используют до сих пор, но теперь каждый понимает, что манипулировать состояниями эквивалентно пинанию младенцев, так что теперь все движется к immutable объектам и функциональному программированию. Ребята из Haskell уже 100 лет кричат об этом, и это я еще не упоминал Elm. Но, к счастью, в сети теперь у нас есть такие библиотеки, как Ramda, которые позволяют нам использовать функциональное программирование на простом JavaScript.

— Ты что, просто придумываешь имена? Что еще за Ramnda?

— Нет. Ramda. Как и Lambda. Ну, знаешь, библиотека Дэвида Чембера?

— Дэвида кого?

— Дэвида Чембера. Крутой чел. Один из авторов Ramda. Глянь еще работы Эрика Мейера, если серьезно относишься к изучению функционального программирования.

— А Эрик Мейер это?…

— Тоже функциональщик. Крутой чел. У него есть куча презентаций, где он в странной цветной футболке громит Agile. Еще глянь что делают Tj, Jash Kenas, Sindre Sorhus, Paul Irish, Addy Osmani…

— ОК. Притормози. Все это хорошо и прекрасно, но я думаю, что все это слишком сложно и ненужно для простой выборки данных и их отображения. Я уверен, что я не должен знать этих людей или все эти вещи, чтобы создать таблицу с динамическими данными. Давай вернемся к React. Как я могу извлечь данные с сервера в React?

— Ну, на самом деле для выборки данных не надо React, он отображает данные.

— О, черт. Так а что используется для выборки данных?

— Используй Fetch для получения данных с сервера.

— Использовать Fetch для выборки данных? Тот, кто называет эти вещи, нуждается в тезаурусе.

— О, да. Fetch это имя нативной реализации для выполнения XMLHttpRequests.

— О, AJAX.

— AJAX это просто запросы XMLHttpRequest. А Fetch позволяет делать AJAX на основе промисов, которые затем можно резолвить, чтобы избежать callback hell.

— Callback hell?

— Да. Каждый раз, когда выполняется асинхронный запрос, ты должен ждать его ответа, который заставляет добавить функцию внутри функции, которая называется пирамида callback hell.

— О, хорошо. А промисы решают эту проблему?

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

— И это можно сделать с помощью Fetch?

— Да, но только в некоторых браузерах, в противном случае необходимо включить Fetch polyfill или использовать Request, Bluebird или Axios.

— Сколько библиотек мне нужно знать, ради бога? Сколько из них?

— Это JavaScript. Тут тысячи библиотек, которые делают одно и то же. Мы знаем эти библиотеки. Наши библиотеки огрооооомные, а иногда мы добавляем картинки с Guy Fieri в них.

— Guy Fieri? Давай покончим с этим. Что эти Bluebird, Request и Axios делают?

— Это библиотеки для выполнения XMLHttpRequests, которые возвращают промисы.

— А методы AJAX JQuery не возвращают промисы?

— Мы больше не используем «J» в 2016. Просто используйте Fetch polyfill или Bluebird, Request или Axios. Затем управляй промисами с async, await и Бац!, у тебя правильный поток управления.

— Это третий раз, когда ты говоришь о await, но я понятия не имею, что это такое.

— Await позволяет блокировать асинхронный вызов, что позволяет лучше все контролировать во время получения данных и увеличивает читаемость кода. Это потрясающе, просто нужно, чтобы убедиться, что ты добавил stage-3 в Babel, или использовать синтаксис асинхронных функций и плагин transform-async-to-generator.

— Это безумие.

— Нет, безумие — что нужно перекомпилировать код TypeScript, а затем транспайлить его с Babel, чтобы использовать await.

— Шта!? Это не входит в TypeScript?

— Входит в следующей версии, но в версии 1.7 он только ES6, так что если хочешь использовать await в браузере, сначала нужно скомпилировать код TypeScript в ES6, а затем транспайлить с Babel в ES5.

— Я не знаю, что сказать.

— Слушай, это легко. Пиши весь код в TypeScript. Все модули, использующие Fetch компилируй в ES6, транспайль их с Babel с stage-3, и загружай с SystemJS. Если у тебя нет Fetch, используй polyfill, или Bluebird, Request или Axios, и обрабатывай промисы с await.

— У нас очень разные определения «легко». Так, с этим ритуалом я, наконец, получил данные и теперь я могу показать их с помощью React правильно?

— А приложение будет обрабатывать любые изменения состояния?

— Грр, я не думаю. Мне просто нужно отобразить данные.

— О, слава богу. В противном случае мне пришлось бы объяснить Flux и реализации, такие как Flummox, Alt, Fluxible. Хотя, если быть честным ты должен использовать Redux.

— Как же достали эти имена. Опять же, мне просто нужно отобразить данные.

— А, если просто отобразить данные, не надо начинать с React. Можно взять движок шаблонов.

— Ты шутишь, что ли? Думаешь, это смешно?

— Да я просто объяснил, что ты мог бы использовать.

— Стоп. Просто остановись.

— Я имею в виду, даже если просто использовать шаблонизатор, я бы все равно использовал комбо TypeScript + SystemJS + Babel на твоем месте.

— Мне нужно отобразить данные на странице, а не выполнить оригинальный фаталити Sub Zero из Мортал Комбат. Просто скажи мне, какой движок шаблонов использовать.

— Их много, с каким ты знаком?

— Уф, не могу вспомнить название. Это было давно.

— jTemplates? jQote? PURE?

— Не то. Еще один?

— Transparency? JSRender? MarkupJS? KnockoutJS?

— Другой

— PlatesJS? JQuery-tmpl? Handlebars? Некоторые люди до сих пор используют его.

— Может быть. А есть что-то похожее на последний?

— Mustache, underscore? Я думаю, что теперь даже у lodash есть шаблонизатор, но это своего рода 2014.

— Грр… возможно он был поновее.

— Jade? DustJS?

— Нет.

— DotJS? EJS?

— Нет.

— Nunjucks? ЕСТ?

— Нет.

— Чувак, никто не любит синтаксис CoffeeScript в любом случае. Jade?

— Нет, ты уже сказал Jade.

— Ну я имел в виду Pug. Я имел в виду Jade. Я имею в виду, Jade теперь Pug.

— Пф. Нет. Не помню. Какой из них ты бы использовал?

— Наверное, нативный ES6 template strings.

— Дай угадаю. Это требует ES6.

— Да.

— Который, в зависимости от того, какой браузер я использую требует Babel.

— Да.

— Который, если я хочу включить без добавления всей библиотеки, нужно, загрузить в качестве модуля NPM.

— Да.

— Который, требует Browserify или Wepback, или, скорее всего, SystemJS.

— Да.

— Который, если это не Webpack, в идеале должен управляться Task runner-ом.

— Да.

— Но, так как я должен использовать функциональное программирование и типизированные языки, я в первую очередь должен предварительно скомпилировать TypeScript или добавить этот Flow.

— Да.

— А потом отправить это на обработку в Babel, если я хочу использовать await.

— Да.

— Так что я могу затем использовать Fetch, промисы и управление потоком и всю эту магию.

— Только не забудь polyfill Fetch, если он не поддерживается, Safari до сих пор не может справиться с этим.

— Знаешь что. Я думаю, мы закончим здесь. На самом деле, я думаю, я закончил. Я закончил с этим вебом и с JavaScript в целом.

— Хорошо, через несколько лет мы все будем кодить в Elm или WebAssembly.

— Я просто хочу вернуться к бэкэнду. Я не могу справиться со всеми этими изменениями, версиями, изданиями, компиляторами и транспайлерами. Сообщество JavaScript безумно, если оно думает, что кто-то может идти в ногу с этим.

— Понятно. Тебе тогда надо попробовать сообщество Python.

— Почему?

— Слышал о Python 3?

StReLoK
()

UEFI vs BIOS

 , ,

Есть ли реальные преимущества первого, над вторым в 2к18? Ну кроме сомнительного ускорения в работе, секурности и нативной GPT? Просто семёрочка не хочет вставать через UEFI, хотя такая возможность у неё есть.

FluffyPillow
()

Ryzen 5 2400G готов для десктопа.

 ,

Предыстория: в марте с.г. я купил AMD Ryzen 5 2400G, материнку на базе X370, 8 гиг быстрой памяти и M.2 SSD, с тем, чтобы нормально поработать в Darktable. Старый комп на базе Intel core i3-2120 как-то не особо хотел ворочаться под всё более сложными алгоритмами.

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

Но не очень. Потому что система висла на некоторых программах. Конкретно Firefox и Darktable. Возможно, я просто чаще всего пользуюсь именно ими, но вот во время OpenArena, например, или Clementine система не повисла ни разу. Не разбирался. Плюс, не работал Wayland.

Но поскольку я с апреля практически перманентно в командировках и большую часть времени общаюсь с ноутом, меня эти проблемы как-то не очень волновали, хотя, конечно, хотелось бы иметь работающую систему дома, а не эту хрень.

Время шло, поросёнок рос, в интернете уже вовсю писали, что в ядре 4.17 устранили баг с зависанием в видеокартах RX Vega (commit 9cdd39e51ccaa3a1ed0a034a68d80defd4046cd8), но проблема была в том, что установка ядра 4.17 ничего не дала. Тем временем в июне прилетело обновление amd-microcode и внезапно стал работать Wayland.

Вышел проприетарный драйвер, я его поставил, эффекта — ноль. Вот тут я призадумался. Хотел уже было поставить десяточку, но виндовый порт Darktable всё ещё такого качества, что нет.

Короче. После долгого, редкого гуглежа оказалось, что все эти замечательные изменения относятся к новому драйверу, который активируется опцией ядра «amdgpu.dc=1». Как только я включил эту опцию на ядре 4.17, так сразу волосы мои стали чистыми и шелковистыми, а Darktable выдержала марафон в 16 часов обработки всех фото, накопившихся за последние полтора месяца. Ни единого разрыва!

Что, вообще говоря, странно, потому что в ченжлоге на ядро написано, что начиная с 4.17, dc используется по умолчанию. Но такова селяви.

tl;dr

1. Ставим свой любимый дистрибутив.
2. Обновляем ядро до 4.17 (4.18 и новее тоже подойдёт)
3. Удостоверяемся, что Mesa не ниже 18, если нет — обновляем
4. Ставим свежий linux firmware. Wayland вам, может, и не нужен, но если он заработал, значит какие-то ценные функции были добавлены.
5. Добавляем amdgpu.dc=1 в строку загрузки ядра

UPD: Да, проблему с загрузкой через раз это не решает. Но если загрузилось, будет работать.

Aceler
()

Для тех, кто думает перейти на Gentoo

 

Привет

Достаточно часто создаются темы, где люди думают переходить на Gentoo и хотят уточнить некоторые моменты. Чтобы сэкономить время себе и другим, решил создать этот топик, в котором буду собирать ответы на частые вопросы.

TL; DR: Для тех, кто думает перейти на Gentoo (комментарий)

В каких случаях имеет смысл выбирать Gentoo:
1. Вы любите настраивать систему под себя. В Gentoo есть больше возможностей по кастомизации системы в сравнении с многими другими дистрибутивами: USE флаги, параметры компиляции, поддержка пользовательских патчей в пакетном менеджере, хуки пакетного менеджера (вставка своих шагов на этапе установки пакетов), игры с версиями приложений и/или зависимостей, игры с альтернативными имплементациями (openrc/systemd/..., rsyslog/syslog-ng/metalog, slang/ncruses, dhcpcd/dhclient/...).
2. Вы хотите обучиться основам Линукс. Установка Gentoo невозможна без практического понимания базовых принципов Линукс: интерфейс командной строки, chroot, работа с диском (MBR, GPT, возможно LVM, возможно шифрование, типы файловых систем, параметры монтирования и т. п.), настройка сети (WiFi/Ethernet, DHCP, ifconfig/ip, выбор между wicd/NetworkManager/sysinit и т. п.), ядро (конфигурация/компиляция/установка, firmware, внешние модули aka @modules-rebuild, возможно параметры при запуске и т. п.), графический сервер (Xorg/wayland, драйвера) и др. Большинство дистрибутивов скрывают это за инсталлятором, но в Gentoo вам придется столкнуться с этим непосредственно.
3. Требуется система максимально оптимизированная под определённую платформу или нефункциональные требования: минимальный размер (embedded), минимальный отклик (банковские системы, игровые сервера), максимальное быстродействие в конкретных областях (обработка видео потоков) и т. п. Стоит заметить, что Gentoo имеет смысл выбирать только в том случае, когда нет дистрибутива уже заточенного под эти требования, или он чем-то не устраивает.

В остальных случаях Gentoo скорее всего не лучший выбор, разве что Just for Fun.

Сильные стороны Gentoo:
#1 Gentoo очень гибкая и всенастраиваема
Пример того что в Gentoo делается просто:
- Использовать openrc вместо systemd или наоборот; pulseaudio или без него
- Наложить кастомный патч; пример когда это нужно
- Подключить или отключить такие вещи как vaapi, vdpau, opencv и т. п.
- Иметь несколько веток софта; уточню, что это работает только для определённых пакетов; например можно одновременно установить python 2.7, 3.4, 3.5 или qt4 и qt5, но нельзя одновременно установить qt 5.7 и 5.8

#2 Очень удобный и функциональный пакетный менеджер
Примеры удобных фич:
- Прервать установку (вплоть до перегрузки компьютера), а потом ее продолжить. Можно продолжить с последнего пакета (emerge --resume), продолжить но пропустить последний пакет, например, если его установка прервалась с ошибкой (emerge --resume --skipfirst, некоторые нюансы); для больших пакетов можно продолжить саму компиляцию (ebuild <полный путь и имя файла>.ebuild merge).
- Когда при установке обновляется конфиг приложения, определяется редактировался ли предыдущий конфиг пользователем. Если да, конфиг не перезаписывается, а кладётся радом, и выводится сообщение пользователю с предложением обновить конфиг.
- Обновить всю систему, но исключить некоторые пакеты (удобно для исключения больших пакетов из ежедневного обновления)
- Почистить зависимости - удалить те пакеты, которые больше никому не нужны.
- Поскольку ebuild - текстовый файл, то можно пропарсить на предмет требований к количеству ресурсов для установки:

$ for F in $(find /usr/portage -name "*.ebuild") ; do REQ=$(grep "CHECKREQS" "$F") ; if [[ -n "$REQ" ]]; then echo -e "\n$F\n$REQ" ; fi; done
- Вынести компиляцию на другой компьютер (поддержка distcc на уровне пакетного менеджера). Важно когда Gentoo устанавливается на слабый компьютер.


#3 Хорошая документация, по крайней мере на английском. Более того, поскольку Gentoo-специфичные утилиты являются лишь надстройкой на generic механизмами, документация от других дистрибутивов (например от Arch) в большинстве случаев тоже подходит.
Опрос 2014: У какого дистрибутива лучшая документация

#4 Достаточно свежий софт, много сторонних репозиториев.
Список сторонних репозиториев
Gentoo - rolling release, а значит как только новая версия конкретного софта появилась в репозитории, её можно установить. Но здесь не имеется ввиду, что как только новая версия зарелизилась, она моментально становится доступна в основном дереве; лаг есть, но он как правило не большой, хотя зависит от пакета. В тестинг ветке новые версии появляются раньше. Кроме того мейнтейнеры Gentoo могут маскировать некоторые версии, если в них обнаруживаются серьезные баги. Однако всегда можно размаскировать нужную версию. Кроме того для некоторых пакетов есть -live версии, когда исходники скачиваются напрямую из github или аналога.
Пример когда «у меня не самый свежий софт в Gentoo»

#5 Полный порядок в системе, ничего лишнего - эстетическое удовольствие, плюс возможно можно немного улучшить перформанс

#6 В процессе установки и эксплуатации получаешь полное понимание как работает система, а значит возникающие проблемы решаются быстро. На самом деле без должного знания Линукса (или желания его узнать в процессе) Gentoo нормально не установить.

Недостатки
#1 Сложная и долгая первичная установка. Если устанавливать в первый раз, нужно готовиться потратить несколько дней. Для опытных - несколько часов + компиляция.
Время установки (компиляции) Gentoo, еще немного цифр по большим пакетам

#2 Пакетный менеджер хоть и удобный, но очень медленный

#3 Если не обновлять систему долго (полгода и более), то сложность обновления сопоставима с установкой новой системы. Есть мнение, что emerge-webrsync --revert=yyyymmdd должен помочь (лично я не проверял).

Особенности
#1 Высокий порог входа; дистрибутив не для новичков. Если человек не комфортно чувствует себя в командной строке, никогда не компилировал ядро, не разбивал диски на разделы, не привык изучать докуменацию, вчитываться в сообщения и анализировать логи, то Gentoo покажется сложной в обслуживании, а возникающие проблемы будут списываться на дистрибутив.

#2 Обновляться нужно часто.

#3 Основные фичи - в командной строке. Для тех, кто не привык работать в командной строке, это будет минусом. А для тех, кто комфортно чувствует себя в командной строке, это будет плюсом, так как работа в командной строке более эффективна, а типовые сценарии можно обернуть в скрипты и еще больше сократить время на обслуживание системы.

#4 Есть две ветки: stable и testing. В stable меньше шансов встретить проблему, но в testing более свежий софт. Ветки можно комбинировать.

Мифы
Миф #1 Gentoo даст прирост производительности за счет того, что весь софт компилируется под конкретное железо.
Краткий ответ: Без дополнительных телодвижений - в пределах пары процентов, так что вряд ли вы это заметите.

Детальный ответ.
Не следует ожидать что просто скомпилировав систему из исходников вы получите сколько-нибудь заметное улучшение перформанса.
Для большинства приложений компиляции под конкретное железо даст прирост производительности в районе 1-2%.
Ложка дегтя: в некоторых случаях даже может быть замедление. Например Firefox, можно ускорить с помощью PGO. В Gentoo по умолчанию это отключено, так как PGO увеличивает время компиляции почти в два раза. В бинарных дистрибутивах соотв. софт может быть скомпилирован с PGO.
Так как добиться улучшения производительности? Узкий круг приложений может быть значительно ускорен при компиляции под конкретную платформу - на 30%-50% и больше. В основном это приложения которые активно занимаются вычислениями. Но для этого требуется соотв. настройки. Например, активация SIMD инструкций, даст прирост производительности в мультимедиа приложениях. Некоторые процессоры имеют аппаратную поддержку шифрования AES. В бинарных дистрибутивах подобные фичи будут отключены, так как не все процессоры это поддерживают, а бинарные дистрибутивы в первую очередь заботятся о совместимости.
Небольшое улучшения перформанса возможно если убрать из системы всё лишнее (мнение 1, мнение 2).
Еще интересный случай

Миф #2 Обновления занимают много времени
Краткий ответ: 5-10 минут на фоне, не мешая основной работе.

Детальный ответ.
Обновления не занимают много времени, но опять же, при правильном подходе.
Во-первых, как было сказано выше, обновляться нужно часто. Для testing ветки это каждый день, или по крайней мере не реже чем в раз 2-3 недели. Для стабильной ветки - раз в неделю достаточно (на стабильной ветке намного реже выпускаются обновления)
Во-вторых, есть пакеты которые правда очень долго компилятся: libreoffice, firefox, chromium... Их всего 10-15. Я их исключаю из ежедневного обновления, а обновляю раз в несколько месяцев.
Еще нужно сказать, что на этом вопросе часто заостряют неоправданно много внимания. Обычно обновления происходят на фоне, и не сильно влияют на работу; так какая разница как долго они выполняются?
В итоге, у меня обновления занимают примерно 5-10 мин ежедневно (у меня тестинг-ветка).
К тому же всё происходит на фоне, в любой момент можно поставить на паузу (Ctrl+Z, fg), продолжить после прерывания (умышленного или случайного).
Мой скрипт ежедневного обновления

Миф #3 Gentoo требует много времени на обслуживание
Краткий ответ: это зависит от вас.

Детальный ответ.
Обслуживание Gentoo занимает меньше времени по сравнению с другими дистрибутивами, но только при грамотном обращении, конечно. Достигается это за счет следующего:
- хороший пакетный менеджер: маскировки, глобальные и индивидуальные установки для пакетов (USE флаги, опции компиляции, каталоги), хуки, приоритеты (чтобы компиляция происходила на фоне и можно было работать), много опций для установки и анализа, подсказки после установки.
- всё происходит в CLI, а значит типовые операции можно обернуть в скрипты/алиасы.
- уже существуют много утилит для облегчения обслуживания: eselect, equery, eix, eclean, euse, genlop и др.
Грамотное обращение означает, что вы правильно и регулярно обновляете систему, исполняете предписания emerge, которые он выдает после установки, держите в порядке конфигурационные файлы, а если таки возникает проблема, которую решить вы не можете, то вы обращаетесь в форумы, а не просто жалуетесь на жизнь.
Что до проблем с обновлениями - см. следующий пункт «Миф #4 Установка, обновление постоянно падают; частые блокировки»

Миф #4 Установка, обновление постоянно падают; частые блокировки
Краткий ответ: Не чаще чем в других дистрибутивах

Детальный ответ.
Если говорить про «часто» и «постоянно», то проблемы с обновлением/установкой могут быть если:
- система давно не обновлялась
- система неправильно обслуживается (см. выше про Грамотное обращение)

В редких случаях пакет просто не компилируется. На самом деле это проблема не Gentoo, а тех, кто писал этот софт. И в подавляющим большинстве случаев это не является проблемой, и вот почему. Если это обновление, то можно продолжить процесс запустив emerge с параметрами --resume --skipfirst - он обойдет проблемный пакет, пересчитает зависимости чтобы система осталась консистентной, и продолжит обновление (а можно изначально передать параметр --keep-going, тогда это будет происходить автоматически, прерываний вообще не будет). Если пакет критичен, можно установить предыдущую версию, которая компилировалась (а проблемную замаскировать чтобы пакетный менеджер ее не видел).

Что может заблокировать обновление полностью:
- просьба пакетного менеджера поменять флаги пакета. При этом emerge предлагает сделать это автоматически, но лично я предпочитаю делать вручную. Для ручного способа, решается добавлением строчки в package.use
- просьба пакетного менеджера задать лицензию. Это валидно только для не-свободных лицензий, например EULA, Skype, Adobe Flash и т. п. Если мы говорим имено про обновление, то такое бывает только когда лицензия обновляется, что бывает очень редко (как много у вас пакетов под не-свободной лицензией, и как часто они меняют лицензию?). Решается добавлением одного слова в make.conf
- просьба пакетного менеджера размаскировать пакет. По моему опыту нужно не размаскировывать, а наоборот замаскировывать пакеты, которые тянут замаскированные зависимости. Это, да, требует минут 5-10 на разобраться. Но, если только у вас нет смешения веток и live пакетов, такой вариант случается раз в пятилетку.
- сложные блокировки. Большинство блокировок пакетный менеджер разрешает сам; по моим наблюдениям, качество данного механизма значительно улучшилось пару лет назад. Из своего опыты скажу, что (учитывая частые обновления) блокировок, которые бы совсем останавливали обновление я уже не видел года 1.5. Но если они есть, то это действительно сложный кейс.

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

Миф #5 В Gentoo нет бинарных пакетов
Краткий ответ: Есть там, где это действительно нужно.

Детальный ответ
29 декабря 2023 года было официально объявлено о релизе бинарного варианта Gentoo: Gentoo становится бинарным / https://www.gentoo.org/news/2023/12/29/Gentoo-binary.html Также есть Calculate Linux - полностью бинарный форк Gentoo.
С самого начала в «классическом» Gentoo в основном репозитории всегда были несколько бинарных пакетов: libreoffice-bin, firefox-bin, некоторые другие. Связано это с тем, что из исходников они очень долго компилируются, и иногда проще поставить бинарник.
Бинарный пакет можно сделать самому командой quickpkg --include-config y <установленный пакет> - удобно для бекапов.
Но стоит обратить внимание на то, что при использовании бинарных пакетов пропадают те главные особенности, ради которых имеет смысл выбирать Gentoo. Если вам нужен уже скомпилированный софт, возможно вам имеет смысл присмотреться к другим дистрибутивам.

FAQ

#1 Установка на слабый компьютер
Смотря что есть слабый компьютер.
Из собственного опыта: Intel Core2 Duo 6600 @ 2.40GHz, 2Gb RAM + 4Gb swap хватало для комфортной работы в Gentoo.
Зачастую ebuld'ы содержат информацию о том, сколько нужно памяти для компиляции пакета. TOP 5:
16G - chromium
8G - ledger, isabelle
7G - ceph
6G - firefox x64 (для x32 нужно 3G), pypy x64 (для x32 нужно 3G)
5G - electron
Если компьютер и вправду слабый, то лучше выбрать не Gentoo (точнее не-source-based дистрибутив). Альтернатива - можно вынести компиляцию на другой «не-слабый» компьютер с помощью distcc.


Опрос 2025: Какую операционную систему и/или дистрибутив GNU/Linux вы используете на ПК?
Опрос 2022: Какой дистрибутив GNU/Linux вы используете на домашнем ПК/ноутбуке/моноблоке?
Опрос 2022: Лучший дистрибутив линукса или ОС для сервера
Опрос 2021: Какую операционную систему и/или дистрибутив GNU/Linux вы используете на ПК?
Опрос 2021: Какой операционной системой вы пользуетесь на серверах?
Опрос 2018: Какой ОС вы пользуетесь на основном ПК?
Опрос 2017: Какую ОС вы используете на основном ПК?
Опрос 2014: Какой дистрибутив вы используете на десктопе?
Опрос 2013: Какой дистрибутив вы используете на десктопе?
Опрос 2013: Какой дистрибутив Linux считаете максимально близким к UNIX-way?
Опрос 2011: Какой из дистрибутивов, по вашему мнению, обладает наиболее полной и внятной документацией?
Опрос 2011: Какая ОС установлена на вашем рабочем компьютере?
Опрос 2006: Каким дистрибутивом GNU/Linux Вы пользуетесь?
W3Tech стастика дистрибутивов на серверах
Отличия дистрибутивов, время работы ноутбука
Чем удобны USE флаги
Сколько памяти нужно для РАБОТЫ Gentoo (сколько нужно для компиляции было указано выше)
Сколько места на диске нужно для Gentoo
Правильное полное обновление Gentoo, Мой скрипт ежедневного обновления, Еще вариант
Gentoo для девелоперов
Практика инсталляции Gentoo: в двух словах простым языком
Небольшой скрипт - сборка livecd

Kroz
()