【Aliso-things筆記】Ubuntu構建Alios-things開發環境

配置環境

系統環境爲Ubuntu 14.04.5 64-bit,官方推薦的系統環境爲Ubuntu 16.04 LTS (Xenial Xerus) 64-bit

$ sudo apt-get install -y python
$ sudo apt-get install -y gcc-multilib
$ sudo apt-get install -y libssl-dev libssl-dev:i386
$ sudo apt-get install -y libncurses5-dev libncurses5-dev:i386
$ sudo apt-get install -y libreadline-dev libreadline-dev:i386
$ sudo apt-get install -y python-pip
$ sudo apt-get install -y minicom

注意: python版本爲2.7

安裝aos-cube

首先, 用 python 包管理器 pip 來安裝 aos-cube 和相關的依賴包在全局環境,以便於後續使用 AliOS Things Studio 進行開發。

$sudo pip install --upgrade setuptools
$sudo pip install --upgrade wheel
$sudo pip install --upgrade aos-cube

這裏安裝可能會遇到安裝scons時安裝出現如下錯誤

Installing collected packages: scons, pyaes, ecdsa
Running setup.py install for scons
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: -c --help [cmd1 cmd2 ...]
   or: -c --help-commands
   or: -c cmd --help

error: option --single-version-externally-managed not recognized
Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/scons/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-v5mML1-record/install-record.txt --single-version-externally-managed --compile --user:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]

   or: -c --help [cmd1 cmd2 ...]

   or: -c --help-commands

   or: -c cmd --help



error: option --single-version-externally-managed not recognized

----------------------------------------
Cleaning up...
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/scons/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-v5mML1-record/install-record.txt --single-version-externally-managed --compile --user failed with error code 1 in /tmp/pip_build_root/scons
Storing debug log for failure in /home/yystart/.pip/pip.log

解決方法:
首先將pip升級到最新版本

$sudo pip install --upgrade pip

然後下載當前版本的scons文件,例如scons-3.0.1.tar.gz,然後將文件拷貝到某個目錄下,也可以放到python2.7/dist-packages/庫目錄下

$ tar xvf scons-3.0.1.tar.gz
$ mv scons-3.0.1 scons
$ cd scons
$ sudo python setup.py build
$ sudo python setup.py install

然後用下面的命令安裝

$sudo pip install --user -e scons  #scons爲源碼目錄
$sudo pip install --user -U aos-cube

AliOS-Things代碼下載及編譯

下載 AliOS Things 代碼從GitHub克隆:

$ git clone https://github.com/alibaba/AliOS-Things.git

或者從國內鏡像站點:

$ git clone https://gitee.com/alios-things/AliOS-Things.git    

接着進行編譯工作,這裏編譯Linux測試版本

cd AliOS-Things
aos make helloworld@linuxhost

編譯完成後,會在AliOS-Things目錄下生成/out/helloworld@linuxhost生成的固件就位於該目錄的binary下。

同理編譯esp8266固件爲:

$ aos make helloworld@esp8266

編譯esp32固件爲:

$ aos make helloworld@esp32devkitc

注意:
在安裝aos-cube後,在Ubuntu下運行aos命令,但是終端顯示無法找到該命令,這是由於aos命令所在的目錄沒有添加到環境變量中,隨意無法識別,只要添加環境變量就可以了,操作步驟如下

  • 找到aos命令所在的目錄
    在aos-cube目錄下載,例如我在安裝aos-cube是出現如下目錄信息

    Requirement already satisfied: aos-cube in ./.local/lib/python2.7/site-packages (0.2.50)
    Requirement already satisfied: pyserial in /usr/local/lib/python2.7/dist-packages (from aos-cube) (3.4)
    Requirement already satisfied: esptool in ./.local/lib/python2.7/site-packages (from aos-cube) (2.5.0)
    Requirement already satisfied: scons in ./workspace/alios-things/scons/engine (from aos-cube) (3.0.1)
    Requirement already satisfied: requests in /usr/lib/python2.7/dist-packages (from aos-cube) (2.2.1)
    Requirement already satisfied: pyaes in /usr/local/lib/python2.7/dist-packages (from esptool->aos-cube) (1.6.1)
    Requirement already satisfied: ecdsa in /usr/local/lib/python2.7/dist-packages (from esptool->aos-cube) (0.13)

所以直接使用find命令到~/.local中查找

$ find ~/.local -name aos

得到下面的結果
./.local/lib/python2.7/site-packages/aos
./.local/bin/aos
  • 設置環境變量
    將aos路徑添加到環境變量中

    ALIOS=xxx/.local/bin/ #xxx要填寫實際的路徑
    export PATH=$PATH:$ALIOS
    

固件下載

$ aos upload helloworld@esp8266

注意:當我們將8266模塊通過串口連接的Ubuntu系統時,會被系統是被爲/dev/ttyUSBx類型設備,我們在使用aos upload命令燒寫固件時,普通用戶是沒有操作串口權限的,所以需要將設備修改一下權限

$ sudo chmod 777 /dev/ttyUSBx

參考資料

alios-things wiki

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章