Chapter 1 Environment Setup
Install Ubuntu. It is recommended to use version 20.04. The username must not contain Chinese characters.
1. Replace sh with bash
ls -l /bin/sh #If it displays '/bin/sh -> bash', this is normal. Otherwise, please modify it as follows:
sudo dpkg-reconfigure dash #Then select 'No'.
2. Install OpenHarmony dependency packages
sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby openjdk-8-jdk python3-distutils dosfstools mtools libssl-dev libelf-dev genext2fs
pip3 install setuptools kconfiglib
#Install the pip packages required for compiling hi3861
pip3 install scons ecdsa pycryptodome
pip3 install --upgrade --ignore-installed six
For the specific dependency packages required and their detailed URLs, please refer to the following resource:https://repo.huaweicloud.com/harmonyos/os/2.0/tool_chain/Standard_System.md
3. Install Python 3.8 and pip
1. which python3.8 #Check the installation location of Python 3.8
Output:/usr/bin/python3.8 #For example, my installation directory:
2. cd /usr/bin #Navigate to the Python directory
3. sudo rm python #Uninstall Python
4. sudo ln -s /usr/bin/python3.8 python #Create a symbolic link from Python to Python 3.8
5. python --version
The recommended compilation environment for OpenHarmony source code is typically Ubuntu 18.04. The primary reason is that after Ubuntu 20.04, system dynamic library versions were updated and renamed. When PyTorch attempts to load these libraries during runtime, it fails to locate the corresponding versions and throws errors. The solution involves creating a symbolic link to redirect system calls from older library versions to their newer counterparts. Follow these steps:
First, run the following command to check the current dynamic library versions. Modify the command accordingly based on the specific missing library name.
1. ls /lib/x86_64-linux-gnu/libtinfo.so.*
2. /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.6.2
As you can see, our Ubuntu 20.04 system only has version 6 available, while Python is looking for version 5, which naturally cannot be found. We can resolve this by creating a symbolic link from version 5 to version 6.
3. sudo ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.5
4. sudo apt-get install -y libncursesw5
Note
To address slow pip downloads, configure pip to use a domestic mirror repository for accelerated package installation within China.
1. mkdir~/.pip/
2. vim ~/.pip/pip.conf
#Enter the following command to change the default download URL.
[global]
index-url = https://mirrors.huaweicloud.com/repository/pypi/simple
trusted-host = mirrors.huaweicloud.com
timeout = 120