blob: 313b9aaf43511432b9ab4c53fe90539c6d698a1f [file] [log] [blame]
.. _setting_up:
Setting Up for Zephyr Development
#################################
Setting up your development environment for Zephyr is done in two steps:
1. Access the code
2. Set up the development environment
Access the Code
***************
The code is hosted at Linux Foundation and code review is done using
Gerrit. Therefore, a Linux Foundation account is needed to contribute to the
code. Follow these steps to create an account if you don't have one already:
#. Go to the `Linux Foundation ID website`_.
#. Select the option :guilabel:`I need to create a Linux Foundation ID`.
.. figure:: figures/setting_up01.png
:scale: 75 %
:alt: linuxfoundation.org identity page
#. Fill out the form that appears:
.. figure:: figures/setting_up02.png
:scale: 75 %
:alt: New account form
#. Open your email account and look for a message with the subject line:
"Validate your Linux Foundation ID email".
#. Open the received URL to validate your email address.
#. Verify the browser displays the message :guilabel:`You have successfully
validated your e-mail address`.
#. Access `Gerrit`_.
Configuring Gerrit to Use SSH
=============================
Gerrit uses SSH to interact with your Git client. A SSH private key
needs to be generated on the development machine with a matching public
key on the Gerrit server.
If you already have a SSH key-pair, skip this section.
As an example, we provide the steps to generate the SSH key-pair on a Linux
environment. Follow the equivalent steps on your OS.
#. Create a key-pair, enter:
.. code-block:: console
$ ssh-keygen -t rsa -C "John Doe john.doe@example.com"
.. note::
This will ask you for a password to protect the private key as it
generates a unique key. Please keep this password private, and DO NOT
enter a blank password.
The generated key-pair is found in:
:file:`~/.ssh/id_rsa` and :file:`~/.ssh/id_rsa.pub`.
#. Add the private key in the :file:`id_rsa` file in your key ring:
.. code-block:: console
$ ssh-add ~/.ssh/id_rsa
Once the key-pair has been generated, the public key must be added to Gerrit.
Follow these steps to add your public key :file:`id_rsa.pub` to the Gerrit
account:
1. Go to `Gerrit`_.
2. Click on your account name in the upper right corner.
3. From the pop-up menu, select :guilabel:`Settings`.
4. On the left side menu, click on :guilabel:`SSH Public Keys`.
5. Paste the contents of your public key :file:`~/.id/id_rsa.pub` and click
:guilabel:`Add key`.
.. note::
The :file:`id_rsa.pub` file can be opened using any text editor. Ensure
that all the contents of the file are selected, copied and pasted into the
:guilabel:`Add SSH key` window in Gerrit.
.. warning::
Potential Security Risk! Do not copy your private key
:file:`~/.ssh/id_rsa` Use only the public :file:`~/.id/id_rsa.pub`.
Gerrit Commit Message Hook
==========================
.. include:: ../collaboration/code/gerrit_practices.rst
:start-line: 42
:end-line: 49
.. _code_check_out:
Checking Out the Source Code
============================
#. Ensure that SSH has been set up properly. See
`Configuring Gerrit to Use SSH`_ for details.
#. Clone the repository:
.. code-block:: console
$ git clone
ssh://LFID@gerrit.zephyrproject.org:29418/zephyr zephyr-project
You have successfully checked out a copy of the source code to your local
machine.
.. important::
Linux users need to download the Zephyr SDK even after successfully
cloning the source code. The SDK contains packages that are not part of
the Zephyr Project. See :ref:`zephyr_sdk` for details.
Set Up the Development Environment
**********************************
The Zephyr project supports these operating systems:
* Linux
* Mac OS
Follow the steps appropriate for your development system's
:abbr:`OS (Operating System)`.
Use the following procedures to create a new development environment. Given
that the file hierarchy might change from one release to another, these
instructions could not work properly in an existing development environment.
Perform the steps in the procedures in the order they appear.
.. toctree::
:maxdepth: 2
installation_linux.rst
installation_mac.rst
.. _Linux Foundation ID website: https://identity.linuxfoundation.org
.. _Gerrit: https://gerrit.zephyrproject.org/