Edit online

Ubuntu

14 Nov 2024
Read time: 7 minute(s)

ArtInChip 推荐的 Linux 发行版为 Ubuntu 20.04 LTS(Long Term Support)版本,本节以此版本展示 Ubuntu 系统安装流程和注意事项。如使用其他版本,需要安装软件包对应的依赖和版本。

系统安装注意事项

安装 Ubuntu 系统时,需注意以下事项:

  • 至少保留 10 GB 磁盘空间,用于保存 SDK 源码。

  • 若使用虚拟机,不建议将 SDK 放在虚拟机与实体机的共享目录。

注: 本节不涉及 Ubuntu 系统安装的详细步骤。

下载 Luban-Lite

Luban-Lite 的代码托管于 Gitee 服务器中,可通过如下方式进行下载(确保已安装 git 工具):

git clone https://gitee.com/artinchip/luban-lite.git
提示: 建议下载或解压缩之后,在 SDK 根目录,建立 Git 仓库,以便跟踪后续修改。

准备编译环境

Luban-Lite SDK 的开发环境中,还需要安装一些依赖包,所需关键工具的版本要求和说明如下所示:

  • Python2: 用于编译

  • SCons:自动化构建工具

  • Python3 + pycryptodomex: 用于打包和签名

依赖包的安装方法很多,本文以基于 apt 的在线安装方案为例。

  1. 资源库更新

    使用 apt 安装软件时,可能出现 http://cn.archive.ubuntu.com/ubuntu 无法访问或者访问速度较慢的情况,此时可使用境内镜像网站提供的安装包,例如 mirrors.aliyun.com。

    sudo gedit /etc/apt/sources.list   中  cn.archive.ubuntu.com 全部更换为 mirrors.aliyun.com
    sudo apt-get update
    
  2. 安装 SCons

    Luban-Lite lite 选择 SCons 作为构建工具, 且同时支持对 Makefile 的调用。SCons 是一个以 Python 语言编码的自动化构建工具,是 Make 经过改进后的替代品,可跨平台使用。

    sudo apt install SCons
    
  3. 安装 pycryptodomex

    pycryptodomex 是 Python 的一个加密库,可以通过 pip 安装 whl 文件, 或通过源码编译安装。SDK tools/env/local_pkgs/ 中内置了 pycryptodomex 源码。

    pycryptodomex 的两种安装方式都需要安装 pip 来提供相应的组件。Ubuntu20.04 默认安装 python3-pip。Pip 安装命令如下:

    sudo apt install pip
    cd tools/env/local_pkgs/
    tar xvf pycryptodomex-3.11.0.tar.gz
    cd pycryptodomex-3.11.0
    sudo python3 setup.py install
    

开始编译

进入 Luban-Lite 根目录, 使用 SCons 进行编译,并校验环境是否搭建成功。
注: 确保已经完成各项安装和环境准备事项。
scons --list-def            //查看有多少配置
scons --apply-def=0         //选择 0 号配置
scons                       //编译

OneStep

OneStep 是 ArtInChip 对 SCons 工具二次封装的总称,在基础命令上开发了一组更高效和方便的快捷命令, 以实现任意目录、一步即达的目的。

在 Ubuntu 终端中,进入 SDK 根目录后,使用 sourcetools/onestep.sh 命令即可查看所有常见命令,包括:

$ h
Luban-Lite SDK OneStep commands:
  hmm|h                     : Get this help.
  lunch          [keyword]  : Start with selected defconfig.e.g. lunch mmc
  menuconfig|me             : Config SDK with menuconfig
  m                         : Build all and generate final image
  mc                        : Clean & Build all and generate final image
  mb                        : Build bootloader & app and generate final image
  c                         : Clean all
  croot|cr                  : cd to SDK root directory.
  cout|co                   : cd to build output directory.
  cbuild|cb                 : cd to build root directory.
  ctarget|ct                : cd to target board directory.
  godir|gd       [keyword]  : Go/jump to selected directory.
  list                      : List all SDK defconfig.
  i                         : Get current project's information.
  buildall                  : Build all the *defconfig in target/configs
  rebuildall                : Clean and build all the *defconfig in target/configs
  addboard|ab               : Add new board *defconfig in target/configs
  aicupg                    : Burn image file to target board
Edit online

搭建开发环境

Luban SDK 的开发环境需要安装一些依赖包,并对下列关键工具有版本要求:
  • GCC 版本 ≥ 6.4

  • GLIBCXX 版本 ≥ 3.4.22(在 libstd++.so.6 库文件中查看该版本号)

  • Python3 版本 ≥ 3.5

ArtInChip 提供下列开发环境搭建方式,用户可根据软件版本要求和软件源是否可访问等条件选择开发环境搭建方式:
  • 一键安装

  • 手动安装

  • Python 安装

一键安装

如有可以访问的软件源,无论来自外网还是内网搭建,Ubuntu 系统即可以自动完成一键安装。执行一键安装之前,确保开发环境满足以下两个条件:
  • 开发环境中有可用的软件源。

  • 且已有 apt-get 工具。Ubuntu 系统用 apt-get 工具完成软件安装。一键安装脚本也需要用到此 apt-get 工具。

Luban SDK 提供了一键安装脚本 oneclick.sh,用户可在一分钟内搭建好开发环境。遵照以下步骤执行一键安装:
  1. 执行以下一键安装脚本命令:
    cd Luban_SDK_Root_Directory/
    ./tools/scripts/oneclick.sh quiet
    
    注:

    oneclick.sh 目前已支持的系统有:

    • Ubuntu 14.04、16.04、18.04、20.04、22.04
    • CentOS 7.x、8.x

    Ubuntu 14.04、16.04 和 CentOS 7.x 自带的 GCC 版本太低, oneclick.sh 会自动编译安装一份 GCC 6.4。

  2. 等待安装完成。安装成功后,系统会返回以下提示信息:
    ...
    fdt        0.3.2
                                                                    [OK]
    
    >>> Congratulations! All the package is ready.
    >>> Enjoy the LubanOS!
    
    注:
    • oneclick.sh 会自动检查当前系统的版本、环境,在软件源可以正常访问的情况下,逐个安装 Luban 需要的软件工具。
    • 执行 oneclick.sh 时的quiet参数会隐藏所有需要用户确认的环节,如果去掉quiet参数,会在以下几个软件包的安装时提问是否继续:
      • GCC
      • Python3
      • Python3-dev
      • Python3-pip
  3. 如需要,可以通过手动执行下列 apt-get 命令来逐个安装依赖,否则可以跳过此步。
    sudo apt-get update
    sudo apt-get install build-essential python3 python3-pip
    sudo pip install pycrypto
    sudo pip install fdt
    

手动安装

如没有可以访问的软件源,则需要手动逐个下载安装包并手动执行安装。可以使用 ArtInChip 提供的 deb 离线包进行离线安装:
  1. 执行下列命令分别安装对应的 deb 离线包:
    • tools 包

      cd tools
          sudo dpkg -i *.deb
    • python 包

      cd python
          sudo dpkg -i *.deb
    • vim 包

      cd vim
          sudo dpkg -i vim-tiny_2%3a8.1.2269-1ubuntu5.7_amd64.deb
  2. 执行下列命令完成所选 deb 文件的安装:
    sudo dpkg -i *.deb
  3. deb 文件安装完成后,如发现依赖缺失,可按照下列任意一种方式解决,否则可跳过此步。

    不同的系统的依赖可能会有不同。

    • 单独安装某一 deb 安装包,获取缺失的依赖。
    • 在另外一有网络环境的计算机上下载缺失的依赖包。
    • 复制所下载的依赖包到本服务器,安装依赖包
    aic@aic-virtual-machine:~/work/test$ sudo dpkg -i libgcc-9-dev_9.3.0-17ubuntu1~20.04_amd64.deb
    ......
    dpkg: dependency problems prevent configuration of libgcc-9-dev:amd64:
    libgcc-9-dev:amd64 depends on libitm1 (≥ 9.3.0-17ubuntu1~20.04); however:
        Package libitm1 is not installed.
    libgcc-9-dev:amd64 depends on libatomic1 (≥ 9.3.0-17ubuntu1~20.04); however:
        Package libatomic1 is not installed.
    libgcc-9-dev:amd64 depends on libasan5 (≥ 9.3.0-17ubuntu1~20.04); however:
        Package libasan5 is not installed.
    libgcc-9-dev:amd64 depends on liblsan0 (≥ 9.3.0-17ubuntu1~20.04); however:
        Package liblsan0 is not installed.
    libgcc-9-dev:amd64 depends on libtsan0 (≥ 9.3.0-17ubuntu1~20.04); however:
        Package libtsan0 is not installed.
    libgcc-9-dev:amd64 depends on libubsan1 (≥ 9.3.0-17ubuntu1~20.04); however:
        Package libubsan1 is not installed.
    libgcc-9-dev:amd64 depends on libquadmath0 (≥ 9.3.0-17ubuntu1~20.04); however:
        Package libquadmath0 is not installed.
    
    dpkg: error processing package libgcc-9-dev:amd64 (--install):
    dependency problems - leaving unconfigured
    Errors were encountered while processing:
        libgcc-9-dev:amd64
    
    aic@aic-virtual-machine:~/work/test$ apt-get download libitm1 libatomic1 libasan5 liblsan0 libtsan0 libubsan1 libquadmath0
        Get:1 http://cn.archive.ubuntu.com/ubuntu focal-updates/main amd64 libasan5 amd64 9.3.0-17ubuntu1~20.04 [394 KB]
        Get:2 http://cn.archive.ubuntu.com/ubuntu focal-updates/main amd64 libatomic1 amd64 10.3.0-1ubuntu1~20.04 [9,284 B]
        Get:3 http://cn.archive.ubuntu.com/ubuntu focal-updates/main amd64 libitm1 amd64 10.3.0-1ubuntu1~20.04 [26.2 KB]
        Get:4 http://cn.archive.ubuntu.com/ubuntu focal-updates/main amd64 liblsan0 amd64 10.3.0-1ubuntu1~20.04 [835 KB]
        Get:5 http://cn.archive.ubuntu.com/ubuntu focal-updates/main amd64 libquadmath0 amd64 10.3.0-1ubuntu1~20.04 [146 KB]
        Get:6 http://cn.archive.ubuntu.com/ubuntu focal-updates/main amd64 libtsan0 amd64 10.3.0-1ubuntu1~20.04 [2,009 KB]
        Get:7 http://cn.archive.ubuntu.com/ubuntu focal-updates/main amd64 libubsan1 amd64 10.3.0-1ubuntu1~20.04 [784 KB]
        Fetched 4,204 KB in 18s (231 KB/s)
    
    aic@aic-virtual-machine:~/work/test$ cp *.deb /media/aic/SDCARD/

Python 安装

Python 目录中包含 Python 的 deb 安装文件,和普通的 deb 文件安装步骤类似。Python 工具有两种安装方式:
  • 编译安装

    1. 下载源码进行安装,例如使用通用的 pip 工具,通过源码 build 安装,以 pip-22.0.3 为例:
      cd pip-22.0.3/
      python3 setup.py  build
      sudo python3 setup.py  install

      关于其他 Python 工具下载安装,可查看官网 http://www.pypi.org

    2. 如果有依赖,则下载并安装依赖,否则跳过此步骤。
  • 压缩包安装
    1. Python 的打包格式有 Wheel(.whl) 和 Egg(.egg) ,实际上两者都属于压缩文件,目的是支持不需要编译的安装过程。 Wheel 文件可以使用 pip 直接安装。
      sudo pip install pycryptodome-3.14.1-cp27-cp27mu-manylinux2010.whl
    2. 如果有依赖,则下载并安装依赖,否则跳过此步骤。