1 | .. SPDX-License-Identifier: CC-BY-SA-4.0 |
---|
2 | |
---|
3 | .. Copyright (C) 2019 embedded brains GmbH & Co. KG |
---|
4 | .. Copyright (C) 2019 Sebastian Huber |
---|
5 | .. Copyright (C) 2016 Chris Johns <chrisj@rtems.org> |
---|
6 | |
---|
7 | .. _QuickStartPrefixes: |
---|
8 | |
---|
9 | Choose an Installation Prefix |
---|
10 | ============================= |
---|
11 | |
---|
12 | .. index:: prefix |
---|
13 | |
---|
14 | You will see the term :ref:term:`prefix` referred to throughout this |
---|
15 | documentation and in a wide number of software packages you can download from |
---|
16 | the internet. It is also used in the |
---|
17 | `GNU Coding Standard <https://www.gnu.org/prep/standards/html_node/Directory-Variables.html>`_. |
---|
18 | A *prefix* is the path on your host computer a software package is installed |
---|
19 | under. Packages that have a prefix will place all parts under the prefix |
---|
20 | path. Packages for your host computer typically use a default prefix of |
---|
21 | :file:`/usr/local` on FreeBSD and Linux. |
---|
22 | |
---|
23 | You have to select a prefix for your installation. You will build and install |
---|
24 | the RTEMS tool suite, an RTEMS kernel for a BSP, and you may build and install |
---|
25 | third party libraries. You can build all the parts as a stack with a single |
---|
26 | prefix or you can separate various parts by providing different prefixes to |
---|
27 | each part as it is built. Using separate prefixes is for experienced RTEMS |
---|
28 | users. |
---|
29 | |
---|
30 | Do not select a prefix that is under the top of any of the source trees. The |
---|
31 | prefix collects the install output of the various build steps you take in this |
---|
32 | guide and need to be kept separate from the sources used. |
---|
33 | |
---|
34 | The RTEMS tool suite consists of a cross tool chain (Binutils, GCC, GDB, |
---|
35 | Newlib, etc.) for your target architecture and :ref:`RTEMS tools <HostTools>` |
---|
36 | provided by the RTEMS Project. The RTEMS Tools are a toolkit that help create |
---|
37 | the RTEMS ecosystem and help support the building of embedded real-time |
---|
38 | applications and systems. |
---|
39 | |
---|
40 | You build and install the tool suite with the :ref:`RTEMS Source Builder (RSB) |
---|
41 | <RSB>`. By default, the RSB will start the prefix path with a host operating |
---|
42 | system specific path plus :file:`rtems`, and the RTEMS version, e.g. |
---|
43 | :file:`/opt/rtems/6` on Linux, and :file:`/usr/local/rtems/6` on FreeBSD and |
---|
44 | macOS. Placing the RTEMS version number in the path lets you manage and |
---|
45 | migrate RTEMS versions as they are released. |
---|
46 | |
---|
47 | It is strongly recommended to run the RSB as a *normal user* and not with |
---|
48 | *root* privileges (also known as *super user* or *Administrator*). You have to |
---|
49 | make sure that your normal user has sufficient privileges to create files and |
---|
50 | directories under the prefix. For example, you can create a directory |
---|
51 | :file:`/opt/rtems` and give it to a developer group with read, write, and |
---|
52 | execute permissions. Alternatively, you can choose a prefix in your home |
---|
53 | directory, e.g. :file:`$HOME/rtems/6` or with a project-specific component |
---|
54 | :file:`$HOME/project-x/rtems/6`. For more ideas, see the :ref:`project |
---|
55 | sandboxing <ProjectSandboxing>` section. In this quick start chapter, we will |
---|
56 | choose :file:`$HOME/quick-start/rtems/6` for the RTEMS tool suite prefix. |
---|
57 | |
---|
58 | .. warning:: |
---|
59 | |
---|
60 | The prefix must not contain space characters. |
---|