LINUX.ORG.RU

Сообщения u5er

 

Почему удалили тему?

Форум — Linux-org-ru

https://www.linux.org.ru/forum/general/17938729

Пользователя забанить - это одно, но в самой теме вроде нет никаких нарушений.

Чисто из любопытства интересуюсь.

 

u5er
()

tk scaling игнорируется

Форум — Development

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

Версия 8.6.14_1.

 

u5er
()

Нелогичная логика

Форум — Development

Куприв!

Пишу я тут очередной ляс и в процессе компиляции компилятор и даже линковщик(!) выдаёт мне такие предупреждения:

cc -Wall -O2   -c -o sim7600-at.o sim7600-at.c
sim7600-at.c: In function 'simApplicationToolkit':
sim7600-at.c:1013:17: warning: implicit declaration of function 'gets'; did you mean 'fgets'? [-Wimplicit-function-declaration]
 1013 |                 gets( userAns );
      |                 ^~~~
      |                 fgets
cc -s  sim7600-at.o utils_pdu_sms.o   -o sim7600-at
/usr/bin/ld: sim7600-at.o: in function `simApplicationToolkit':
sim7600-at.c:(.text+0xf91): warning: the `gets' function is dangerous and should not be used.

Справедливо, но тогда почему нет подобного предупреждения при использовани strncpy, например, которая тоже дырявая, даже не смотря на n?

 

u5er
()

Вопрос по настройке полосы прокрутки gtk

Форум — Desktop

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

Смотрел документацию.
https://docs.gtk.org/gtk3/class.Settings.html#properties
https://docs.gtk.org/gtk4/class.Settings.html#properties
Но не нашёл там подходящих настроек.

Каким образом можно отключить такое поведение?

 

u5er
()

uBlock Origin в хроме уже всё, а божья коровка ещё не готова

Форум — Talks

https://www.opennet.ru/opennews/art.shtml?num=62859

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

 

u5er
()

Кто-нибудь из форумчан на практике сталкивался с ошибкой при работе sprintf()?

Форум — Development

Вопрос в заголовке. Если да, то распишите подробности. В манах пишут про отрицательное значение при ошибке, но списка errno нет.

Вопрос снят. Судя по ответам в теме и поиску в сети, есть смысл избегать следующих функций в критически важном коде: printf(), fprintf(), dprintf(), sprintf(), snprintf(), vprintf(), vfprintf(), vdprintf(), vsprintf(), vsnprintf(). Эти функции имеют общую man-страницу printf(3) и в ней указано, что эти функции могут завершаться с ошибкой, но при этом не приводится списка возможных ошибок, поэтому невозможно предусмотреть ошибки заранее.

 

u5er
()

Отрыгнула клавиатура - как такое возможно?

Форум — Talks

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

Поделитесь опытом - у кого-нибудь вот так запросто умирали клавы?

u5er
()

Как организовать автовыгрузку из свопа?

Форум — Desktop

Ситуация следующая. Запускается программа А, которая занимает какую-то часть памяти. Запускается программа Б, которой не хватает оставшейся свободной памяти, поэтому программа А отправляется в своп. После закрытия программы Б, программа А остаётся в свопе и из-за этого люто тормозит. Приходится делать swapoff -a и swapon -a чтоб вернуть прежнюю отзывчивость.

Вопрос: есть ли способы настроить поведение таким образом, чтоб при освобождении памяти система автоматически доставала данные из свопа не дожидаясь момента, когда они понадобятся?

 

u5er
()

Ищу набор тестов для проверки парсера UTF-8

Форум — Development

Организовал я свой велопарсер текста c кодировкой UTF-8. Теперь я хочу его проверить. Существуют ли в природе «эталонные» строки, по которым можно протестировать парсер? В сети нашёл только это https://www.w3.org/2001/06/utf-8-wrong/UTF-8-test.html

 ,

u5er
()

Подскажите по алгоритму обработки массива с дырками.

Форум — Development

Допустим, есть некий массив вида

{ data, data, NULL, data, data, NULL, data }

То есть это как бы обычный массив с данными, но в нём есть «дырки». Пытаюсь организовать доступ к этому массиву так, чтоб он был виден как массив без дырок

{ data, data, data, data, data }

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

{ 0, 1, 3, 4, 6 }

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

 ,

u5er
()

Как правильно вычитывать строки из потока?

Форум — Development

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

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

Первый вариант хорош своей простотой, но плох большим количеством вызовов read()/recv(). Второй вариант хорош тем, что число вызовов read()/recv() будет минимально, но плох тем, что можно вычитать более одной строки и тогда вокруг данных после конца строки начинается пляска с бубном.

Как вообще принято реализовывать подобные вещи?

 

u5er
()

СИ: enum VS #define

Форум — Development

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

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

P.S. Тема не имеет под собой какого-то конкретного случая. Просто хочу посмотреть на опыт других программистов.

 

u5er
()

Waydroid: ручная установка native bridge

Статьи — Desktop

Т.к. в сети информации толком нет (ну или я просто не умею её искать), то решил написать эту статью, чтоб исправить это.

Введение

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

Многим играм и программам для андроид требуется архитектура arm для работы. Houdini — это набор библиотек-трансляторов, которые позволят запускать их на архитектуре x86 и x86_64. Эти библиотеки были взяты из образов андроид от майкрософт. Есть аналогичный набор библиотек NDK, которые были взяты из образов андроид от гугла.

В данном примере я буду использовать houdini для Android 11, который идёт в штатной поставке waydroid. Там используется образ Lineage OS, но сути это не изменит.

Для начала скачиваем сами библиотеки. Например, отсюда https://github.com/supremegamers/vendor_intel_proprietary_houdini В данном случае нас будет интересовать содержимое каталога prebuilts.

( читать дальше... )

 ,

u5er
()

Напомните название мобильника со свободным 3g модемом

Форум — Talks

Помню давно мелькали новости про свободный мобильник, у которога 2 модема: основной свободный 3g и второй проприетарный 4g. Там можно было отключать питание 4g модема. Не могу найти новость. Была достаточно давно 4+ лет назад.

u5er
()

Покритикуйте подход: запуск функций из массива указателей

Форум — Development

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

int sx1509_init( struct BicOS* os ){
	
	int res;
	int i;
	
	const struct {
		int (*function)( struct BicOS* );
		const char* name;
	} initSequence[] = {
		{ gpioSetup,                  "GPIO setup"                    },
		{ deviceSetup,                "Device setup"                  },
		{ interruptHandlerSetup,      "Interrupt handler setup"       },
		{ interruptEventHandlerSetup, "Interrupt event handler setup" },
		{ keyboardSetup,              "Keyboard setup"                },
		{ debug_key_printer_register, "Deug key printer"              },
		{ NULL,                       NULL                            }
	};
	
	for( i = 0; initSequence[i].function; i++ ){
		
		res = initSequence[i].function( os );
		if( res ){
			printf( "{B} [sx1509] %s failed.\n", initSequence[i].name );
			return -1;
		}
	}
	
	return 0;
}

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

 

u5er
()

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

Форум — Desktop

Гит снова выходит на связь:

$ git clone -b v5.3.1 --recursive https://github.com/espressif/esp-idf.git
Клонирование в «esp-idf»...
remote: Enumerating objects: 673982, done.
remote: Counting objects: 100% (9539/9539), done.
remote: Compressing objects: 100% (3825/3825), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
error: 7330 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: неожиданный конец файла
fatal: fetch-pack: invalid index-pack output

Пробовал все советы отсюда ничего не помогло: ошибка всё равно происходит, но немного позже. Есть ещё варианты?

Также пробовал скачать zip-архив и распаковать его, но в моём случае это не сработало, т.к. сама idf полагается на гит.

Дополнительный вопрос: есть ли drop-in замена гиту, в которой разработчики осилили докачку?

 , ,

u5er
()

Как часто у вас зависает домашний компьютер?

Голосования — Голосования

Опрос касается потребительского железа.

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

  1. забыл, когда последний раз вис 316 (51%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. пару-тройку раз в год или реже 123 (20%)

    ****************************************************************************************************************************

  3. очень давно 93 (15%)

    **********************************************************************************************

  4. пару-тройку раз в месяц или реже 49 (8%)

    *************************************************

  5. пару-тройку раз в неделю или реже 20 (3%)

    ********************

  6. каждый день 12 (2%)

    ************

  7. домашнего компьютера нет 10 (2%)

    **********

Всего голосов: 623

 , ,

u5er
()

Графические программы засыпают при переключении терминала

Форум — Desktop

Например, на tty1 запущены иксы и в них запущены различные программы. Если я переключусь на tty2, то эти программы через 5-10 секунд перестанут работать до тех пор, пока не переключусь обратно на tty1. Есть ли способ обойти это малой кровью без накатываний патчей на ядро?

u5er
()

Ищу специалиста по Dracut

Форум — Desktop

В очередной раз я накатываю void на ssd на f2fs и в очередной раз я сталкиваюсь с ошибкой FLUSH_MERGE not compatible with readonly mode.

В этот раз меня это выбесило основательно и я закатал рукава и начал искать, откуда лезет эта дичь. Начинаем по порядку. Если ручками монтировать фс командой вида mount /dev/sda1 /mnt/1, то всё ок. Когда это делает initramfs, то не ок.

В сети нашёл информацию по прописыванию либо rw либо noflush_merge в командную строку ядра. Я решил пойти по пути прописывания rw - не помогло.

Дальше я полез изучать устройство содержимого initramfs. Опции монтирования лежат в /etc/cmdline.d/95root-dev.conf. Вот его содержимое в моём случае

 root=UUID=e10bcf2f-f3de-4bb4-993c-dbb82afa09ad rootfstype=f2fs rootflags=rw,noatime,lazytime,background_gc=on,nogc_merge,discard,discard_unit=block,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,barrier,extent_cache,mode=adaptive,active_logs=6,alloc_mode=default,checkpoint_merge,fsync_mode=posix,memory=normal,errors=continue

Как видно, тут есть опция rw, значит всё хорошо. Более того, если руками смонтировать раздел с этими опциями, то всё монтируется без проблем.

Дальше я решил сравнить эти опции с теми, которые используются фактически при монтировании. Оказалось, что в самом конце к ним добавляется ,rw,ro и таким образом фс пытается смонтироваться в режиме только чтения! И это вызывает ошибку.

Я полез искать по скриптам место, где отрабатывает вот это вот всё и нашёл файл /usr/lib/dracut/hooks/mount/99-mount-root.sh. Практически в самом начале есть такой участок кода

    _rflags_ro="$rflags,ro"
    _rflags_ro="${_rflags_ro##,}"

    while ! mount -t "${rootfs}" -o "$_rflags_ro" "${root#block:}" "$NEWROOT"; do
        warn "Failed to mount -t ${rootfs} -o $_rflags_ro ${root#block:} $NEWROOT"
        fsck_ask_err
    done

Из этого куска кода ясно, что к опциям монтирования в хвосте всегда приписывается ro.

Присмотревшись повнимательнее, я заметил, что параметры ro и rw в параметрах ядра всё же передаются и приписываются предпоследним параметром, но погоды это не делает, т.к. в конце всегда дописывается ro.

Теперь вопрос - они там на приколе что ли совсем? Это действительно захардкожено или я чего-то не понимаю? Как передать ему rw?

 ,

u5er
()

Странные странности AMDGPU

Форум — Desktop

Карта rx7900xt. Система void.

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

В ходе экспериментов удалось получить выхлоп хромого в консоль

[4160:4160:0920/203250.113396:ERROR:command_buffer_proxy_impl.cc(325)] GPU state invalid after WaitForGetOffsetInRange.
[4160:4160:0920/203250.149693:ERROR:gpu_process_host.cc(1007)] GPU process exited unexpectedly: exit_code=512

При этом в логе иксов начинается флуд

[ 13709.802] (WW) AMDGPU(0): flip queue failed: Invalid argument
[ 13709.802] (WW) AMDGPU(0): Page flip failed: Invalid argument
[ 13709.802] (EE) AMDGPU(0): present flip failed
[ 13709.831] (WW) AMDGPU(0): flip queue failed: Invalid argument
[ 13709.831] (WW) AMDGPU(0): Page flip failed: Invalid argument
[ 13709.831] (EE) AMDGPU(0): present flip failed
[ 13709.863] (WW) AMDGPU(0): flip queue failed: Invalid argument
[ 13709.863] (WW) AMDGPU(0): Page flip failed: Invalid argument
[ 13709.863] (EE) AMDGPU(0): present flip failed

Найти в сети ничего внятного не смог - есть похожие темы/багрепорты, но там глухо. Продолжаю наблюдения.

 , ,

u5er
()

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