- Вопрос или проблема
- Ответ или решение
- Установка драйвера для CH34x Serial Hub на Raspberry Pi 5 под управлением Raspbian
- Шаг 1: Установка необходимых заголовков ядра
- Шаг 2: Проверка на наличие символической ссылки
- Шаг 3: Сборка и установка драйвера
- Шаг 4: Обработка ошибки с rpi-source
- Шаг 5: Перезагрузка и проверка работы
- Заключение
Вопрос или проблема
Я использую последнюю версию 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 и другим профессиональным сообществам.