LINUX.ORG.RU

Сообщения ValdikSS

 

Открепить темы в hardware

В linux-hardware висит тема Canon LBP-2900 и другие CAPT-принтеры - ПИШУ ДРАЙВЕР с 2010 года.

Драйвер давно не дорабатывается, у людей уже принтеры совершеннолетние, а тема всё ещё прикреплена. Может, время её убрать?

Есть владельцы МФУ hp lj m1005 и hp lj m1120? это тоже неактуально (патч работает без проблем).

Нарушения GPL: gpl-violations уже не занимаются публичными обращениями.

В общем, глаза мозолит несколько.

 

ValdikSS
()

Дистрибутивы с кросс-компиляцией

Я всегда пользовался либо deb-based дистрибутивами для создания уникального окружения, либо же специализированными embedded-ориентированными средами, в которых изначально поддерживается кросс-компиляция и всё с ней связанное.

Однако обнаружил, что, похоже, в классических дистрибутивах, поимимо deb-based, в целом нет поддержки одновременной установки пакетов/библиотек разных архитектур и встроенных инструментов кросс-компиляции в сборочной системе и пакетном менеджере.

Так ли это, или я недостаточно хорошо искал?

Иными словами, в Debian я могу собрать пакет на x86_64 для ARM64 с помощью двух команд:

apt build-dep hello:arm64
dpkg-buildpackage -a arm64

Первая установит зависимости для сборки пакета под архитектуру ARM64 из репозиториев, вторая — соберёт его кросс-компилятором и упакует в пакет.

Для этого не нужно бутстрапить отдельный ARM chroot, gcc sysroot; библиотеки для arm64 установятся в /usr/lib/aarch64-linux-gnu и не будут мешать нативным, находящимся в /usr/lib/x86_64-linux-gnu/. Все программы, исполняющиеся во время сборки, скомпилированы под нативную архитектуру.

Вопрос: есть ли подобное в других дистрибутивах? Более широко: как эффективно кросс-компилировать пакеты в Fedora/RHEL/AlmaLinux и других, т.е. использовать бинарные зависимости из репозиториев, а не компилировать их самостоятельно в своём sysroot, и не запускать компиляторы в qemu-user?

Перемещено hobbit из general

 

ValdikSS
()

Программы ресурсной поддержки FOSS

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

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

Есть ли хоть одна путная программа подобного рода в России?

 digital public goods, , sustainable software

ValdikSS
()

Наконец-то нормальный способ (кросс-)компиляции под старые glibc

Делюсь находкой: в языке программирования zig есть встроенный кросс-компилятор C и C++ под разные архитектуры, а также возможность указания версии символов glibc (от 2.16: Debian 8+, Ubuntu 13.10+, CentOS 7, Fedora 18+).

zig cc / zig c++ обечпечивает режим совместимости с вызовом cc и cpp.

Иными словами, этими командами можно безболезненно:

  1. Кросс-компилировать (и архитектуры, и ОС, т.е. под Windows и macOS из Linux) без заморочек с sysroot’ами
  2. Собирать современный код (C23, C++23) под дистрибутивы последних 10 лет выпуска

Ранее для этого либо собирали кросс-компилятор со старым glibc, либо использовали различные костыли по замене хедеров glibc (bingcc, glibc_version_header), либо патчили, либо собирали на старых ОС вроде CentOS 7 (благо там можно установить свежие компиляторы).

Теперь же можно:

$ gcc -o hello_gcc hello.c
$ nm -D hello_gcc
                 w __gmon_start__
                 U __libc_start_main@GLIBC_2.34 ←←← минимум glibc 2.34
                 U puts@GLIBC_2.2.5

$ zig cc -o hello_zig hello.c
$ nm -D hello_zig
                 w __gmon_start__
                 U __libc_start_main@GLIBC_2.34 ←←← минимум glibc 2.34
                 U puts@GLIBC_2.2.5

$ zig cc -target x86_64-linux-gnu.2.16 -o hello_zig hello.c
$ nm -D hello_zig
                 U __libc_start_main@GLIBC_2.2.5 ←←← минимум glibc 2.2.5
                 U puts@GLIBC_2.2.5

# И даже под Windows @ ARM64
$ zig cc -target aarch64-windows -o hello_zig hello.c
$ file hello_zig
hello_zig: PE32+ executable for MS Windows 6.00 (console), ARM64, 7 sections

# Или вообще с musl libc
$ zig cc -target aarch64-linux-musl -o hello_zig hello.c
$ file hello_zig
hello_zig: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, with debug_info, not stripped

 , , ,

ValdikSS
()

Найти файл драйвера принтера для Toshiba E-Studio 181 (Wordcraft e-studio)

В 2008 году сторонняя компания Wordcraft написала драйвер для GDI-принтеров и МФУ Toshiba семейства E-Studio. О нём много упоминаний в интернете, например, вот эта страница в русскоязычной Wiki Ubuntu: https://help.ubuntu.ru/wiki/периферийные_устройства/мфу_toshiba_e-studio_181

Файла больше нет на сайте. Поддомены, на которых располагался файл, более неактивны. Скачивание файла происходило POST-запросом со страницы, поэтому его не закешировал archive.org.

http://wordcraft.com/docs/linux_download
http://legacy.wordcraft.com/docs/linux_download
http://linux.wordcraft.com/docs/download

В sales-поддержке компании ответили, что у них больше нет этого файла. Помогите найти, вдруг он всё ещё где-то доступен.

  • e-studio-1.1-3.i386.rpm
  • e-studio-1.1-4.i386.rpm

 

ValdikSS
()

Ограничить количество соединений (NAT) на каждый DST каждому пользователю

…не используя connlimit, или ускорив его работу.


Есть роутер, выполняющий NAT. К нему подключено, условно, сто пользователей. Предположим, что выходной IP-адрес один.

Задача: запретить устанавливать больше 50000 соединений любому из пользователей к одному и тому же IP-адресу.
Иными словами, не дать единственному пользователю исчерпать порты на конкретный dst.

С большим удивлением обнаружил, что iptables connlimit невероятно медленный, до невозможности его использования в реальных задачах: отправка 20000 SYN’ов за ~10 секунд положит маршрутизацию на мощном сервере на 15+ секунд, забив ядро 100% softinterrupts.

Других подходящий matcher’ов не нашел. Ничего другого, кроме как connlimit, в голову не приходит. Хоть пиши userspace + eBPF.

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

 

ValdikSS
()

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

Написал такие вопросы в рассылку 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

После обновления 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
()

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

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

Необходим такой дистрибутив, который загружается без какого-либо взаимодействия с пользователем (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

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
()

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

В драйвер 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, оцените

ssh ssh-j.com

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

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

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

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

 , ,

ValdikSS
()

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

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

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

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

 blktrace, , fatrace, ,

ValdikSS
()

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

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

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

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

 , , ,

ValdikSS
()

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

Когда я выделяю текст в графической программе и нажимаю 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 для удаленного управления компьютером

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

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

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

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

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

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

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

 , , , ,

ValdikSS
()

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

Популярные карты 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 при создании темы

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

 

ValdikSS
()

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

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

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

 

ValdikSS
()

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

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

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

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

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

 

ValdikSS
()

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