At least, the SD card image already contains BlueZ out of the box. Some configuration might be required.
If you want to BlueZ (and possibly the required device drivers/kernel modules) on the SPI Image, you need to create your own image using the BSP. But you might get in trouble because of the limited storage size of the internal memory.
Would you recommend creating my own, full linux image (lilke Ubuntu or something) and boot from that? Because if so, for some reason, even though I'm running lubuntu, setup.sh can't find git. Anyway, as far as I know, bluez is pretty limited on Galileo - could someone detail how to create a server that can actually open a port (via pcie) and send communications? Thanks!
1 of 1 people found this helpful
As Alexander mentioned, BlueZ is available out-of-box on the so called "SD card image" (Linux image for Galileo, which is intended to run off the SD card, not from the space-limited intenal SPI flash and therefore having more features).
Unpack the contents to an SD card, boot your Galileo. After that, login there via SSH or get to the serial console via cable and make sure you're booted off the SD card:
root@quark # mount |grep realroot
If you see something mounted as /media/realroot - you've booted off an SD card. Now you can use those hci* commands available there to start the Bluetooh connection.
No need to create any custom images, I think at most you'll need to install a couple of additional packages, if those Bluetooth utilities bundled are not enough. Unfortunately I don't have the actual card to help you with specific commands, but there were examples of that posted in this community already, you can use search to find those.
AFAIK - no. These tools seems to be specific for that distribution. But good news: such scripts and programs base on python or C usually. So if you find the source code, you may be able to get them work on the Galileo.
Edit: I was able to successfully compile the bluez-Tools ( bluez-tools - A set of tools to manage bluetooth devices for linux - Google Project Hosting ) on the Galileo. Basic detection and pairing works, but some of the tools like bt-obex seems to need some extra work. I will dig into it later.
Edited by Alexander Merz
Could you post the instructions for compiling the C code onto the Galileo? Also, do you know of any way that I can send signals or receive packets of data between two devices through the PCI? So far I've manage to pair them with hcixxxx as PC Controller v1.4 (I don't know why).
There is nothing special, follow the instructions to get a linux on the Galileo with compiler tools: Intel Galileo - Building Linux Image - Malinov Family Web Presence.
Then you are ready to do the usual ./configure-make-make install after downloading the source code. There may be als a package ready to install (How to enable the Yocto-provided package management capability)
But that is nothing compared to the problems I had to face in the last days. I was able to solve different problems, but now I'm stuck with dbus problems (bt-obex requires it). And the whole internet seems to provide solutions only for GUI-based Linux like Ubuntu&Co ("update the package", "use GUI tool xyz"). It was all like this: Typical bug fixing - DevOps Reactions
Today, I decided to go ahead and try to get my project done by C programing + direct bluez-usage and not by tools.
I'm trying to do the same here. Not sure if anyone has made any progress but I'm getting close. Just trying to sort out all the package/install dependencies.
My goal: Use ObexFTP to send files via Bluetooth between Intel Galileo and a phone. As the name suggests, this would use the OBject EXchange (OBEX) FTP protocol.
My current approach:
- Using a dev build of the Yocto/Poky SD Linux bulid
- Installed BlueZ 4.101 & Bluez-libs 3.36
- Installed OpenObex 1.7.1
- Install ObexFTP - http://www.gitorious.org/obexftp/ (which depends on the above two) <- this is where I'm currently getting hung up at.
While trying to install ObexFTP, it seems like I'm missing some packages (i.e. expat, libiconv) which I have already installed but the cmake doesn't seem to be able to recognize that they are installed.