Odp: USBIP jak zainstalować
Proste - programy userspace nie są już w staging_dir a toolsach w kernelu, więc trzeba makefile zmienić żeby wskazywało inne katalogi.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → USBIP jak zainstalować
Strony Poprzednia 1 2 3 4 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
Proste - programy userspace nie są już w staging_dir a toolsach w kernelu, więc trzeba makefile zmienić żeby wskazywało inne katalogi.
Skoro takie proste nie prościej komuś po prostu napisać konkretnie jak ma wyglądać ów Makefile miast wykład stosować o zmianach ? - ja po prostu chcę to zbudować bez wnikania w zawiłości trunka/jądra/i.t.d. ![]()
Na razie sam wykumałem tyle:
#
# Copyright (C) 2010-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=usbip
#PKG_RELEASE:=3
# Since kernel 2.6.39.1 userspace tools are inside the kernel tree
# Package Automatic match version in kernel
# MD5SUM is not useful kernel package already check it
#PKG_VERSION:=$(shell sed -n -e '/^AC_INIT/s/.*\[\([[:digit:]\.]*\)\].*/\1/gp' $(LINUX_DIR)/drivers/staging/usbip/userspace/configure.ac)
PKG_VERSION:=0.1.7
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=/projekty/openwrt/trunk/dl/$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_MD5SUM:=unknown
PKG_MAINTAINER:=Nuno Goncalves <nunojpg@gmail.com>
PATCH_DIR:=./patches-$(PKG_VERSION)
#define prepare_source_directory
# rm -rf $(PKG_BUILD_DIR)
# $(CP) $(LINUX_DIR)/drivers/staging/usbip/userspace $(PKG_BUILD_DIR)
#endef
#Hooks/Prepare/Pre += prepare_source_directory
PKG_BUILD_DEPENDS:=glib2 sysfsutils
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
define Package/usbip/Common
TITLE:=USB-over-IP
URL:=http://usbip.sourceforge.net/
DEPENDS:=@USB_SUPPORT
endef
define Package/usbip/Default
$(call Package/usbip/Common)
SECTION:=net
CATEGORY:=Network
endef
define Package/usbip
$(call Package/usbip/Default)
TITLE+= (common)
DEPENDS+= +libsysfs +libwrap +kmod-usbip
endef
define Package/usbip-client
$(call Package/usbip/Default)
TITLE+= (client)
DEPENDS+= usbip +glib2 +kmod-usbip-client
endef
define Package/usbip-server
$(call Package/usbip/Default)
TITLE+= (server)
DEPENDS+= usbip +glib2 +kmod-usbip-server
endef
CONFIGURE_PATH:=./src
MAKE_PATH:=./src
LIBTOOL_PATHS:=./src
MAKE_FLAGS+=CFLAGS="-Wno-implicit-function-declaration"
define Build/Configure
(cd $(PKG_BUILD_DIR)/src; ./autogen.sh );
$(call Build/Configure/Default)
endef
CFLAGS+="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include"
define Download/usb.ids
URL:=http://www.linux-usb.org/
FILE:=usb.ids
MD5SUM:=
endef
define Package/usbip/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libusbip.so.* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/share/hwdata
$(CP) $(DL_DIR)/usb.ids $(1)/usr/share/hwdata/
endef
define Package/usbip-client/install
$(INSTALL_DIR) $(1)/usr/sbin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/usbip $(1)/usr/bin/
endef
define Package/usbip-server/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/usbipd $(1)/usr/bin/
endef
$(eval $(call Download,usb.ids))
$(eval $(call BuildPackage,usbip))
$(eval $(call BuildPackage,usbip-client))
$(eval $(call BuildPackage,usbip-server))A to log z budowy tego fragmentu dla zainteresowanych:
http://wklej.org/id/1704453/
Czy tak będzie dobrze ?
Nie wiem gdzie tego szukać w sieci, więc zassałem z sourceforge.net i wrzuciłem do <tam gdzie leży trunk>/dl po prostu.
Paczki się zrobiły ale czy to będzie działać to nie wiem... ![]()
EDIT:
Tak jak pierwotnie myślałem - jednak potrzebne będą solidne patche do źródeł:
root@OpenWrt:~# usbip -v
usbip 0.1.7 ($Id: vhci_attach.c 42 2007-09-07 12:07:51Z hirofuchi $)
root@OpenWrt:~# usbip -D
Usage: usbip [options]
-a, --attach [host] [bus_id]
Attach a remote USB device.
-x, --attachall [host]
Attach all remote USB devices on the specific host.
-d, --detach [ports]
Detach an imported USB device.
-l, --list [hosts]
List exported USB devices.
-p, --port
List virtual USB port status.
-D, --debug
Print debugging information.
-v, --version
Show version.
-h, --help
Print this help.
root@OpenWrt:~# usbipd
usbip err: stub_driver.c: 33 (open_sysfs_stub_driver) usbip_common_mod.ko and usbip.ko must be loaded
** (process:6693): ERROR **: driver open failed
Trace/breakpoint trapAle Ty nie załadowałeś modułów do jądra
kmod* zainstalowałeś?
Nie mogę wszystkiego za was robić. Trochę wysiłku intelektualnego nie zaszkodzi.
No jest oczywiście zainstalowany.
Tu wykaz co jest w obrazie:
http://wklej.org/id/1704504/
usbip_common_mod.ko and usbip.ko must be loaded <- on twierdzi że nie ![]()
No bo teraz nie ma takich modułów po prostu - inaczej się nazywają.
Teraz są w aktualnym jądrze 3.8.11:
usbip-core.ko => kmod-usbip
usbip-host.ko => kmod-usbip-server
vhci-hcd.ko => kmod-usbip-client
Stąd wniosek, że albo dobre łatanie źródeł usbip, albo inny Makefile, albo jeszcze inaczej...![]()
A skąd masz te źródła usbip? Z dl.openwrt? Bo one są normalnie w kernelu tak jak poprzednie.
Z sourceforge.net (tam to jest łączone z drivers, ale tylko kompilowałem samą apkę//katalog src//, która już nie pasuje do tego obecnego kernela w openwrt - oryginalnie drivers'y są tylko do jakichś 2.6.*) - jak pisałem, nie mogłem tego znaleźć nigdzie.
W kernelu są tylko drivers - a sama apka ?
W tools w źródłach kernela, pisałem to.
Konkludując - masz pasujący Makefile (a może i łaty) do obecnej sytuacji ?
Do trunka nie. Zmień istniejący ze staging_dir na tools/itd.
No ok. - są faktycznie w <źródła linuxa>/tools/usb/usbip - spróbuję pokombinować, chociaż z moim ciężkim myśleniem to nie wiem czy się uda...ale widzę po dialogu z Cezarym, że chyba "musi mi się udać" ![]()
Na razie poprawiłem Makefile i ogólnie zaczęło się budować, ale... :
(...)
checking for strchr... yes
checking for strerror... (cached) yes
checking for strstr... yes
checking for strtoul... yes
checking libudev.h usability... no
checking libudev.h presence... no
checking for libudev.h... no
configure: error: Missing /usr/include/libudev.h
Makefile:106: recipe for target '/projekty/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_nand/usbip-2.0/.configured_yyyyyyyyyn' failed
make[3]: *** [/projekty/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_nand/usbip-2.0/.configured_yyyyyyyyyn] Error 1
make[3]: Leaving directory '/projekty/openwrt/trunk/feeds/oldpackages/net/usbip'
package/Makefile:183: recipe for target 'package/feeds/oldpackages/usbip/compile' failed
make[2]: *** [package/feeds/oldpackages/usbip/compile] Error 2
make[2]: Leaving directory '/projekty/openwrt/trunk'
package/Makefile:180: recipe for target '/projekty/openwrt/trunk/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.package_compile' failed
make[1]: *** [/projekty/openwrt/trunk/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.package_compile] Error 2
make[1]: Leaving directory '/projekty/openwrt/trunk'
/projekty/openwrt/trunk/include/toplevel.mk:181: polecenia dla obiektu 'world' nie powiodły się
make: *** [world] Błąd 2
slawek@slawek-ubuntu:/projekty/openwrt/trunk$I jak to dalej ogarnąć ?
Missing /usr/include/libudev.h, pewnie z udev musisz pokombinować.
No właśnie tak pomyślałem i tam to siedzi - ale przecież instalacja udev w jakimś tam routerku to go położy na amen (poza tym nie wiadomo czy w ogóle działa to jak powinno na obecnym stanie całości - dodatkowa komplikacja)...![]()
EDIT:
I tak to nic ie dało - dodanie owego udev jako dependencies, gdyż nie tworzy (a w zasadzie usbip jej nie widzi) stosownej biblioteki:
(...)
Package usbip is missing dependencies for the following libraries:
libudev.so.0
Makefile:107: recipe for target '/projekty/openwrt/trunk/bin/ar71xx/packages/oldpackages/usbip_2.0-4_ar71xx.ipk' failed
make[3]: *** [/projekty/openwrt/trunk/bin/ar71xx/packages/oldpackages/usbip_2.0-4_ar71xx.ipk] Error 1
make[3]: Leaving directory '/projekty/openwrt/trunk/feeds/oldpackages/net/usbip'
package/Makefile:183: recipe for target 'package/feeds/oldpackages/usbip/compile' failed
make[2]: *** [package/feeds/oldpackages/usbip/compile] Error 2
make[2]: Leaving directory '/projekty/openwrt/trunk'
package/Makefile:180: recipe for target '/projekty/openwrt/trunk/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.package_compile' failed
make[1]: *** [/projekty/openwrt/trunk/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.package_compile] Error 2
make[1]: Leaving directory '/projekty/openwrt/trunk'
/projekty/openwrt/trunk/include/toplevel.mk:181: polecenia dla obiektu 'world' nie powiodły się
make: *** [world] Błąd 2
slawek@slawek-ubuntu:/projekty/openwrt/trunk$ Eeeh, z wami tak zawsze. Jednak nie dodałeś zależności. Mi się kompiluje przy takich zmianach:
@@ -14,7 +14,7 @@ PKG_RELEASE:=3
# Since kernel 2.6.39.1 userspace tools are inside the kernel tree
# Package Automatic match version in kernel
# MD5SUM is not useful kernel package already check it
-PKG_VERSION:=$(shell sed -n -e '/^AC_INIT/s/.*\[\([[:digit:]\.]*\)\].*/\1/gp' $(LINUX_DIR)/drivers/staging/usbip/userspace/configure.ac)
+PKG_VERSION:=$(shell sed -n -e '/^AC_INIT/s/.*\[\([[:digit:]\.]*\)\].*/\1/gp' $(LINUX_DIR)/tools/usb/usbip/configure.ac)
PKG_SOURCE:=
PKG_SOURCE_URL:=
PKG_MD5SUM:=unknown
@@ -25,11 +25,11 @@ PATCH_DIR:=./patches-$(PKG_VERSION)
define prepare_source_directory
rm -rf $(PKG_BUILD_DIR)
- $(CP) $(LINUX_DIR)/drivers/staging/usbip/userspace $(PKG_BUILD_DIR)
+ $(CP) $(LINUX_DIR)/tools/usb/usbip $(PKG_BUILD_DIR)
endef
Hooks/Prepare/Pre += prepare_source_directory
-PKG_BUILD_DEPENDS:=glib2 sysfsutils
+PKG_BUILD_DEPENDS:=udev
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
@@ -51,19 +51,19 @@ endef
define Package/usbip
$(call Package/usbip/Default)
TITLE+= (common)
- DEPENDS+= +libsysfs +libwrap +kmod-usbip
+ DEPENDS+= +libwrap +kmod-usbip +udev
endef
define Package/usbip-client
$(call Package/usbip/Default)
TITLE+= (client)
- DEPENDS+= usbip +glib2 +kmod-usbip-client
+ DEPENDS+= usbip +kmod-usbip-client
endef
define Package/usbip-server
$(call Package/usbip/Default)
TITLE+= (server)
- DEPENDS+= usbip +glib2 +kmod-usbip-server
+ DEPENDS+= usbip +kmod-usbip-server
endef
CONFIGURE_PATH:=.Dodałem - ale inaczej - i to pewno był błąd:
(...)
Hooks/Prepare/Pre += prepare_source_directory
PKG_BUILD_DEPENDS:=udev glib2 sysfsutils
PKG_FIXUP:=autoreconf
(...)![]()
Nie dodałeś. DEPENDS w danym pakiecie, nie BUILD_DEPENDS który jest czymś innym.
No właśnie - chociaż spowodowało to, iż najpierw skompilował się udev - więc teoretycznie usbip miał gdzie znaleźć w STAGE_DIR ów libudev.h
I tak było - zbudował ci, później powiedział że nie utworzy paczki bo brakuje pliku bo nie ma zależności. Blisko byłeś.
Mówiłem - za ciężki mam beret do tego ![]()
A tak przy okazji to ten bind_driver to się do czegoś może przydać ?
Nie mam pojęcia, usbip chyba ze dwa razy zdarzyło mi się używać.
W sumie mi to też rybka - dla kolesia stukam obraz - zobaczył u mnie ten mój WNDR4300 i mu się spodobał, więc długo się nie zastanawiając nabył identyczny...no i teraz mam "ten teges" ... ehh ![]()
Tak czy inaczej dziękuję za podpowiedzi.
root@OpenWrt:~# usbipd -D
root@OpenWrt:~# usbip -l
usage: usbip [--debug] [--log] [--tcp-port PORT] [version]
[help] <command> <args>
attach Attach a remote USB device
detach Detach a remote USB device
list List exportable or local USB devices
bind Bind device to usbip-host.ko
unbind Unbind device from usbip-host.ko
port Show imported USB devices
root@OpenWrt:~# htop
### Tu go zabiłem kill z htopa
root@OpenWrt:~# logread
(...)
Wed May 6 16:36:33 2015 user.info syslog: usbipd: info: starting usbipd (usbip-utils 2.0)
Wed May 6 16:36:33 2015 user.info syslog: usbipd: info: listening on :::3240
Wed May 6 16:36:33 2015 user.info syslog: usbipd: info: listening on 0.0.0.0:3240
Wed May 6 16:37:03 2015 user.info syslog: usbipd: info: shutting down usbipdWygląda na to, że serwer działa - teraz dla testu muszę ogarnąć jakąś drukarkę czy cuś. ![]()
Cześć!
tu jest ciekawe rozwiązanie "komercyjne" bazujące na usbip:
https://www.virtualhere.com/home
Bezpłatne, jeżeli serwer udostępnia w danej chwili tylko jedno urządzenie USB. Jest porządny support od producenta na forum. Klient dostępny na dowolny system, na win 32/64 okienkowy, intuicyjny, po prostu działający i stabilny.
Na razie uruchomiłem na Pogo4 z archlinux i DNS323 z Alt-F. Podłączałem skaner Canona i dyski. Bez pudła działa oryginalny driver Twain, przesyłałem wielokrotnie obrazki ze skanera rzedu 400MB.
Są gotowe binarki na openwrt. Serwer zasadniczo rozgłasza swoją obecność używając avahi, ale nie jest to konieczne, można w kliencie wpisać wprost adres IP.
Na gargoyle zamierzam poeksperymentowć z S/PDIF dwukierunkowym na USB, ale karta ledwie zamówiona w ChRL :-)
Jacek
Strony Poprzednia 1 2 3 4 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → USBIP jak zainstalować
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc