HiKey 960 - 2 - Android compile

前篇 : UART


按照這個 Android 提供的步驟 - Link
操作前要接好 USB TypeC 的線到 Host PC (e.g. Ubuntu)

Compiling userspace

  1. Download the Android source tree:
    repo init -u https://android.googlesource.com/platform/manifest -b master repo sync -j24
          第一個遇到問題是 :
               *** Please tell me who you are

           這時候可以設定

               git config --global user.email "你的 email account"
               git config --global user.name "你的名字"

           可以用
               git config --global -l

           看是否有設定進去

          (2) repo sync 要花一段時間...
               因為網路問題, 會出現 Exited sync due to fetch errors
               先改成 repo sync -j10 -f 試試
             

   2. Download and extract binaries into the Android source tree:
wget https://dl.google.com/dl/android/aosp/arm-hikey960-NOU-7ad3cccc.tgz tar xzf arm-hikey960-NOU-7ad3cccc.tgz ./extract-arm-hikey960.sh

3. Build:
. ./build/envsetup.sh lunch hikey960-userdebug make -j32
(1) m4 command not found
      Solution : sudo apt-get install m4

(2) /bin/bash: prebuilts/misc/linux-x86/bison/bison: No such file or directory
      Solution:
     
sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32z1-dev

(3) xmllint: command not found
      Solution : sudo apt-get  install libxml2-utils

(4) NB 當機
     Solution : jobs 改少些看看 : make -j10


Installing initial images

  1. Select fastboot mode turning ON switch 1 and 3 (for details, refer to the HiKey960 user guide).
  2. Power the board.
  3. Flash initial images:
    cd device/linaro/hikey/installer/hikey960 ./flash-all.sh
  4. Turn OFF switch 3 and power cycle the board.

(1) < waiting for any device >
https://github.com/96boards-hikey/tools-images-hikey960/ 

sudo apt install android-tools-adb android-tools-fastboot

另外要設定 udev rule file

首先先看 lsusb
Bus 002 Device 005: ID 18d1:d00d Google Inc.

其中 18d1 就是 USB vendor ID, d00d 就是 USB product ID

sudo vi /etc/udev/rules.d/51-android.rules

加入
SUBSYSTEM=="usb", ATTRS{idVendor}=="1801", ATTRS{idProduct}=="d00d", MODE="0666", GROUP="plugdev"

並設定檔案屬性

  sudo chmod a+rx /etc/udev/rules.d/51-android.rules


重新啟動 service

    sudo service udev restart

之後, 雖然在 fastboot mode 下 仍無法使用 adb , 但已經可以執行 ./flash-all.sh 用 fastboot 燒錄

(2) Turn off switch 3 - (Ext. boot) 後, 重開

   log 可以看到

[    0.000000] Linux version 4.9.41-gf48b3b5b324d (android-build@vpec4.mtv.corp.google.com) (gcc version 4.9.x 20150123 (prerelease) (GCC) ) #1 SMP PREEMPT Tue Aug 8 06:52:15 UTC 2017

   的確是剛 build 的


(3) adb devices 

    no permissions

     這是因為 adb 需要有 root 權限啟動 server, 比較方便作法是, 
    我們可以設 adb 為 root 身分執行 : 

      sudo chown root:root /usr/bin/adb
      sudo chmod a+x /usr/bin/adb
      sudo chmod a+s /usr/bin/adb
      adb kill-server

    這樣 再做 adb devices, 就會出現: 

      List of devices attached
      0123456789ABCDEF  device

(4) Android 版本

      這時就可以用 adb shell 進去, 或
        adb shell getprop 

     可以看到 ro.build.version.codename : [O] 

     表示不是 release 版 [REL] , 而是 Android O 的 preview 開發版本








    adb devices

留言

熱門文章