LINUX.ORG.RU

Сообщения X512

 

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

Для удалённых тем и сообщений уже есть. Должно быть и для закрытых тем.

 ,

X512
()

На сайте не указана кодировка

Браузер Wine 7.1 вот такие вещи показывает.

 , ,

X512
()

Не могу зайти на сайт, Error 504

У меня уже несколько дней при заходе на сайт показывается ошибка «Error 504». При этом у других и через прокси работает. Меня по IP забанили или проблема с японскими IP адресами?

 

X512
()

Выгрузить видеодрайвер ядра на лету

Для того, чтобы проверять результат вносимых изменений в код видеодрайвера (radeon, amdgpu), хотелось бы его загружать и выгружать на лету. Загрузка через insmod работает, а выгрузка rmmod нет. lsmod пишет что он кем то одним используется и не указано кем. Слишком муторно перезагружать после каждого теста.

Видеодрайвер не используется для десктопа, для десктопа используется встроенная графика Intel с другим драйвером.

 , , , ,

X512
()

BtrFS готова говорили они

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

$ sudo btrfs check /dev/sda3
Opening filesystem to check...
Checking filesystem on /dev/sda3
UUID: 86945e7c-6b8c-45d4-a6f8-cd2a6d23c1d6
[1/7] checking root items
[2/7] checking extents
[3/7] checking free space cache
[4/7] checking fs roots
root 262 inode 266 errors 200, dir isize wrong
root 262 inode 16687041 errors 1, no inode item
	unresolved ref dir 266 index 7773 namelen 11 name kwinrc.lock filetype 1 errors 5, no dir item, no inode ref
root 262 inode 16687043 errors 1, no inode item
	unresolved ref dir 266 index 7775 namelen 6 name kwinrc filetype 1 errors 5, no dir item, no inode ref
root 262 inode 16687046 errors 1, no inode item
	unresolved ref dir 266 index 7778 namelen 18 name kglobalshortcutsrc filetype 1 errors 5, no dir item, no inode ref
root 262 inode 16687047 errors 1, no inode item
	unresolved ref dir 266 index 7779 namelen 11 name kwinrc.lock filetype 1 errors 5, no dir item, no inode ref
root 262 inode 16687059 errors 1, no inode item
	unresolved ref dir 266 index 7793 namelen 9 name dolphinrc filetype 1 errors 5, no dir item, no inode ref
root 262 inode 16687070 errors 1, no inode item
	unresolved ref dir 266 index 7797 namelen 14 name dolphinrc.lock filetype 1 errors 5, no dir item, no inode ref
root 262 inode 16690369 errors 1, no inode item
	unresolved ref dir 266 index 8473 namelen 11 name kwinrc.lock filetype 1 errors 5, no dir item, no inode ref
root 262 inode 16690370 errors 1, no inode item
	unresolved ref dir 266 index 8475 namelen 6 name kwinrc filetype 1 errors 5, no dir item, no inode ref
root 262 inode 16690375 errors 1, no inode item
	unresolved ref dir 266 index 8479 namelen 11 name kwinrc.lock filetype 1 errors 5, no dir item, no inode ref
ERROR: errors found in fs roots
found 67286298624 bytes used, error(s) found
total csum bytes: 56626160
total tree bytes: 7056916480
total fs tree bytes: 6871351296
total extent tree bytes: 115212288
btree space waste bytes: 1063369100
file data blocks allocated: 102890029056
 referenced 69393457152

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

Уже файловая система BFS в Haiku получается надёжнее. В результате разных экспериментов и тестов драйверов у меня постоянно падает ядро и происходит жёсткая перезагрузка/выключение, а файловая система остаётся цела. Даже случайное монтирование BFS два раза в хост систему и виртуальную машину и запись в обе не привело к существенным проблемам в ФС.

btrfs check --repair вроде бы починил файловую систему.

Дистрибутив: openSUSE Tumbleweed.

 

X512
()

Зачем видеодрайвера в Линуксе засунули в ядро?

Вначале же было хорошо сделано с DDX драйверами и установкой видеорежима в X.Org, что более портабельно, безопасно и надёжно (падение видеодрайвера не приводит к kernel panic и его можно перезапустить). Потом зачем-то выдумали DRM-KMS с миллионами строк кода видеодрайверов в ядре прибитые гвоздями к внутренностям Линукса, так что в *BSD/Solaris и др. приходится проводить много работы чтобы портировать этот код на своё ядро. Зачем так надо было делать и вставлять палки в колёса другим ОС?

В Haiku например основная часть видеодрайвера – это динамически загружаемый модуль в пользовательском пространстве. Ядерный драйвер небольшой и отвечает за определение видеокарты, управление видеопамяти и предоставление доступа к видеокарте из пространства пользователя. Ядро не умеет устанавливать видеорежим и начальный видеорежим устанавливается загрузчиком через VESA/EFI GOP.

В Windows значительная часть видеодрайверов работает в пользовательском режиме и может быть прозрачно перезапущена с сохранением открытых окон. Из новых открытых систем в Fushia видеоподсистема работает в пространстве пользователя и реализовано аппаратное ускорение для некоторых видеокарт. В Линуксе самый устаревший и монолитный подход.

 , , ,

X512
()

Ядро Линукс на C++

Тут человек с нуля написал своё ядро Линукс на C++ вместе со своей виртуальной машиной (и поддержкой динамической трансляции по заверению автора всего в 2-3 раза медленнее нативного кода) чтобы запустить Wine на разных платформах. До чего же Wine непортабельный что проще оказалось заморочиться с написанием своего Линукса… Проект называется Boxedwine и он достаточно портабельный чтобы запускаться на Haiku, Android, WASM, Windows.

 , , ,

X512
()

Взаимодействие между программным и аппаратным рендерингом

Как в тулкитах совмещается программный и аппаратный рендеринг так чтобы не было тормозов при копировании из/в видеопамять и чтобы не было избыточных буферов/копирования? Далеко не всё рисование в тулкитах делается через GPU. Можно примеры на места в коде реализации тулкитов.

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

 , ,

X512
()

Bash и переменные с пробелами

> export SYSLIBPATHS="-L/Haiku 64 (USB)/home/Tests/MinApp (riscv64)/sdk-riscv64/lib"
> clang "${SYSLIBPATHS}"
clang-9: error: no input files

> clang ${SYSLIBPATHS}
clang-9: error: no such file or directory: '64'
clang-9: error: no such file or directory: '(USB)/home/Tests/MinApp'
clang-9: error: no such file or directory: '(riscv64)/sdk-riscv64/lib'
clang-9: error: no input files

> export SYSLIBPATHS="\"-L/Haiku 64 (USB)/home/Tests/MinApp (riscv64)/sdk-riscv64/lib\""
> clang ${SYSLIBPATHS}
clang-9: error: no such file or directory: '"-L/Haiku'
clang-9: error: no such file or directory: '64'
clang-9: error: no such file or directory: '(USB)/home/Tests/MinApp'
clang-9: error: no such file or directory: '(riscv64)/sdk-riscv64/lib"'
clang-9: error: no input files

> clang "-L/Haiku 64 (USB)/home/Tests/MinApp (riscv64)/sdk-riscv64/lib"
clang-9: error: no input files

Почему строка в кавычках внутри переменной не работает и как сделать чтобы работало?

 

X512
()

Генератор библиотек линковки с заглушками из .so ELF файлов

Хотелось бы из *.so библиотеки сгенерировать другую библиотеку с такой же динамической таблицей символов, но без содержимого и с пустыми секциями для того чтобы использовать при компиляции программ, использующих эту библиотеку без самой библиотеки. Примерно как *.lib в Windows. Я конечно могу сам сделать, но перед тем как делать велосипед интересно узнать о существующих решениях. Также было бы неплохо, чтобы был ещё текстовый формат объявления символов и версий, чтобы из него можно было собрать библиотеку для линковки.

 , ,

X512
()

Легковесный редактор исходного кода C++ с деревом объявлений

Существуют ли такие? Для Haiku есть Pe, но под другими системами он не работает.

Требования:

  1. Быстрый запуск. Легковесность.

  2. Подсветка синтаксиса C++.

  3. Навигация по объявлениям. Должна работать для файлов вне проекта, без настроек путей заголовочных файлов и т.п.. Список должен быть в порядке объявления без сортировки по именам. Ещё хотелось бы разделитель, если между функциями две пустых строки и вывод специально форматированных комментариев (//#pragma mark <section name> в Pe).

  4. Поддержка hiDPI.

  5. Больше ничего не надо.

Не предлагать: Vim-подобное, Electron, GTK 3+, требующие онлайн аккаунты, онлайн редакторы.

Что не подходит:

  1. Notepad++. Медленно работает навигация по объявлениям, всё вешается во время генерации списка объявлений.

  2. VS Code. Часто вообще не работает навигация по объявлениям.

  3. Geany. Медленно открывает файлы. Не нашёл настройки так чтобы всегда объявления сортировались по позиции в коде, а не по имени.

  4. Kate. Нет навигации по коду. Может быть плохо искал?

  5. QtCreator. Требует аккаунт для установки. Может быть есть сторонние сборки в том числе под Windows? Что-то странное происходит при hiDPI.

  6. Netbeans/Eclipse. Запускаются целую вечность. Не работает навигация вне проекта.

 , ,

X512
()

Противники Столлмана травят его в рабочее время, а сторонники делают больше коммитов в свободные проекты

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

Кампания за отмену Столлмана управляется из одного центра

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

Противники Столлмана ведут кампанию в основном в рабочие дни

Противники Столлмана чаще имеют заполненные профили социальных сетей

Противники Столлмана не коммитят в гитхаб на выходных (сотрудники корпораций?)

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

 , , ,

X512
()

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

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

Работает так: модератор удаляет изменение и возвращается предыдущая версия сообщения.

 

X512
()

Избегание дублирования кода в Makefile

Делаю эксперименты с RISC-V, написал мини-ОС на C++, которая работает в эмуляторе TinyEMU в Haiku, выглядит так. Для сборки и запуска написал Makefile:

CC = clang
CXX = clang++
AS = clang
LD = ld.lld -nostdlib

TARGETFLAGS = -target riscv64-linux -march=rv64imafdc -mcmodel=medium
CXXFLAGS += -fno-exceptions -fno-rtti -Iheaders -Ilibc/headers -I/boot/system/develop/tools/x86/lib/gcc/i586-pc-haiku/8.3.0/include/c++ -I/boot/system/develop/tools/x86/lib/gcc/i586-pc-haiku/8.3.0/include/c++/i586-pc-haiku
ASFLAGS += $(TARGETFLAGS)


Startup.bin: Startup
	llvm-objcopy -O binary Startup Startup.bin

Startup: Startup.ld objs/Startup.o objs/Vecs.o objs/Graphics.o objs/Font.o objs/Virtio.o objs/Threads.o objs/Timers.o libc/objs/setjmp.o libc/objs/string.o libc/objs/memcpy.o libc/objs/memset.o libc/objs/malloc.o Startup.ld
	$(LD) -T Startup.ld --export-dynamic objs/Startup.o objs/Vecs.o objs/Graphics.o objs/Font.o objs/Virtio.o objs/Threads.o objs/Timers.o libc/objs/setjmp.o libc/objs/string.o libc/objs/memcpy.o libc/objs/memset.o libc/objs/malloc.o -o Startup

objs/%.o: src/%.cpp
	$(CXX) $(TARGETFLAGS) $(CXXFLAGS) -MF"deps/$*.d" -MD -c $< -o $@
objs/%.o: src/%.S
	$(AS) $(TARGETFLAGS) $(ASFLAGS) -MF"deps/$*.d" -MD -c $< -o $@
libc/objs/%.o: libc/src/%.cpp
	$(CXX) $(TARGETFLAGS) $(CXXFLAGS) -MF"libc/deps/$*.d" -MD -c $< -o $@
libc/objs/%.o: libc/src/%.S
	$(AS) $(TARGETFLAGS) $(ASFLAGS) -MF"libc/deps/$*.d" -MD -c $< -o $@

run: Startup.bin
	temu -rw tinyemu.cfg

-include deps/*.d libc/deps/*.d

clean:
	rm -f objs/* deps/* libc/objs/* libc/deps/* Startup Startup.bin

В нём много дублирования кода. Есть способы сокращения дублирования? Autotools не предлагать.

 

X512
()

Перестала работать индикация новых сообщений в теме

Это у одного меня так? Вроде бы браузер не обновлял, настроек не менял. Под индикацией я понимаю появление ссылки «Обновить» внизу при появлении новых сообщений.

 

X512
()

Выключить в Firefox переход в полноэкранный режим через JavaScript

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

 ,

X512
()

Отправить патч через Git без изменений файлов

Есть проект куда патчи принимаются только через Git, проект на Gerrit. Возможно ли отправить патч не изменяя локальные файлы? Изменение локальных файлов ломает инкрементальную сборку, сборка с нуля занимает примерно 2 часа а инкрементальная сборка 1-2 минуты. Делать копию исходников не вариант, исходники занимают несколько гигабайт и уже используется sparse checkout. Проект использует линейную историю без веток, все патчи rebase’ятся. Отправлять текущую ветку напрямую нельзя, т.к. там есть коммиты, которые не надо отправлять.

Сейчас делается как-то так:

git checkout publish
git reset --hard origin/master
git am <patch list>
git push origin HEAD:refs/for/master
git checkout master

 , ,

X512
()

Как работают композиторы

Есть ли статьи описывающие работу композиторов в Линуксе (Wayland и т.п.)? Интересует механизм синхронизации отрисовки (vsync), как происходит перерисовка (обмен (swap) буферами или копирование заднего буфера в передний, перерисовывается всё при каждом изменении или отслеживается изменяемая область), обмен буферами между процессами, взаимодействие с Mesa.

 , , ,

X512
()

Разрешённые символы в /etc/passwd

Экспериментируя с поддержкой нескольких пользователей в Haiku обнаружил что если в полях пользователя есть символ «:», то создаётся битый файл /etc/passwd (#16611). Система не должна допускать порчу базы пользователей при создании пользователя. Есть ли список запрещённых символов в /etc/passwd, есть механизмы экранирования? В man не могу ничего найти по этой теме кроме того, что почему-то в имени пользователя запрещены большие буквы.

 ,

X512
()

Собрать X.Org с окном SDL в качестве экрана

Как собрать X.Org так, чтобы его можно было запустить в окне, а не на физическом экране? Окно желательно SDL, но можно и что-нибудь другое. В зависимостях, включая зависимости сборки, не должно быть libdrm, libpciaccess, mesa и т.п.. Поддержка OpenGL и аппаратного ускорения не обязательна.

Поиск в основном даёт вариант наоборот: сборку SDL под X11.

 ,

X512
()

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