On 04/01/2013 02:29 PM, Chermak, Dale wrote: > > Peter, > > > > Thank you for your assistance! > > > > I followed your recommendation and went ahead and upgraded libusb to > the latest version. I am now able to compile and link against libusb. Yay! >
Glad to hear it worked for you! > > > > I do have a few follow up questions ... > > > > I created a libusb-1.0.9.tar.bz2.md5 file since I didn't see one on > the download page. This got rid of the LTIB warning. > That's good - I should have mentioned it but didn't want to distract you. > I created a libusb.spec.patch file containing the contents of the > libusb.spec patch text you provided in the dist/lfs-5.1/libusb > directory. I saved a copy of the existing libusb.spec file as > libusb.spec.0.1.8 and then applied the patch. I was wondering if all > of that was necessary? I could have just edited the libusb.spec > directly, or just applied the patch and discarded the > libusb.spec.patch file. Is there a 'proper' way to do this kind of > thing? I'd rather do things right the first time. > Well, I think you want to call it libusb-0.1.8.spec instead of libusb.spec.0.1.8 as ltib expects .spec files to be name with ".spec" at the end. > > > Here is the (copied from helloworld) contents of the usbtest Makefile: > > > > CXXFLAGS = -I../rootfs/usr/include -Wall > > LDFLAGS = -L../rootfs/usr/lib -lusb-1.0 > > progs = usbtest > > prefix = /usr/local > > DESTDIR = > > > > ifdef SYSROOT > > CXXFLAGS += -I$(SYSROOT)/$(prefix)/include > > LDFLAGS += -L$(SYSROOT)/$(prefix)/lib > > endif > > > > all : $(progs) > > > > install : $(DESTDIR)/$(prefix)/bin > > cp -a $(progs) $(DESTDIR)/$(prefix)/bin/ > > > > distclean clean : > > rm -f $(progs) > > > > $(DESTDIR)/$(prefix)/bin: > > mkdir -p $@ > > > > I was wondering if this was the proper way to set things up in the > Makefile? It seems 'odd' to be including/linking with files in > rootfs/usr/xxx. It seems like the libusb files should be where the > rest of the headers and libs are. That said, the ifdef SYSROOT block > looks like it would accomplish the same result with a change to prefix > from /usr/local to just /usr. Is that what I should be using in this > case? Again, just looking to do things right the first time. > Hmm, I don't think so but not sure whether the spoofed toolchain takes care of pointing $(prefix)/usr/lib and $(prefix)/usr/include at the appropriate place on the target rootfs while compiling/linking. But I'm sure others can explain it much better. > > > > Many, many thanks for the help. > > > > Regards, > > > > Dale > > > > *From:*Peter Barada [mailto:[email protected]] > *Sent:* Thursday, March 28, 2013 5:49 PM > *To:* [email protected]; Chermak, Dale > *Subject:* Re: [Ltib] Troubles Adding libusb(x) > > > > On 03/28/2013 06:13 PM, Chermak, Dale wrote: > > Greetings. > > > > Full disclosure: I am new to using LTIB and not an expert > developing for Linux having done primarily Windows development > over the years. > > > > I have a DM3730 Torpedo + Wireless SOM from LogicPD that uses > LTIB. I have managed to get the Ubuntu 10.04 LTS development > environment setup, build a custom target image and add my own > hellotorpedo-1.0 package to the image. All good so far. Now I am > trying to get to work on the actual project which involves > communicating with a USB device. Years ago, some summer interns > wrote an application for the OLPC that used libusb to communicate > with a similar USB device. I figured I would just use libusb for > this current project, leveraging whatever code I could salvage > from the OLPC project. I created a simple project, usbtest, to get > started. Launching make from the LTIB shell resulted in the > following (first) error: > > > > usbtest.cpp:3:20: error: libusb.h: No such file or directory > > > > Sure enough, a not even a find / -iname 'libusb.h' got any hits. > Firing up ./ltib -c I noticed that the libusb package has --- > instead of [ ] or [ * ], so no way for me to add or remove it I > guess? > > > > Searching around I discovered some posts on the Ubuntu forums that > mentioned doing an apt-get for libusb-1.0-X-dev instead of > libusb-dev to use libusb for development, which I guess is another > way of getting the headers. So perhaps the libusb package does not > include the headers? It also appears to be the 'old' version which > does not support asynchronous I/O. > > > > At this point, I have gone ahead and downloaded the libusbx (a > supposedly more active fork of libusb) tarball. It has what I > guess is a fairly standard ./configure, make and make install > workflow. I ran ./configure --host=arm-linux and that seemed to > work. I ran make, and things compiled and linked successfully. But > I am not sure what to do next. Running make install does what I > suspected and tries to install things in Ubuntu, but I want it > installed in my LTIB environment so I can have the shared archive > pulled into target image and be able to compile and link my > usbtest project against it. I took a look at the libusb.spec and I > suspect using a libusbx.spec file is the proper way to do this, > but I am not sure what all the steps are, particularly getting the > headers and shared archive available for the usbtest project. How > should I proceed? > > > > Sorry for the lengthy description but I wanted to make sure I had > enough detail. > > > > > > Dale, the "---" indicates that libusb is already incorporated in your > build from LTIB (its selected by "PKG_USBTILS && CAP_HAS_MMU" which > are both enabled for the LogicPD OMAP35x/DM37x platform). > > Digging into the generated rootfs, there's no libusb.h installed by > version 0.1.8 distributed as part of LTIB. I think (but don't know > if) you might have better luck upgrading the libusb package to the > latest version rather than trying to install libusbx instead. If you > download > http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.9/libusb-1.0.9.tar.bz2 > and copy it to /opt/ltib/pkgs, and modify your > dist/lfs-5.1/libusb/libusb.spec with the following patch: > > Index: libusb.spec > =================================================================== > --- libusb.spec (revision 33943) > +++ libusb.spec (working copy) > @@ -2,13 +2,13 @@ > > Summary : A library which allows userspace access to USB devices > Name : libusb > -Version : 0.1.8 > +Version : 1.0.9 > Release : 1 > License : LGPL > Vendor : Freescale > Packager : Stuart Hughes > Group : System Environment/Libraries > -Source : %{name}-%{version}.tar.gz > +Source : %{name}-%{version}.tar.bz2 > BuildRoot : %{_tmppath}/%{name} > Prefix : %{pfx} > > @@ -17,7 +17,7 @@ > > %Prep > %setup > -libtoolize --copy --force > +# libtoolize --copy --force > > %Build > # note: I tried version 0.1.10a buy this requires a c++ compiler > > > Then "./ltib -p libusb" _should_ install into your rootfs > "rootfs/usr/include/libusb-1.0/libusb.h" that you could include in > your application. This version of libusb installs: > > peter@turbo:~/work/logic/eps_svn/software/products/linux/LTIB/trunk/ltib-3.0$ > <mailto:peter@turbo:%7E/work/logic/eps_svn/software/products/linux/LTIB/trunk/ltib-3.0$> > rpm2cpio < rpm/RPMS/arm/libusb-1.0.9-1.arm.rpm | cpio -t > ./opt/freescale/rootfs/arm/usr > ./opt/freescale/rootfs/arm/usr/include > ./opt/freescale/rootfs/arm/usr/include/libusb-1.0 > ./opt/freescale/rootfs/arm/usr/include/libusb-1.0/libusb.h > ./opt/freescale/rootfs/arm/usr/lib > ./opt/freescale/rootfs/arm/usr/lib/libusb-1.0.a > ./opt/freescale/rootfs/arm/usr/lib/libusb-1.0.so > ./opt/freescale/rootfs/arm/usr/lib/libusb-1.0.so.0 > ./opt/freescale/rootfs/arm/usr/lib/libusb-1.0.so.0.1.0 > ./opt/freescale/rootfs/arm/usr/lib/pkgconfig > ./opt/freescale/rootfs/arm/usr/lib/pkgconfig/libusb-1.0.pc > 893 blocks > > where "./opt/freescale/rootfs/arm/" is removed from the path when the > RPM is ultimately installed - the rest is relative to the LTIB rootfs/ > directory where all the packages are installed and the rootfs/ > directory is what is used to populate your rootfs that you load onto > the target. > > Note that I've only complied tested this, not run it on actual > hardware so your "results may vary". Hope this helps - keep the list > posted on your progress. > > -- > Peter Barada > [email protected] <mailto:[email protected]> > > ------------------------------------------------------------------------ > The information contained in this message may be confidential and > legally protected under applicable law. The message is intended solely > for the addressee(s). If you are not the intended recipient, you are > hereby notified that any use, forwarding, dissemination, or > reproduction of this message is strictly prohibited and may be > unlawful. If you are not the intended recipient, please contact the > sender by return e-mail and destroy all copies of the original message. -- Peter Barada [email protected]
_______________________________________________ LTIB home page: http://ltib.org Ltib mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/ltib
