summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleh Herasym <oolleehh@gmail.com>2016-06-10 17:14:47 +0300
committerGitHub <noreply@github.com>2016-06-10 17:14:47 +0300
commite5dbb054a2053a9f9a3179ea5b2ae667e5ec8ef0 (patch)
tree26f16600bcb59a9add48f3e665faca2afa2dd031
parentbfc19168e21c687186d42d815869809ef6693a27 (diff)
downloadsdl_core-e5dbb054a2053a9f9a3179ea5b2ae667e5ec8ef0.tar.gz
Update README.md
1. Add Windows build steps 2. Add QT build steps Related: APPLINK-25183
-rw-r--r--README.md162
1 files changed, 153 insertions, 9 deletions
diff --git a/README.md b/README.md
index fbf485fd4d..224a377d09 100644
--- a/README.md
+++ b/README.md
@@ -48,12 +48,70 @@ A quick guide to installing, configuring, and running an instance of the SDL Cor
####Windows
-A quick guide to configuring and running an instance of the SDL Core on a Windows OS.
-For details [see](How-to-build-and-run-SDL-on-windows)
+> Required OS: Windows 7 64-bits
+
+##### Common steps for Windows and Qt platforms
+
+* Download and install [Cmake](https://cmake.org/files/v3.2/cmake-3.2.3-win32-x86.exe)<br>
+Note: it will ask you about adding to the `PATH` environment variable. Press `Yes`.
+* Download and install [python](https://www.python.org/ftp/python/2.7.10/python-2.7.10.msi) and add it to the `PATH`
+environment variable
+* Download and install [perl](http://www.activestate.com/activeperl/downloads/thank-you?dl=http://downloads.activestate.com/ActivePerl/releases/5.20.2.2002/ActivePerl-5.20.2.2002-MSWin32-x86-64int-299195.msi). Add it to `PATH`
+* Download and install [git](https://git-scm.com/download/win)
+* Download and install [GStreamer SDK](http://docs.gstreamer.com/display/GstSDK/Installing+on+Windows). You will need both Runtime and Development files. Add path to **bin** folder to `PATH`. Create new environment variable SDL_GSTREAMER_DIR with path to SDK (e.g. `D:\gstreamer-sdk\0.10\x86_64`).
+
+##### Steps for Windows platform
+* Download [sqlite3 sources](https://www.sqlite.org/2015/sqlite-amalgamation-3090200.zip) and [sqlite3 binaries](https://www.sqlite.org/2015/sqlite-dll-win64-x64-3090200.zip). Extract all files to the same directory. Create new environment variable `SDL_SQLITE_DIR` and assign path where sqlite sources and binaries were extracted to this variable.
+* Install [Windows SDK 7.1](https://www.microsoft.com/en-us/download/details.aspx?id=8442)
+* Install [Visual Studio 2013](https://www.microsoft.com/en-us/download/confirmation.aspx?id=44914)
+
+##### Steps for Qt platform
+* Install [Visual Studio 2010](http://go.microsoft.com/?linkid=9709969)
+* Then install [Visual Studio SP1](https://www.microsoft.com/en-us/download/confirmation.aspx?id=23691)
+* Install [Qt framework](http://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-online.exe).
+**Note:** It looks like starting from Qt5.6 there is no more msvc2010 32-bit support, so check whether such option is present. If no - use Qt5.5.
+ Create new environment variable called `SDL_QT_DIR` and assign your qt install dir to this variable. I.e `set SDL_QT_DIR=C:\Qt`
+
+##### Not required steps
+* Download and install [Doxygen] (http://sourceforge.net/projects/doxygen/files/latest/download) and add it to `Path` envronment variable
+
+#### Build project
+
+##### Common steps for Windows and Qt platforms
+
+* Clone repository
+
+##### Steps for Windows platform
+
+* Go to directory with cloned repository
+* Run setup_VS2013_x64.cmd to generate solution for Visual Studio 2013.
+**Note:** In case Visual Studio has been installed to non-default location -- modify path in .cmd file.
+**Note:** Double click on file or run from windows command prompt. DO NOT run in "git bash".
+* After scrip execution finish, go to build directory which is located one directory upper and open smartDeviceLinkCore.sln file using Visual Studio 2013
+* Set smartDeviceLinkCore project as a startup in order to be able to run or debug it from Visual Studio
+* Press `ctrl+alt+F7` to run solution building process in Visual Studio
+* After building done the executable file will be located in `%BUILD_DIR%\src\appMain\Debug|Release\`
+
+##### Steps for Qt platform
+
+* Go to directory with cloned repository.
+* Run setup_Qt_x86.cmd to generate build dir for the Qt project. This will prepare the DEBUG build.
+**Note:** In case Visual Studio has been installed to non-default location -- modify path in .cmd file
+**Note:** Double click on file or run from windows command prompt. DO NOT run in "git bash".
+* Open Qt Creator (tested on v3.6.0)
+* "Open File Or Project" -> pick the CMakeLists.txt in the project root.
+* In the appeared dialog choose VS 2010 x86 toolchain, leave only one "Default" path, fill it with the full path to the build directory, generated by Qt_x86.cmd.
+It should be `<project root>\build\sdl_win_qt_x86`. And click next.
+
+To change the configuration from DEBUG to RELEASE (e.g. open "Project" window and click "Run CMake" button). To the "Arguments" edit box put the release cmake arguments:
+```
+-DCMAKE_BUILD_TYPE=Release
+```
+To setup the DEBUG build use:
+```
+-DCMAKE_BUILD_TYPE=Debug
+```
- 1. Clone this repository
- 2. Install required version of the Visual Studio and all other requirements.
- 3. Run Visual Studio or Qt Creator and build the application.
## Start SDL Core
Once SDL Core is compiled and installed you can start it from the executable in the bin folder
@@ -67,12 +125,67 @@ Once SDL Core is compiled and installed you can start it from the executable in
####Windows
-See [link](How-to-build-and-run-SDL-on-windows#run)
+##### Steps for Windows platform
+
+* Usb driver instalation:
+ * Download [Usb driver installer](http://zadig.akeo.ie/downloads/zadig_2.1.2.exe)
+ * Run it and check Options -> List all devices
+ * Connect the cell phone to the PС with the USB cable
+ * In the list choose your cell phone
+ * Pick the WinUSB (v6.1.7600.16385) driver for the cell phone. If there was some driver already (field Driver is not empty), then reinstall it. See ** usb notes ** for additional info.
+* Download and install [Visual C++ 2013 Redistributable] (https://www.microsoft.com/en-us/download/details.aspx?id=40784) in case it has not been instaled during previous steps
+
+##### Bluetooth transport setup
+
+Install device drivers ("Windows Mobile Device Center" current version is 6.1). [Download Link](https://www.microsoft.com/en-US/download/details.aspx?id=3182)
+
+After all drivers were installed, plug the bluetooth adapter into PC.
+Windows should install all required drivers. If drivers were not installed automatically then
+install them manually.
+
+* Right click on "bluetooth system tray" icon. Click "Add Device".
+* Pick the correct device
+* Approve the pin code on the device.
+* Install the device (mobile) drivers to the PC.
+Double check: right click "bluetooth tray icon" -> "Show bluetooth devices" -> "Right click device" -> "Properties" -> "Hardware" tab. All items in the list should be "ok" (no red and yellow icons).
+If there are problems with drivers then install them next way.
+
+* Go to "Device Manager" from "Control Panel" or just right-click on Computer Icon and choose "Properties" and then click on "Device Manager".
+* You'll see an "Unknown Device" named something like "Bluetooth Peripheral Device".
+* Right-Click it and click on "Update Driver Software" or anyway you find it easy to bring up the Update driver window.
+* Click "Browse My Computer for Driver Software" button.
+* Click "Let Me Pick from a List of Device Drivers on my computer".
+* Select "Bluetooth Radio" from the list if it asked you to select and then in the next window, it will show a list of drivers with Company Names in one list and Drivers in another. In the Company List choose "Microsoft Corporation", not only Microsoft.
+* From the drivers list there may be one or more drivers with the name "Windows Mobile-Based Device Support" with different driver versions. Select one or the latest.
+* Ignore any warnings and keep pressing next and then Finish at last. If all goes well, the last screen will show the message that device driver is successfully installed.
+
+After all drivers has been installed allow SyncProxy service:
+* On the device try to add bluetooth session in the SPT. It will not succeed. It will just wait.
+* Configure access on the PC:
+"Bluetooth tray icon" -> "Show bluetooth devices" -> "Right click device" -> "Properties" -> "Services" -> check "SyncProxy" -> "Apply"
+* After "SyncProxy" was added there will appear new device without driver. Add driver for this device as was described above.
+
+After all drivers were installed and "SyncProxy" service was allowed the SPT will be able to connect to the SDL.
+
+There should be one paired device.
+
+#####Tested and expected to work on next devices:
+- Alcatel OneTouch
+- Acer S500
+- Nexus 4
+
+##### Steps for Qt platform
+
+* Download and install [Visual C++ 2010 Redistributable] (https://www.microsoft.com/en-us/download/details.aspx?id=5555) in case it has not been instaled during previous steps
Executable is available in
Windows native: <build dir>\sdl_win_x64\src\appMain\<Debug or Release>
Windows Qt: <build>\sdl_win_qt_x86\src\appMain
+Notes for developer:
+* to run in the IDE just click run|debug buttons.
+* To run from the console do next. Go to the `%BUILD_DIR%\src\appMain` and run `smartDeviceLinkCore.exe`. Make sure that Qt dlls are in your PATH or are placed near executable. List of required dlls which expected by executable: `Qt5Core.dll`, `Qt5Network.dll`, `Qt5Core.dll`, `sqldrivers\qsqlite.dll` (this one is expected to be in sub-directory)
+
## Start WEB HMI
Web HMI is separated from SDL Core and located in another repository. So to make it workable please do next steps.
@@ -98,13 +211,14 @@ The dependencies for SDL Core vary based on the configuration. You can change SD
####Windows
-See [link](How-to-build-and-run-SDL-on-windows#common-steps-for-windows-and-qt-platforms)
+All dependencies described in **Build project** section
### Known Dependency Issues
####Linux
* log4cxx - We know that the version of log4cxx on a linux machine can conflict with the one used, which is why it is provided in the repository. To avoid the conflict, we recommend removing liblog4cxx*.
+ * libusb - is needed for USB support. Install command: `sudo apt-get install libusb-1.0-0`
* cmake - on some versions of linux, the included cmake package doesn't have the right version. If apt-get is your package manager, you can find the correct version using
```
sudo apt-get install cmake
@@ -114,8 +228,38 @@ sudo apt-get upgrade
```
####Windows
-
-For common issues related to the USB transport [see](USB-transport-notes)
+#####USB transport notes
+
+For some cell phones (e.g. Nexus 4) it's not enough to install only one driver.
+Check the list of devices and ensure that there are no devices without drives. It means
+that some devices create two entries in the list.
+E.g. in the Nexus4 case there was "Android Interface ..." without driver.
+
+There is one more thing. To make libusb work we have to install WinUSB drivers for the device. Even if the system has it's own drivers.
+This leads to the next situation with some devices. Before drivers update we can see the device in the explorer and e.g. upload files to the device.
+But after the update we don't see the device. This can be unacceptable in some use cases.
+
+#####Tested devices
+
+Devices which work via USB:
+- HTC One
+- Nexus 4
+- Samsung Galaxy S4 mini
+- Sony Xperia C2305
+
+Devices which don't work. Win drivers were updated, but SDL doesn't register them. There is no message transfer.
+- Alcatel OneTouch
+
+Devices which don't work. There are no win drivers
+- Acer S500
+
+#####Information regarding used library
+
+In the posix the libusbx 1.0.16 is used in the SDL. [libusbx](http:\\libusbx.org) is the fork from the libusb(http://libusb.info/).
+Currently the libusbx is completely merged into libusb. Current implementation of the usb transport requires the "hot plug" feature.
+But it's missing on windows platform( [issue](https://github.com/libusb/libusb/issues/86) ).
+There is a "non-official" patch in the [forked repository](https://github.com/dickens/libusbx-hp/tree/windows-hotplug-3).
+This patch was applied to our version of the libusbx. The patched version is based on the more recent version, 1.0.17.
## Required RPCs
There are several RPCs that are "required" to be implemented in order for SDL to work across vehicle manufacturers and applications, listed below. The RPC specification can be found in the [Mobile API Spec](src/components/interfaces/MOBILE_API.xml).