Как обновить прошивку Cardo Packtalk Slim (или Freecom )на Linux (самостоятельно или через виртуальную машину )?

Ядро может этим управлять. Однако ядро ​​обычно по умолчанию не перезагружается. Либо

  1. вы уже передаете какую-то panic=опцию
  2. или ядро ​​собрано с помощью CONFIG _PANIC _TIMEOUT не равно нулю (см./boot/config-*)
  3. или эта перезагрузка не связана с общим кодом паники ядра
  4. (или, если это так, это непреднамеренная ошибка. Я ожидаю, что это зависит от аппаратного обеспечения -.)

Параметры ядра упоминались здесь в ответах:Как настроить ядро ​​Linux для перезагрузки при панике?

Загрузочный код GRUB теряет активный контроль, как только он передает управление Linux. нет вызовов, идущих наоборот. При перезагрузке Linux фактически передает управление прошивке (BIOS/EFI/чему угодно ).

It turns out that I can not read at the speed of light

Действительно. Если вы не можете использовать последовательную консоль , вы можете попробовать, например. boot_delay=200, чтобы задержать каждую строку журнала ядра на 200 мс, чтобы у вас было время прочитать, сфотографировать и/или записать сообщения на видео.

1
25.06.2021, 05:34
2 ответа

Мне удалось обновить прошивку моих устройств Cardo (2 Packtalk Slim )с исходной версии (4.2 )до новейшей на сегодняшний день версии (5.7 ). Я добился этого в Debian через виртуальную машину под управлением Windows 10 Pro. Он не обновлялся из коробки, так как мне требовалось загрузить (прикрепить )и выгрузить (отсоединить )несколько XML-файлов в процессе обновления прошивки. Оглядываясь назад, прогулка в парке.

Для виртуализации в Debian подходит KVM (QEMU, libvirt ). Чтобы установить его:

sudo apt-get install qemu-system libvirt-clients libvirt-daemon-system virt-manager

virt -менеджер имеет графический интерфейс, который упрощает создание и запуск виртуальной машины. Я установил на него Windows 10 Pro.iso. После чего я смог запустить его как гостевую ОС.

Программное обеспечение Cardo Update, доступное на веб-сайте cardosystems, безупречно установлено на гостевой ОС (Win10 ).

Первое препятствие заключалось в том, чтобы заставить хост-устройство USB (устройство Cardo )распознаваться гостевой ОС. Для этого подключите его и запустите команду lsusb в консоли терминала на хост-ОС (Debian):

lsusb

Bus 001 Device 035: ID 2685:0900 Cardo Peripheral Systems LTD [Packtalk Bold Bluetooth Motorcycle Intercom]

Обратите внимание на производителя и идентификатор продукта. Здесь идентификатор поставщика — 2685 , а идентификатор продукта — 0900 .

Пришло время создать наш первый (1/3 )файл.xml для подключения к нашей виртуальной машине. Давайте назовем его «usb _устройство _cardo.xml» и поместим его в нашу домашнюю папку нашей основной ОС (Debian ). Он должен содержать следующее:

<hostdev mode="subsystem" type="usb" managed="yes">
  <source>
    <vendor id="0x2685"/>
    <product id="0x0900"/>
  </source>
  <address type="usb" bus="0" port="4"/>
</hostdev>

Давайте проверим, распознается ли устройство Cardo. Во время работы гостевой ОС (win10 ),откройте консоль терминала на хост-ОС (Debian )и как root выполните следующую команду (замените «win10» на имя вашей виртуальной машины):

virsh attach-device win10 --file usb_device_cardo.xml --current

Device attached successfully

Ваше устройство Cardo станет доступным на вашей гостевой ОС (win10 ). Давайте отсоединим его перед запуском программного обеспечения Cardo Update:

virsh detach-device win10 --file usb_device_cardo.xml

Устройство успешно отсоединено

После того, как программное обеспечение Cardo Update запущено, мы можем снова подключить его, чтобы начать обновление прошивки:

virsh attach-device win10 --file usb_device_cardo.xml --current

Обновление микропрограммы начнется, но быстро остановится, и будет казаться, что USB-накопитель был извлечен из гостевой ОС (win10 ). Если вы снова запустите lsusb в терминале на хост-ОС (Debian ), вы увидите, что устройство Cardo имеет новый идентификатор продукта (0901 вместо 0900 в моем случае. )Пришло время создать второй файл (2/3 ).xml для подключения к нашей виртуальной машине. Назовем его «usb _устройство _cardo _2.xml». Он должен быть похож на предыдущий, за исключением обновленного идентификатора продукта(0x0901)и адреса порта(5 ):

.
<hostdev mode="subsystem" type="usb" managed="yes">
  <source>
    <vendor id="0x2685"/>
    <product id="0x0901"/>
  </source>
  <address type="usb" bus="0" port="5"/>
</hostdev>

Давайте прикрепим его до истечения срока обновления прошивки. В терминале хост-ОС (Debian )запустите:

virsh attach-device win10 --file usb_device_cardo_2.xml --current

Device attached successfully

Обновление микропрограммы будет продолжаться до тех пор, пока оно снова не остановится и не «извлечет» устройство из гостевой ОС (win10 ).

Запустите lsusb еще раз на хост-ОС (Debian ), и устройство Cardo снова будет иметь новый идентификатор продукта (0001, в моем случае ). Пришло время создать третий и последний файл.xml.'usb _устройство _cardo _3.xml' с обновленным идентификатором продукта(0x0001)и портом адреса(6):

<hostdev mode="subsystem" type="usb" managed="yes">
  <source>
    <vendor id="0x2685"/>
    <product id="0x0001"/>
  </source>
  <address type="usb" bus="0" port="6"/>
</hostdev>

Снова как пользователь root в терминале хост-ОС (Debian):

virsh attach-device win10 --file usb_device_cardo_3.xml --current

Device attached successfully

Чтобы завершить обновление микропрограммы, вам, возможно, придется присоединять и отсоединять три разных XML-файла с помощью команды «virsch attach -device ». Чтобы узнать, какой из них прикрепить, просто запустите lsusb на вашей хост-ОС (Debian )и прикрепите файл xml с идентичным идентификатором продукта (0x0900, 0x901 или 0x0001 в моем случае ).

Прошивка обновлена! Дайте мне знать, если это помогло!

1
28.07.2021, 11:22

Вдохновленный решением Tonphai, я попытался найти его с помощью Virtualbox.

Для получения информации о подключенных USB-устройствах использовалась следующая команда. Убедитесь, что пакет Cardo включен. Вам понадобится работающая гостевая установка Windows на Virtualbox.

lsusb

Мой результат был:

Bus 002 Device 007: ID 2685:0900 Cardo Systems Inc. Cardo Device

В Virtualbox Manager перейдите в «Настройки» для этой виртуальной машины Windows и выберите «USB». Я оставил контроллер USB 3.0 включенным. Создайте новый USB-фильтр и введите осмысленный текст для имени. Я использовал «Кардо (руководство )», идентификатор поставщика будет 2685 , идентификатор продукта будет 0900 . Серийный номер я установил как 0 и порт как 4 .

enter image description here

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

.
sudo adduser $USER vboxusers

Обязательно установите последние гостевые дополнения Virtualbox, следуя инструкциям здесь:https://www.virtualbox.org/manual/ch04.html

Установите программу обновления Cardo для Windows:https://www.cardosystems.com/download-cardo-updater/

После запуска гостевой виртуальной машины Windows перейдите в меню VB и выберите «Устройства» -USB, а затем выберите устройство Cardo, которое должно появиться в списке. Это должно заставить Cardo установить программное обеспечение, чтобы распознать ваше устройство и обновить его прошивку.

Надеюсь, вам это поможет.

enter image description here

2
19.08.2021, 20:35

Теги

Похожие вопросы