| 1 | This library provides support for the Pulse-Eight USB-CEC adapter. |
| 2 | |
| 3 | You can find a list of frequently asked questions on the following page: |
| 4 | http://libcec.pulse-eight.com/faq |
| 5 | |
| 6 | =============================================================================== |
| 7 | === Linux & BSD === |
| 8 | =============================================================================== |
| 9 | |
| 10 | libCEC needs the following dependencies in order to work correctly: |
| 11 | * udev v151 or later |
| 12 | * cdc-acm support compiled into the kernel or available as module |
| 13 | * liblockdev 1.0 or later |
| 14 | |
| 15 | To compile libCEC on Linux, you'll need the following dependencies: |
| 16 | * autoconf 2.13 or later |
| 17 | * automake 1.11 or later |
| 18 | * libtool |
| 19 | * gcc 4.2 or later |
| 20 | * liblockdev 1.0 development headers |
| 21 | |
| 22 | The following dependencies are recommended. Without them, the adapter can not |
| 23 | be auto-detected. |
| 24 | * pkg-config |
| 25 | * udev development headers v151 or later |
| 26 | |
| 27 | To compile, execute the following commands: |
| 28 | # ./bootstrap |
| 29 | # ./configure |
| 30 | # make |
| 31 | # sudo make install |
| 32 | |
| 33 | =============================================================================== |
| 34 | === OS-X === |
| 35 | =============================================================================== |
| 36 | |
| 37 | To compile libCEC on OS-X, you'll need the following dependencies: |
| 38 | * autoconf 2.13 or later |
| 39 | * automake 1.11 or later |
| 40 | * pkg-config |
| 41 | * xcode 3.2.6 or later |
| 42 | |
| 43 | To compile, execute the following command: |
| 44 | # ./bootstrap |
| 45 | # ./configure |
| 46 | # make |
| 47 | # sudo make install |
| 48 | |
| 49 | # Note: You may need to copy pkg.m4 to your m4 sources directory |
| 50 | |
| 51 | =============================================================================== |
| 52 | === Windows === |
| 53 | =============================================================================== |
| 54 | |
| 55 | To compile libCEC on Windows, you'll need Visual C++ 2010 or Visual Studio 2010 |
| 56 | The installer needs the Windows DDK (Driver Development Kit) and Nullsoft's |
| 57 | NSIS. |
| 58 | |
| 59 | To compile LibCecSharp on Windows, you'll need Visual C++ 2008 or Visual Studio |
| 60 | 2008, because it is compiled against .NET 2.0. |
| 61 | |
| 62 | To compile libCEC, follow these instructions: |
| 63 | * open /project/libcec.sln with Visual C++ 2010 or Visual Studio 2010. |
| 64 | * build the project. |
| 65 | |
| 66 | To build an installer on Windows: |
| 67 | * download and install NSIS. |
| 68 | * go to /project and execute create-installer.bat to create the installer. |
| 69 | * the installer is stored as /build/libCEC-installer.exe |
| 70 | |
| 71 | You will need both Visual Studio 2008 and Visual Studio 2010 to build the |
| 72 | installer from the command line. To build with Visual C++ 2008 and 2010, |
| 73 | you will need to manually build libcec with Visual C++ 2010 and then |
| 74 | build LibCecSharp.sln with Visual Studio 2008. See create-installer.bat |
| 75 | for the required steps. |
| 76 | |
| 77 | =============================================================================== |
| 78 | === Raspberry Pi === |
| 79 | =============================================================================== |
| 80 | |
| 81 | We've included a script that builds libCEC with support for the Raspberry Pi |
| 82 | in /project/RPi/build.sh. This script pulls in the latest toolchain and |
| 83 | firmware, builds the necessary dependencies, and finally builds libCEC. The |
| 84 | result will be a softfp build. |
| 85 | |
| 86 | To build libCEc on your development machine, follow these instructions: |
| 87 | * run '/project/RPi/build.sh /desired/destination/path/for/binaries' |
| 88 | * run 'make install' |
| 89 | |
| 90 | To build libCEC on the Pi itself, just follow the instructions for Linux. |
| 91 | The configure script automatically checks whether the required headers and |
| 92 | libraries can be found. |
| 93 | |
| 94 | To specify the path of the Raspberry Pi's development headers, use the |
| 95 | following option for 'configure': |
| 96 | --with-rpi-include-path="/path/to/opt/vc/include" |
| 97 | |
| 98 | To specify the path of the Raspberry Pi's libraries, use the following option |
| 99 | for 'configure': |
| 100 | --with-rpi-lib-path="/path/to/libbcm_host.so" |
| 101 | |
| 102 | =============================================================================== |
| 103 | === CuBox / TDA995x === |
| 104 | =============================================================================== |
| 105 | |
| 106 | Solid-Run's CuBox uses a combined HDMI tranceiver / CEC controller by NXP. The |
| 107 | device driver for it is based on an SDK by the chip vendor and is compiled into |
| 108 | the Linux kernel. The following options for 'configure' have been introduced: |
| 109 | |
| 110 | To enable support for the CuBox / TDA995x: |
| 111 | --enable-tda995x |
| 112 | |
| 113 | To specify the path to the SDK part of the kernel driver: |
| 114 | --with-tda995x-toolkit-path='path/to/linux/drivers/video/dovefb/nxp_hdmi' |
| 115 | |
| 116 | If the toolkit path is not specified, it is assumed that a directory named |
| 117 | 'nxp_hdmi' (or a link to it) exists in the top level of the source tree. |
| 118 | |
| 119 | =============================================================================== |
| 120 | === Debugging / Testing === |
| 121 | =============================================================================== |
| 122 | |
| 123 | To compile libCEC with extensive debugging output, pass the following argument |
| 124 | to configure on Linux/OS-X/BSD: |
| 125 | --enable-debug |
| 126 | |
| 127 | We provide a test client, named cec-client, to debug the device. |
| 128 | To check whether the device can be detected, execute the following command: |
| 129 | * cec-client -l |
| 130 | |
| 131 | "cec-client -h" shows a list of commands and options that are available. |
| 132 | |
| 133 | =============================================================================== |
| 134 | === Developers === |
| 135 | =============================================================================== |
| 136 | |
| 137 | We provide a C, C++ and .NET CLR interface to the adapter. |
| 138 | |
| 139 | C++ developers: |
| 140 | * the API can be found in /include/cec.h |
| 141 | * an example implementation can be found in /src/testclient/main.cpp |
| 142 | |
| 143 | C developers: |
| 144 | * the API can be found in /include/cecc.h |
| 145 | |
| 146 | .NET developers: |
| 147 | * add a reference to LibCecSharp.dll |
| 148 | * an example can be found in \src\CecSharpTester\CecSharpClient.cs |
| 149 | |
| 150 | =============================================================================== |
| 151 | === Developers Agreement === |
| 152 | =============================================================================== |
| 153 | |
| 154 | If you wish to contribute to this project, you must first sign our contributors |
| 155 | agreement. Please see http://www.pulse-eight.net/contributors for more |
| 156 | information. |