Skip to main content

CLI-утилита для чтения, runtime-загрузки и постоянной прошивки firmware ASMedia ASM3042 и ASM3142 под Linux

Project description

asm3042-flasher

asm3042-flasher — CLI-утилита для Linux для работы с контроллерами ASMedia ASM3042/ASM3142.

Установка

python -m pip install asm3042-flasher

Основные команды

asm3042-fw discover

Показывает найденные ASMedia PCIe USB-контроллеры.

Пример:

asm3042-fw discover

asm3042-fw inspect <firmware.bin>

Показывает сведения о firmware-файле: размер, теги, family.

Пример:

asm3042-fw inspect /path/to/firmware.bin

asm3042-fw version [--bdf ...]

Читает running firmware version из контроллера.

Ключи:

  • --bdf — PCI BDF, например 0000:01:00.0
  • --force-device — разрешить работу вне known-safe allowlist

Пример:

sudo asm3042-fw version --bdf 0000:01:00.0

asm3042-fw upload <firmware.bin> [--bdf ...]

Загружает firmware во временную SRAM, не пишет SPI ROM.

Ключи:

  • --bdf — PCI BDF
  • --force-device — разрешить работу вне allowlist
  • --force-running-firmware — разрешить upload поверх уже загруженной firmware
  • --keep-driver-bound — не отвязывать драйвер на время операции

Пример:

sudo asm3042-fw upload /path/to/firmware.bin --bdf 0000:01:00.0

asm3042-fw permanent-read-internal <backup.bin> [--bdf ...]

Читает встроенный SPI ROM через внутренний ASMedia PCIe-протокол.

Ключи:

  • --bdf — PCI BDF
  • --force-device — разрешить работу вне allowlist
  • --keep-driver-bound — не отвязывать драйвер
  • --size — прочитать только указанное число байт

Пример:

sudo asm3042-fw permanent-read-internal /root/asm.backup.bin --bdf 0000:01:00.0

asm3042-fw permanent-write-internal <firmware.bin> [--ini ...] [--bdf ...]

Пишет firmware во встроенный SPI ROM.

Команда включает fail-closed защиту (обязательный backup, manifest, rollback) и должна запускаться только после --plan и проверки лога.

Ключи:

  • --ini — путь к ASMTxHCIMPTool.ini
  • --unsafe-allow-ini-overrides — включить internal Windows-style overrides path
  • --bdf — PCI BDF
  • --force-device — разрешить работу вне allowlist
  • --keep-driver-bound — не отвязывать драйвер
  • --backup-file — путь для обязательного backup
  • --overwrite-backup — разрешить перезапись backup
  • --no-verify — отключить post-write verify
  • --plan — только preflight и backup, без записи
  • --require-primary-device-id — потребовать ожидаемый primary device id
  • --require-subsystem-device-id — потребовать ожидаемый subsystem device id
  • --require-subsystem-vendor-id — потребовать ожидаемый subsystem vendor id

Пример безопасного preflight:

sudo asm3042-fw permanent-write-internal \
  /path/to/firmware.bin \
  --bdf 0000:01:00.0 \
  --backup-file /root/asm.backup.bin \
  --plan

asm3042-fw crossflash-internal <firmware.bin> --ini ... [--bdf ...]

Упрощённый high-level wrapper вокруг internal write path.

Ключи:

  • --ini — путь к ASMTxHCIMPTool.ini
  • --bdf — PCI BDF
  • --force-device — разрешить работу вне allowlist
  • --backup-file — путь для backup
  • --overwrite-backup — разрешить перезапись backup
  • --no-verify — отключить verify
  • --plan — только план и backup
  • --apply — реально писать SPI

По умолчанию без --apply команда только строит план и сохраняет backup.

--apply запускает реальную запись SPI. Без --apply команда делает только план, валидацию и backup.

Примеры:

sudo asm3042-fw crossflash-internal \
  /path/to/firmware.bin \
  --ini /path/to/ASMTxHCIMPTool.ini \
  --bdf 0000:01:00.0
sudo asm3042-fw crossflash-internal \
  /path/to/firmware.bin \
  --ini /path/to/ASMTxHCIMPTool.ini \
  --backup-file /root/asm.backup.bin \
  --bdf 0000:01:00.0 \
  --apply

asm3042-fw audit-internal <firmware.bin> [--ini ...] [--bdf ...]

Сравнивает live PCI identity и текущий SPI с целевым образом, который будет собран из firmware.bin и optional .ini.

Ключи:

  • --ini — путь к ASMTxHCIMPTool.ini
  • --bdf — PCI BDF
  • --force-device — разрешить работу вне allowlist

Пример:

sudo asm3042-fw audit-internal \
  /path/to/firmware.bin \
  --ini /path/to/ASMTxHCIMPTool.ini \
  --bdf 0000:01:00.0

asm3042-fw permanent-restore-internal <backup.bin> [--bdf ...]

Восстанавливает встроенный SPI ROM из backup.

Восстановление использует тот же internal SPI write path и должно выполняться только с валидным backup/manifest.

Ключи:

  • --bdf — PCI BDF
  • --force-device — разрешить работу вне allowlist
  • --keep-driver-bound — не отвязывать драйвер
  • --no-verify — отключить verify после restore

Пример:

sudo asm3042-fw permanent-restore-internal /root/asm.backup.bin --bdf 0000:01:00.0

asm3042-fw permanent-read <backup.bin> --programmer ...

Читает SPI через flashrom и внешний программатор.

Ключи:

  • --programmer — строка программатора для flashrom
  • --chip — имя SPI-чипа
  • --flashrom-bin — путь к бинарю flashrom

Пример:

asm3042-fw permanent-read /root/asm.backup.bin --programmer ch341a_spi

asm3042-fw permanent-write <firmware.bin> --programmer ...

Пишет SPI через flashrom и внешний программатор.

Ключи:

  • --programmer — строка программатора для flashrom
  • --chip — имя SPI-чипа
  • --flashrom-bin — путь к бинарю flashrom
  • --backup-file — путь для обязательного backup
  • --overwrite-backup — разрешить перезапись backup
  • --no-verify — отключить verify

Пример:

asm3042-fw permanent-write \
  /path/to/firmware.bin \
  --programmer ch341a_spi \
  --backup-file /root/asm.backup.bin

Логи

Опасные операции автоматически пишут *.log рядом с рабочим файлом или в текущую директорию. Этот лог можно сразу присылать для разбора ошибок.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asm3042_flasher-0.4.29-py3-none-any.whl (42.0 kB view details)

Uploaded Python 3

File details

Details for the file asm3042_flasher-0.4.29-py3-none-any.whl.

File metadata

File hashes

Hashes for asm3042_flasher-0.4.29-py3-none-any.whl
Algorithm Hash digest
SHA256 0b8469eece685b9055e01f4c495d0c7e9a252a1648bd22c4e93c45598195545f
MD5 8689e7d193c4b610e7afe9766ae5e304
BLAKE2b-256 7f9837df4ee5a4f9f81c576fce617603314af7597fc08f2b438ee7fcf09495ce

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page