Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Openocd не собирается
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Vlad_9
Добрый день. начинаю собирать такая штука
checking whether standard drivers can be built... yes
checking for LIBUSB1... no
configure: WARNING: libusb-1.x not found, trying legacy libusb-0.1 as a fallback; consider installing libusb-1.x instead
checking for LIBUSB0... no
checking for HIDAPI... no
checking for HIDAPI... no
checking for HIDAPI... no
configure: error: libusb-1.x or libusb-0.1 is required for the Segger J-Link JTAG Programmer
Хотя библиотека есть.
vlad@debian:~/openocd-0.9.0$ dpkg -l | grep 'libusb'
ii libgusb2:amd64 0.1.6-5 amd64 GLib wrapper around libusb1
ii libusb-0.1-4:amd64 2:0.1.12-25 amd64 userspace USB programming library
ii libusb-0.1-4:i386 2:0.1.12-25 i386 userspace USB programming library
ii libusb-1.0-0:amd64 2:1.0.19-1 amd64 userspace USB programming library
ii libusb-1.0-0:i386 2:1.0.19-1 i386 userspace USB programming library
ii libusb-1.0-0-dev:amd64 2:1.0.19-1 amd64 userspace USB programming library development files
ii libusb-1.0-0-dev:i386 2:1.0.19-1 i386 userspace USB programming library development files
ii libusb-1.0-doc 2:1.0.19-1 all documentation for userspace USB programming
ii libusb-dev 2:0.1.12-25 i386 userspace USB programming library development files
ii libusbmuxd2:amd64 1.0.9-1 amd64 USB multiplexor daemon for iPhone and iPod Touch devices - library
ii libusbredirhost1:amd64 0.7-1 amd64 Implementing the usb-host (*) side of a usbredir connection (runtime)
ii libusbredirparser1:amd64 0.7-1 amd64 Parser for the usbredir protocol (runtime)

ОС Debian 8.8 Openocd пробовал разные версии
Идеи кончились, поиск в основном говорит ставь библиотеку. Но она установлена
arhiv6
А пакет с development files тоже установлен? Нужны пакеты libusb-1.0-0 и libusb-1.0-0-dev (версия в вашем дистрибутиве может отличаться).
Vlad_9
Цитата
А пакет с development files тоже установлен?
Как проверить или поставить?
arhiv6
В консоле:
Код
sudo apt-get install libusb-1*


Хотя, перечитал Ваше первое сообщение, похоже нужные пакеты и правда уже установлены...
Vlad_9
Может как то AMD64 пакеты мешают.

И если предположить что проблема в версии то configure: WARNING: libusb-1.x not found. 1.x так понимаю версия не актуальна. Ну да ладно не помогает. Библиотеки есть но их нету.
Lagman
Если стоят, наделайте на них симлинков в разных местах
Jury093
Цитата(Vlad_9 @ Sep 28 2017, 22:39) *
ОС Debian 8.8 Openocd пробовал разные версии
Идеи кончились, поиск в основном говорит ставь библиотеку. Но она установлена

а в чем цель самостоятельной сборки и почему не поставить готовый бинарник?
и откуда вы взяли исходники?
беру например отсюда:
http://http.debian.net/debian/pool/main/o/...9.0.orig.tar.gz
разворачиваю под виртуалкой на Ubuntu-14.10-x64
конфигурю
https://pastebin.com/f5miPUDe
собираю без проблем
Tarbal
А что у вас в /etc/ld.so.conf
и в файлах, которые в него включены.

Находятся ли ваши библиотеки в списке команды:
`gcc -print-prog-name=cc1` -v

Скопируйте команды, а если будете набирать, то кавычки специальные с клавиши рядом с <1>.

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

Еще команда
cpp -v
Vlad_9
Openocd брал отсюда https://sourceforge.net/projects/openocd/files/openocd/
Почему сборка нашел несколько статей в них он собирался поэтому пошел этим путем.

ld.so.conf у меня нет а вот:
vlad@debian:/etc/ld.so.conf.d$ dir
fakeroot-x86_64-linux-gnu.conf i386-linux-gnu.conf libc.conf x86_64-linux-gnu.conf

fakeroot-x86_64-linux-gnu.conf
/usr/lib/x86_64-linux-gnu/libfakeroot

i386-linux-gnu.conf
# Multiarch support
/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu
/lib/i586-linux-gnu
/usr/lib/i586-linux-gnu

libc.conf
#libc default configuration
/usr/local/lib

x86_64-linux-gnu.conf
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu

vlad@debian:/etc/ld.so.conf.d$ `gcc -print-prog-name=cc1` -v
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-linux-gnu/4.9/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed
/usr/include
End of search list.

Где лежит libusb?
mcheb
попробуйте это
* Debian based distros (debian, ubuntu)
* `build-essential`
* `cmake`
* `libusb-1.0` (plus development headers for building, on debian based distros `libusb-1.0.0-dev` package)
Vlad_9
Я начинающий пользователь, неделю только использую линукс. Если можно то просьба чуть подробнее писать
Цитата
* Debian based distros (debian, ubuntu)
* `build-essential`
* `cmake`
* `libusb-1.0` (plus development headers for building, on debian based distros `libusb-1.0.0-dev` package)
Jury093
Цитата(Vlad_9 @ Sep 30 2017, 08:20) *
Openocd брал отсюда https://sourceforge.net/projects/openocd/files/openocd/
Почему сборка нашел несколько статей в них он собирался поэтому пошел этим путем.

вытащил оттуда 0.10, конфигурится, собирается..
https://pastebin.com/WRmejGE3

возможно вас касается этот варнинг:

Код
configure: libusb-1.0 header bug workaround: LIBUSB1_CFLAGS changed to "-isystem /usr/include/libusb-1.0"

где это и что, я без понятия..

Цитата
Где лежит libusb?

в системе, что у меня
Код
jury093@ubuntu64:~/src/openocd/openocd-0.10.0$ find /usr |grep libusb
/usr/include/libusb-1.0
/usr/include/libusb-1.0/libusb.h
/usr/bin/libusb-config
/usr/lib/x86_64-linux-gnu/libusb.a
/usr/lib/x86_64-linux-gnu/libusbmuxd.so.2.1.0
/usr/lib/x86_64-linux-gnu/pkgconfig/libusb-1.0.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/libusb.pc
/usr/lib/x86_64-linux-gnu/libusb-1.0.so
/usr/lib/x86_64-linux-gnu/libusbmuxd.so.2
/usr/lib/x86_64-linux-gnu/libusb.so
/usr/lib/x86_64-linux-gnu/libusb-1.0.a
/usr/lib/x86_64-linux-gnu/libusb-0.1.so.4

и там еще в доках что-то находит
Vlad_9
Цитата
возможно вас касается этот варнинг:

Код
configure: libusb-1.0 header bug workaround: LIBUSB1_CFLAGS changed to "-isystem /usr/include/libusb-1.0"
где это и что, я без понятия..

По этому пути у меня лежит хедер libusb.

а вот так понимаю код который это порождает:
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBUSB1" >&5
$as_echo_n "checking for LIBUSB1... " >&6; }

if test -n "$LIBUSB1_CFLAGS"; then
pkg_cv_LIBUSB1_CFLAGS="$LIBUSB1_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libusb-1.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libusb-1.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBUSB1_CFLAGS=`$PKG_CONFIG --cflags "libusb-1.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
else
pkg_failed=untried

это моя сборка
checking for LIBUSB1... no
configure: WARNING: libusb-1.x not found, trying legacy libusb-0.1 as a fallback; consider installing libusb-1.x instead

это исходник
use_libusb1=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libusb-1.x not found, trying legacy libusb-0.1 as a f$
$as_echo "$as_me: WARNING: libusb-1.x not found, trying legacy libusb-0.1 as a fallback; consider installing li$

andrew_b
Цитата(Vlad_9 @ Sep 30 2017, 13:42) *
По этому пути у меня лежит хедер libusb.

а вот так понимаю код который это порождает:
Не смотрите в configure, это производный файл. Смотрите в исходник -- это configure.ac или в configure.in.

Судя по configure, проверка libusb делается так:
Код
$PKG_CONFIG --exists --print-errors "libusb-1.0"

Для начала покажите выхлоп
Код
pkg-config --list-all | grep usb
Vlad_9
vlad@debian:~/openocd-0.10.0$ pkg-config --list-all |grep usb
libusbmuxd libusbmuxd - A library to communicate with the usbmux daemon
libusbredirhost libusbredirhost - usbredirhost library
libusb libusb - USB access library
usbutils usbutils - USB device database
libusb-1.0 libusb-1.0 - C API for USB device access from Linux, Mac OS X, Windows and OpenBSD/NetBSD userspace
libusbredirparser-0.5 libusbredirparser-0.5 - usbredirparser library

Цитата
Если нет, то попробуйте или линки создать в одной директории из списка или в Makefile добавьте путь для линковки.

Может попробовать только как проделать операцию?
andrew_b
Цитата(Vlad_9 @ Sep 30 2017, 22:48) *
vlad@debian:~/openocd-0.10.0$ pkg-config --list-all |grep usb
[...]
libusb-1.0 libusb-1.0 - C API for USB device access from Linux, Mac OS X, Windows and OpenBSD/NetBSD
[...]

Ну то есть в принципе libusb-1.0 видна. Идём дальше.
Код
pkg-config --modversion --cflags --libs libusb-1.0
Vlad_9
vlad@debian:~$ pkg-config --modversion --cflags --libs libusb-1.0
Ignoring incompatible output option "--cflags"
Ignoring incompatible output option "--libs"
1.0.19

vlad@debian:~$ pkg-config --cflags --libs libusb-1.0
-I/usr/include/libusb-1.0 -lusb-1.0
vlad@debian:~$
andrew_b
Всё хорошо, всё должно находиться. Почему не находится, ХЗ, дистанционно сказать не могу.
Поробуйте перед сборкой перегенерить configure командой
Код
autoreconf -fisv
Vlad_9
andrew_b Большое спасибо помогло шаг пройден!!!
Долго крутил вертел но выдал что все нормально, по моему несколько проходов было.

Теперь на make install споткнулся
vlad@debian:~/openocd-0.10.0$ make install
Makefile:4240: предупреждение: переопределение способа для цели «check-recursive»
Makefile:3655: предупреждение: старый способ для цели «check-recursive» игнорируются
make install-recursive
make[1]: вход в каталог «/home/vlad/openocd-0.10.0»
Makefile:4240: предупреждение: переопределение способа для цели «check-recursive»
Makefile:3655: предупреждение: старый способ для цели «check-recursive» игнорируются
Making install in jimtcl
make[2]: вход в каталог «/home/vlad/openocd-0.10.0/jimtcl»
make[2]: Цель «install» не требует выполнения команд.
make[2]: выход из каталога «/home/vlad/openocd-0.10.0/jimtcl»
Making install in src/jtag/drivers/libjaylink
make[2]: вход в каталог «/home/vlad/openocd-0.10.0/src/jtag/drivers/libjaylink»
Making install in libjaylink
make[3]: вход в каталог «/home/vlad/openocd-0.10.0/src/jtag/drivers/libjaylink/libjaylink»
make[4]: вход в каталог «/home/vlad/openocd-0.10.0/src/jtag/drivers/libjaylink/libjaylink»
make[4]: выход из каталога «/home/vlad/openocd-0.10.0/src/jtag/drivers/libjaylink/libjaylink»
make[3]: выход из каталога «/home/vlad/openocd-0.10.0/src/jtag/drivers/libjaylink/libjaylink»
make[3]: вход в каталог «/home/vlad/openocd-0.10.0/src/jtag/drivers/libjaylink»
make[4]: вход в каталог «/home/vlad/openocd-0.10.0/src/jtag/drivers/libjaylink»
make[4]: Цель «install-exec-am» не требует выполнения команд.
make[4]: выход из каталога «/home/vlad/openocd-0.10.0/src/jtag/drivers/libjaylink»
make[3]: выход из каталога «/home/vlad/openocd-0.10.0/src/jtag/drivers/libjaylink»
make[2]: выход из каталога «/home/vlad/openocd-0.10.0/src/jtag/drivers/libjaylink»
make[2]: вход в каталог «/home/vlad/openocd-0.10.0»
Makefile:4240: предупреждение: переопределение способа для цели «check-recursive»
Makefile:3655: предупреждение: старый способ для цели «check-recursive» игнорируются
make[3]: вход в каталог «/home/vlad/openocd-0.10.0»
Makefile:4240: предупреждение: переопределение способа для цели «check-recursive»
Makefile:3655: предупреждение: старый способ для цели «check-recursive» игнорируются
/bin/mkdir -p '/usr/local/bin'
/bin/bash ./libtool --mode=install /usr/bin/install -c src/openocd '/usr/local/bin'
libtool: install: /usr/bin/install -c src/openocd /usr/local/bin/openocd
/usr/bin/install: cannot create regular file '/usr/local/bin/openocd': Permission denied
Makefile:2402: ошибка выполнения рецепта для цели «install-binPROGRAMS»
make[3]: *** [install-binPROGRAMS] Ошибка 1
make[3]: выход из каталога «/home/vlad/openocd-0.10.0»
Makefile:3960: ошибка выполнения рецепта для цели «install-am»
make[2]: *** [install-am] Ошибка 2
make[2]: выход из каталога «/home/vlad/openocd-0.10.0»
Makefile:3655: ошибка выполнения рецепта для цели «install-recursive»
make[1]: *** [install-recursive] Ошибка 1
make[1]: выход из каталога «/home/vlad/openocd-0.10.0»
Makefile:3954: ошибка выполнения рецепта для цели «install»
make: *** [install] Ошибка 2
а вот от root команда прошла. На сколько это правильно?
AHTOXA
Цитата(Vlad_9 @ Oct 1 2017, 23:35) *
а вот от root команда прошла. На сколько это правильно?

Это правильно, install надо запускать от root-а.
Grizzzly
Цитата(AHTOXA @ Oct 1 2017, 23:21) *
Это правильно, install надо запускать от root-а.

Я бы не советовал что-либо совать в систему в обход пакетного менеджера...
Нужно было собрать новую версию OpenOCD, которой не было в репозитории моего дистрибутива, я это сделал аккуратно в "хомячке".
andrew_b
Цитата(Grizzzly @ Oct 2 2017, 11:27) *
Я бы не советовал что-либо совать в систему в обход пакетного менеджера...
Ну вообще это правильно. "Лёгким движением make install пакетный дистрибутив превращается в Слаку". Но поскольку ТС новичок в Линуксе, собрать пакет ему будет трудно.
Сергей Борщ
QUOTE (Vlad_9 @ Sep 30 2017, 11:36) *
Я начинающий пользователь, неделю только использую линукс.

QUOTE (Grizzzly @ Oct 2 2017, 11:27) *
Нужно было собрать новую версию OpenOCD, которой не было в репозитории моего дистрибутива, я это сделал аккуратно в "хомячке".
Автор темы восхищается вашей крутостью, чё. Какую еще пользу сможет он извлечь из вашего ответа?
arhiv6
Нужно или при сборкe указать, в какую директорию будет производиться make install, например вот так: ./configure --prefix ~/openocd
или ещё правильнее вместо make install использовать команду checkinstall - при этом создаётся .deb пакет и уже он устанавливается.
Vlad_9
Да простят модераторы что не все теме.
По openocd после сборки каталог со скриптами оказался пустым. Установил openocd через apt-get, скрипты появились все нормально.
От openocd пришлось отказаться оказывается не поддерживает SWD для G-Linka , проблема решена установкой родного сеггеровского GDB сервера.
Есть вопросы не по теме может кто то что то подскажет.
Подключены беспроводная клавиатура и мышь с одним адаптером, мышь не работает, предполагаю нужен более новый драйвер.
[ 4.137383] chicony 0003:04F2:1123.0001: input,hidraw0: USB HID v1.11 Keyboard [Chicony Wireless Device] on usb-0000:00:1d.0-1.1/input0
[ 4.140456] chicony 0003:04F2:1123.0002: usage index exceeded
[ 4.140549] chicony 0003:04F2:1123.0002: item 0 2 2 2 parsing failed
[ 4.140693] chicony: probe of 0003:04F2:1123.0002 failed with error -22

[ 4.142427] tsc: Refined TSC clocksource calibration: 2166.666 MHz
В дебиан 9 все работало сейчас стоит дебиан 8,8. Что и куда надо установить?

В приложении запущенyом под Wine при нажатие Ctl+v, пишет что ошибка и выключается.

Grub не работает с моей видеокартой. У меня подключено два монитора, видеокарта в таком режиме ничего не отображает. Т е так понимаю ее надо настроить первоначально.
Это делает ядро при загрузке. У меня темный экран когда должно отображаться меню загрузки. Потом появляется картинка. Когда дополнительный монитор отключен все нормально меню загрузчика видно.


Grizzzly
Цитата(Сергей Борщ @ Oct 2 2017, 11:50) *
Автор темы восхищается вашей крутостью, чё. Какую еще пользу сможет он извлечь из вашего ответа?

Задать себе вопрос: "Почему нельзя так устанавливать пакеты?" А затем второй: "Как же всё-таки правильно это делать?"
Лучше сразу учиться на советах и ошибках других, кто уже прошел путь, чем переучиваться, попутно сломав систему.
Tarbal
Цитата(Grizzzly @ Oct 8 2017, 15:37) *
Задать себе вопрос: "Почему нельзя так устанавливать пакеты?" А затем второй: "Как же всё-таки правильно это делать?"
Лучше сразу учиться на советах и ошибках других, кто уже прошел путь, чем переучиваться, попутно сломав систему.


Если вы знаете как делать правильно, то расскажите и ваш ответ будет выглядеть совершенно иначе. Согласитесь, что просто сказать вы в корне неправы без объяснений выглядит высокомерно. К тому же оно совершенно не информативно. Как это поможет тому кто ищет решение?
Vlad_9
Цитата
Задать себе вопрос: "Почему нельзя так устанавливать пакеты?" А затем второй: "Как же всё-таки правильно это делать?"
Лучше сразу учиться на советах и ошибках других, кто уже прошел путь, чем переучиваться, попутно сломав систему.

Улыбнуло. biggrin.gif
Grizzzly задайте себе вопрос: "А Зачем вы на форум ходите?"
Когда будет правильный ответ можно разговаривать будет.
Цитата
Если вы знаете как делать правильно, то расскажите и ваш ответ будет выглядеть совершенно иначе. Согласитесь, что просто сказать вы в корне неправы без объяснений выглядит высокомерно. К тому же оно совершенно не информативно. Как это поможет тому кто ищет решение?

Он не за этим здесь чтобы что то объяснять. Он уже учить приготовился.
На CQHAM форуме есть очень хорошая функция можно блокировать сообщения определенного пользователя. То есть читаешь ветку , пользователь которого заблокировал пусто, экономит время и нервную систему.
Grizzzly
Цитата(Tarbal @ Oct 8 2017, 17:19) *
Как это поможет тому кто ищет решение?

Я заметил ошибку, на которую никто не обратил внимания. Конкретно к теме ТС она не относилась, поэтому я не стал подробно расписывать. А все сразу на меня накинулись sm.gif)) Я никого обижать не хотел, а предостерег от того, что при подобной установке в обход пакетного менеджера легко испортить систему. Оставлю наиболее характерную ссылку: https://habrahabr.ru/post/130868/
Tarbal
Цитата(Grizzzly @ Oct 8 2017, 19:20) *
Я заметил ошибку, на которую никто не обратил внимания. Конкретно к теме ТС она не относилась, поэтому я не стал подробно расписывать. А все сразу на меня накинулись sm.gif)) Я никого обижать не хотел, а предостерег от того, что при подобной установке в обход пакетного менеджера легко испортить систему. Оставлю наиболее характерную ссылку: https://habrahabr.ru/post/130868/


Ну и прекрасно. Хорошо что разобрались. Спасибо за полезную информацию.
Vlad_9
Мышь с клавиатурой заработали после обновления ядра. Выхода два было либо пересобирать старое ядро подправив хедер, либо ставить более свежее. На новом ядре с одним из приложений в Wine появились проблемы одно лечим другое калечим.
Запустил IDE под VmWare, был мой косяк в настройках не прописал команду в IDE. Попробовал IDE под VirtualBox тоже работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.