LINUX.ORG.RU

Сообщения kirill_rrr

 

Слишком много free памяти

Raspberry Pi 4 4Gb, Raspbian, ядро 6.1

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

rrr@raspberrypi:/media/files $ free -m
               total        used        free      shared  buff/cache   available
Mem:            3794        1969         671         788        1152         431
Swap:          38145        2898       35247

Тюнинг памяти:

echo z3fold > /sys/module/zswap/parameters/zpool
echo 25 > /sys/module/zswap/parameters/max_pool_percent
echo 1 > /sys/module/zswap/parameters/enabled
echo 64 > /proc/sys/vm/page-cluster
echo 100 > /proc/sys/vm/swappiness
echo 500 > /proc/sys/vm/watermark_scale_factor
echo 32768 > /proc/sys/vm/min_free_kbytes

Также подключена tmpfs в /tmp и туда вынесены временные файлы пользователя, как минимум кеш браузера, миниатюр и qml.

Насколько я знаю, free-память это не всякие кеши и буферы, не tmpfs, не zswap. До сих пр я не встречался с ситуациями, когда +-15-20% памяти простаивает в холостую во время дефицита - кроме одного раза, когда cgrops_mem позволял пользователю использовать в сеансе не более 50%, но даже там память использовалась под дисковый кеш. При открытии новых вкладок браузера система удерживает свободными от 480М до 800М. При создании крупного файла в /tmp показатель free кратковременно снижается, но затем память откачивается до того же уровня.

Ядро 6.1 перешло на cgrops v2, и я вроде как не вижу там управления памятью (для v1 я его всегда отключал), но возможно я просто не знаю куда смотреть. Но вообще по ощущениям похоже на какой то лимит со стороны cgrops.

Что это мжет быть? Свопинг конечно мягкий, но он чувствуется и кажется могло бы работать ещё лучше на эти самые 300-500М.

 , ,

kirill_rrr
()

Отключить UAS для всех юсб-усройств.

Воюю с неприятным багом ЮСБ3 на Raspberry Pi 4.

Суть в том, что при активном i/o всё падает и помогает только ребут. Планы А и Б уже не помогли, план С состоит в том, чтобы отклчить UAS и это вроде как длжо помочь. Проблема - отключать его надо пераметром ядра при загрузке, причём для каждого конкретного устройства по его идентификаторам.

Нагуглил предложение вписать в строку параметров ядра usbcore.quirks=usb-storage:uas, но это не помогло (в смысле UAS не отключен).

Кто нибудь в курсе как это работает и отключается?

 , uas,

kirill_rrr
()

Alt Linux и aptitude

Пробую на вкус Alt на Raspberry Pi 4. Есть много странностей, но начать надо с пакетника.

Synaptic не умеет продвинутого разрешения зависимостей и чистки мусора, сидеть на чистом apt-get не интересно, но есть же лучший ПМ, aptitude!

Который вроде бы всё может, но почему то отказывается реагировать на большую часть команд, например g (применить изменения), или оно же, но через меню Ctrl+T. По сути не проходит ни одна операция с пакетами!

 , ,

kirill_rrr
()

Настройка времени и косяки systemd

Тихо и незаметно подкрался ещё один косяк. С тех пор, когда я последний раз настраивал дуалбут, управление временем было передано в systemd, а эти обладатели мудрых фасеточных глаз по какой то причине решили, что при синхронизации времени через ntp не требуется переводить аппаратные часы. Так я узнал, что Local time и RTC time это отдельные понятия и всегда были.

За возвращение нормального поведения в теории должна отвечать timedatectl set-local-rtc 0 с опцией --adjust-system-clock, только это не работает. Другой полезной информации найти не удалось - яндекс упорно предлагает интрукции по настройке systemd-tymesyncd.

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

 , ,

kirill_rrr
()

Raspberry Pi 4 и Wi-Fi

Запаковал таки Пи4 в самодельный корпус вместе с переферией и питанием, при запуске понял что не предусмотрел 2 маленькие детальки: во первых заблокировал доступ к эзернет-порту (это другой вопрос, не трогаем), а во вторых - сигнал wifi в горизонтальной плоскости напрочь забит то ли помехами, то ли окружающими устройствами.

Теореически сигнал роутера ловится если поставить корпус на бок перпендикулярно направлению на роутер, вот только корпус в форм-факторе ноутбука и это абсолютно нерабочее положение. Повернуть или вынести саму плату тоже не вариант.

Также вспомнился случай, когда я прикручивал Пи4 к официальному 7" тачскрину от Распберри - эффект был аналогичный, wifi забит наглухо - энергоэффективной мобильной торрентокачалки не получилось. Кажется терять связь в любой непонятной ситуации у этой пародии на антену хроническое. А ведь txpower заявлен на уровне 30дбм!

Есть 2 очевидных способа решения проблемы: внешний usb-wifi с антеной (будет планом-Б, у меня уже заняты все 4 порта) и инструкция по модификации https://www.youtube.com/watch?v=MTwWnZG8wUY которая кажется мне довольно трудно реализуемой и рискованной. Других инструкций по модификации антены Пи4 я не встретил (Для Пи3 есть сразу 2 варианта, причём они проще).

Собственно вопросы: Есть ли какие нибудь ещё варианты и чем грозит для платы неудачная попытка пайки по этому варианту? Сгорит всё, или просто останусь с и так нерабочим wifi-модулем?

 , , модификации

kirill_rrr
()

bash, ffmpeg, какой-то трындец и непонятки

Как то давно я написал себе скрипт-конвертер мультимедийных файлов, всё как положено, многопоточный с контролем потоков, с рекурсивным сбором из папки, и давно им пользуюсь иногда внося изменения. Он отлично работает на RPi3 с дебиан8 и ffmpeg 3.4. Но вот я решил ускорить кодирование сериала на нескольких машинах, отдал один сезон RPi3 а второй попробовал кодировать на других компах с помощью самбы. И на них начался трешак и падения в части многопоточности - 1-2 файла отправлялись на кодирование, медленная работа из за того, что ffmpeg срёт ошибками (вывод подавлен, но он это делает и вешает себе главный поток), и обрыв собственно скрипта-распределителя потоков.

Вот скрипт. Общий принцип: чистка мусора, подготовка рабочей папки, затем создание скрипта-модуля convert.bash, который принимает данные о кодируемом файле и дёргает собственно ffmpeg. В коде convert.bash захардкожена строка команды. Затем собираерся рекурсивный список файлов в папке и для него начинает крутиться цикл while read со встроенными замедлителями потоков через файлы блокировки. При запуске convert.bash файл-блокировка создаётся, а затем convert.bash его удаляет когда ffmpeg закончит работу. Обратите внимание: в нормальном состоянии вывод ffmpeg подавлен через > /dev/null 2>&1, но я его отключал для диагностики - на поведение и на глюк не влияет.

#!/bin/bash
CORE="1" # Создавать потоков

if [ "$1" = "-h" ]; then
echo 'Использование: paket_convert.bash <каталог для поиска файлов> <каталог для помещения результатов>'
echo 'Задействовано потоков: '"$CORE"
exit 0
fi

rm -R /tmp/ffmpeg/
rm /tmp/convert.bash
mkdir /tmp/ffmpeg/
id='1' # Начальный индекс файла
cd "$1"
mkdir "$2"
ALL=$( find -P ./ -type f | wc -l )

	# Создание второстепенного скрипта /tmp/convert.bash
	# $1 - id файла. $2 - путь к папке, куда надо положить результат. Файлы блокировок расположены в /tmp/ffmpeg/, имя = id, содержится строка с отн. адресом файла на перекодирование.
echo 'ALL=$( find -P ./ -type f | wc -l )' >> /tmp/convert.bash
echo 'FILE=$( cat /tmp/ffmpeg/$1 )' >> /tmp/convert.bash
echo 'DIR=${FILE%/*}' >> /tmp/convert.bash
echo 'LONG_DIR=${#DIR}+1' >> /tmp/convert.bash
echo 'NAME=${FILE:LONG_DIR}' >> /tmp/convert.bash
echo 'FILENAME=${NAME%.*}' >> /tmp/convert.bash

#
# здесь всякие варианты строк ffmpeg на все случаи жизни
#
echo 'ffmpeg -i "$FILE" -map 0:0 -map 0:1 -s 634x360 -acodec copy -vcodec libx264 -profile high -level 42 -qmax 22 "$2"/"$FILENAME".mp4 > /dev/null 2>&1' >> /tmp/convert.bash


echo 'rm /tmp/ffmpeg/"$1"' >> /tmp/convert.bash
echo 'echo $1 из $ALL завершено' >> /tmp/convert.bash
chmod +x /tmp/convert.bash
	# Конец создания второстепенного скрипта

# Начинаю крутить цикл
		find -P ./ -type f | while read FILE
		do
while [ $( ls -1A /tmp/ffmpeg | wc -l ) -ge "$CORE" ]; do
	sleep 20
done

echo "$FILE" >> /tmp/ffmpeg/"$id"
/tmp/convert.bash "$id" "$2" &
echo $id'/'$ALL" кодируется ""$FILE"
let id++
sleep 2
		done

# жду завершения задач
while [ $( ls -1A /tmp/ffmpeg | wc -l ) -gt "0" ]; do
	sleep 3
done

Собственно что произошло на компах с 10 и 11 дебианом и ffmpeg 4.1 и ещё каким то: в выводе ffmpeg начинают появляться ошибки о неправильных фреймах, битых данных, между ними проскакивают сообщения вида «кусок_имени_реально_существующего_файла не найден» ну и собственно куски имён. Через примерно минуту (2-3 цикла ожидания) основной скрипт наворачивается и перестаёт корректно считать потоки - запускает копии sleep, но не запускает convert.bash. После переборки определённого числа обрубков имён - заканчивает список и ждёт завершения задач.

Метод научного тыка показал, что в этом процессе ключевым является наличие в convert.bash строки ffmpeg -i "$FILE" {какие нибудь операции} "$2"/"$FILENAME".mp4. Самба/реальная ФС - не важно. 1 или много потоков - не важно. Аудио или видео - не важно. Кодек copy или реальное перекодирование - не важно. Наличие спецсимволов или пробелов в именах и путях - не важно.
В отрыве от ffmpeg все компоненты отрабатывают корректно, списки полные, имена целые, файлы-блокировки ставятся и удаляются, потоки считаются верно. Если оставить только ffmpeg -i "$FILE" без выходного файла - косяк не проявляется. Если вместо ffmpeg файлы дёргаются другими программами, например ffplay или vlc, или cp "$FILE" "$2"/"$FILENAME".mp4 - косяк не проявляется.

И самое интересное: изолирование ffmpeg в convert.bash в отдельном терминал командой xterm -e ffmpeg -i "$FILE" -acodec copy "$2"/"$FILENAME".mp4 вроде бы решает проблему! Но это же какой то хаос и трындец. было бы неплохо понять WTF тут происходит.

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

 , ,

kirill_rrr
()

Dolphin спамит процессы thumbnail.so

Собственно дельфин в lxde/qt5ct, дебиан 10.

Разумеется миниатюры, но не всегда они могут строиться удачно и тогда копии thumbnail.so остаются висеть в памяти и никто не занимается их чисткой. Лишняя полсотня процессов по определению лишняя, а иногда это стадо может занимаь существенный объём оперативки, так что вопросом надо как то заняться.

Наблюдается ли пробема у других пользователей дельфина? В том числе в КДЕ? Известен ли какой то выключатель, или придётся таки запустить сборку мусора через хрон?

 ,

kirill_rrr
()

lvm, чего ждать при сбоях и что потом делать?

Задача простая: объединить несколько дисков в одно блочное устройство, забить файлопомойкой на ехт4. Никаких сложных конфигураций raid, никаких снапшотов и всяких быстрых кешей и прочего.

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

З.Ы. Яндекс вываливает много всяких странных и сложных случаев, а простых вариантов как будто никто не описывал. Хотелось бы заранее знать что меня ждёт прежде чем я солью 2 терабайтника в одну кучу.

З.З.Ы. И сопутствующий вопрос: а как оно будет выглядеть если решить вопрос через btrfs? Я где то читал что она сама по себе может занимать сразу несколько дисков.

 ,

kirill_rrr
()

Лайки на лоре

В связи с тихим и незаметным их появлением...

* Нужно
* Пусть будут, но нужен выключатель
* Зло

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

 лайки

kirill_rrr
()

Dolphin в отрыве

Собираю окружение на базе lxqt, Дельфин в роли файлового менеджера. Остаётся последний косяк: не работает настройка ассоциации типа файлов, очевидно из за отсутствующего куска КДЕ. В консоль ошибку не светит.

Кто нибудь знает что именно нужно установить чтобы не тянуть всё кде?

 , ,

kirill_rrr
()

Ограничение скорости сети

Предыстория: в связи с войной бобра с ослом по всему миру я внезапно обнаружил, что ютуб/youtube-dl перестал быть универсальным и надёжным источником видео. Большинство альтернативных ресурсов активно сопротивляются скачиванию, а веб-плееры работают как {много нецензурных выражений}... Короче плохо.

Но главная проблема для меня в том, что я вынужден экономить трафик, что невозможно при использовании веб-плеера потому что прежде чем я мог бы выбрать низкое качество или получить ссылку на видео для скачивания оно успевает выкачать пару сотен Мб, которые тут же будут отброшены. А некоторые особо упоротые плееры вообще игнорируют настройку качества и продолжают тянуть 1 Мб/с даже если указать 240р.

Предполагаемый костыль: занизить скорость сети до ~20-50Кбайт/с, сделать что нужно и снизить оверхед до 1-10Мб. Потом или выкачать видео или снять ограничение и спокойно досмотреть в браузере.

Проблема: найденные мной инструкции предполагают использование traffic controll и скриптов над ним, а оно отбрасывает входящие пакеты, что может и работает в большинстве случаев, но вот с веб-плеерами приводит к зависанию загрузки с вероятностью 90+% до получения работоспособной страницы. Схема сети: смартфон с симкой (кнопочник, андроид4) и режим модема через юсб или wifi.

Собственно вопрос: альтернативные способы ограничения скорости сети без отбрасывания пакетов и разрыва соединений из за этого?

 , ,

kirill_rrr
()

Взаимодействие GTK3 с gpu

Дебиан 11, ядро 5.10, nouveau, gf9200m, 256М видеопамяти, поддержка блоба прекращена. Имеется критический баг, не позволяющий работать: запуск браузеров (firefox+vivaldi одновременно, или один из них с несколькими окнами и вкладками) приводит к полному зависанию графики. 2 бразуера вешают всё быстро и наверняка, обычная работа в 1 из них - не сразу, но в перспективе 1-2 часов наверняка. Симптомы напоминают зависание видеодрайвера или исчерпание видеопамяти. WM и его режимы значения не имеют.

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

Есть предположение, что гтк3 что то отрисовывает с использованием видеокарты и способствует падению. Соответственно вопрос: если я прав насчёт использования гпу, то есть ли там какой то выключатель, чтобы перевести её на софтовый рендер и исключить её из уравнения?

 , ,

kirill_rrr
()

Пропали рамки окон в теме «пластик» на kwin

Где то при переходе с kwin 5.14 (дебиан 10) на kwin 5.20 (дебиан 11) пропали рамки окон эксклюзивно у темы «пластик». В устанавливаемых темах, бризе и оксигене они присутствуют и их размер регулируется, но в пластике нет.

Куда копать?

 , ,

kirill_rrr
()

Нужна помощь с free homm2

Внезапно вспомнил, что в отличии от homm3, для homm2 был (по слухам) хороший свободный движок, который вполне можно запустить на RPi3. В репе есть автоматизированный установщик, который скачивает версию 0.6 от 2013 года, собирает, опакечивает, устанавливает. Она работает.

Теперь о проблемах: главное, нет локализации. А она вроде как поддерживается и давно. Должна была включиться в конфиге, но реакции нет. При запуске выдаётся единственная ошибка «шрифт такой_то.ttf не найден». Шрифт лежит в папке с движком и пробовал ложить его в .fheroes2/files, не видит. Также не понятно, а как она вообще должна работать, ведь в инструкции явно сказано: используйте оригинальный англоязычный файл ресурсов.

Также по возможности хотелось бы отмасштабировать картинку в 2 или 3 раза.

И играть в кампанию тоже хотелось бы. Её поддержку вообще реализовали?

Поправка: после загрузки в консоль выводится статистика, в статистике: юникод отключен, язык ру. В конфиге разумеется юникод вкл, но что то идёт не так.

 ,

kirill_rrr
()

Правильное монтирование дисков при шифровании раздела.

Ноут, hdd, debian 9, systemd. sda1 - своп, sda2 - корень, sda3 - хомяк. Хомяк и своп зашифрованы через luks, подключаются при загрузке. Ключ свопа генерируется при запуске. Стандартная схема, всё было настроено установщиком дебиана.

И тут, внезапно... Я подключил чужой usb-hdd с ntfs на первом разделе до запуска системы. Этому диску был присвоен sda и он был подмонтирован как шифрованый своп. ntfs удалось восстановить, но вообще это косяк.

В fstab своп подключается как /dev/mapper/sda1_crypt, а вот что подключает физический раздел в /dev/mapper/ я не знаю. Помогите его найти.

 , , ,

kirill_rrr
()

Сборка пакета python 3.6 для debian8 (вообще любого debian)

Пытаюсь собрать свежий firefox для debian8. Для этого нужен свежий gcc (вроде бы собран и может использоваться) и питон 3.6.

Питон собирается легко, но вот установка в систему под вопросом. make install гарантированно затрёт python3 и ещё что нибудь, пакеты поломаются, как потом чистить систему не известно. Некий make altinstall предложен, но не описано что именно он будет делать и как это поможет.

Рашьше для опакечивания я использовал checkinstall, но в этом случае он что то долго делает а потом говорит

creating /usr/local/lib/python3.6/lib-dynload
copying build/lib.linux-armv7l-3.6/_decimal.cpython-36m-arm-linux-gnueabihf.so -> /usr/local/lib/python3.6/lib-dynload
error: [Errno 2] No such file or directory
Makefile:1487: ошибка выполнения рецепта для цели «sharedinstall»
make: *** [sharedinstall] Ошибка 1

****  Установка неудачна. Отменяется создание пакета.
И всё, лога нет, смысл ошибки непонятен.

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

 , , ,

kirill_rrr
()

Сборка кадров в видео, ffmpeg

Решил прокачать скилл владения ffmpeg'ом и заодно проверить новый диск на стабильность. Разумеется странным методом. Т.е. разобрать несколько каких нибудь больших фильмов на кадры и собрать обратно. В наличии папка с порядка 100-150K .png, команду выбрал стандартную из мануалов:

ffmpeg -f image2 -i %d.png -r 24 -vcodec libx264 -preset slow -qmax 25 ../test.ts 
и вариация с кодком h264_omx.

Собственно проблема и вопрос: в выводе ffmpeg множественные предупреждения вида

Past duration 0.719994 too large
и дропнутые кадры, порядка 3,9%. Как можно выбрасывать кадры если, дана команда собрать вот эти кадры по 24 штуки в секунду в видеопоток? Чего я не знаю и какие скрытыепараметры фреймрейта не указаны? Да, тестовый фрагмент на глаз выглядит плавным, но я не уверен, что уловлю выпавший кадр.

 ,

kirill_rrr
()

libx265 в debian8

При очередном обновлении что то произошло и...

Заметил, что разделы реп jessie-updates и jessie-backports больше не существуют на официальных зеркалах. WTF!?

Соответственно пакеты, поставленные из них, помечены как левые. У меня это libx265 и libx265-dev. Ну .не могли же один из основных кодеков взять и выкинуть. Поставлю из другого раздела... А вот хрен! Их таки выкинули, из всех официальных реп. Просто взяли и удалили. В т.ч. уже собраные, работоспособные версии. WTF!?

Ладно, не велика беда. ffmpeg собрал, почему эту либу не соберу? Качаем последнюю версию, проверяем требования в readme. Указан только cmake ветки 2.8.*, при том что даже в 8-м дебе стоит 3.*. И ещё ccmake. Название пакета узнал, поставил, создал make-файлы по инструкции, make и финиш.

rrr@raspberrypi:~/x265_3.0/build$ make
Scanning dependencies of target encoder
[  1%] Building CXX object encoder/CMakeFiles/encoder.dir/analysis.cpp.o
*** Error in `/usr/bin/c++': double free or corruption (!prev): 0x01eda830 ***
Aborted
encoder/CMakeFiles/encoder.dir/build.make:62: ошибка выполнения рецепта для цели «encoder/CMakeFiles/encoder.dir/analysis.cpp.o»
make[2]: *** [encoder/CMakeFiles/encoder.dir/analysis.cpp.o] Ошибка 134
CMakeFiles/Makefile2:262: ошибка выполнения рецепта для цели «encoder/CMakeFiles/encoder.dir/all»
make[1]: *** [encoder/CMakeFiles/encoder.dir/all] Ошибка 2
Makefile:127: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2 

И ещё одна ошибка, суть в том что /usr/bin/c++ не знает опции -mstackrealign (стандартная оптимизация, включена по умолчанию начиная с 4.4, штатная версия 4.9.2).

Гуглю, не нахожу понятного объяснения или решения, но вот здесь https://tvheadend.org/boards/5/topics/34652 упоминается что то похожее на мой случай. Вроде как libx265 внезапно перестал собираться по вине компилятора, хз почему и пересоберите всё без него... WTF!?

Да, собираю на RPi3, raspbian 8, armhf. Странно то, что cmake пихает опцию -mstackrealign, хотя вроде бы правильно определил архитектуру arm7l. Каких либо иных arm-специфичных проблем у libx265 не упоминается, так что не думаю что архитектура важна.

 , , , ,

kirill_rrr
()

uBlock origin в chromium

raspbian8, хромиум 56.0, uBlock Origin 1.18.8

Всё нормально работало года полтора, но позавчера что то пошло не так и вместо загрузки большинства вкладок стал бесконечно висеть статус «ожидание загрузки расширения uBlock Origin...» в строке статуса. Ладно, удаляю расширение, ставлю заново, сутки всё работает нормально и вот, снова. Насколько помню - никаких настроек по поводу автообновления расширений не делал. Обновляются ли они не знаю.

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

Куда копать? Какие средства мониторинга есть в браузере?

 ,

kirill_rrr
()

locate + updatedb. Что за зверь и зачем нужен.

Предыстория такая: просыпаюсь я как то в 6 утра на следующий день, после установки пары крупных пакетов в систему, и вижу что комп что то активно делает, хотя не должен. htop, читаю... А там updatedb, запущеный через хрон, пачками вызывает find и sort, и у каждого в качестве аргументов длиннющая строка с тоннами кавычек, экранирующих символов и кодов юникода. И полная неясность, что это и зачем. Неужели какая то вирусня оказалась прописана в хрон?

Чтение конфигов, скриптов и доков показало, что такая ежедневная задача действительно есть, похоже она действительно в составе дистрибутива и скрипт действительно написан таким странным образом. Вроде как есть команда locate (вообще не знал о такой), которая ищет файлы в системе по заготовленному индексу, а индексация по хрону раз в сутки.

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

 , , , updatedb

kirill_rrr
()

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