Попытка установить драйвер для CH34x Serial Hub

Вопрос или проблема

Я использую последнюю версию Raspbian на R Pi 5 и пытаюсь подключить к нему серийный концентратор CH348, но для этого нужен драйвер. Все инструкции и руководства не сработали, и я получаю ошибки о том, что директории не существуют или файл драйвера не в правильном формате.

Драйвер: CH34x Я также пытался следовать этому руководству https://github.com/WCHSoftGroup/ch9344ser_linux, но получил сообщение, что /lib/modules/6.6.62-v8-16k+/build: Нет такого файла или директории.

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

Ошибка1:

 make
make -C /lib/modules/6.6.62-v8-16k+/build  M=/home/amp/Downloads/LINUX/driver
make[1]: *** /lib/modules/6.6.62-v8-16k+/build: Нет такого файла или директории.  Остановка.
make: *** [Makefile:7: default] Ошибка 2

Ошибка2:

 rpi-source
  Файл "/usr/bin/rpi-source", строка 111
    except urllib2.HTTPError, e:
           ^^^^^^^^^^^^^^^^^^^^
SyntaxError: несколько типов исключений должны быть заключены в скобки

Ваша Ошибка1 указывает на то, что у вас в настоящее время не установлен пакет linux-headers-*, соответствующий вашему текущему пакету ядра linux-image-*. Решение: узнайте название текущего установленного пакета ядра и установите соответствующий пакет linux-headers-*.

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

Если вы собрали собственное ядро с нуля, /lib/modules/$(uname -r)/build должно быть символической ссылкой на ваш каталог сборки ядра. Но пересборка всего ядра была бы излишней (и займет много времени на Raspberry Pi), если вам нужен только один дополнительный модуль ядра.

Смотрите: https://www.raspberrypi.com/documentation/computers/linux_kernel.html#kernel-headers

Если заголовки ядра установлены, они будут находиться в каталогах с версиями в /usr/src, например, linux-headers-6.6.51+rpt-rpi-2712. Эти каталоги соответствуют каталогам в /lib/modules без linux-headers-. Если один из последних не содержит подкаталога build (который на самом деле является символьной ссылкой на каталог заголовков), вы можете создать его:

ln -s /usr/src/linux-headers-6.6.51+rpt-rpi-2712/build /lib/modules/6.6.51+rpt-rpi-2712

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

> uname -r
6.6.51+rpt-rpi-2712

Эта строка версии будет идентична названию подкаталога /lib/modules.

Ответ или решение

Установка драйвера для CH34x Serial Hub на Raspberry Pi 5 под управлением Raspbian

Ваша задача заключается в установке драйвера для CH34x Serial Hub на Raspberry Pi 5 с последней версией Raspbian. Рассмотрим последовательность шагов для успешной установки, решение возникших ошибок и запуск драйвера в вашей системе.

Шаг 1: Установка необходимых заголовков ядра

Ошибка, которую вы получаете:

make -C /lib/modules/6.6.62-v8-16k+/build  M=/home/amp/Downloads/LINUX/driver
make[1]: *** /lib/modules/6.6.62-v8-16k+/build: No such file or directory.  Stop.

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

Чтобы установить заголовки ядра, выполните следующие команды в терминале:

sudo apt update
sudo apt install raspberrypi-kernel-headers

После установки заголовков ядра проверьте, что они корректно установлены:

ls /usr/src

Вы должны увидеть директории с заголовками ядра, например linux-headers-6.6.62-v8-16k.

Шаг 2: Проверка на наличие символической ссылки

Проверьте наличие символической ссылки для build по пути /lib/modules/$(uname -r). Выполните:

uname -r

Если ваша версия ядра выводится как 6.6.62-v8-16k, убедитесь, что в /lib/modules/6.6.62-v8-16k/ существует папка build. Если ее нет, создайте символическую ссылку:

sudo ln -s /usr/src/linux-headers-$(uname -r)/build /lib/modules/$(uname -r)/

Шаг 3: Сборка и установка драйвера

Теперь перейдите в директорию с драйвером и выполните сборку:

cd /home/amp/Downloads/LINUX/driver
make

После успешной сборки выполните команду для установки:

sudo make install

Шаг 4: Обработка ошибки с rpi-source

Второе сообщение об ошибке:

SyntaxError: multiple exception types must be parenthesized

указывает на несовместимость кода с версией Python. Возможно, у вас установлен Python 3, в то время как rpi-source ожидает Python 2. Попробуйте установить и использовать rpi-source в Python 3:

sudo apt install python3-rpi.gpio

Также проверьте, что ваш rpi-source работает корректно, выполнив:

rpi-source

Теперь он должен корректно обрабатывать все требуемые зависимости.

Шаг 5: Перезагрузка и проверка работы

После завершения всех установок и сборок перезагрузите вашу систему:

sudo reboot

Затем проверьте, распознается ли ваш CH34x Serial Hub. Введите команду:

ls /dev/ttyUSB*

Если устройство отображается, значит, установка драйвера прошла успешно.

Заключение

Установка и настройка драйвера для CH34x Serial Hub на Raspberry Pi 5 требует правильного подбора версий заголовков ядра и исправной среды для сборки. Следуя приведенным выше инструкциям, вы сможете без проблем подготовить свое устройство к работе. Если во время выполнения каких-либо из шагов возникли дополнительные проблемы, не стесняйтесь запрашивать помощь на форумах по Raspberry Pi и другим профессиональным сообществам.

Оцените материал
Добавить комментарий

Капча загружается...