
Собираем эмуляцию USB-устройства с помощью Buildroot с использованием USB Gadget для запуска в QEMU
empyrean 46 минут назад Собираем эмуляцию USB-устройства с помощью Buildroot с использованием USB Gadget для запуска в QEMU Средний 11 мин 1.8K *nix * Настройка Linux * Отладка * Туториал Пару слов об инструментахUSB...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Вот важная новость с фронта ИИ: empyrean 46 минут назад Собираем эмуляцию USB-устройства с помощью Buildroot с использованием USB Gadget для запуска в QEMU Средний 11 мин 1. 8K *nix * Настройка Linux * Отладка * Туториал Пару слов об инструментахUSB Gadget - подсистема в ядре Linux, позволяет работать в режиме ведомого USB-устройства (USB Device), а не хоста. Это дает возможность превратить устройство в виртуальную клавиатуру, флешку, сетевую карту или веб-камеру.
Buildroot - система сборки, используется для создания индивидуального дистрибутива Linux, который затем компилируется под нужную платформу. QEMU - эмулятор различных устройств, который позволяет запускать операционные системы, предназначенные под одну архитектуру, на другой. TAP-интерфейс в Windows — это виртуальный сетевой адаптер, предназначенный для перехвата, обработки и маршрутизации сетевого трафика.
Технические детали
Настройка TAP-интерфейса в Windows для QEMU позволяет виртуальной машине напрямую подключиться к локальной сети, будто это отдельный компьютер. В Windows для этого обычно используется драйвер от VPN-клиентов (например, OpenVPN). USBip - это утилита и драйвер, которые позволяют использовать USB-устройства на удаленном компьютере по сети (IP-сетям, например, локальной сети или интернету).
Благодаря этой технологии, физически подключенное к одному компьютеру устройство (флешка, принтер, ключ защиты) распознается другим компьютером так, будто оно вставлено прямо в него. Собираем Linux-дистрибутив с поддержкой USB GadgetВ качестве хоста для сборки используется Ubuntu. Цель - собрать Linux-дистрибутив, который будет при включении настраивать USB Gadget и запускать скрипт Modbus-slave.
Установка зависимостей sudo apt update sudo apt install -y \ build-essential \ git \ wget \ unzip \ rsync \ bc \ bison \ flex \ cpio \ libssl-dev \ libelf-dev \ pkg-config \ qemu-system-x86 \ qemu-utils \ libmodbus-dev 2. Скачивание Buildrootgit clone cd buildroot 3. Базовая конфигурацияmake qemu_x86_64_defconfig 4.
Отраслевые последствия
Добавление modbus- скриптаСтруктура добавляемых папок/скриптов:buildroot/ ├── board/ │ └── modbus/ │ └── rootfs_overlay/ │ ├── etc/ │ │ └── init. d/ │ │ ├── S40network │ │ └── S99modbus │ └── usr/ │ └── bin/ │ └── usb_gadget. sh └── package/ └── modbus_slave/ ├── Config.
mk └── src/ └── modbus_slave. c Создание структуры проекта:mkdir -p board/modbus/rootfs_overlay/usr/bin mkdir -p board/modbus/rootfs_overlay/etc/init. d mkdir -p package/modbus_slave/src Устанавливаемые поля в usb_gadget.
sh:ПолеОписаниеВозможные значенияidVendorVendor ID (VID) — идентификатор производителя USB-устройства16-bit hex (0x1234). Для тестов часто используют 0x1d6b, 0x0525, 0x1234idProductProduct ID (PID) — идентификатор продукта внутри VID16-bit hex (0x5678). Назначается производителемbcdUSBВерсия USB-спецификации, которую поддерживает устройствоBCD формат: 0x0110 = USB 1.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





