1e41f4b71Sopenharmony_ci# Setting Up the Development Environment
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ciIn embedded development, Windows-based tools, such as Visual Studio Code, are widely used in code editing. Yet, because the source code of most development boards, such as Hi3861 and Hi3516, cannot be built in Windows, these development boards require the Ubuntu build environment. Therefore, for these development boards, you need Ubuntu to build source code and Windows to burn images.
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ciSet up the Windows and Ubuntu development environments that meet the [Windows Requirements](#windows-requirements) and [Ubuntu Requirements](#ubuntu-requirements), respectively. Then enable Windows to remotely access Ubuntu. No specific requirements are placed on the development devices.
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
10e41f4b71Sopenharmony_ci>
11e41f4b71Sopenharmony_ci> OpenHarmony also provides the [Docker environment](https://gitee.com/openharmony/docs/blob/master/en/device-dev/get-code/gettools-acquire.md), which can significantly simplify the environment configuration before compilation. You can build your source code in the Docker environment if you are more accustomed to using the command line.
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## Windows Requirements
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci64-bit Windows 10
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci## Ubuntu Requirements
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci- OS: Ubuntu 18.04 or later, X86_64 architecture, and 16 GB or more of RAM (recommended)
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci- User name: cannot contain Chinese characters
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci## Preparing for Remote Access
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ciWhen burning images in Windows, you need to remotely access the source code and image files in Ubuntu. To achieve this, use a file transfer or sharing tool.
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ciIn this example the Samba server is used.
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci### Configuring the Samba Server
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ciPerform the following operations in Ubuntu:
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci1. Install the Samba software package.
41e41f4b71Sopenharmony_ci   
42e41f4b71Sopenharmony_ci   ```
43e41f4b71Sopenharmony_ci   sudo apt-get install samba samba-common
44e41f4b71Sopenharmony_ci   ```
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ci2. Configure the sharing information in the Samba configuration file.
47e41f4b71Sopenharmony_ci     
48e41f4b71Sopenharmony_ci     Open the **smb.conf** file.
49e41f4b71Sopenharmony_ci   
50e41f4b71Sopenharmony_ci   ```
51e41f4b71Sopenharmony_ci   sudo gedit /etc/samba/smb.conf   
52e41f4b71Sopenharmony_ci   ```
53e41f4b71Sopenharmony_ci   
54e41f4b71Sopenharmony_ci   Append the following information to the configuration file:
55e41f4b71Sopenharmony_ci   
56e41f4b71Sopenharmony_ci   
57e41f4b71Sopenharmony_ci   ```
58e41f4b71Sopenharmony_ci   [Share]                    # Name of the root folder mapped in Windows (Share is used as an example)
59e41f4b71Sopenharmony_ci   comment = Shared Folder    # Information about the sharing
60e41f4b71Sopenharmony_ci   path = /home/share         # Shared directory
61e41f4b71Sopenharmony_ci   valid users = username     # User who can access the shared directory (user name in Ubuntu)
62e41f4b71Sopenharmony_ci   directory mask = 0775      # Default directory permissions
63e41f4b71Sopenharmony_ci   create mask = 0775         # Default file permissions
64e41f4b71Sopenharmony_ci   public = yes               # Whether to enable public access
65e41f4b71Sopenharmony_ci   writable = yes             #  Whether to enable write access
66e41f4b71Sopenharmony_ci   available = yes            # Whether the directory is available
67e41f4b71Sopenharmony_ci   browseable = yes           # Whether the directory is browseable
68e41f4b71Sopenharmony_ci   ```
69e41f4b71Sopenharmony_ci     
70e41f4b71Sopenharmony_ci3. Add the user name and password for accessing the Samba server.
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci   ```
73e41f4b71Sopenharmony_ci   sudo smbpasswd -a username   # Enter the Ubuntu user name. Then set the password as prompted.
74e41f4b71Sopenharmony_ci   ```
75e41f4b71Sopenharmony_ci
76e41f4b71Sopenharmony_ci4. Run the following command to restart the Samba service:
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ci   ```
79e41f4b71Sopenharmony_ci   sudo service smbd restart
80e41f4b71Sopenharmony_ci   ```
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ci
83e41f4b71Sopenharmony_ci### Mapping a Network Drive in Windows
84e41f4b71Sopenharmony_ci
85e41f4b71Sopenharmony_ciPerform the following operations in Windows:
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ci1. Right-click **This PC** and choose **Map network drive** from the shortcut menu. In the **Drive** list, select a drive letter. In the **Folder** field, enter the path in the format of *\\Ubuntu device IP address\Ubuntu shared folder*.
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ci   ![quickstart-pkg-prepare-networkdriver](figures/quickstart-pkg-prepare-networkdriver.png)
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci2. Enter the user name and password for accessing the Samba server, which has been set up in [Configuring the Samba Server](#configuring-the-samba-server).
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ci   ![quickstart-pkg-prepare-setsamba](figures/quickstart-pkg-prepare-setsamba.png)
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci3. The shared directory is displayed in Windows and available for access.
96