2015年11月18日 星期三

Build Android on Nexus5


整理一些Build Android 所遇到的問題

Reference:




  • Howto Build Android KitKat (4.4) for the Google Nexus 5

  • Android Download and Building

  • Android 源码编译及常见错误及解决方法





    1. Make 時遇到的問題
    • Import includes file: out/host/linux-x86/obj/EXECUTABLES/validatekeymaps_intermediates/import_includes
    • host C++: libinput <= frameworks/native/libs/input/Input.cpp
    • host C++: libinput <= frameworks/native/libs/input/InputDevice.cpp
    • /home/lost/android/android4.4.2/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/../lib/gcc/i686-linux/4.6.x-google/../../../../i686-linux/bin/as/home/lost/android/android4.4.2/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/../lib/gcc/i686-linux/4.6.x-google/../../../../i686-linux/bin/as: : error while loading shared librarieserror while loading shared libraries: : libz.so.1libz.so.1: : cannot open shared object filecannot open shared object file: : No such file or directoryNo such file or directory

    • make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libinput_intermediates/Input.o] error 1 
    • make: *** 正在等待未完成的任务....
    • make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libinput_intermediates/InputDevice.o] error 1
    Answer:
    • root@lost:/usr/bin# apt-get install apt-file
    • root@lost:/usr/bin# apt-file update


    • root@lost:/usr/bin# apt-file search libz.so.1
    • lib32z1: /usr/lib32/libz.so.1
    • lib32z1: /usr/lib32/libz.so.1.2.3.4
    • zlib1g: /lib/x86_64-linux-gnu/libz.so.1
    • zlib1g: /lib/x86_64-linux-gnu/libz.so.1.2.3.4
    • zlib1g-dbg: /usr/lib/debug/lib/libz.so.1.2.3.4
    • zlib1g-dbg: /usr/lib/debug/lib/x86_64-linux-gnu/libz.so.1.2.3.4
    • zlib1g-dbg: /usr/lib/debug/usr/lib32/libz.so.1.2.3.4
    • root@lost:/usr/bin# apt-get install lib32z1

    2.
    • /bin/bash: flex: command not found
    • out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp: In function ‘int yyparse()’:
    • out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp:1827: warning: deprecated conversion from string constant to ‘char*’
    • out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp:1970: warning: deprecated conversion from string constant to ‘char*’
    • Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l
    • /bin/bash: flex: command not found
    • make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127
    Answer: 
    • sudo apt-get install flex

    將Android燒錄至SD Card
    可能有用:PandaBoard燒寫指
    • 步驟:
    1. 首先需要知道SD Card的名字
    •     $ sudo fdisk -ls
    •     如果是8G的 SD card  Disk /dev/sde: 8011 MByte, 8011120640 Byte ,名字就是 /dev/sde
    1. 將SD Card做分割及格式化,先去下載 omap3-mkcard.sh 並存在Downloads資料夾
    •     $ chmod 777 omap3-mkcard.sh
    •     $ sudo ./omap3-mkcard.sh /dev/sd<x>
    • fdisk -c=dos -u=cylinders <drive>

    Build 佐臻 touch pannel
    • 步驟:
    1. 修改Linux Kernel Source
    1. 編輯drivers/hid/hid-ids.h
    1. 尋找下面的程式碼
    • #define USB_DEVICE_ID_ILITEK_MULTITOUCH 0x0001
    • 修改成
    • #define USB_DEVICE_ID_ILITEK_MULTITOUCH 0x001c
    1. config kernel,選取CONFIG_HID_MULTITOUCH,重新Build kernel
    • make -j$(egrep '^processor' /proc/cpuinfo | wc -l) CONFIG_HID_MULTITOUCH=y ARCH=arm uImage 2>&1 |tee ${MYDROID}/logs/kernel_make.out

    沒有留言:

    張貼留言