LINUX.ORG.RU

Сообщения I-Love-Microsoft

 

Тайминги DDR4 - насколько их допустимо увеличивать

Форум — Linux-hardware

Есть такой параметр у DDR памяти как CL (CAS Latency). Это видимо некоторая задержка, которая требуется для чтения данных по некоему запросу, и она постоянная характеристика данной модели или даже экземпляра памяти. Измеряется в тактах - всё верно? Поэтому на высоких частотах нужно брать много тактов чтобы выдерживать как минимум эту задержку, и наоборот, если частота ниже например в 2 раза - то и CL можно взять в 2 раза ниже и тогда получится такая же задержка

Вопрос чисто концептуальный: а я могу, используя низкую частоту, завысить этот тайминг CL на максимум, чтобы работать на низкой частоте и при этом заставлять ждать очень очень долго результат, для повышения надежности?

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

Нужно это не для ПК Linux, а для FPGA+DDR, там контроллер вроде бы позволяет мне выставить таких значения. А CL/CWL могут достигать значений 17/18

Но не ломает ли это работу? Там ведь есть у интерфейса памяти регистры, в них есть настройки прямо в чипе. И чип увидит что я хочу 17/18 тактов задержки, он такие задержки поддерживает и считает их максимально возможными задать. Оно примет это работая на максимально низкой частоте?

Я написал вопрос этот, но сам конечно буду на практике наобум проверять. Метод варварской наобум попытки выставить custom настройки с предельными числами

 ,

I-Love-Microsoft
()

Как сделать ожидание прерывания не усыпляя процесс?

Форум — Development

Есть такой механизм wait_event_interruptible, он хороший, вопросов нет. Но иногда, даже с RT 99 приоритетом процесс может слишком долго пробуждаться, то есть проходит слишком много времени между irq_handler и моментом, когда пробуждение отработает

Почитал хорошую статеечку https://kerneltweaks.wordpress.com/2015/03/20/quick-guide-for-choosing-correct-synchronization-mechanism-inside-linux-kernel/

И ничего умнее чем просто ставить какое то число через atomic_set в irq_handler и сделать while(atomic_read == 0) в ожидающем процессе - я не придумал. Вместо wait_event_interruptible

Ясно что идеология работы с устройствами она иная, что обмен по DMA, что IRQ оно не для чего то иного. Там всё не требует быстрой реакции чтобы всё успевало и ничего не терялось. Понятно что не для того всё это сделано, считается что поймал irq handler сделал что надо и свободен. Но что если надо немедленно это сообщить в userspace?

Такое ощущение, что kernel module он при wait_event_interruptible спит прямо вместе с процессом userspace, который вызвал этот конкретный ioctl. Может есть что то более приспособленное для этой цели?

Может какой нибудь типа disable preempt??? Система SMP, почему бы нет. Но вероятно этот wait_event_interruptible или там какой нибудь семафор - они все «хотят спать»

 , ,

I-Love-Microsoft
()

Процесс в userspace, возврат из ядра иногда задерживается

Форум — Development

Есть некий драйвер, который ловит прерывания с периодичностью несколько десятков миллисекунд, и судя по time stamp в логе dmesg, делает это очень надежно и регулярно, очень точно с точностью до десятков микросекунд

В ядре используется wait_queue_head_t, в обработчике прерывания wake_up_interruptible, далее wait_event_interruptible, после чего userspace процесс просыпается

Вот иногда в 1% случаев, оно делает это слишком поздно, мне надо успеть за 100-150 мкс, а оно в такие моменты может даже до миллисекунды скакнуть это время ожидания. А когда всё хорошо, оно успевает за 50 в среднем мкс, иногда за 115 что тоже нормально

Пробовал ставить nice -n 0, лочить процесс на ядро taskset -c. И ничего не помогло не улучшило ситуацию

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

Я так понимаю, это ядро просто не всегда хочет будить процесс в userspace?

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

Как объяснить - вот эта программа это VIP, это священный процесс, он всегда должен быть бодряком. Ядро ради него отдам, два, три! Как то так

 , ,

I-Love-Microsoft
()

Возможно ли написать простой сайт на Qt5

Форум — Development

Именно через Emscripten чтобы работало, с обычным интерфейсом

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

А возможно ли сделать простой сайт на базе именно Qt. Но есть проблема - надо добавить QWebView для просмотра карты в интерфейс. И оно как, сделает мне браузер в браузере - тормоза в квадрате, или оставит окошечко для движка самого браузера?

Даже если тормозить будет, то насколько стабильно оно может работать в принципе? Пробовал примеры на сайте, два из них вовсе подглючивают, интерфейс искажается - это неизлечимо?

Связи с сервером я так понимаю там через обычное сетевое соединение надо, связи с сервером врожденной не будет?

 , ,

I-Love-Microsoft
()

Ограничить потребление памяти на большом проекте

Форум — Development

Имеется большой проект, добавленный в Qt Creator. В результате IDE потребляет слишком большой объем памяти, не хватает даже 16 гигабайт. Как называется функция, которая может столько забирать памяти, чтобы ее отключить?

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

Что это обычно так жрет меморю?

 

I-Love-Microsoft
()

Виснут приложения KDE, спасает лишь ребут

Форум — Desktop

Пользуюсь Kate и Gwenview в среде Gnome 3. По идее проблем быть не должно, какая бы DE ни была. Но давно заметил, иногда через два часа, иногда через 6 часов, но после какого то действия, программы Kate и Gwenview виснут намертво, по 5 раз можно нажимать «завершить принудительно», окна висят и висят, хотя вся система продолжает нормально работать. Потом оно через 5-10 минут само отвисает и завершается, и так хоть 5 экзампляров Kate можно запустить - всё равно каждый будет висеть

Может есть способ поправлять что то в системе, чтобы они после прибития продолжали работать? Временные каталоги смотрел чистил, D-Bus перезагружал - всё бестолку

Кто то знаком с таким неприятным багом?

 , ,

I-Love-Microsoft
()

Что происходит при сбросе до заводских настроек?

Форум — Mobile

Насколько глубоко сбрасываются данные при полном сбросе до заводской прошивки через GUI и форматировании SD карты на отдельном ПК? Например, если через уязвимость руткит прописал что то в системную область, то будет ли это затерто свежим дефолтным образом системы при сбросе?

Какие то источники пишут что это так, и лишь только от руткитов изначально в заводской прошивке это не избавит. В самом деле, даже получив рут через уязвимость и записав что то в системный корень, должна же быть в телефонах уровня Android 8 что то, что принципиально не даст писать в заводской образ что либо

Кто то пишут что при сбросе до заводских системная ФС корневая не трогается, и там может оставаться что угодно. И если что - только перепрошивка. Если так, то какой есть способ, для начала без полной перепрошивки, обновить системный образ из этого вшитого резерва

Понять бы кто прав

 ,

I-Love-Microsoft
()

DDR3/4 понизить частоту до 50-100 МГц

Форум — Linux-hardware

Возможно ли каким либо способом понизить принудительно частоту DDR памяти? Это зависит от чипа памяти или зависит от контроллера со стороны хоста?

Знаю что стандарт предписывает минимальную частоту, но видеокарты же роняют ее до минимума, а телефоны я уверен тоже. Например, при подключении DDR к ПЛИС мне не удается уронить ее частоту ниже того, что позволяет контроллер, а связано ли это с контроллером или что то в чипе памяти не даст так сделать

Ясно что периоды рефреша будут точно такими же, что с понижением частоты что без

 ,

I-Love-Microsoft
()

Производительность сигнальных процессоров

Форум — Development

Часто вижу в описаниях сигнальных процессоров такие характеристики как 64 MAC за такт, даже 256 MAC за такт для разных форматов операндов. Объясните, как достигается такая производительность, хочу понять насколько это может заменить мне ПЛИС, к которым я прирос, и быть может уже неадекватно оцениваю возможности DSP

В то же время я вижу что ширина команды она небольшая, ну там 32-64 бита, как оно может запланировать выполнение 256 MAC за такт?

Я правильно понимаю что DSP обладает широченным интерфейсом к своей встроенной статической памяти, и может по типа SIMD, одним махом взять данные для всех 256 входов пары операндов, выполнить умножение и положить обратно 256 результатов? Вся суть именно в выполнении такого рода действий, которые будут разбавлены медленными относительно одиночными операциями типа переходы по циклам и так далее?

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

 ,

I-Love-Microsoft
()

Восстановить данные из немонтирующегося образа NTFS

Форум — General

Есть образ флэшки, но ни ntfsfix ни disktest, которых рекомендуют в интернете, не помогли восстановить работоспособность раздела. disktest не видит многие файлы. Ясно что какой то важный блок на SD карте повредился, что само собой такая ФС да на SD карте это идеальный рецепт потери данных

Реально ли теоретически размотать какой либо программой содержимое файловой системы NTFS в Linux, пусть даже названия файлов будут утеряны, нужно извлечь кучу ценных фотографий, сосед виндузятник попал в такую беду

Знаю только утилиты восстановления удаленных файлов, но мне бы без названий просто jpg файлы вытащить

P.S. Сама копия с sd карты прошла при помощи dd без единого сбоя

 , ,

I-Love-Microsoft
()

Передать от host в fpga страницу памяти

Форум — Development

Была такая тема написать драйвер для своего устройства и с тех пор удалось поднять PCI-E на разных платформах Lattice Versa, Altera Cyclone 4 gx (Avalon stream, Nios), Xilinx Spartan 6-T и Xilinx Kintex-7. Но тогда всегда задача состояла лишь в передаче из ПЛИС в ПК, т.е. хост.

При передаче в хост, я просто передавал результат dma_map_single в ПЛИС и засылал пачки TLP MWr, после чего следовало прерывание.

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

  1. сначала взять страницу dma_map_single

  2. заполнить ее данными

  3. затем синхронизироваться dma_sync_single_for_device

  4. отослать результат первого пункта в ПЛИС

  5. запустить серию MRd пакетов, обрабатывая completion-ы

Всё ли правильно понимаю?

 , ,

I-Love-Microsoft
()

Выгрузить модуль и всё что мешает

Форум — Linux-hardware

Требуется выгрузить модуль:

sudo rmmod somemodule

rmmod: ERROR: Module somemodule is in use

Есть ли способ заставить выгрузить также то, что его юзает в lsmod, чтобы не делать этого вручную. Потому что загружаю лишь somemodule, а выгрузить только его уже никак - паровозом вешается еще много чего

Судя по темам на ЛОРе есть тревожное подозрение что если я вижу «rmmod: ERROR: ../libkmod/libkmod-module.c:793 kmod_module_remove_module() could not remove ‘somemodule’: Resource temporarily unavailable» то значит облом, устройство не позволит отпустить драйвер

Ведь проблема еще и в том что вручную тоже это не выходит выгрузить, даже со всякими –force

 , , rmmod

I-Love-Microsoft
()

Посоветуйте книг по C++ и SQL

Форум — Development

Работодатели давно стали злее и требуют C++17/20, вот уже без STL невозможно вздохнуть, а что там с SQL? Также делают всякие каверзные тесты даже по Qt

Где бы почитать современных хороших книг по C++17/20? Какую советуете?

Также интересует по SQL, его я знаю в общем то на начальном уровне и пока этого мне полностью хватало, но уже не сейчас

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

Подходят книги и на русском и на английском, которые можно купить в электронном виде, а может есть халявные онлайн

 , , ,

I-Love-Microsoft
()

Параллельный процесс

Форум — Development

Есть Django (не старой версии), требуется выполнять некоторые периодические действия, например, раз в минуту (или даже раз в 15 секунд), кое что дергать, проверять изменилось ли что-то.

Как это правильно делать в Django? Не запуская всякие костыли и параллельные процессы, а так чтобы было максимально некостыльно, в духе фреймворка?

В чем вопрос - как называется этот механизм? Воркеры?

Нашел такую штуку: https://github.com/geekforbrains/django-workers - с точки зрения разработки сайтов это штатный механизм, не поделка? На нее стоит завязываться?

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

 ,

I-Love-Microsoft
()

Как непрерывно получать данные от АЦП в Linux

Форум — Linux-hardware

Есть небольшой скрипт Python 3 который читает I2C АЦП, он оцифровывает датчик, частота дискретизации несколько килогерц, а я читаю несколько сотен раз в секунду и этого явно недостаточно.

Правильно я понимаю, что даже если перепишу на Си (что совершенно не проблема) - не получу нужной частоты дискретизации?

400 кгц / 12 бит данные + адрес + паузы и так далее = килогерц 5-10 в теории выжать можно. Но вот в чем производить такое циклическое чтение?

Допустим, можно написать драйвер низкоуровневый поверх I2C - поможет? В теории, там и отклик быстрее будет и таймер точнее и всё прочее.

 , , , ,

I-Love-Microsoft
()

Состоялся релиз фреймворка Qt 6

Новости — Open Source
Группа Open Source

Новые возможности Qt 6.0:

  • Единый интерфейс аппаратного рендеринга с поддержкой Direct 3D, Metal, Vulkan и OpenGL
  • Отрисовка 2D и 3D графики объединена в единый графический стек
  • Qt Quick Controls 2 получили более нативный внешний вид
  • Поддержка дробного масштабирования для HiDPI-экранов
  • Добавлена подсистема QProperty, обеспечивающая бесшовную интеграцию QML в исходный код на языке C++
  • Улучшено Concurrency APIs, позволяющее вынести работу в фоновые потоки
  • Улучшена поддержка сети, что позволяет добавлять собственные бэкэнды сетевых протоколов
  • Поддержка C++17
  • Поддержка CMake для сборки приложений Qt
  • Qt for Microcontrollers (MCU), для работы которого достаточно всего лишь 80 Кб ОЗУ в минимальной конфигурации

С полным списком нововведений можно ознакомиться по ссылке ниже.

>>> Подробности

 

I-Love-Microsoft
()

Китайский USB-CAN протокол

Форум — Linux-hardware

Купил такое https://aliexpress.ru/item/4000045445478.html

Китаец прислал мне драйвер для windows, а инструкцию где 99% текста это китайские иероглифы, хотя я просил его мне дать протокол.

Кто-нибудь знает, какой протокол у такой штуки? Ведь в системе оно представляется как USB-UART.

Я мог бы выцепить протокол, воткнувшись в живую сеть CAN, и там понять в каких байтах какие поля оно передает, выполняя какие то тестовые посылки. Скорее всего так поступлю, но не скоро будет возможность, но она есть.

 , ,

I-Love-Microsoft
()

FT2232C/D/H работа с I2C

Форум — Development

Есть платка на базе Future Technology Devices International, Ltd FT2232C/D/H Dual UART/FIFO IC. Заявлена поддержка I2C. Как ее получить?

Втыкаю - /dev/i2c* не появляется новое. Есть некий ftdi_sio драйвер. Есть libftdi и даже pylibftdi как обертка для питошки.

До меня начинает доходить, что чуда не будет. Чип дает bitbang ногодрыжный интерфейс, а дальше ручками. Да, есть обертки, может есть pullup на алишной плате.

Чтобы получить I2c на FT2232C:

  1. нужно bitbangить? 2) на всякий спрошу у опытных, а может снифер можно на этой штуке изобразить?

Может есть готовые программы или драйвер-обертки???

 , , libftdi

I-Love-Microsoft
()

Сменный аккумулятор показывает неверный процент

Форум — Linux-hardware

Купил два сменных аккумулятора к телефону. Они заряжаются до 4.15-4.2 вольта, что является допустимым уровнем заряда, это можно считать за 100%. Но разумеется это китайская подделка с алиэкспресса, а телефон ждет видимо большего напряжения для 100%

Никакие циклы полного разряда и резеты и перезагрузки - не помогают. Значит есть иной путь. Можно ли задать так, чтобы оно считало 4.15 вольт за 100% и больше не пыталось заряжать?

Если подключить к лабораторному источнику питания, то видно, что оно пытается пару секунд заряжать, затем на 5 секунд прекращает, снова 2 секунды заряжает, снова пауза

Можно ли остановить эти бессмысленные попытки заряжаться свыше 4.15 вольта, уровень аккумулятора отображается в специальных программах

ОС - Android 8. В выключенном состоянии оно может показать даже 93% самое большее, при включении - процентов 80-85, в основном 75%

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

 ,

I-Love-Microsoft
()

Попытка установить 32-битный libgl требует снести пол системы

Форум — Desktop

Ubuntu 20.04, установлен nvidia-driver-435. В /usr/lib/x86_64… есть libGL.so.1 Нужно запустить 32-битную программу с OpenGL

Чтобы получить эту библиотеку, нужно sudo apt install libgl1:i386 libglx0:i386 libglx-mesa0:i386 libgl1-mesa-dri:i386 libllvm10:i386

Однако при этом список «Следующие пакеты будут УДАЛЕНЫ» просто огромен и «объём занятого дискового пространства уменьшится на 1 303 MB»

Как установить эту несчастную libgl? Пакет libnvidia-gl-435:i386 установлен, но libGL не содержит (смотрел внутри архива). В интернете пишут что это решило бы проблему, но как, если файла даже нет?

Возможно предыдущие версии драйвера nvidia содержали такой файл, а сейчас нет

 ,

I-Love-Microsoft
()

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