LINUX.ORG.RU

Сообщения wandrien

 

Как поживает ReactOS в 2024 году

Форум — Talks

Сабж: https://www.youtube.com/watch?v=E-VDF85F-XY

TLDR:

  • Реальные приложения либо не запускаются, либо не работают, либо роняют систему.
  • Система в любой момент готова свалиться с ошибками даже в виртуалке.
  • На реальном железе у автора видео не запустился даже установщик.

Собственно, за 2 или 3 года с тех пор, как я писал о том, что ReactOS некому разрабатывать, ничего не изменилось.

Ядро и критичные системные компоненты нуждаются в существенных доработках и исправлении багов. Заниматься этим некому. Та малая часть коммитов, которая по коммит логу идёт в ntoskrnl и другие критичные вещи — это капля в море.

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

 ,

wandrien
()

Всё еще торт

Форум — Talks

@Irma и @thesis имеют наилучшее чувство юмора на ЛОРе.

Их можно читать вместо почивших квотезов.

 

wandrien
()

Моё видение важных фич, в настоящее время отсутствующих в экосистеме СПО

Форум — Development

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

Интероперабельность по файловым системам между разными ОС

Реализация полной поддержки ext4 для ядер FreeBSD, NetBSD и ReactOS/NT.

Реализация полной поддержки UFS/FFS для ядер Linux и ReactOS/NT.

Реорганизация исходного кода glibc и вынос оттуда логики сервисов в демоны

Известная особенность, что glibc не может быть собрана полностью статически, поскольку завязана на модульный механизм, связанный с загрузкой произвольного набора *.so, предоставленных другими компонентами ОС.

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

Это позволит собирать программы полностью статически, при этом гибко используя любые фичи ОС, предоставленные этим модульным механизмом. (А на него много чего завязано, от резолвинга DNS, до перечисления юзеров в системе.) А также улучшит интероперабельность между дистрибутивами.

Это позволит также использовать полный набор фич, предоставленных механизм Name Service Switch, для приложений, которые вообще не используют glibc.

Универсальный формат бинарника для запуска на разных ОС и универсальное ABI, отвязанное от конкретного ядра

То, что универсальный формат бинарника, запускающийся на самых разных ядрах, в принципе возможен – доказал проект cosmopolitan libc.

Однако этот проект имеет недостатки:

  • Для главной разработчицы всё это какая-то игрушка, разработка ведётся без конкретных целей и задач. Иными словами, я такой разработчице не доверяю. Нужен кто-то более серьёзный, если закладываться на проект как на важный инфраструктурный элемент.
  • Проект ставит целью сборку только полностью статических бинарников, таким образом ABI в них отсутствует. Хотелось бы видеть ОС-независимую реализацию модульной экосистемы, с возможностью грузить *.so точно так же, как это делается в обычных ОС.

В идеале хотелось бы видеть тулчейн, который способен собрать стек библиотек начиная от базовых и вплоть до графических тулкитов, и при этом получившийся набор библиотек способен работать поверх Linux, FreeBSD, NetBSD – как минимум.

Я полагаю, в 2024-м вполне осмысленно ставить такого рода задачу, а не складывать все яйца в одну корзину и не закладываться на одно единственное ядро.

Применение pacman и makepkg для дистрибутивов с фиксированным релиз-циклом

Из всего зоопарка пакетных менеджеров, по моему опыту самым беспроблемным в эксплуатации является pacman и лёгким для создания пакетов. Хотелось бы видеть на нём действительно разные ОС с разным подходом к релиз циклу, а не просто респины Арча.

Было бы интересно увидеть мета-дистрибутив, который объединяет все перечисленные наработки, предоставляя возможность использовать ядра Linux/FreeBSD/NetBSD и при этом имея прикладное ABI, отвязанное от ABI ядра.

 , , ,

wandrien
()

Нужен совет по придумыванию синтаксиса

Форум — Development

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

ПЕРВЫЙ:

// циклы с предусловием:

while condition do
    statements
end:while

until condition do
    statements
end:until

// циклы с постусловием:

do
    statements
repeat while condition;

do
    statements
repeat until condition;

// вечный цикл:

do
    statements
repeat forever;

// простой блок кода:

block
    statements
end:block

ВТОРОЙ:


// циклы с предусловием:

while condition loop
    statements
end:while

until condition loop
    statements
end:until

// циклы с постусловием:

loop
    statements
repeat while condition;

loop
    statements
repeat until condition;

// вечный цикл:

loop
    statements
repeat forever;

// простой блок кода:

do
    statements
end:do

 ,

wandrien
()

«Перспективные» и малоизвестные проекты ЯП

Форум — Development

А накидайте, какие есть малоизвестные проекты языков программирования, которые пилятся или пилились энтузиастами в последние годы? Интересуют компилируемые ЯП, ориентированные на компиляцию в нативный код. (Еще лучше, если у реализации есть собственный бэк, а не просто фронт для LLVM.)

Из того, что я мог вспомнить:

  • Nim
  • Zig
  • Seed7
  • VLang
  • Crystal
  • OOC

 , , ,

wandrien
()

Про тепловыделение, системы охлаждения, диагностические тулзы...

Форум — Linux-hardware

Топик не имеет конкретного вопроса или проблемы. Мысли вслух, которые, возможно, спровоцируют какую-нибудь интересную беседу в комментах.

Заметил несколько дней назад, что ноут стал перегреваться - доходит до порога 95 градусов и сбрасывает частоты. Надо почистить СО и поменять термопасту. Но так как мне было лень доехать до магазина за термопастой (и до сих пор лень), я пока временно сделал так:

cpupower frequency-set --min 800MHz --max 1900MHz

Так и сижу уже пять дней на сниженных частотах)

После этого я вдруг вспомнил, что у нас в семье есть ноут, который уже около 10 лет работает без обслуживания и признаков перегрева не имеет. Это Lenovo B590 с процессором Celeron 1005M. Техпроцесс 22 нм. Решил посмотреть, что у него с тепловыделением CPU.

В простое температура 45-50 градусов и мощность - около 4 Вт.

Под нагрузкой в тесте OCCT мощность увеличивается до 9 Вт, а температура сначала резко растёт до 57 градусов, а затем по мере прогрева корпуса плавно увеличивается до 67 за 10 минут. Напряжение ядра 0.78 В - постоянное. Максимальная частота 1.9 ГГц держится стабильно.

В общем, этот Celeron довольно экономичный. Не удивительно, что он работает и обслуживаться не просит.

В моём ноуте процессор Core i5-2450M. Техпроцесс 32 нм. На свободный раздел подкинул винду, чтобы тоже погонять OCCT. Результаты получились такие.

В простое температура 45-50 градусов и мощность - около 4 Вт.

В тесте OCCT процессор бустится до своих максимальных 3.1 ГГц. Краткое время удерживает удерживает эту частоту, потом падает до базового порога 2.5 ГГц. Еще через несколько секунд процессор разогревается до 95 градусов - порога срабатывания теплового троттлинга, и частота начинает проседать сначала до 2.2 ГГц, а затем до 1.8 ГГц, и плавает между этими двумя значениями. В среднем около 2.0 ГГц.

Мощность в начале теста составляет 29 Вт и затем постепенно снижается до 22 Вт в установившемся режиме теплового троттлинга.

В отличие от Celeron, напряжение ядер меняется вместе с частотой. В простое 0.77 В. При бусте - вплоть до 1.22 В. В установившемся режиме теплового троттлинга - около 1.0 В.

Также я обнаружил, что у этих поцессоров разный порог нижних частот. У Celeron 1005M - 1.2 ГГц. У Core i5-2450M - 0.8 ГГц. Таким образом у Celeron вилка частот составляет всего 1.2..1.9 ГГц, всего лишь 700 МГц разницы. Видимо, вся эта вилка покрывается минимальным значением напряжения питания без необходимости поднимать напряжение. Чем и обеспечивается его экономичность.

Короче, в текущем виде необслуженная система охлаждения может отвести максимум 22 Вт тепла, что недостаточно для выхода на максимальную производительность для Core i5-2450M. Ноут у меня Samsung NP300E5Z. Надо сказать, я помню, у этого ноута даже свежеобслуженная СО работает на пределе, с трудом справляясь с удержанием процессора от перегрева под полной нагрузкой.

Я пытался нагуглить аналог команды cpupower frequency-set для винды, но не смог найти подходящей программы. Нашел, что в программе ThrottleStop должна быть соответствующая настройка, но на моём CPU она отображается неактивной. Удивительно.

Также я вчера не смог нагуглить, как непосредственно от ядра Linux посмотреть напряжение питания ядер и потребляемую мощность CPU (либо их ток). Хотя утилита powertop откуда-то отображает мощность CPU. Но я не очень ей верю, значения выглядят заниженными.

Я размышлял об апгрейде CPU до Core i7-2860QM, но для этого нужно как-то качественно улучшить систему охлаждения, что я не представляю, как сделать в рамках ноута. Одна тепловая трубка, слабая турбинка. Да и VRM на материнской плате вряд ли способен выдать 45 Вт на нагрузку. Возможность управлять напряжением, чтобы сделать андервольт, в BIOS не завезли.

В общем, такие вот мысли. Расскажите мне чего-нибудь, чего я не знаю, и поделитесь своим опытом. =)

 , vrm, , ,

wandrien
()

Arch Linux на Acer Extensa 4220 (Core 2 Duo T6570)

Форум — Desktop

По просьбе @alex0x08 публикую видео работы современного Linux на старом железе:

https://youtu.be/HY88XhYoJr8

 , , , ,

wandrien
()

Проверьте баг в poedit

Форум — Development

У меня в poedit каждая строка перевода помечена иконкой предупреждения, независимо от того, есть ли реальные предупреждения в строке или нет.

У кого более-менее чистый Арч установлен, можете проверить у себя этот баг?

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

Если у вас не Арч, но версия wxwidgets именно 3.2.x, тоже дайте знать, есть ли баг.

 ,

wandrien
()

Китайцы делают ноутбуки со съемными процессорами

Форум — Linux-hardware

Узнал об этом из видео на канале Ремонтяша: https://www.youtube.com/watch?v=CVUtBWiPcCY

Может кому будет полезна данная информация при выборе ноутбука.

 , ,

wandrien
()

«Фонарик» с плавным гашением

Форум — Mobile

Пока читал обсуждение в теме KDE гасит экран постепенно , вспомнил, чего давно искал.

Хотелось бы такое приложение на Андроид, которое делает псевдо-фонарик в виде светящегося экрана со следующими возможностями:

  • Можно задать цвет заливки экрана.
  • Можно задать время свечения экрана.
  • По прошествии заданного времени экран ПЛАВНО гаснет.

Никто не встречал? Я пытался гуглить, но что пробовал, всё не то.

 , фонарик

wandrien
()

Пропатченный GVFS

Галерея — Скриншоты

Сегодня мне вдруг надоело мозолить глаза о неинформативные названия томов файловой системы, которые отображаются в боковой панели файловых менеджеров и в диалогах «Открыть/Сохранить». И я решил докопаться до кода, который эти имена выводит:

  • Прикладным интерфейсом, через который приложения получают эти имена, является библиотека GIO.
  • Непосредственно перечислением устройств, монтированием, размонтированием и т.п. занимается демон udisksd из пакета udisks2. Прикладной код с ним может общаться через dbus.
  • Промежуточным звеном, которое от учётной записи пользователя общается с udisks2 и предоставляет информацию для интерфейса gio, является gvfs. Точнее, один из нескольких специализированных демонов в составе этого пакета.

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

Результат вы видите на изображении - Было/Стало:

  • Больше не отображается бесполезных надписей «Том XXX ГБ» («XXX GB Volume» в английской локализации).
  • Для всех томов отображается название устройства в каталоге /dev, метка и размер.
  • У всех LVM-томов будут вменяемые имена, а не просто dm-1, dm-2…
  • Список томов сортируется по названию устройства. Так что все sda* будут раньше всех sdb* и так далее.

Так как патч действует на уровне демона платформы, он действует на любые приложения, использующие API gio. Как минимум, это:

  • большинство файловых менеджеров на GTK, таких как thunar, caja, pcmanfm и т.п.;
  • диалоги «Открыть/Сохранить» в приложениях на gtk.
  • диалоги «Открыть/Сохранить» в приложениях на qt, когда включена интеграция с платформой gtk.

Ссылки:

 , , , ,

wandrien
()

Блоатварь - неизбежное будущее линуксового народа. Таков путь.

Форум — Talks

Запустил отладку своей программы в gdb. Нажал Y на предложение скачать отладочную информацию для системных библиотек. В результате имел возможность наблюдать, СКОЛЬКО всего там этих самых библиотек:

(gdb) run
Starting program: /media/stuff/vadim/builds/stuurman/bin/stuurman 

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.archlinux.org>
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
Downloading separate debug info for /lib64/ld-linux-x86-64.so.2
Downloading separate debug info for system-supplied DSO at 0x7ffff7fc8000
Downloading separate debug info for /usr/lib/libX11.so.6
Download failed: Таймер истек.  Continuing without separate debug info for /usr/lib/libX11.so.6.
Downloading separate debug info for /usr/lib/libgtk-x11-2.0.so.0
Download failed: Таймер истек.  Continuing without separate debug info for /usr/lib/libgtk-x11-2.0.so.0.
Downloading separate debug info for /usr/lib/libgdk-x11-2.0.so.0
Downloading separate debug info for /usr/lib/libpangocairo-1.0.so.0
Downloading separate debug info for /usr/lib/libatk-1.0.so.0
Downloading separate debug info for /usr/lib/libcairo.so.2
Downloading separate debug info for /usr/lib/libgdk_pixbuf-2.0.so.0
Downloading separate debug info for /usr/lib/libpangoft2-1.0.so.0
Downloading separate debug info for /usr/lib/libfontconfig.so.1
Downloading separate debug info for /usr/lib/libfreetype.so.6
Downloading separate debug info for /usr/lib/libpango-1.0.so.0
Downloading separate debug info for /usr/lib/libharfbuzz.so.0
Download failed: Таймер истек.  Continuing without separate debug info for /usr/lib/libharfbuzz.so.0.
Downloading separate debug info for /usr/lib/libmenu-cache.so.3
Downloading separate debug info for /usr/lib/libexif.so.12
Downloading separate debug info for /usr/lib/libgthread-2.0.so.0
Downloading separate debug info for /usr/lib/libgio-2.0.so.0
Download failed: Таймер истек.  Continuing without separate debug info for /usr/lib/libgio-2.0.so.0.
Downloading separate debug info for /usr/lib/libgobject-2.0.so.0
Downloading separate debug info for /usr/lib/libglib-2.0.so.0
Downloading separate debug info for /usr/lib/libm.so.6
Downloading separate debug info for /usr/lib/libc.so.6
Download failed: Таймер истек.  Continuing without separate debug info for /usr/lib/libc.so.6.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Downloading separate debug info for /usr/lib/libxcb.so.1
Downloading separate debug info for /usr/lib/libgmodule-2.0.so.0
Downloading separate debug info for /usr/lib/libXfixes.so.3
Downloading separate debug info for /usr/lib/libXrender.so.1
Downloading separate debug info for /usr/lib/libXinerama.so.1
Downloading separate debug info for /usr/lib/libXi.so.6
Downloading separate debug info for /usr/lib/libXrandr.so.2
Downloading separate debug info for /usr/lib/libXcursor.so.1
Downloading separate debug info for /usr/lib/libXcomposite.so.1
Downloading separate debug info for /usr/lib/libXdamage.so.1
Downloading separate debug info for /usr/lib/libXext.so.6
Downloading separate debug info for /usr/lib/libz.so.1
Downloading separate debug info for /usr/lib/libpng16.so.16
Downloading separate debug info for /usr/lib/libxcb-render.so.0
Downloading separate debug info for /usr/lib/libxcb-shm.so.0
Downloading separate debug info for /usr/lib/libpixman-1.so.0
Downloading separate debug info for /usr/lib/libjpeg.so.8
Downloading separate debug info for /usr/lib/libtiff.so.6
Downloading separate debug info for /usr/lib/libexpat.so.1
Downloading separate debug info for /usr/lib/libbz2.so.1.0
Downloading separate debug info for /usr/lib/libbrotlidec.so.1
Downloading separate debug info for /usr/lib/libfribidi.so.0
Downloading separate debug info for /usr/lib/libthai.so.0
Downloading separate debug info for /usr/lib/libgraphite2.so.3
Downloading separate debug info for /usr/lib/libmount.so.1
Downloading separate debug info for /usr/lib/libffi.so.8
Downloading separate debug info for /usr/lib/libpcre2-8.so.0
Downloading separate debug info for /usr/lib/libXau.so.6
Downloading separate debug info for /usr/lib/libXdmcp.so.6
Downloading separate debug info for /usr/lib/libzstd.so.1
Downloading separate debug info for /usr/lib/liblzma.so.5
Downloading separate debug info for /usr/lib/libjbig.so.2.1
Downloading separate debug info for /usr/lib/libbrotlicommon.so.1
Downloading separate debug info for /usr/lib/libdatrie.so.1
Downloading separate debug info for /usr/lib/libblkid.so.1
Downloading separate debug info for /usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so
Downloading separate debug info for /usr/lib/libcanberra-gtk.so.0
Downloading separate debug info for /usr/lib/libcanberra.so.0
Downloading separate debug info for /usr/lib/libvorbisfile.so.3
Downloading separate debug info for /usr/lib/libtdb.so.1
Downloading separate debug info for /usr/lib/libltdl.so.7
Downloading separate debug info for /usr/lib/libvorbis.so.0
Downloading separate debug info for /usr/lib/libogg.so.0
Downloading separate debug info for /usr/lib/gtk-2.0/2.10.0/engines/libpixmap.so
Downloading separate debug info for /usr/lib/gtk-2.0/2.10.0/engines/libadwaita.so
Downloading separate debug info for /usr/lib/gio/modules/libgioremote-volume-monitor.so
Downloading separate debug info for /usr/lib/gvfs/libgvfscommon.so
Downloading separate debug info for /usr/lib/gio/modules/libgvfsdbus.so
Downloading separate debug info for /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
Downloading separate debug info for /usr/lib/librsvg-2.so.2
Downloading separate debug info for /usr/lib/libcairo-gobject.so.2
Downloading separate debug info for /usr/lib/libxml2.so.2
Downloading separate debug info for /usr/lib/libicuuc.so.73
Download failed: Таймер истек.  Continuing without separate debug info for /usr/lib/libicuuc.so.73.
Downloading separate debug info for /usr/lib/libicudata.so.73
Downloading separate debug info for /usr/lib/libcanberra-0.30/libcanberra-multi.so
Downloading separate debug info for /usr/lib/libcanberra-0.30/libcanberra-pulse.so
Downloading separate debug info for /usr/lib/libpulse.so.0
Downloading separate debug info for /usr/lib/pulseaudio/libpulsecommon-16.1.so
Downloading separate debug info for /usr/lib/libdbus-1.so.3
Downloading separate debug info for /usr/lib/libsndfile.so.1
Downloading separate debug info for /usr/lib/libsystemd.so.0
Downloading separate debug info for /usr/lib/libasyncns.so.0
Downloading separate debug info for /usr/lib/libvorbisenc.so.2
Downloading separate debug info for /usr/lib/libFLAC.so.12
Downloading separate debug info for /usr/lib/libopus.so.0
Downloading separate debug info for /usr/lib/libmpg123.so.0
Downloading separate debug info for /usr/lib/libmp3lame.so.0
Downloading separate debug info for /usr/lib/libcap.so.2
Downloading separate debug info for /usr/lib/libgcrypt.so.20
Downloading separate debug info for /usr/lib/liblz4.so.1
Downloading separate debug info for /usr/lib/libgpg-error.so.0
Downloading separate debug info for /usr/lib/libcanberra-0.30/libcanberra-alsa.so
Downloading separate debug info for /usr/lib/libasound.so.2

Минут 20 ждал, между прочим. Как видно, скачивание некоторых файлов даже оборвалось по тайм-ауту.

Невольно возникает вопрос: а точно ли весь этот хлам необходим для программы, которая по функциям не далеко ушла от какого-нибудь виндового Проводника из 90-х? Парсер XML и всякий ICU - это всё понятно, но… все подряд аудиокодеки, компрессоры и libsystemd?…

Впрочем, указанный список - это всё еще существенно меньше лишнего кода, чем если запускать софт на фреймворке KDE.

Иногда так и подмывает запустить какую-нибудь Haiku, а то и вовсе kolibriOS, и познать дзен.

 , ,

wandrien
()

Dependency hell

Форум — Talks

Давайте я расскажу, как пакетная база разваливается в стабильном дистрибутиве.

Вот нужно нам поставить драйвер для rtl8188eu. Смотрим в репах:

ester / # dnf search 8188
dkms-rtl8188eu.x86_64 : The standalone RTL8188EU driver
dkms-rtl8188eu.i686 : The standalone RTL8188EU driver
dkms-rtl8188gu.noarch : The standalone RTL8188gu driver
kernel-module-8188gu-5.15-generic.x86_64 : Binary module 8188gu for kernel-5.15-generic
kernel-module-8188gu-5.15-generic.i686 : Binary module 8188gu for kernel-5.15-generic
kernel-module-8188gu-6.1-generic.x86_64 : Binary module 8188gu for kernel-6.1-generic
kernel-module-8188gu-6.1-generic.i686 : Binary module 8188gu for kernel-6.1-generic
kernel-source-rtl8188gu.noarch : Source code of RTL8188gu kernel driver
ester / # dnf info dkms-rtl8188eu.x86_64
Имеющиеся пакеты
Имя          : dkms-rtl8188eu
Версия       : 4.1.8
Выпуск       : 0.775137f.1
Архитектура  : x86_64
Размер       : 436 k
Источник     : rtl8188eu-4.1.8-0.775137f.1.src.rpm
Репозиторий  : mirror-rosa-x86_64-contrib
Краткое опис : The standalone RTL8188EU driver
URL          : https://github.com/lwfinger/rtl8188eu
Лицензия     : GPLv2
Описание     : This package contains the driver for Realtek 8188 802.11n USB wireless
             : adapters (RTL8188EU).

Пробуем поставить. Получаем говна на лопате вместо установки:

ester / # dnf install dkms-rtl8188eu.x86_64
Ошибка: 
 Проблема: package dkms-rtl8188eu-4.1.8-0.775137f.1.x86_64 requires dkms, but none of the providers can be installed
  - package kernel-6.1-generic-6.1.20-2.x86_64 requires (kernel-6.1-generic-devel(x86-64) = 6.1.20-2 if dkms), but none of the providers can be installed
  - conflicting requests
  - problem with installed package kernel-6.1-generic-6.1.20-2.x86_64
(попробуйте добавить «--skip-broken» для пропуска удаляемых пакетов или «--nobest», чтобы использовать не только наилучшие варианты пакетов)

Ладно, давайте выясним, чо ему не нравится.

Вот такие ядра установлены в системе:

ester / # dnf list installed | grep kernel-6.1-generic
kernel-6.1-generic.x86_64                           6.1.20-2                   @Main                       
kernel-6.1-generic.x86_64                           6.1.58-1                   @mirror-rosa-x86_64-main    
task-kernel-6.1-generic.x86_64                      0.4-2                      @Main                       

А вот для таких ядер есть заголовочные файлы в репозитории:

ester / # dnf repoquery --whatprovides kernel-devel
kernel-5.10-generic-devel-0:5.10.184-1.i686
kernel-5.10-generic-devel-0:5.10.184-1.x86_64
kernel-5.15-generic-devel-0:5.15.127-1.i686
kernel-5.15-generic-devel-0:5.15.127-1.x86_64
kernel-5.16-generic-devel-0:5.16.19-2.i686
kernel-5.16-generic-devel-0:5.16.19-2.x86_64
kernel-5.17-generic-devel-0:5.17.11-2.i686
kernel-5.17-generic-devel-0:5.17.11-2.x86_64
kernel-5.4-generic-devel-0:5.4.150-1.i686
kernel-5.4-generic-devel-0:5.4.150-1.x86_64
kernel-6.1-generic-devel-0:6.1.19-1.i686
kernel-6.1-generic-devel-0:6.1.19-1.x86_64
kernel-6.1-generic-devel-0:6.1.58-1.i686
kernel-6.1-generic-devel-0:6.1.58-1.x86_64

Ну вы поняли, да?

Вы берёте официальный установщик ROSA Desktop Fresh. Ставите с него систему. Получаете оттуда ядро 6.1.20-2. Обновляетесь из официального репозитория до самых свежих пакетов.

А ХИДЕРОВ К ЭТОМУ ЯДРУ В РЕПОЗИТОРИИ НЕТ.

Есть только хидеры для 6.1.19-1 и 6.1.58-1.

Такая вот стабильная платформа. Фантастично…

Чо-то я разочарован.

 , ,

wandrien
()

Странная проблема (?) с GIMP

Форум — Multimedia

В общем даже хз, как объяснить.

Вот смотрите, гимп, запущенный под оффтопиком: https://ibb.co/sPptFP4

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

Когда я использую гимп на онтопике, то я могу делать увеличение масштаба вплоть до 1000%, и эта шахматная сетка на всех масштабах рисуется.

Но когда я в версии под оффтопик пытаюсь сделать масштаб больше чем 200%, то сетка перестаёт рисоваться, и вместо неё отображается однотонный серый фон.

Как мне сделать, чтобы под виндой поведение было аналогично как под линем? Кто-нибудь сталкивался?

Версия: GIMP 2.10.34 (редакция 2)

P.S. И да, линукс тут при том, что GIMP- это СПО, а мы на http://opensource.ru/

 

wandrien
()

Есть возможность в gimp сделать кастомную панель с кнопками для нужных фильтров/трансформаций/пресетов инструментов?

Форум — Multimedia

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

 

wandrien
()

Вопрос по редакциям Альт Линукс

Форум — General

Есть как минимум:

  • Альт Рабочая станция (бесплатно для физлиц, платно для юрлиц; присутствует в реестре)
  • Альт Сервер (бесплатно для физлиц, платно для юрлиц; присутствует в реестре)
  • Альт Образование (бесплатно для физлиц, платно для юрлиц; присутствует в реестре)
  • Simply Linux (бесплатно как для физлиц, так и для юрлиц; нет в реестре)

(прочие вариации не перечисляю)

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

Принципиально разные функциональные отличия, связанные с проприетарным кодом, в этих редакциях есть? Что именно покрывается коммерческой лицензией - только лишь юридические вопросы, связанные с реестром отечественного ПО и тому подобного, или в том числе фактические различия в доступном ПО?

То есть, если я возьму стартер-кит, я могу вручную попакетно установить функциональный аналог любой из этих редакций, не имеющий ограничений на применение, или же не могу, так как часть пакетов лицензируется Альтом по проприетарным лиценциям?

 ,

wandrien
()

Как мне добиться такого режима обрезки изображения?

Форум — Multimedia

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

https://ibb.co/qyq74zj

Мне нужно оставлять только прямоугольную область, которая пунктирным прямоугольником отмечена на картинке.

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

Есть готовый скрипт для GIMP, который реализует такую обрезку?

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

 ,

wandrien
()

Обработка сканированных документов

Форум — Multimedia

Занимаюсь сейчас следующим делом.

Есть несколько сотен изображений со сканами чертежей. Их нужно обработать таким образом:

  1. На большинстве сканов лист лежит под небольшим углом. Нужно довернуть изображение на этот угол, чтобы выровнять картинку.
  2. Некоторые листы сканировались в несколько приёмов. Например, лист формата A3x4 сканирован в 5 приёмов с перекрытиями. Нужно из таких фрагментов собрать одно цельное изображение.
  3. Результаты нужно собрать в PDF.

Гуглю автоматически средства, которыми можно решить задачи 1 и 2.

Для первой нашел скрипт на питоне, который детектит прямые линии на листе. Планирую использовать его - доработать, чтобы автоматически определять угол поворота листа.

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

Дайте знать, если есть какие-то готовые решения, которые не требуют пилинг кода на питоне и баше. Я что-то не смог нагуглить.

 , ,

wandrien
()

Arch Linux Live-USB

Галерея — Скриншоты

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

Вот вам скучный скриншот, а система - достаточно интересная. Когда-то я уже её, вроде бы, описывал где-то на форуме, но расскажу подробнее. Может кому будет интересно сделать подобное.

Операционная система установлена на флешке Sandisk Ultra Flair объёмом 32 ГБ. В таком виде живёт уже около трёх лет, полёт нормальный. Используется эпизодически на самых разных железках.

В данный момент ОС запущена на Samsung NP300E5Z с процессором Intel Celeron B800 (2 ядра, 1.5 ГГц) и 8 ГБ DDR3 1333 МГц.

В качестве основной ОС использована Arch Linux. Сначала стояла только она одна, потом при помощи Bedrock Linux была преобразована в микс из трёх ОС. Bedrock Linux - это прослойка, позволяющая почти прозрачно миксовать софт из разных дистрибутивов Линукса, установленных в разные префиксы. Например, вы можете использовать для загрузки ядро от одного дистрибутива, инит и системные службы от второго, а прикладные программы - от третьего. Разумеется, не всякое сочетание компонент работает безглючно или вообще работает. Но гибкость достаточно большая.

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

В дополнение к Арчу сюда были добавлены Debian 12 и Alpine. Чисто из любопытства, чтобы посмотреть, как это работает, ну и чтобы был Debian под рукой, если что-то пойдёт не так. В Debian установлен самый минимум консольного софта + XFCE.

Весь основной софт стоит под Арчем. Софт преимущественно на gtk2 и gtk3. Из софта на Qt - только qBitTorrent. Из относительно крупных программ сюда поместились Libre Office, Firefox, SeaMonkey. Остальное мелкое, но его много.

Арч обновляю нерегулярно, иногда по 3-4 месяца без обновлений. Как и со всеми прочими моими установками Арча, никаких проблем с обновлениями, о которых рассказывают древние городские легенды родом из 00-х, тут нет.

Флешка в основном используется для несложной работы с документами, работы онлайн, а также как аварийно-спасательная система, если где-либо слетела или отсутствует ОС.

Занимает всё вот столько, нужно еще вычесть отсюда 4 ГБ, которые занимает хомяк:

df -h /
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sdb3           28G          19G  8,3G           69% /

Подробнее про конфигурацию.

Чтобы система могла запуститься на разном железе без пересборки initramfs, нужно внести правки в файл /etc/mkinitcpio.conf. Из переменной HOOKS нужно убрать autodetect и добавить нужное по необходимости:

HOOKS="base udev modconf block lvm2 filesystems keyboard"

Теперь хуки для mkinitcpio будут собирать универсальную initramfs, схожую с той, что используется в iso-образе с установщиком системы. А не урезаную версию, которая может загрузиться только на данном конкретном железе.

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

Вот размеры универсального образа:

$ du -h /boot/initramfs*
38M	/boot/initramfs-linux-fallback.img
38M	/boot/initramfs-linux.img
36M	/boot/initramfs-linux-lts-fallback.img
36M	/boot/initramfs-linux-lts.img
39M	/boot/initramfs-linux-zen-fallback.img
39M	/boot/initramfs-linux-zen.img

Проблема, связанная с легендарным 12309. Нужно ограничить размер окна отложеной записи в страничном кэше. Это необходимо, чтобы ОС не вставала колом при интенсивных операциях ввода-вывода на медленных накопителях, таких как флешки. Делается вот так:

$ cat /etc/sysctl.d/99-my-sysctl.conf 
vm.dirty_bytes = 4000000
vm.dirty_background_bytes = 2000000

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

Так как система предназначена для запуска «где придётся», в том числе на системах с ограниченным объёмом ОЗУ, то настраиваем своп в ZRAM. Это позволит более-менее нормально пользоваться браузером на системах с 2-3 гигабайтами ОЗУ.

Проще всего это сделать установкой пакета systemd-swap из AUR. Вопреки названию, он не имеет никакого отношений к разработчикам systemd, да и к самому systemd практически никакого отношения не имеет. Это довольно простой скрипт на питоне, который настраивает устройства подкачки по конфигу.

В конфиге /etc/systemd/swap.conf настраиваем ZRAM. В моём случае под сжатый своп может использоваться до половины ОЗУ:

$ grep '^[^#]' /etc/systemd/swap.conf
zram_enabled=1
zram_size=$(( RAM_SIZE / 2 ))
zram_count=${NCPU}
zram_streams=${NCPU}
zram_alg=zstd
zram_prio=32767

Также из AUR я поставил пакет preload.

preload is an adaptive readahead daemon. It monitors applications that users run, and by analyzing this data, predicts what applications users might run, and fetches those binaries and their dependencies into memory for faster startup times.

Ну типа вы поняли, мне лень переводить.

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

Установлено несколько DKMS-модулей с дополнительными драйверами, которых нет в базовой поставке. В моём случае это драйвера на WiFi от Broadcom и на RTL8188eus. Есть в AUR.

В качестве оболочки у меня используется мой форк LXDE.

Внизу - панель waterline. На основной машине у меня она сконфигурирована в довольно уникальном варианте, не имитирующем никакой другой ОС. А тут я решил оставить её в стиле Windows-like.

Цветовое кодирование кнопок на панели в тон иконке приложения - обожаю эту фичу.

В трее с иконкой от parcellite - мой форк parcellite, в котором я выкинул половину кода, а оставшееся переписал так, чтобы оно работало без глюков.

Н/Д рядом с часами - это индикатор заряда батерии, а батареи в ноутбуке не установлено. Подумал вот сейчас, надо бы как-то чуть более очевидно это подписывать.

Иконка дома открывает рекурсивное меню с содержимым хомяка, откуда можно открывать файлы.

WM - openbox с околодефолтным конфигом.

В общем, всё довольно стандартно.

Потребление ОЗУ системой после логина на рабочий стол - около 400 МБ.

 , , , ,

wandrien
()

«Слишком умный» установщик ROSA DESKTOP FRESH

Форум — Talks

Тут вот @MoldAndLimeHoney жаловался на нефункциональный инсталлятор Убунты: Новый инсталлятор Убунту -- мусор

Так вот я про установщик ROSA хочу рассказать. Я так понимаю, там Anaconda используется.

Берём свежий релиз ROSA FRESH R12.4: http://mirror.rosalab.ru/rosa/rosa2021.1/iso/ROSA.FRESH.12/plasma5/. Запускаем. В качестве раздела для установки выбираем том LVM под корень и больше никаких разделов не добавляем.

Получаем ошибку:

Файловая система /boot не может иметь тип lvmlv

И невозможность продолжить установку.

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

Во-вторых. Берём установочный образ ROSA FRESH R3 на платформе 2012.1. Запускаем установку в точно таких же условиях. И внезапно всё устанавливается без проблем. Не только не жалуется на то, что /boot на LVM, но еще и устанавливает загрузчик, и он корректно работает и грузит ОС.

Такие дела.

Кастану сюда пользвателя @irton чисто чтобы поныть ему, что нихрена не работает(

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

 ,

wandrien
()

RSS подписка на новые темы