Search
Write a publication
Pull to refresh
51
0.8

Embedded HW & SW. Больше HW.

Send message

Как я делаю бекапы домашней системы Linux: простой пример инкрементального rsync + btrfs с zstd сжатием

Level of difficultyMedium
Reading time3 min
Views7.8K

Статья покажет простой rsync скрипт для инкрементального бекапа (с использованием хардлинков из предыдущего бекапа) и про использование btrfs сжатия в zstd.

Читать далее

Наше расследование: ищем отечественные микросхемы в «отечественных» счетчиках электроэнергии. Часть 7

Level of difficultyMedium
Reading time5 min
Views37K

Нашими публикациями мы подняли вопрос о системной проблеме в российской микроэлектронике - о включении в реестр российской промышленной продукции большого числа интегральных микросхем, для которых есть серьезные подозрения, что они иностранной разработки и не соответствуют требованиям 719 Постановления Правительства РФ. Если верить Минпромторгу России, то по результатам наших публикаций начались проверки. И чтобы проверяющим было легче, и они не запутались во всем этом многообразии мы соберем в этой статье известную на данный момент информацию. Так же еще раз предостережем ряд неизвестных нам представителей отрасли от помощи компаниям, которые пытаются повторить финт и выдать иностранные микросхемы за российские. А такие попытки все еще продолжаются, даже не смотря на поднятую волну. Но об этом мы расскажем в конце статьи.

И так вкратце напомним в чем заключается тот самый финт. В соответствии с требованиями 719 Постановления Правительства РФ для того чтобы микросхемы были признаны отечественными их схема и топология должны быть спроектированы и разработаны в России. При этом, если потом кристалл будет изготавливаться на зарубежной фабрике, то такая отечественная микросхема будет относится к 2 уровню, если кристалл будет изготавливаться на территории России то это будет микросхема 1 уровня. За счет применения отечественных микросхем получает отечественный статус уже радиоэлектронная аппаратура, например счетчики электрической энергии. И такая отечественная радиоэлектронная аппаратура имеет преференции при государственных закупках. В ряде официально признанных Минпромторгом России отечественными микросхемами мы нашли кристаллы аналогичные кристаллам микросхем, разработанных иностранными компаниям. И возникает вопрос, если эти микросхемы не разрабатывались в России, то почему они быть признаны отечественными? И что делать с аппаратурой, которая получила свои баллы отечественности за счет применения этих псевдо-отечественных микросхем?

Читать далее

Livepatching: готовим «точечное» обновление ядра Linux на примере реального бага

Level of difficultyMedium
Reading time19 min
Views1.5K

Бывает так, что серверные Linux-системы неделями или даже месяцами работают без перезагрузки. Переносить нагрузку с одного сервера на другие, устанавливать обновления, проверять, что после перезагрузки железо работает верно, запускать заново все необходимое ПО — это далеко не всегда просто, быстро и дешево.

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

Меня зовут Евгений, я работаю в компании YADRO. Задачами, связанными с разработкой и анализом компонентов ядра Linux, я занимаюсь уже около 15 лет.

Я расскажу, что такое livepatching, как такая технология появилась и как она применяется. А также покажу на примере, как можно самому сделать лайвпатч, чтобы исправить реальный баг в ядре Ubuntu 22.04 Server.

У статьи будет продолжение. Там подробно разберем, как именно лайвпатчи заменяют одни функции ядра Linux на другие, а также узнаем, на что нужно обращать внимание, если потребуется использовать все это в продакшене.

В основном речь пойдет о системах с архитектурой x86 и RISC-V (хотя технология работает и для ARM64, PowerPC, s390x).

Читать далее

НАМИ протестировал в Engee модель определения уровня топлива в баке

Level of difficultyMedium
Reading time3 min
Views1K

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

Для проверки корректности работы Engee была взята модель алгоритмов определения уровня топлива в баке, ранее реализованная в программных продуктах Matlab/Simulink. Определение количества топлива в баке – важная задача, от которой зависит не только индикация остатка на приборной панели, но и точность расчетов расхода и дальности хода. Однако при движении автомобиля уровень топлива в баке постоянно меняется: при боковых наклонах (крене), подъемах и спусках (дифференте), при ускорении и замедлении. 

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

Читать далее

Рабочая точка биполярного транзистора

Level of difficultyMedium
Reading time9 min
Views11K

TL;DR: рассказываю и показываю на графиках, без формул, основу понятия рабочей точки биполярного транзистора. Используя интерактивную модель в веб-симуляторе электроники, соберу простой транзисторный предусилитель.

Читать далее

Dual flash SS 8-bit Parallel + Zynq 7000

Level of difficultyMedium
Reading time16 min
Views1.4K

Всем привет!

Я хочу поделиться с вами, какоднажды мне пришлось оживлять вторую флешку на микроконтроллере (далее «мк»), ну кому не нравится, то назовем это «программируемая система на кристалле». Наверное кто только зашел сюда и хочет более подробно разобраться и все понять, то вам сюда, так как я планирую все подробно рассказать от А до Я.

В данной статье будут подняты такие вопросы:

1. Инициализация QSPI (кто не знает, специальная периферия, позволяющая работать с флешкой на прямую).
2. Инициализация flash. Написание драйвера .

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

Читать далее

Атомные реакторы для лечения рака (и почему они больше не нужны)

Reading time11 min
Views3.5K

1954 год. В мире, все еще находящемся в атомной эйфории, открывается первая АЭС — Обнинская. Ядерная энергия вырабатывается уран-графитовым реактором канального типа АМ-1 («атом мирный») и вливается в единую советскую электросеть. 

Но это не все — на станции бывают особые посетители, прикладывающие к трубкам, отходящим от реактора, головы, шеи и глаза. Это — онкологические больные, получающие лучевую терапию. 

Нет, это не зарисовка из комикса-антиутопии об обуздавшем атом СССР будущего, хотя похоже.  Это — реальная история первых экспериментов по бор-нейтронозахватной терапии (БНЗТ) — разрушению раковых опухолей с помощью бомбардировки их нейтронами из атомных реакторов.

Почему больше не нужны реакторы

Пишем простой драйвер Linux для устройства, ничего не зная о драйверах и о USB

Level of difficultyEasy
Reading time12 min
Views14K

Пару месяцев назад я купил Nanoleaf Pegboard Desk Dock — последнее слово в технологиях USB-хабов с RGB-светодиодами и крючками для устройств. К сожалению, это чудо инженерной мысли поддерживает только гейминговые операционные системы — Windows и macOS, поэтому возникла необходимость в драйвере для Linux.

В своих постах я уже настраивал Windows VM с пробросом USB и пытался выполнить реверс-инжиниринг официальных драйверов. При этом я задумался, а нельзя ли написать производителю и попросить у него спецификации или документацию его протокола. К моему удивлению, техподдержка Nanoleaf ответила мне всего через четыре часа, предоставив полное описание протокола, используемого Desk Dock, а также полосами RGB-светодиодов. Документация по большей мере подтвердила то, что я обнаружил самостоятельно, но также я нашёл в ней пару других мелких подробностей (например, управление питанием и яркостью), которые были мне неизвестны.

Сегодня мы попробуем написать драйвер на основании протокола (который я изучил реверс-инжинирингом), параллельно сверяясь с официальной документацией. Однако здесь есть одна небольшая проблема: раньше я ни разу не писал драйверов для устройств под Linux, а с USB-устройствами взаимодействовал только как пользователь.

Читать далее

Б/У Antminer S9 в помощь радиолюбителю

Level of difficultyMedium
Reading time12 min
Views15K

На хабре уже было несколько статей про использование старых плат управления Antminer S9, которые продаются сейчас по доступной цене. Я решил сделать нечто полезное для радиолюбителя. Сегодня расскажу о проекте очередного антенного переключателя. В XXI веке он будет с ПЛИС и двухъядерным АРМ процессором.

Читать далее

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

Reading time11 min
Views37K

Что такое коллективный экспресс (7$/кг) и как его использовать?

Почему с 45$/кг бывает дешевле, чем с 23$/кг?

Как заказать компоненты/всячину с сайтов JLC (jlcfa, lcsc, jlcpcb, …)?

С 1688, Тао бао и других китайских площадок?

Привезти из Европы, США (Маузера, Диджикея и т. д.)?

Где платы с размерами >100х100 мм будут дешевле?

Надеюсь, продуманная навигация по статье и таблицы помогут быстро найти и сравнить полезную информацию.

Читать далее

Как информатики научились разоблачать ложь

Level of difficultyEasy
Reading time6 min
Views4.9K

На протяжении десятилетий криптографическое сообщество опиралось на преобразование Фиата — Шамира как на надёжный инструмент для построения неинтерактивных доказательств. Эта техника позволила компьютерам "доказывать истину" без диалога, обеспечив безопасность блокчейнов, систем аутентификации и протоколов обмена ключами. Но что если сама логика этой схемы уязвима?

В новом исследовании международная группа криптографов — Рон Ротблум, Дмитрий Ховратович и Лев Суханов — вскрыла неожиданный изъян в фундаменте цифрового доверия.

Читать далее

Как в РФ разрабатывали уникальный судовой радар ближней зоны в диапазоне 76 ГГц

Level of difficultyEasy
Reading time10 min
Views10K

Этот пост — не про финальный продукт, а про инженерную задачу, которую ранее никто в России (и никто в мире) не решал. Работы над судовым радаром ближней зоны СИД360-76 начались в 2021 году — а первый прототип заработал в лаборатории уже в 2022 и в этом же году был уже временно установлен для тестов на судне. Поводом стал запрос от оператора ледокольного флота: при проводке судов во льдах ледоколы вплотную подходят к борту сопровождаемого судна. В такой ситуации «слепая зона» обычных радаров становится критически опасной. Нужно было решение, которое «видит» препятствия буквально в нескольких метрах от борта и позволит избежать ситуации с наваливанием судов друг на друга.

Читать далее

Мой долгий путь до GPIO в QEMU

Level of difficultyMedium
Reading time13 min
Views3.2K

Тема этой статьи преследует меня, как статуя командора из известной сказки. Почти десять лет назад я сделал возможность чтения и записи GPIO для виртуальной машины QEMU. GPIO был нужен для тестирования алгоритмов контроллера взвешивания в движении (Weigh In Motion, WIM). С тех пор проект получил некоторое количество упоминаний, а я — несколько писем. И вот к десятилетнему юбилею я решил поставить точку в этой работе.

Читать далее

VHS-Decode — новый метод оцифровки видео

Level of difficultyEasy
Reading time16 min
Views19K

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

Зимой 2025 года в мои руки попало 35 кассет формата VHS и VHS-C из семейного архива, и встала задача по их оцифровке. С учетом того, что на каждой кассете было записано приблизительно по 60 минут видео, а средний ценник услуг по захвату сейчас составляет 400 рублей в час, общая стоимость конвертации составила бы около 14 тысяч рублей. Эта сумма показалась мне слишком большой, и было решено сделать все самостоятельно. В данной статье я хочу рассказать об относительно новом методе оцифровки видеокассет, на котором я остановился, и сравнить его с классическими подходами.

Читать далее

HackRF One. Доступный SDR трансивер для каждого

Level of difficultyMedium
Reading time15 min
Views21K

В очередной раз перебирая залежи своей электроники мне на глаза попался старый добрый товарищ - SDR-трансивер HackRF от Great Scott Gadgets. И я вспомнил, что у меня когда-то давно были планы написать несколько статей о том, как им пользоваться, что он может, да и зачем он вообще нужен. По всему Интернету я нагуглил огромное количество самого разнообразного разрозненного материала насчёт HackRF, утилит, прошивок, дополнительных модулей и прочего. И я решил подсобрать все это в своём материале сделав хороший вводный обзор.

Для всех, кому интересна тема радио и SDR — добро пожаловать под кат!

Читать далее

О контроллере батареи ИБП (часть 2)

Level of difficultyMedium
Reading time6 min
Views5.3K

О сколько нам открытий чудных
...

Судя по результатам голосования и комментариям к предыдущей статье, к вопросу контроля АКБ у самых простых ИБП есть некоторый интерес. Данная статья - продолжение данной темы.

Сейчас прототип собран на макетной плате (токовый шунт к которому подключено два АПЦ). Измеритель напряжения и тока INA3221, как рекомендовали в комментариях, я решил не использовать, так как дискретность его измерения 8мВ сравнима с дискретностью 12-ти битного АПЦ в обычном микроконтроллере (для ESP32 получается точность измерения около 6мВ).

Читать далее

Embedded Linux для начинающих (Часть первая)

Level of difficultyEasy
Reading time10 min
Views15K

Однажды по работе мне прилетела задача по сборке и запуску Linux на одноплатном ПК. Тогда я, будучи разработчиком ПО для микроконтроллеров, встал в небольшой ступор — задачка явно не решалась установкой IDE и нажатием в ней кнопки «Собрать проект». Гугл помог узнать о том, что существует некий Buildroot. В материалах по теме всё выглядело довольно просто: скачай, настрой, дерни пару команд, загрузи результат на одноплатник — и можно запускать! Получается, процесс не многим сложнее установки дистрибутива Linux или Windows на обычный ПК? Конечно же, нет. Ведь если у тебя в руках кастомный одноплатник неизвестного китайского бренда, а не BeagleBone или Raspberry Pi, то зарыться в Buildroot придётся с головой...

Читать далее

Жребий брошен: оптимальная генерация распределений и алгоритм Кнута-Яо

Level of difficultyMedium
Reading time8 min
Views2.9K

Задача
Три айтишника — Маша, Вася и Петя — пошли в поход. После ужина они решают, кто будет мыть посуду. Петя дежурит один, а Маша с Васей — вдвоём. Значит, нужно выбрать Петю с вероятностью ⅓, а Машу с Васей — с вероятностью ⅔. Под рукой — только честная монетка. Как с её помощью устроить такой жребий?

Когда мы обсуждали эту задачу со студентами, они предложили такой способ. Бросим монету дважды: если выпали два орла — дежурит Петя; если один орёл и одна решка — Маша с Васей; если две решки — перебрасываем

Чтобы выбрать дежурного так, в среднем уходит 8⁄3 броска (чуть позже мы это докажем). Можно ли сделать это быстрее? Существует ли алгоритм, для которого ожидаемое число бросков меньше?

Оказывается, можно придумать простой, но неочевидный метод, позволяющий смоделировать событие с вероятностью ⅓ — и в среднем требует не больше двух бросков. Он называется алгоритмом Кнута–Яо

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

В финале мы обобщим эту идею: научимся моделировать любую вероятность p от 0 до 1 — и любое дискретное распределение. Заодно познакомимся с важным понятием, называемым энтропией

А в самом конце, как всегда — красивая задача

Читать далее

Как я убедил виртуальную машину, что у неё есть кулер

Level of difficultyEasy
Reading time6 min
Views19K

Зачем вообще этим заморачиваться?

Некоторые образцы malware выполняют различные проверки, чтобы определить, запущены ли они в виртуальной машине. Один из самых частых способов — проверка наличия определённых аппаратных компонентов, обычно не эмулируемых в виртуальных средах. Один из таких компонентов — кулер процессора. Например, malware может проверять наличие кулера процессора, поискав в WMI класс Win32_Fan:

wmic path Win32_Fan get *

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

Зловредное ПО может определять, запущено ли оно в виртуальной машине, множеством разных способов. Есть различные классы WMI, позволяющие обнаружит присутствие виртуальной машины, например, Win32_CacheMemory, Win32_VoltageProbe и множество других.

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

Читать далее

Установка Windows через CMD

Level of difficultyMedium
Reading time6 min
Views18K

Приходилось ли вам устанавливать современные версии Windows? Если да, то вам точно знаком установщик, каждый этап которого прогружается несколько секунд, и который яростно навязывает вам использование аккаунта Microsoft, с каждым обновлением делая использование локального аккаунта всё труднее и труднее.

Но существует альтернативный способ установить Windows — более быстрый, не требующий подключения к интернету и не навязывающий никаких сервисов — ручная установка с использованием CMD.

Читать далее
1
23 ...

Information

Rating
2,825-th
Location
Москва и Московская обл., Россия
Registered
Activity

Specialization

Embedded Software Engineer, Hardware Engineer