LINUX.ORG.RU

Сообщения ValdikSS

 

Вопросы по баги BIOS int13h и GRUB2

Форум — General

Написал такие вопросы в рассылку GRUB2, если кто из олдов помнит баги BIOS’ов и как всё это должно работать корректно — расскажите, пожалуйста. По моему мнению получается, что баги во всех трёх компонентах: BIOS, GRUB, gdisk/установщик debian.

Hello list,

I noticed that GRUB 2.06 menu and Linux kernel and initrd load times are greatly influenced by the "last sector" data in the first partition entry (byte 0x06 in MBR partition entry, offset 0x1c4 from the beginning of the disk for the first partition) on my WYSE C10LE x86 thin client (32-bit VIA Eden Esther with Phoenix bios, from 2008).

Fresh Debian 12 installation takes about 5 seconds to show GRUB menu (GRUB loading... for 5 seconds), the kernel (4.5 MB) is loaded in 27 seconds, and initrd takes ages to load.

However, if I use gdisk software to perform MBR→GPT→MBR partition table type conversion, without touching any partitions per se, GRUB speeds up by an order of magnitude: the menu is shown instantly and the kernel is loaded under 3 seconds, initrd takes about 8 seconds.

Several hours of debugging resulted in the following observations:

1. My BIOS returns some strange C/H/S values in int13h, influenced by "last sector" data in the first partition entry of MBR. With stock Debian MBR it's 301/255/2, with MBR→GPT→MBR it's 480/255/63.

Debian's MBR contain 4/4/1 CHS start, 255/254/194 CHS end.
Converted MBR contain 1/0/1 CHS start, 255/254/255 CHS end.

Is this a BIOS bug, or some kind of quirk? I don't see this behavior on SeaBIOS in qemu. Does Debian installer fill MBR correctly? Does gdisk fill it correctly?

2. Slow loading times are due to low sector value with stock MBR. GRUB is forced to read only 2 sectors at a time.

3. GRUB obeys CHS layout even if LBA via IBM/MS INT13 Extensions is used. My BIOS supports INT13 extensions and the reads are performed using it, but GRUB still reads by 2 sectors.

grub-core/disk/i386/pc/biosdisk.c, function grub_biosdisk_open contains the following logic for HDD:

if (grub_biosdisk_get_diskinfo_standard() != 0) /* if it fails */ {
  if (data->flags & GRUB_BIOSDISK_FLAG_LBA) {
    data->sectors = 63;
    data->heads = 255;
    ...
  }
}

That means it rewrites the value for LBA only if CHS function fails. Shouldn't LBA mode ignore CHS values and read as many as possible? Is this a GRUB bug? I've changed the function to always rewrite data for LBA to 64 (not 63) sectors, to fill the whole segment in a single read, and it seem to work fine. With 63 sectors GRUB reads 63 sectors, then 1 sector, then 63 sectors, then 1 sector again, which decreases the performance, but not by much.


P.S. nativedisk doesn't have any performance problems.
Thanks.

 , ,

ValdikSS
()

Разница в шрифтах/размере между Firefox 113 и 114

Форум — Desktop

После обновления Firefox с 113 до 114 на страницах сайтов отображаются шрифты пунктами больше, чем были до обновления.

Разница, похоже, есть только при использовании старого профиля, несмотря на то, что все настройки шрифтов между свежесозданным и старым профилем одинаковы (одинаковые семейства, размер, даже в about:config по поиску font всё одинаково).

Создал тему в Firefox Community — пока никто не отписался. Можете проверить у себя и подтвердить или опровергнуть?

https://support.mozilla.org/en-US/questions/1415866

Гифка: https://assets-prod.sumo.prod.webservices.mozgcp.net/media/uploads/images/2023-06-14-06-50-35-93c3bb.gif

Fedora 37.

 ,

ValdikSS
()

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

Форум — General

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

Необходим такой дистрибутив, который загружается без какого-либо взаимодействия с пользователем (unattended), без монитора, самостоятельно подключается к сети (в т.ч. Wi-Fi), активирует ssh, каким-то образом настраивает реверс-подключение (пробивает NAT), отправляет уведомление о появлении устройства в сети, и т.п.

Мне временами приходится работать с различным сетевым оборудованием в других сетях, к которым нет VPN, и проще всего обеспечить себе доступ — попросить человека запустить виртуальную машину. Также периодически приходится копировать или стирать SATA/PATA-диски, подключая их к старому компьютеру, который остальное время стоит в кладовке, и всегда влом искать к нему дополнительную клавиатуру и кабели для монитора, только чтобы запустить ОС и включить ssh.
Хотелось бы иметь дистрибутив из разряда «сделал и забыл», который бы давал root-доступ к компьютеру/виртуальной машине по сети максимально простым способом.

На текущий момент использую SystemRescueCD: этот дистрибутив и содержит подавляющее большинство необходимых утилит, и собственную систему конфигурации с помощью YAML-файлов, благодаря которым можно запустить ssh и vnc-серверы, назначить пароль root, добавить ssh-ключи, прописать произвольные скрипты при запуске. Он отлично работает в локальной сети, но у него нет никакой дополнительной инфраструктуры для его использования «через интернет» (за NAT). Настройка Wi-Fi через YAML-конфигурацию не предусмотрена, только Ethernet.
Также он не особо «красиво» располагается на флешке — 6 директорий в корне, а для моего сценария использования была бы предпочтительней одна директория в корне флешки, чтобы было меньше пространства для ошибок при копировании/удалении дистрибутива с носителя.

Из дистрибутивов для удалённого управления компьютером мне известен только bitscout, но он больше для профессионального использования. Ему необходим VPN-сервер, к которому подключается клиент, а мне бы не хотелось поднимать и содержать дополнительную инфраструктуру.

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

 , , ,

ValdikSS
()

p.gif нагружает систему в Firefox

Форум — Linux-org-ru

https://www.linux.org.ru/img/p.gif

Этот GIF-файл имеет всего один кадр, но помечен анимированным, из-за чего Firefox пытается применять к нему анимацию, перерисовывая один и тот же кадр снова и снова, что создаёт излишнюю нагрузку на CPU/GPU.

$ gifsicle -I p.gif
* p.gif 1 image
  logical screen 1x1
  global color table [2]
  background 0
  + image #0 1x1 transparent 0
    disposal asis **delay 0.20s**

Прошу пересохранить файл без анимации (без параметра delay у кадра).

Баги Firefox: 1, 2.

 ,

ValdikSS
()

Тонкий клиент WYSE C10LE и состояние 32-битных систем

Галерея — Рабочие места

Запустил Debian 11 с LXQt на WYSE C10LE — тонком клиенте из 2010, построенном на платформе VIA Eden Esther VX855 — несуперскалярном 32-битном процессоре x86 с частотой в 1 ГГц, 512 МБ DDR2 RAM и 128 МБ флеш-памяти, подключённой к шине IDE.

Процессор относительно современный, в наличии SSE2 и SSE3 (PNI). За видео в этом SoC отвечает VIA Chrome9 HCM, поддерживающий DirectX 9 и декодирование H.264 в Windows, но в Linux обеспечивающий только самое базовое 2D-ускорение средствами открытого драйвера OpenChrome. Также существует проприетарный драйвер, поддерживающий 2D и 3D, но только под Ubuntu 12.04-12.10.

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

На фотографии представлен веб-браузер Qutebrowser с 7 открытыми вкладками, в режиме работы с QtWebkit. Как видно, даже с 7 вкладками (2 из которых ­— страницы Википедии с большим количеством картинок) браузер потребляет около 140 мегабайт, что позволяет комфортно сёрфить интернет на смешных 512 МБ RAM.
Из других браузеров, до сих пор поддерживающих QtWebkit, можно отметить Otter Browser и KDE’шный Konqueror, который дополнительно поддерживает еще и KHTML (3 движка в одном браузере), но в Debian собран только с WebEngine. Первый в репозиториях Debian не присутствует.
Браузер Seamonkey, актуальная версия которого построена на базе движка из Firefox 60, работает более-менее сносно, но не блестяще — рендерит дольше QtWebkit’а примерно в 2-3 раза, потребляет заметно больше памяти, зато работает со всеми современными сайтами. Можно использовать в качестве запасного варианта, когда QtWebkit не справляется.

Опробовав разные дистрибутивы на этой машине, обнаружил следующие особенности и проблемы:

  1. Syslinux на этой платформе запускается сам и загружает ядро и initrd на порядок быстрее GRUB2 — 5 секунд против примерно 1 минуты. Бегло посмотрев код загрузки ядра и включив режим отладки в GRUB, каких-то очевидных проблем, которые могут вести к такому поведению, не обнаружил, детально отлаживать не стал. Загрузка в GRUB2 происходит по USB 2.0, не по 1.1 (загрузчик plop перед запуском grub не ускоряет процесс).
  2. У syslinux на удивление плохая документация. Quick start’ы из wiki все какие-то недописанные — не пошаговое руководство, а разрозненная информация. Нигде не говорится о необходимости копирования .c32-файлов, если нужно меню — додумался сам, благо кучу раз видел файлы syslinux в других дистрибутивах.
  3. С некоторыми вызовами ACPI на WYSE наблюдаются проблемы. В частности, thermal-подсистема отдаёт ответ по 5-6 секунд, что и замедляет загрузку ядра, и тормозит на 5-6 секунд каждый вызов утилиты sensors. Благо, в ядре есть отдельный thermal-драйвер под процессор, что позволяет отключить ACPI thermal без последствий и потери в функциональности.
  4. Все GTK3-приложения подтормаживают, медленно прорисовывают окна, с задержкой откликаются на действия. Возможно, дело в теме, но её смена и попытка отключить все анимации к заметному ускорению не привели. GTK2 и Qt5 откликаются на действия быстро, работают хорошо.
  5. В последних версиях ядра Linux (в т.ч. LTS-ветке 5.15) присутствует ошибка, приводящая к зависанию этого процессора (вот эта проблема)
  6. Графический сеанс Debian не запускался сразу после установки. Проблема оказалась в systemd: systemd-logind устанавливает опцию CanGraphical=false из-за видео, потому, что драйвер OpenChrome выполнен в виде X.org DDX, и ни DRM, ни FB не поддерживаются. Простое решение — добавить nomodeset в строку запуска ядра: [1], [2]
  7. В archlinux32 всё сломано: многие программы не запускаются из-за обновлений библиотек без перекомпиляции всех пакетов, от них зависящих, т.к. не всегда их возможно перекомпилировать с современными версиями библиотек и компиляторов (многим «жирным» проектам требуется больше 4 ГБ виртуальной памяти для сборки, они падают на 32-битных системах, а кросс-компиляция в archlinux32 не используется). Разработчики выпускают shim-пакеты со старыми библиотеками, чтобы хоть как-то вернуть работоспособность программ, но библиотеки необходимо устанавливать вручную, в виде зависимостей к пакетам они не прописаны.
    Устанавливаешь chromium — не запускается, seamonkey — не запускается. Удручающее зрелище.
  8. Дистрибутив slitaz включает веб-браузер и кучу программ в 50 мегабайт iso-образа, но тоже страдает от проблем с версионностью библиотек. Многие пакеты серьёзно устрарели, но сам факт возможности упаковки веб-браузера, аудио и видеоплеера, полноценной темы со всеми иконками, всех возможных средств настройки системы и прочего всего в 50 мегабайт впечатляет. Проект почти не развивается.
  9. Основные устоявшиеся дистрибутивы Linux либо не формируют .iso для x86, либо вовсе не предоставляют 32-битных пакетов. Некоторые форки RHEL, такие как Rocky Linux, можно забутстрапить из 32-битных репозиториев, также есть x86 ISO OpenSUSE Tumbleweed (который rolling release), но если смотреть глобально, полноценная поддержка x86 осталась только в Debian.
  10. zstd даже с -22 –long не дотягивает до степени сжатия xz -5 для упаковки rootfs.

>>> Просмотр (3728x2700, 1280 Kb)

 ,

ValdikSS
()

PSA: 32-битные процессоры зависают на 5.15.35, 5.16.11, 5.17.

Форум — General

В драйвер ACPI CPU внесена регрессия, которая попала в ядра версий 5.15.35, 5.16.11, 5.17 и не исправлена в этих ветках по сей день.

Проблема приводит к спонтанным зависаниям на 32-битных процессорах (отмечены на Pentium 3 / Pentium M / VIA C7).

Ошибка внесена патчем ACPI: processor idle: Allow playing dead in C3 state, устранена ACPI: processor: idle: Avoid falling back to C3 type C-states, который пока вошел только в 5.18-rc5.

 , ,

ValdikSS
()

Сделал публичный порт-форвардер через SSH, оцените

Форум — General

ssh ssh-j.com

Сервис для проброса SSH-подключения из-за NAT. Никаких доп. программ ни на сервере, ни на клиенте. Никаких регистраций и временных доменов/портов. Одна команда для проброса SSH, одна для подключения.

Хоть ssh-j и позволяет пробрасывать любые сервисы, предлагается публиковать только порты SSH, чтобы не нарушался принцип end-to-end шифрования.

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

Буду рад услышать отзывы.

 , ,

ValdikSS
()

Debian ISO FastInstall — скрипт для ускорения установки Debian из ISO

Новости — Debian
Группа Debian

Стандартные ISO-образы Debian производят установку системы путём инсталляции всех необходимых пакетов через apt, вызывая fsync() на каждое действие с файлами (стандартное поведение apt/dpkg). Синхронизация состояния файлов значительно уменьшает скорость установки, особенно на медленных HDD.

Проблема с медленной установкой Debian не нова. Еще в 2014 году Petter Reinholdtsen представил eatmydata-udeb — скрипт, отключающий вызовы fsync() для установочного ПО. Однако его работа так и не была задействована по умолчанию в ISO-образах, а также не ускоряет небыстрый начальный этап установки базовых пакетов.

Debian ISO FastInstall ускоряет установку Debian из ISO путём корректной активации eatmydata на всех её этапах.
Скрипт добавляет недостающие файлы eatmydata, помещает скрипт-патчер и пересобирает классические и live ISO-файлы Debian, не изменяя содержимое deb-пакетов.

Пример установки Debian 10.6.0 amd64 из DVD-файла на виртуальной машине, на HDD, без кеширования записи.

  • Оригинальный файл: 1 час 44 минуты 20 секунд
  • Патченный файл: 10 минут 37 секунды

Совместимость скрипта проверена классических и live-файлах релизов Stretch, Buster и Bullseye, а также на образах non-free firmware.

>>> Подробности

 , , ,

ValdikSS
()

Выявляем процессы с дисковой активностью в Linux

Форум — General

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

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

https://habr.com/ru/post/476414/

 blktrace, , fatrace, ,

ValdikSS
()

Сборка образа системного контейнера

Форум — Admin

Для контейнеров приложений (application containers) есть куча систем сборки: Dockerfile, buildah, Buildkit, img, Bazel, kaniko, и еще куча разных.

Для системных контейнеров (system containers, которые запускают в LXC/LXD/systemd-nspawn) нашел только distrobuilder, но его нет в репозиториях (для меня не проблема, но хочу, чтобы пользователи контейнера могли его легко пересобрать, это было бы плюсом).

Кто-нибудь что-нибудь подскажет, что использовать? Мне нужно взять готовый образ ОС (debian 10, например), скопировать несколько файлов по определенным путям, установить несколько программ из репозитория, и сделать из этого контейнер. В общем, то, что делает dockerfile, только для системных контейнеров.
Хоть ansible бери.

 , , ,

ValdikSS
()

CTRL+C не всегда копирует текст, помогите отладить

Форум — Desktop

Когда я выделяю текст в графической программе и нажимаю CTRL+C, текст копируется примерно в 9 из 10 случаев, но 1 раз не копируется, и в буфере остаются старые данные. Проблема не только с комбинацией CTRL+C, а с буфером обмена в принципе. Если в Firefox нажать правой кнопкой на ссылке и выбрать «Copy link location», ссылка не всегда копируется в буфер.

Проблема появилась примерно в Fedora 28, т.е. где-то полтора года назад. Сильно раздражает.

Сейчас пользуюсь Fedora 30, KDE 5.15.5. Пробовал менять настройки и отключать Clipboard manager KDE'шный (единственная программа, которая что-либо делает с буфером обмена) — ничего не изменилось.

У кого-нибудь наблюдается подобное? Если наблюдается, то на каком дистрибутиве и DE?

Кто-нибудь знает, как отлаживать эту проблему? Как обнаружить, из-за чего не копируется текст? Проблема точно программная, с клавиатурой все в порядке.

10.09.2019: создал баг в багтрекере Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1750903

 , , ,

ValdikSS
()

Дистрибутив Linux для удаленного управления компьютером

Форум — Admin

Ищу Live-дистрибутив Linux (в виде ISO или образа для флешки), предназначенный для управления компьютером из локальной сети и через интернет.

Интересуют следующие сценарии использования:

1. Загрузка компьютера без монитора с флешки, с доступом через SSH. Бывает необходимо самостоятельно загрузить компьютер, к которому есть физический доступ, для копирования данных или восстановления ОС.

2. Загрузка компьютера с флешки, с доступом по SSH/VNC через интернет, даже если компьютер за NAT. Нужно для исправления проблем с компьютером, на котором загружена эта ОС, или для получения доступа к другим компьютерам в удаленной локальной сети.

ОС должна автоматически настраивать доступ в интернет (проводное соединение через DHCP, настройка Wi-Fi через отдельный файл на флешке, или как-то ещё), возможно, как-то уведомлять о том, что компьютер включился (почтой?), удаленный доступ не должен требовать собственный сервер (не VPN, а Tor Hidden Service, или что-то подобное).

Из отдаленно похожего нашел только https://github.com/vitaly-kamluk/bitscout.

Кто-нибудь знает подобные проекты?

 , , , ,

ValdikSS
()

Super UEFIinSecureBoot Disk — запуск любых ОС и .efi-файлов с флешки без отключения UEFI Secure Boot

Новости — Open Source
Группа Open Source

Super UEFIinSecureBoot Disk — образ диска с загрузчиком GRUB2, предназначенным для удобного запуска неподписанных efi-программ и операционных систем в режиме UEFI Secure Boot.

Диск можно использовать в качестве основы для создания USB-накопителя с утилитами восстановления компьютера, для запуска различных Live-дистрибутивов Linux и среды WinPE, загрузки по сети, без отключения Secure Boot в настройках материнской платы, что может быть удобно при обслуживании чужих компьютеров или корпоративных ноутбуков, например, при установленном пароле на изменение настроек UEFI.

Образ состоит из трех компонентов: предзагрузчика shim из Fedora (подписан ключом Microsoft, предустановленным в подавляющее большинство материнских плат и ноутбуков), модифицированного предзагрузчика PreLoader от Linux Foundation (для отключения проверки подписи при загрузке .efi-файлов), и модифицированного загрузчика GRUB2, который загружает EFI-файлы самостоятельно, не используя функции UEFI.

Во время первой загрузки диска на компьютере с Secure Boot необходимо выбрать сертификат через меню MokManager (запускается автоматически), после чего загрузчик будет работать так, словно Secure Boot выключен: GRUB загружает любой неподписанный .efi-файл или Linux-ядро, загруженные EFI-программы могут запускать другие программы и драйверы с отсутствующей или недоверенной подписью.

Для демонстрации работоспособности, в образе присутствует Super Grub Disk (скрипты для поиска и загрузки установленных операционных систем, даже если их загрузчик поврежден), GRUB Live ISO Multiboot (скрипты для удобной загрузки Linux LiveCD прямо из ISO, без предварительной распаковки и обработки), One File Linux (ядро и initrd в одном файле, для восстановления системы), и несколько UEFI-утилит.

Диск совместим с UEFI без Secure Boot, а также со старыми компьютерами с BIOS.

>>> Репозиторий диска

 , , , ,

ValdikSS
()

Не берите Wi-Fi-карты на Broadcom BCM4360

Форум — Linux-hardware

Популярные карты Wi-Fi 802.11ac 3x3 MIMO для настольных компьютеров на чипе Broadcom BCM4360 плохо работают в Linux. Скорость скачивания высокая (400+ Мбит/с), а вот скорость отдачи не превышает 60-70 Мбит/с.

Свободным драйвером чип не поддерживается, карты работают только с проприетарным драйвером broadcom-wl, который не обновляется с 2015 года.

В README драйвера указан адрес email, на который можно направлять вопросы, однако на мои письма никто не ответил.

Карты на BCM4360:

  • ASUS PCE-AC68
  • TP-Link Archer T9E

 , ,

ValdikSS
()

Нерабочая ссылка на FAQ при создании темы

Форум — Linux-org-ru

В тексте, который выводится при создании темы, ссылка на FAQ ведет на несуществующую страницу www.linux.org.ru/wiki/en/lor-faq

 

ValdikSS
()

Исследуем защиту и восстанавливаем аркады Namco System ES1 (TPM, DMA, MBR)

Форум — Security

Написал тут статью, может, кого-то заинтересует способом обхода TPM.

https://habrahabr.ru/post/304014/

 

ValdikSS
()

HiDPI и «неподдерживаемые» разрешения

Форум — Talks

Написал тут две статьи, одна описывает поддержку HiDPI разными DE и тулкитами, а другая рассказывает, как установить максимальное разрешение в ущерб частоте обновления, если видеокарта не поддерживает высокие разрешения.

HiDPI в Linux
Используем высокие разрешения на неподдерживающих их видеокартах

Может, заинтересует кого.

Перемещено JB из desktop

 

ValdikSS
()

HTTP стриминг-сервер

Форум — Multimedia

У меня проблема: я не могу найти никакой вменяемый бесплатный (можно даже не опенсорс, но лучше опенсорс) HTTP (не HLS, не RTMP) стриминг-сервер, кроме VLC VLM. ffserver заброшен и не поддерживается, к тому же, не умеет вещать без перекодировки, а больше-то и нету.

Может, подскажет кто?

 , http streaming, ,

ValdikSS
()

Скрипт/приложение/демон для удобной настройки policy routing / MultiWAN

Форум — Admin

Ищется какой-нибудь скрипт, приложение или демон для удобной настройки policy routing / multiwan без привязки к конкретному дистрибутиву, либо с минимальной.
Для OpenWRT, например, есть multiwan и mwan3, все настраивается очень просто, но настроить то же самое в Debian бывает проблематично.

Мне нужен только сам policy routing, без балансировки и failover. Очень желательна поддержка IPv6.
Пока присматриваюсь к демонам маршрутизации, вроде BIRD, но это перебор.

Кто-нибудь что-нибудь может подсказать?

 , , ,

ValdikSS
()

Детектор типа блокировки сайтов из реестра

Форум — Talks

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

https://github.com/ValdikSS/blockcheck

Утилита отправляет определенный тип блокировки на сервер.

ValdikSS
()

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