FreeCalypso > hg > freecalypso-tools
comparison INSTALL @ 58:cedd12ebf35a
doc/Compiling moved to INSTALL
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Wed, 26 Oct 2016 07:48:29 +0000 |
| parents | doc/Compiling@4213cf6536fa |
| children | 4022bfbaafd4 |
comparison
equal
deleted
inserted
replaced
| 57:7cc2f2360922 | 58:cedd12ebf35a |
|---|---|
| 1 Building and installing FreeCalypso host tools | |
| 2 ============================================== | |
| 3 | |
| 4 Our FreeCalypso host tools are designed to be installed in the /opt/freecalypso | |
| 5 directory hierarchy on your system. The author of this software is very | |
| 6 old-fashioned and refuses to use autotools (sorry, we aren't GNU), hence | |
| 7 various hard-coded paths under /opt/freecalypso are sprinkled in bazillion | |
| 8 places - thus changing this fixed install location is deemed to be impractical. | |
| 9 | |
| 10 In order to compile and install our host tools, follow these steps: | |
| 11 | |
| 12 1: Run 'make' as a regular user (not root) to compile the software. | |
| 13 | |
| 14 2: Decide if you prefer to have the /opt/freecalypso directory and everything | |
| 15 under it to be owned by root or by your non-root uid. | |
| 16 | |
| 17 If you prefer /opt/freecalypso to be root-owned: | |
| 18 | |
| 19 3A: Run 'make install' as root; the install rule in the | |
| 20 Makefile will do mkdir -p /opt/freecalypso as its first step. | |
| 21 | |
| 22 4A: You are done! | |
| 23 | |
| 24 If you prefer /opt/freecalypso to be owned by your "regular" non-root uid: | |
| 25 | |
| 26 3A: Become root just to create the /opt/freecalypso directory and chown it | |
| 27 to your non-root uid. | |
| 28 | |
| 29 4A: Run 'make install' as your regular uid; it should succeed because you | |
| 30 should have made yourself the owner of /opt/freecalypso with full write | |
| 31 permission in the previous step. | |
| 32 | |
| 33 5A: You are done! | |
| 34 | |
| 35 The host tool binaries will be installed in /opt/freecalypso/bin; you can | |
| 36 either add this directory to your PATH or make symlinks from /usr/bin or | |
| 37 /usr/local/bin or wherever. | |
| 38 | |
| 39 Dependencies | |
| 40 ============ | |
| 41 | |
| 42 All FreeCalypso host tools are written in plain C, and with the exception of one | |
| 43 special hack-utility that has been excluded from the standard build set, they | |
| 44 have absolutely no library dependencies beyond libc. In other words, they are | |
| 45 very friendly to those who like bare bones minimalist systems. The only | |
| 46 exception is the fc-lcdemu hack which needs libX11 to compile and an X11 display | |
| 47 to run. It was a developer-only hack-utility to begin with, and the developer | |
| 48 setup of which it was a part never worked in a satisfactory manner, so it has | |
| 49 been retired. If you would like to play with it, you will need to compile it | |
| 50 separately, as it has been excluded from the top Makefile in order to have the | |
| 51 standard build set with no dependencies. | |
| 52 | |
| 53 The previous dependency on OpenSSL libraries for DES decryption of the factory | |
| 54 IMEI record on the Pirelli DP-L10 has been eliminated by incorporating our own | |
| 55 simple DES implementation (performance is not a concern for the one time | |
| 56 operation of retrieving the factory IMEI) into our rvinterf/etmsync source, and | |
| 57 the functions that require access to Pirelli's IMEI have now been integrated | |
| 58 into fc-fsio. | |
| 59 | |
| 60 Building and installing the ARM7 toolchain | |
| 61 ========================================== | |
| 62 | |
| 63 The current "official" GNU ARM toolchain for FreeCalypso consists of | |
| 64 binutils-2.21.1, gcc-4.5.4 and newlib-2.0.0 with a specific set of patches and | |
| 65 build configuration options. This toolchain is used to compile target-utils in | |
| 66 this package as well as our separately-maintained Citrine firmware. Build it | |
| 67 as follows: | |
| 68 | |
| 69 1. Download these 3 source tarballs for the standard GNU+newlib components: | |
| 70 | |
| 71 binutils-2.21.1a.tar.bz2 | |
| 72 gcc-core-4.5.4.tar.bz2 | |
| 73 newlib-2.0.0.tar.gz | |
| 74 | |
| 75 2. Run the build+install.sh script in the toolchain directory. Read the | |
| 76 comments in the script first for the usage instructions. | |
| 77 | |
| 78 The toolchain thus built will need to be in your PATH before you can compile | |
| 79 target-utils or Citrine. | |
| 80 | |
| 81 Please note: the toolchain that is prescribed for FreeCalypso as above is | |
| 82 *believed* to be equivalent to the one used by OsmocomBB, but there are no | |
| 83 guarantees. Use any other toolchain at your own risk. | |
| 84 | |
| 85 Compiling target-utils | |
| 86 ====================== | |
| 87 | |
| 88 Running 'make' in the target-utils tree with the ARM7 toolchain present in your | |
| 89 PATH will result in several target binaries being built, including compalstage | |
| 90 and loadagent which are needed in order to use FreeCalypso loadtools. Run | |
| 91 'make install' to install these target binaries in /opt/freecalypso/target-bin, | |
| 92 which is where loadtools will look for them. | |
| 93 | |
| 94 Run 'make all' in target-utils to build some additional target code pieces that | |
| 95 are needed only for development and only very rarely. |
