LINUX.ORG.RU

Сообщения utf8nowhere

 

Выгрузить nouveau и восстановить текстовый VGA-режим

Форум — General

С драйвером nouveau GPU лочится при перезагрузке и вешает ядро.

Можно передать параметр ядру nouveau.modeset=0, но тогда nouveau вообще не загрузится и иксы будут работать с VESA-драйвером.

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

Попробовал делать как описано в https://nouveau.freedesktop.org/wiki/KernelModeSetting/, а именно:

echo 0 > /sys/class/vtconsole/vtcon1/bind
rmmod nouveau

Драйвер, конечно, выгружается и при этом изображение с монитора пропадает (вообще пропадает сигнал с кабеля и монитор засыпает). Хотелось бы вернуться в текстовый VGA-режим. На echo 1 > /sys/class/vtconsole/vtcon0/bind — 0 реакции. Монитор не видит сигнала на кабеле.

Пробовал делать как описано в https://www.kernel.org/doc/Documentation/fb/fbcon.txt, а именно сохранить состояние VGA (vbetool vbestate save) и восстановить его:

vbetool vbestate restore < <vga state file> 
echo 0 > /sys/class/vtconsole/vtcon1/bind
rmmod nouveau

После выполнения первой команды режим меняется, но, похоже, не на текстовый VGA, т.к. я вижу какой-то мусор из пикселей в верхней части экрана и всё. rmmod nouveau вообще уходит в D-state.

 ,

utf8nowhere
()

systemd mask unit in a container

Форум — Admin

Как сделать так, чтобы определённый юнит не запускался в контейнере? (в systemd-nspawn, например)

Возможно ли сделать так, чтобы в контейнере был активен другой таргет? (multiuser вместо graphical)

 ,

utf8nowhere
()

Read-only root on NFS

Форум — Admin

Попробовал обеспечить загрузку системы с read-only /, смонтированному по NFS.

Исходные данные:

  • Ubuntu 18.04 Mate, установлена в виртуалку, rootfs перенесен с виртуального диска на NFS-сервер
  • Изменён конфиг initramfs для загрузки с NFS, изменён fstab, initramfs и ядро закинуты в каталог tfpt-сервера

Система типа грузится по NFS, но ожидаемо обламывается куча юнитов (Failed to start Create Volatile Files and Directories, Failed to start Load/Save Random Seed, Failed to start Network Time Synchronization и т.д.), т.к. им нужен / в rw. Логин не работает, даже автологин.

Нашёл такую штуку, как overlayroot: https://spin.atomicobject.com/2015/03/10/protecting-ubuntu-root-filesystem/ Монтирует / как overlayfs с нижним ro-слоем и верхним rw. Я использовал описанный по ссылке вариант с rw-слоем в tmpfs.

Поставил, настроил. Судя по логам загрузки, скрипты overlayroot отрабатывают на стадии initramfs. Но дальше лог загрузки тот же: те же юниты не стартуют, залогиниться не получается. Есть подозрение, что systemd обнуляет все усилия скриптов overlayroot по созданию rw-корня с помощью overlayfs перемонтируя / (Starting Remount Root and Kernel File Systems...)

Какие идеи?

 , , , ,

utf8nowhere
()

Is it intentional что Клаб можно смотреть через Комментарии пользователей?

Форум — Linux-org-ru

Если ты не залогинен, то получаешь 403 при попытке доступа к Клабу. Однако, через профиль любого пользователя видно, что он писал в Клаб.

 

utf8nowhere
()

Оптимизатор НАКАЗАЛ разработчика Clang за UB в коде

Форум — Talks

Изложение https://qinsb.blogspot.ru/2018/03/ub-will-delete-your-null-checks.html

Однажды один человек закоммитил один коммит в clang и компилятор перестал проходить один из тестов. После тщательного анализа выяснилось, что в коде была возможна ситуация UB, но оптимизатор её проигнорировал и соптимизировал код так, как будто эта ситуация невозможна.

Вот код, который моделирует поведение кода из коммита (Код покоцан движком блога, вырезаны аргументы шаблонов. Я не буду пытаться их восстановить, т.к. аргумент-тип у llvm::SmallVector может быть понят из контекста, где надо, а аргумент-число — не особо важен):

struct Foo {
  llvm::SmallVector Vals;
};
struct Bar {
  Foo *getLastFoo() { return Foos.empty() ? nullptr : Foos.back(); }
  llvm::SmallVector Foos;
  void *Pad;
  void doUB();
};
void __attribute__((noinline)) Bar::doUB() {
  if (getLastFoo()->Vals.empty())
    puts("Vals empty");
  else
    puts("Vals non-empty");
}
int main() {
  Bar b;
  b.doUB();
}

В SmallVector::back стоит assert на не-пустоту вектора (!empty()). Т.к. код этих методов инлайнится (в getLastFoo) и компилятор видит, что проверка на пустоту в assert-е находится в false-ветке тернарного оператора, в условии которого та же самая проверка уже сделана, то в assert подставляется константа true и, в общем, можно считать, что assert выкинут.

Далее. Компилятор видит, что результат вызова getLastFoo в Bar::doUB() всегда разыменовывается, поэтому он не может быть нулевым указателем. Следовательно, условие тернарного оператора в getLastFoo не может быть истинным и при инлайнинге оператор безусловно заменяется на свою false-ветку (Foos.back() (в котором уже нет проверки на empty, т.к. assert был выкинут ранее)).

SmallVector устроен так, что в пустом векторе back() указывает внутрь самого SmallVector, и, короче говоря, код интерпретирует кусок памяти объекта Bar b как объект типа struct Foo и выполняет проверку Vals.empty() с непредсказуемым результатом.

Автор заканчивает тем, что радуется новому юз-кейсу для опции -fno-delete-null-checks, но по-прежнему не считает, что эту опцию стоит использовать для решения проблем ядра linux.

(видимо, имеется в виду типичный говнокод ядра

struct foo* p = bar->p;

if (!bar) {
...
}
который ядрописатели не считают багом, а винят в своих кривых руках компиляторы)

Перемещено tailgunner из development

 ,

utf8nowhere
()

Откуда такой восторг от ThinkPad?

Форум — Talks

В Ноутбук за 35-40 тысяч рублей настойчиво рекомендуют refurbished ThinkPad.

Ну у меня ThinkPad TXXXs. Не стал бы его особо рекомендовать кому-то. (И сам не буду брать больше.) Ноут как ноут. Дрянной пластиковый корпус: потрескался, стоило мне чуть-чуть переборщить с затягиванием винтика при сборке.

Полно ноутов с хорошим экраном и металлическим корпусом и не дороже ThinkPad-ов.

Откуда такой восторг от ThinkPad?

 ,

utf8nowhere
()

В каком месте XCB «асинхронный»?

Форум — Development

Вместо ответов на запрос он возвращает так называемые cookies, по которым можно получить ответ. И ждать ответа с использованием cookies надо — та-дам! — синхронно, блокируясь. Это вместо действительно асихронных колбэков.

Конечно, вы можете сказать, что cookies это Futures, а Futures это более лучший, более высокоуровневый механизм, чем колбэки. Но Futures хороши когда они и правда высокоуровневые и предоставляют, например, возможность их композиции. А куцые Futures, типа XCB cookies, хуже колбэков. IMO.

 ,

utf8nowhere
()

linux, Intel GPU, битые шрифты

Форум — Desktop

www.linux.org.ru/images/17858/original.gif

Не видел подобного года с 2012-го.

В Ubuntu 17.10 опять вернулось.

Thinkpad T410s, i5-520M со встроенным видео, ядро 4.13.0-21-generic.

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

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

Теперь увидел «фирменную» фишку интеловских драйверов — битые шрифты, про которую уже почти успел забыть со времён Арча на EEE PC.

UPD: что касается тормозов иксов:

[ 40510.329] (II) intel(0): EDID vendor "LEN", prod id 16438
[ 40510.329] (II) intel(0): Printing DDC gathered Modelines:
[ 40510.329] (II) intel(0): Modeline "1440x900"x0.0  106.89  1440 1488 1520 1924  900 903 909 926 -hsync -vsync (55.6 kHz eP)
[ 40510.329] (II) intel(0): Modeline "1440x900"x0.0   89.26  1440 1488 1520 1740  900 903 909 1026 -hsync -vsync (51.3 kHz e)
[ 40515.096] (II) intel(0): resizing framebuffer to 1920x1080
[ 40515.162] (II) intel(0): switch to mode 1920x1080@60.0 on VGA1 using pipe 0, position (0, 0), rotation normal, reflection none
[ 42566.284] (EE) intel(0): Failed to submit rendering commands (No such file or directory), disabling acceleration.
Есть такой багрепорт https://bugs.freedesktop.org/show_bug.cgi?id=103509
И такой https://bugs.freedesktop.org/show_bug.cgi?id=103025

 

utf8nowhere
()

Return при автологине в терминале выдаёт код 0x0d вместо 0x0a

Форум — General

Настраиваю автологин при использовании machinectl login, через /etc/systemd/system/container-getty@.service.d/override.conf:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --noclear -a user --keep-baud pts/%I "115200 38400 9600" $TERM

Автологин работает, но при этом enter работает «криво». Если запустить xxd и понажимать enter, то xxd печатает 0d.

Если из опций agetty убрать -a user, т.е. автологин, и залогиниться с вводом пароля, то xxd печатает 0a, как и должно быть.

bash переваривает кривое поведение enter-а при автологине, а многий другой софт — нет, приходится жать Ctrl-J, что неудобно.

stty -a при автологине

speed 38400 baud; rows 44; columns 142; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl ixon ixoff
-iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
-echoctl echoke
при обычном логине
speed 38400 baud; rows 44; columns 142; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff
-iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
-echoctl echoke
diff -u noauto auto
--ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff
+-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl ixon ixoff

Нашёл такое https://lists.freedesktop.org/archives/systemd-devel/2015-July/033533.html

Как чинить?

 , ,

utf8nowhere
()

Общие /var /etc для нескольких boot environments

Форум — General

(для нескольких экземпляров / на одной ЭВМ: от снепшотов одной системы (как минимум) до разных неродственных дистрибутивов (как максимум))

Я так понимаю, в debian/ubuntu это не реально, т.к. systemd там собирается с отключённым systemd-sysusers.service, и sysusers.d для создания системных пользователей не используется. Поэтому несколько систем передерутся за /etc/passwd: если в двух системах есть пакет с демоном, которому нужен пользователь и этот пакет удаляется в одной из систем, то из /etc/passwd выпилится запись о пользователе и при перезагрузке во вторую систему выйдет лажа.

Насколько реально это в RHEL/её производных?

 , ,

utf8nowhere
()

Поеттеринг сознался в диктаторстве

Форум — Talks

В http://0pointer.de/blog/projects/on-etc-sysinit.html Поеттеринг называет избавление от дистрибутиво-специфичных конфигов «дебалканизацией»:

Configuration stored in these files works against de-balkanization of the Linux platform.

«балканизация» — это дробление балканских государств на более мелкие, например, распад Югославии. Дебалканизация — типа обратный процесс. Т.е. Поеттеринг считает себя кем-то типа Милошевича и отрицает право дистрибутивов на самоопределение.

Не пора ли созвать Международный трибунал по systemd?

 , ,

utf8nowhere
()

javaws: выдать AllPermission неподписанному jar

Форум — Development

или «человек разумный против макакотехнологии».

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

Найденный в интернете способ написать

grant {
    permission java.security.AllPermission;
};
в javaws.policy у Oracle Java 8 и IcedTeaWeb/OpenJDK-8 эффекта не возымели ни там, ни там. Исключение по-прежнему вылетает и запустить приложение нельзя. А очень нужно.

Всякие добавления сайтов в списки исключений и прочие отключения проверок сертификатов в Java Control Panel тоже не помогли.

Как это победить?

 ,

utf8nowhere
()

Справедливое распределение ресурсов (CPU, RAM etc.) для нескольких пользователей

Форум — Admin

В общем, задача ясна — раздавать ресурсы пользователям поровну, чтобы один пользователь, создав 1000 процессов, не мешал пользователям, создавшим 10 процессов, т.е. не сожрал всё CPU-time.

Оказалось, что знаменитейшая величайшая распрекраснейшая shell-code-несодержащая известнейшая современнейшая несравненная блистательная незаменимая неотразимая непогрешимая безглючная безбажная и прочая и прочая systemd, после стольких лет разработки и пиара, не может решить эту тривиальную задачу (см. https://github.com/systemd/systemd/issues/2556).

А что может решить эту задачу?

Обращаю внимание, что меня интересует готовое решение, а не капитанство «ну это с помощью cgroups можно решить)))0)0».

 ,

utf8nowhere
()

Ещё более ублюдочный шрифт нельзя использовать?

Форум — Linux-org-ru
code {
    font-family: "Droid Sans Mono", monospace, sans-serif;
}

Droid Sans Mono? Серьёзно? Видели, как в нём выглядят -> или -=? А сравните (-){-}[-] с (+){+}[+]

Никак нельзя было не выбрать шрифт, в котором - и скобки выравнены по высоте не так, как + и остальные символы, вроде < > = и т.д.?

 

utf8nowhere
()

С помощью GDB можно удобно отлаживать форкающиеся процессы?

Форум — Development

Есть одна софтина, которая запускает fork-ом условный сервер и общается с ним как клиент (или наоборот).

Можно это как-то отлаживать без боли с помощью gdb? Бряки ставить в сорцах и ловить остановку на них в разных процессах?

Если скомандовать set detach-on-fork off, всё к чёрту зависает. Я в курсе про inferiors, но вот IDE — нет. И вообще это костыль.

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

 , ,

utf8nowhere
()

Танцпольный аватар

Форум — Linux-org-ru

 

utf8nowhere
()

memory_order_consume deprecated в C++17

Форум — Development

Вообще не понятно зачем эта НЁХ была нужна.

 

utf8nowhere
()

Intel напрягся: новые российские процессоры «Байкал» превзошли западные аналоги

Форум — Talks

На этой неделе Министерство промышленной торговли выдало компании «Т-Платформы» субсидию в размере 150 млн рублей, которая пойдет на разработку сверхпрочного ноутбука, в котором будут использоваться отечественные процессоры «Байкал».

Как сообщает Slovodel, отечественное «железо» будет превосходить западные аналоги по ряду важнейших критериев.

«Неубиваемый» ноутбук
«Т-Платформы» начала активную работу после введения западными странами санкций в рамках курса импортозамещения и уже реализовала несколько проектов. На данный момент компания разрабатывает два проекта. Первый посвящен ноутбуку, который создают на базе процессора х86 Intel, второй проект — полностью отечественная разработка на базе процессора Baikal-M компании «Байкал Электроникс», дочерней компании «Т-Платформы». При этом ноутбуки будут работать на операционной системе Linux, но по желанию заказчиков они будут встраивать Windows 10.

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

«В определенных сегментах такая вычислительная техника, безусловно, востребована, «промышленные» ноутбуки нужны для разведки месторождений, добычи газа и нефти, где сложные условия, в том числе и погодные, но вопрос, естественно, в цене: будут ли российские ноутбуки конкурентоспособны относительно зарубежных аналогов. Если мы собираемся развивать свою экономику, нам нужно иметь собственные технологии, не локализовать импортные, а именно производить собственное оборудование», – говорит председатель совета Ассоциации производителей электронной аппаратуры и приборов Светлана Аполлонова.

По расчетам разработчиков, для создания «промышленного» ноутбука им понадобится не менее года.

На смену Intel
До этого компания разработала российский двухъядерный процессор Baikal-T1 на 32-битном ядре MIPS Warrior. По словам представители российского холдинга «Рикор» Алексея Ванина, цены на отечественные процессоры будут варьироваться в пределах $50, тогда как тот же процессор Intel Core i3-3110M стоит сейчас $100. Комбинация процессора и высокоскоростных интерфейсов позволяет работать чипу быстро и при минимальной затрате энергии. Производитель заявляет о высокой конкурентоспособности российского процессора.

В прошлом году партия российского производства была отправлена в немецкий вычислительный центр Forschingszentrum Julich, Университет штата Нью-Йорк в Стоуни-Брук, Рижский технический университет, Финский суперкомпьютерный центр CSC-IT Center for Science.

Также идут переговоры с российским производителем смартфонов Yota Devices. Основатель «Байкал Электроникс» Всеволод Опанасенко пояснил:

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

Сейчас российскими процессорами интересуются свыше 100 компаний, в том числе и из Тайваня и ряда европейских компаний. При этом, по данным статистики, объемы продаж процессоров Intel и AMD в России снижаются.

Дочерняя компания «Байкал Электроникс» при участии «Ростеха» и «Роснано» с 2014 года создает микропроцессоры Baikal для персональных компьютеров и микросерверов. В августе 2015 года Экспертный совет Фонда развития промышленности одобрил 500-миллионный рублевый займ для того, чтобы выпустить процессор Baikal-T1 в массовое производство. К 2020 году на рынок поступит не менее 5 млн этих процессоров.

http://www.macdigger.ru/macall/intel-napryagsya-novye-rossijskie-processory-b...

 , , ,

utf8nowhere
()

Не нарушает ли ник «u0atgKIRznY5» правила регистрации?

Форум — Linux-org-ru

www.linux.org.ru/people/u0atgKIRznY5/profile

https://www.linux.org.ru/help/rules.md

При регистрации на сайте запрещается: использовать длинные имена, состоящие из произвольного набора символов, в том числе: случайные последовательности; кодирования uuencode, base64, binhex; хеши; uuid и т.п;

 

utf8nowhere
()

Спасибо товарищу maxcom-у за наше счастливое детство!

Форум — Linux-org-ru

Прочитал в Удаление ценных для сообщества постов (комментарий)

tailgunner временно лишен модераторских полномочий

и сразу настроение поднялось.

Надеюсь, этого врага народа по результату голосования модераторов вообще забанят.

Да здравствует наша цветущая социалистическая родина!
Да здравствует наш любимый и мудрый вождь товарищ maxcom!

 

utf8nowhere
()

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