Intereting Posts
Используйте emacs как редактор внутри себя (ansi-term) Как сопоставить одну команду vim для выполнения команд bash на основе ОС? Как заставить OpenVPN прослушивать порты TCP и UDP перемещение папки старше 30 дней в другую папку Как написать сценарий инициализации LSB для процесса, который уже демоннизирован правильно? SED и PDSH: добавление строки в файл на подчиненном узле кластера Необходимо получить выход Awk в определенной последовательности Есть ли разница между сценариями ./script и bash? Могу ли я создать массив RAID-1 емкостью 2 ТБ из одного диска 2 ТБ и двух дисков 1 ТБ при сохранении 1 ТБ данных? Android chroot Debian Преимущества использования именованных каналов и сокетов, а не временных файлов Создание файлов lua xdg меню на Debian RHEL: создание стабильных имен для сетевых интерфейсов Ubuntu 12.04, черный фон для некоторых областей программ GTK в KDE Почему скрипты командной строки Linux используют ‘-‘ и ‘-‘ в качестве префикса параметра?

Ubuntu make не работает. Нет такого файла или каталога /lib/modules/3.4.0/build

Я пытаюсь построить драйвер CP210x для ядра 3.xx на ChrUbuntu.

Инструкции по сборке: Ubuntu:

  1. make (ваш драйвер cp210x)
  2. cp cp210x.ko /lib/modules/<kernel-version>/kernel/drivers/usb/serial
  3. insmod /lib/modules/<kernel-version/kernel/drivers/usb/serial/usbserial.ko
  4. insmod cp210x.ko

Я начал с apt-get install build-essential затем:

 root@ChrUbuntu:~/Documents/# make make -C /lib/modules/3.4.0/build M=/home/me/Documents/Linux_3.x.x_VCP_Driver_Source modules make: *** /lib/modules/3.4.0/build: No such file or directory. Stop. make: *** [all] Error 2 

Но я смущен ошибкой, потому что местоположение, по-видимому, существует:

 root@ChrUbuntu:/lib/modules/3.4.0# ls -la total 820 lrwxrwxrwx 1 root root 105 Feb 8 17:01 build -> /build/x86-mario/tmp/portage/sys-kernel/chromeos-kernel-3.4-r996/work/chromeos-kernel-3.4/build/x86-mario 

Как я могу это решить?

    Выяснили шаги для компиляции этого модуля ядра. Версия на веб-сайте silabs.com, по-видимому, слишком стар, чтобы использоваться с более новыми ядрами (3.4+).

    Я смог скомпилировать более новую версию файла cp210x.c , которую я нашел на kernel.org для моей конкретной версии ядра, используя Makefile предоставленный в источнике драйверов VCP.

    Создание cp210x для версии вашего ядра

    исходное ваше ядро

    Прежде всего обратите внимание на свои основные и второстепенные номера для вашего ядра (например, 3,4, 3,5 и т. Д.).

     $ uname -r 3.5.0-19-generic 

    Кстати, я на Ubuntu 12.10:

     $ lsb_release -r Release: 12.10 

    Установите заголовки ядра и создайте инструменты для своей версии ядра:

     sudo apt-get install linux-headers-$(uname -r) build-essential 

    Получите комплект VCP от silabs.com

    Теперь сделайте себе небольшую рабочую область для всего этого:

     mkdir -p $HOME/cp210x && cd $HOME/cp210x 

    Загрузите источник драйвера VCP:

     wget http://www.silabs.com/Support%20Documents/Software/Linux_3.x.x_VCP_Driver_Source.zip unzip Linux_3.x.x_VCP_Driver_Source.zip cd Linux_3.x.x_VCP_Driver_Source mv cp210x.c cp210x.c_orig 

    Получить kernel.org cp210x.c

    Теперь загрузите соответствующую версию cp210x.c для вашего ядра:

     $ wget https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/plain/drivers/usb/serial/cp210x.c?h=linux-3.5.y -O cp210x.c 

    ПРИМЕЧАНИЕ. Здесь вы можете просмотреть различные версии ядра .

    компилировать

    Теперь мы скомпилируем команду make :

     $ make make -C /lib/modules/3.5.0-19-generic/build M=/home/manny/cp210x/Linux_3.x.x_VCP_Driver_Source modules make[1]: Entering directory `/usr/src/linux-headers-3.5.0-19-generic' CC [M] /home/manny/cp210x/Linux_3.x.x_VCP_Driver_Source/cp210x.o Building modules, stage 2. MODPOST 1 modules CC /home/manny/cp210x/Linux_3.x.x_VCP_Driver_Source/cp210x.mod.o LD [M] /home/manny/cp210x/Linux_3.x.x_VCP_Driver_Source/cp210x.ko make[1]: Leaving directory `/usr/src/linux-headers-3.5.0-19-generic' 

    развертывание

    Теперь переместите любое ранее существовавшее ядро cp210x.ko :

     sudo mv /lib/modules/`uname -r`/kernel/drivers/usb/serial/cp210x.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial/cp210x.ko.orig 

    Теперь скопируйте недавно созданный модуль ядра, cp210x.ko в его место:

     sudo cp cp210x.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial/cp210x.ko 

    нагрузка

    Теперь убедитесь, что предыдущий cp210x.ko ядра cp210x.ko не был загружен:

     $ lsmod | grep cp210x $ 

    Если это так, выгрузите его:

     sudo rmmod cp210x 

    Теперь давайте загрузим наш новый модуль cp210x.ko :

     sudo modprobe cp210x 

    Контрольная работа

    Убедитесь, что он загружен правильно:

     $ lsmod |grep cp210x cp210x 21822 0 usbserial 42355 1 cp210x 

    Также проверьте dmesg по любым вопросам:

     $ dmesg | tail ... ... [979772.614394] usbcore: registered new interface driver usbserial [979772.614410] usbcore: registered new interface driver usbserial_generic [979772.614456] USB Serial support registered for generic [979772.614461] usbserial: USB Serial Driver core [979772.614810] usbcore: registered new interface driver cp210x [979772.614822] USB Serial support registered for cp210x 

    Компиляция модуля ядра usberial

    ОП задал вопрос о том, как выполнить компиляцию модуля usbserial.ko , учитывая, что он необходим приложениям, чтобы использовать модуль ядра cp210x. Вот эти инструкции.

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

     uname -r 3.5.0-19-generic 

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

     sudo apt-get install linux-source-3.5.0 

    Теперь давайте сделаем себе рабочую область:

     mkdir -p $HOME/src && cd $HOME/src 

    Распакуйте исходный код ядра в нашу рабочую область:

     tar jxvf /usr/src/linux-source-3.5.0.tar.bz2 

    Теперь давайте скомпилируем usbserial.ko :

     $ cd linux-source-3.5.0/drivers/usb/serial $ make -C /usr/src/linux-headers-`uname -r` M=`pwd` modules make: Entering directory `/usr/src/linux-headers-3.5.0-19-generic' CC [M] /root/src/linux-source-3.5.0/drivers/usb/serial/usb-serial.o ... ... LD [M] /root/src/linux-source-3.5.0/drivers/usb/serial/usbserial.o ... ... CC /root/src/linux-source-3.5.0/drivers/usb/serial/usbserial.mod.o LD [M] /root/src/linux-source-3.5.0/drivers/usb/serial/usbserial.ko ... ... make: Leaving directory `/usr/src/linux-headers-3.5.0-19-generic' 

    Убедитесь, что usbserial.ko был построен:

     ls -l |grep usbserial -rw-r--r-- 1 root root 74822 May 15 09:20 usbserial.ko -rw-r--r-- 1 root root 4120 May 15 09:20 usbserial.mod.c -rw-r--r-- 1 root root 8840 May 15 09:20 usbserial.mod.o -rw-r--r-- 1 root root 74724 May 15 09:20 usbserial.o 

    Теперь давайте установим его, загрузим и протестируем:

     # move old driver out of the way $ mv /lib/modules/`uname -r`/kernel/drivers/usb/serial/usbserial.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial/usbserial.ko.orig # copy newly built one in $ cp usbserial.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial/. # confirm `usbserial.ko` isn't loaded $ lsmod | grep usbserial $ # load it $ modprobe usbserial # confirm $ lsmod |grep usbserial usbserial 42355 0 # check dmesg log $ dmesg | tail -4 [1195955.210920] usbcore: registered new interface driver usbserial [1195955.210970] usbcore: registered new interface driver usbserial_generic [1195955.211002] USB Serial support registered for generic [1195955.211069] usbserial: USB Serial Driver core 

    Рекомендации

    • Ошибка компиляции драйвера USB
    • KernelCustomBuild – вики Ubuntu

    Так же, как комментарий, этот отличный и очень подробный рецепт почти сработал на моей хромовой книге ARM. Но мне пришлось изменить эту строку:

     $ wget https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/plain/drivers/usb/serial/cp210x.c?h=linux-3.5.y -O cp210x.c 

    К этому:

     $ wget https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/plain/drivers/usb/serial/cp210x.c?h=linux-3.4.y -O cp210x.c 

    То есть мне пришлось изменить «linux-3.5.y» на «linux-3.4.y»; с 3.5.y это не сработало.

    Я столкнулся с той же проблемой в ubuntu 12.04 и теперь с помощью этого драйвера, который сильно документирован. Кроме того, существуют скрипты конфигурации, правила udev и т. Д.

    https://github.com/RishiGupta12/serial-communication-manager/tree/master/drivers/cp210x-silicon-labs