Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v4] usbip: new package
Date: Fri, 23 Dec 2016 19:24:51 +0100	[thread overview]
Message-ID: <20161223182451.GB3592@free.fr> (raw)
In-Reply-To: <1481736504-12256-1-git-send-email-tal.shorer@gmail.com>

Tal, All,

On 2016-12-14 19:28 +0200, Tal Shorer spake thusly:
> add the usbip package from the kernel source, allowing users to share
> usb devices over a network connection

So, I finally had time to test this. I'm sad to report that it does not
work... :-(

Here's my defconfig:

    BR2_x86_i686=y
    BR2_TOOLCHAIN_EXTERNAL=y
    BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
    BR2_LINUX_KERNEL=y
    BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
    BR2_PACKAGE_USBIP=y

The first error is that the patch dependencies are only acted upon at
the time the package is actually patched, not extracted. So the linux
kernel sources are not extracted (and patched) at the time we try to
rsync the usbip source tree.

This is easily fixable by making linux a "classic" dependency, but that
is not really nice... :-/

Then, the source code for usbip only has configure.ac, not configure,
so it needs USBIP_AUTORECONF = YES.

But then the build fails because it is missing linux/usbip.h. The
toolchain I'm using is too old to have this header.

usbip.h has been installed starting with kernel 3.17, so you also have
to depend on the correct kernel headers version:

    depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17

I've stopped here, I started another build with a more recent toolchain
with more recent kernel headers. I'll further report when the build is
finished...

Regards,
Yann E. MORIN.

> Signed-off-by: Tal Shorer <tal.shorer@gmail.com>
> ---
>  package/linux-tools/Config.in |  2 ++
>  package/usbip/Config.in       | 14 ++++++++++++++
>  package/usbip/usbip.mk        | 26 ++++++++++++++++++++++++++
>  3 files changed, 42 insertions(+)
>  create mode 100644 package/usbip/Config.in
>  create mode 100644 package/usbip/usbip.mk
> 
> diff --git a/package/linux-tools/Config.in b/package/linux-tools/Config.in
> index db9ed9f..7fceca7 100644
> --- a/package/linux-tools/Config.in
> +++ b/package/linux-tools/Config.in
> @@ -83,4 +83,6 @@ comment "selftests needs BR2_PACKAGE_BUSYBOX_SHOW_OTHERS"
>  	depends on BR2_USE_MMU
>  	depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
>  
> +source package/usbip/Config.in
> +
>  endmenu
> diff --git a/package/usbip/Config.in b/package/usbip/Config.in
> new file mode 100644
> index 0000000..bb92a05
> --- /dev/null
> +++ b/package/usbip/Config.in
> @@ -0,0 +1,14 @@
> +# sourced from package/linux-tools/Config.in rather than from package/Config.in
> +
> +config BR2_PACKAGE_USBIP
> +	bool "usbip"
> +	depends on BR2_PACKAGE_HAS_UDEV
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # usbutils <- libusb
> +	depends on !BR2_STATIC_LIBS
> +	select BR2_PACKAGE_USBUTILS
> +	help
> +	  usbip is a set of tools that allows machines to share their
> +	  usb devices over the network, to be driven by a remote client.
> +
> +comment "usbip needs udev /dev management and toolchain w/ threads"
> +	depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_HAS_THREADS
> diff --git a/package/usbip/usbip.mk b/package/usbip/usbip.mk
> new file mode 100644
> index 0000000..7c8e244
> --- /dev/null
> +++ b/package/usbip/usbip.mk
> @@ -0,0 +1,26 @@
> +################################################################################
> +#
> +# usbip
> +#
> +################################################################################
> +
> +# No USBIP_SITE, no USB_VERSION, we vampirise the code from the
> +# linux kernel
> +USBIP_PATCH_DEPENDENCIES = linux
> +USBIP_DEPENDENCIES = udev
> +
> +USBIP_CONF_OPTS = --without-tcp-wrappers
> +
> +USBIP_SRC_DIR = $(wildcard \
> +  $(LINUX_DIR)/tools/usb/usbip \
> +  $(LINUX_DIR)/drivers/staging/usbip/userspace)
> +
> +define USBIP_EXTRACT_CMDS
> +	if [ -z "$(USBIP_SRC_DIR)" ]; then \
> +	    echo "No usbip source in your kernel tree" 2>&1; \
> +	    exit 1; \
> +	fi
> +	rsync -au --chmod=u=rwX,go=rX $(RSYNC_VCS_EXCLUSIONS) $(USBIP_SRC_DIR)/ $(@D)
> +endef
> +
> +$(eval $(autotools-package))
> -- 
> 2.7.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  parent reply	other threads:[~2016-12-23 18:24 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-09  8:37 [Buildroot] [PATCH] usbip: add a new package Tal Shorer
2016-12-10 13:31 ` Thomas Petazzoni
2016-12-10 18:39   ` Tal Shorer
2016-12-11 10:06     ` Yann E. MORIN
2016-12-11 13:56 ` Yann E. MORIN
2016-12-11 17:39   ` Tal Shorer
2016-12-11 17:45     ` Yann E. MORIN
2016-12-11 18:12       ` [Buildroot] [PATCH] pkg-generic: run $(PKG)_PRE_RSYNC_HOOKS before checking for the existence of $(SRCDIR) Tal Shorer
2016-12-11 19:19         ` Yann E. MORIN
2016-12-11 19:44         ` [Buildroot] [PATCH] package/usbip: new package Tal Shorer
2016-12-17 15:00         ` [Buildroot] [PATCH] pkg-generic: run $(PKG)_PRE_RSYNC_HOOKS before checking for the existence of $(SRCDIR) Thomas Petazzoni
2016-12-11 18:31       ` [Buildroot] [PATCH] usbip: add a new package Tal Shorer
2016-12-11 19:24         ` Yann E. MORIN
2016-12-11 19:59     ` Arnout Vandecappelle
2016-12-11 21:40       ` Yann E. MORIN
2016-12-11 21:46       ` Tal Shorer
2016-12-11 22:05         ` Yann E. MORIN
2016-12-11 22:11           ` Tal Shorer
2016-12-11 22:20             ` Yann E. MORIN
2016-12-11 22:30               ` Tal Shorer
2016-12-12  9:40                 ` Arnout Vandecappelle
2016-12-12 17:25                   ` Yann E. MORIN
2016-12-12 22:17                     ` Tal Shorer
2016-12-12 22:21                       ` [Buildroot] [PATCH v3] usbip: " Tal Shorer
2016-12-13 17:53                         ` Yann E. MORIN
2016-12-14 17:28                           ` [Buildroot] [PATCH v4] " Tal Shorer
2016-12-21 22:17                             ` Tal Shorer
2016-12-22 20:45                             ` Yann E. MORIN
2016-12-23 18:24                             ` Yann E. MORIN [this message]
2016-12-23 19:10                               ` Yann E. MORIN
2016-12-13 17:35                       ` [Buildroot] [PATCH] usbip: add a " Yann E. MORIN
2016-12-12 17:09                 ` [Buildroot] [PATCH v2 1/2] package: linux-tools: allow tools to define configure hooks Tal Shorer
2016-12-12 17:09                   ` [Buildroot] [PATCH v2 2/2] package: linux-tools: add usbip Tal Shorer
2016-12-12 17:26                     ` Yann E. MORIN

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161223182451.GB3592@free.fr \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox