Поскольку это было больше связано с проблемой программного обеспечения / драйверов, я разместил вопрос на SuperUser, а не на EE Exchange.

Я немного поискал в сети и нашел очень полезный мост конвертера USART в USB. CP2102 - это программируемое устройство с множеством настроек, если речь идет о кадрировании данных. Таким образом, драйвер для устройства должен использоваться для сопряжения и изменения этих параметров.

На сайте Silabs я нашел этот драйвер для Linux (ядро 3.14.4-1 в Arch Linux). Проблема в том, что этот драйвер - всего лишь одна программа на Си с нулевой документацией. Включающий make- файл примерно так же полезен, учитывая, что в нем есть одна строка, которая дает сбой (для меня) во время выполнения.

obj-m = cp210x.o
KVERSION = $(shell uname -r)
all:
    make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
    make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

Источник драйвера можно найти здесь.

Где моя ошибка

make -C /lib/modules/3.14.4-1-ARCH/build M=/home/branden/Desktop/Linux_3.x.x_VCP_Driver_Source modules

make[ 1 ]: Entering directory '/usr/lib/modules/3.14.4-1-ARCH/build'

make[ 1 ]: *** No rule to make target 'modules. Stop.

make[ 1 ]: Leaving directory '/usr/lib/modules/3.14.4-1-ARCH/build'

Makefile:4: recipe for target 'all' failed

make: *** [all] Error 2

Там нет документации, кроме:

  1. make (ваш драйвер cp210x)
  2. cp cp210x.ko в /lib /modules // ядро / драйверы / usb / serial
  3. insmod /lib /modules /
  4. insmod cp210x.ko

Который на самом деле направлен на Ubuntu. Операционная система, которую я использую, - Arch Linux, поэтому я понимаю, что могут быть некоторые несоответствия, но я не могу их устранить.

Может ли кто-нибудь дать некоторые рекомендации о том, как установить этот драйвер (или, по крайней мере, где его искать) и почему не хватает документации? Есть ли здесь предположения, о которых я не знаю? Как кто-то предполагает использовать это? Если вы посмотрите на источник, то есть структуры, используемые в качестве аргументов для функций, которые, насколько я могу судить, никогда не определяются. Возможно, они являются частью заголовочных файлов, включенных вверху, но я не смог найти некоторые из них и на моей машине.

2 ответа2

1

Вы просто не загрузили заголовки Linux:

 sudo pacman -S linux-headers

решает вашу проблему В вашем сообщении об ошибке говорится, что в /linux /modules /$(uname -r)/build нет правила создания модулей. Если вы заглянете в этот каталог в это время, вы ничего не найдете или, возможно, файл vmlinux. После обновления с помощью приведенной выше команды вы найдете все необходимые вам модули.

Этот вопрос не является специфичным для Arch, он является общим для всех дистрибутивов Linux.

0

У меня была такая же проблема при установке linux-заголовков. pacman установил пакет с более новым ядром. Я решил свою проблему, перекомпилировав модуль сразу после обновления всего:

pacman -Syu && pacman -S linux-headers

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .