Note: Modular Kernel

Posted in android, Treble with tags , , on 2017 年 12 月 05 日 by Kun-Yi

官網看來需要把module driver 放到專屬的partitions (vendor/odm) 而且要可驗證的 並且ReadOnly, 而且Google 會強制你必須要用v3.18 (2017年以前出品的SOC 的最低要求), 而之後的SoC 則是不能低於v4.4 這應該是GMS/VTS 強制認證規範才是

然後Module file 不應該在/system 之下

/vendor or /odm 是被建議的Partition 裡面建立起 /lib/modules

然後透過early mount (VBoot v1 or VBoot v2)載入 /vendor and /odm

這幾個規範加起來就感覺到有很多裝置被判死刑

廣告

Note: work experience ref.

Posted in 未分類 on 2017 年 11 月 23 日 by Kun-Yi

 

Note: Wifi Country code in AOSP

Posted in android with tags , on 2017 年 11 月 15 日 by Kun-Yi

WIFI Country code follow ISO 3166 defined , see “WIFI_COUNTRY_CODE" in Settings.java
the Country will auto change when USIM insert with Telecom signaling, see “setWifiCountryCodeFromMcc" in MccTable.java

Tips:
MCC mean Mobile Country Code

Note: Tethering provision for Telecom operator config on Android

Posted in android with tags , on 2017 年 11 月 15 日 by Kun-Yi

use jgrep to search the below keywords, will got detail information, just need to change string resource, may to use override method like this

  • config_mobile_hotspot_provision_app
  • config_mobile_hotspot_provision_response
  • config_mobile_hotspot_provision_check_period
  • config_mobile_hotspot_provision_app_no_ui

And you need to check system property “net.tethering.noprovisioning" value

Note: build Opencv 3.3.0 with TBB/IPP/Qt 5.8 and Eigen on Windows 10/Win64

Posted in programming, QT5 with tags , on 2017 年 10 月 22 日 by Kun-Yi

modify  the below in CMakeCache.txt

//Build with Qt Backend support
WITH_QT:BOOL=ON

//Include Intel TBB support
WITH_TBB:BOOL=ON

//Include Eigen2/Eigen3 support
WITH_EIGEN:BOOL=ON

//The path to Eigen3/Eigen2 headers
EIGEN_INCLUDE_PATH:PATH=D:/gits/ExternalLib/src/eigen/eigen-eigen-5a0156e40feb

//The directory containing a CMake configuration file for Qt5Concurrent.
Qt5Concurrent_DIR:PATH=D:/Qt/Qt5.8.0/5.8/msvc2015_64/lib/cmake/Qt5Concurrent

//The directory containing a CMake configuration file for Qt5Core.
Qt5Core_DIR:PATH=D:/Qt/Qt5.8.0/5.8/msvc2015_64/lib/cmake/Qt5Core

//The directory containing a CMake configuration file for Qt5Gui.
Qt5Gui_DIR:PATH=D:/Qt/Qt5.8.0/5.8/msvc2015_64/lib/cmake/Qt5Gui

//The directory containing a CMake configuration file for Qt5OpenGL.
Qt5OpenGL_DIR:PATH=D:/Qt/Qt5.8.0/5.8/msvc2015_64/lib/cmake/Qt5OpenGL

//The directory containing a CMake configuration file for Qt5Test.
Qt5Test_DIR:PATH=D:/Qt/Qt5.8.0/5.8/msvc2015_64/lib/cmake/Qt5Test

//The directory containing a CMake configuration file for Qt5Widgets.
Qt5Widgets_DIR:PATH=D:/Qt/Qt5.8.0/5.8/msvc2015_64/lib/cmake/Qt5Widgets

//Path to a file.
TBB_ENV_INCLUDE:PATH=D:/gits/ExternalLib/tbb-2018u1/include

//Path to a library.
TBB_ENV_LIB:FILEPATH=D:/gits/ExternalLib/tbb-2018u1/lib/intel64/vc14/tbb.lib

//Path to a library.
TBB_ENV_LIB_DEBUG:FILEPATH=D:/gits/ExternalLib/tbb-2018u1/lib/intel64/vc14/tbb_debug.lib

//Path to a file.
TBB_VER_FILE:FILEPATH=D:/gits/ExternalLib/tbb-2018u1/include/tbb/tbb_stddef.h

then run cmake again, use Visual Studio to open Solutions

D:\gits\ExternalLib\opencv-3.3.0>cmake ..\src\opencv-3.3.0
-- Could NOT find PythonInterp (missing:  PYTHON_EXECUTABLE) (Required is at least version "3.4")
-- Could NOT find PythonInterp (missing:  PYTHON_EXECUTABLE) (Required is at least version "3.2")
-- Found TBB: D:/gits/ExternalLib/tbb-2018u1/lib/intel64/vc14/tbb.lib
-- found Intel IPP (ICV version): 2017.0.2 [2017.0.2]
-- at: D:/gits/ExternalLib/opencv-3.3.0/3rdparty/ippicv/ippicv_win
-- found Intel IPP IW binaries: 2017.0.2
-- at: D:/gits/ExternalLib/opencv-3.3.0/3rdparty/ippicv/ippicv_win/../ippiw_win/
-- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
-- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
-- A library with BLAS API not found. Please specify library location.
-- LAPACK requires BLAS
-- A library with LAPACK API not found. Please specify library location.
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE)
-- Could NOT find JNI (missing:  JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
-- Could NOT find Matlab (missing:  MATLAB_MEX_SCRIPT MATLAB_INCLUDE_DIRS MATLAB_ROOT_DIR MATLAB_LIBRARIES MATLAB_LIBRARY_DIRS MATLAB_MEXEXT MATLAB_ARCH MATLAB_BIN)
-- VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file
-- Excluding from source files list: D:/gits/ExternalLib/opencv-3.3.0/modules/imgproc/accum.neon.cpp
-- Torch importer has been enabled. To run the tests you have to install Torch ('th' executable should be available) and generate testdata using opencv_extra/testdata/dnn/generate_torch_models.py script.
--
-- General configuration for OpenCV 3.3.0 =====================================
--   Version control:               868747e
--
--   Platform:
--     Timestamp:                   2017-10-22T14:41:14Z
--     Host:                        Windows 10.0.15063 AMD64
--     CMake:                       3.6.3
--     CMake generator:             Visual Studio 14 2015 Win64
--     CMake build tool:            C:/Program Files (x86)/MSBuild/14.0/bin/MSBuild.exe
--     MSVC:                        1900
--
--   CPU/HW features:
--     Baseline:                    SSE SSE2 SSE3
--       requested:                 SSE3
--     Dispatched code generation:  SSE4_1 SSE4_2 FP16 AVX AVX2
--       requested:                 SSE4_1 SSE4_2 AVX FP16 AVX2
--       SSE4_1 (2 files):          + SSSE3 SSE4_1
--       SSE4_2 (1 files):          + SSSE3 SSE4_1 POPCNT SSE4_2
--       FP16 (1 files):            + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVX
--       AVX (5 files):             + SSSE3 SSE4_1 POPCNT SSE4_2 AVX
--       AVX2 (7 files):            + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2
--
--   C/C++:
--     Built as dynamic libs?:      YES
--     C++11:                       YES
--     C++ Compiler:                C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe  (ver 19.0.24215.1)
--     C++ flags (Release):         /DWIN32 /D_WINDOWS /W4 /GR  /EHa  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi      /wd4251 /wd4324 /wd4275 /wd4589 /MP8  /MD /O2 /Ob2 /DNDEBUG  /Zi
--     C++ flags (Debug):           /DWIN32 /D_WINDOWS /W4 /GR  /EHa  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi      /wd4251 /wd4324 /wd4275 /wd4589 /MP8  /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
--     C Compiler:                  C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
--     C flags (Release):           /DWIN32 /D_WINDOWS /W3  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi        /MP8  /MD /O2 /Ob2 /DNDEBUG  /Zi
--     C flags (Debug):             /DWIN32 /D_WINDOWS /W3  /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi        /MP8  /D_DEBUG /MDd /Zi /Ob0 /Od /RTC1
--     Linker flags (Release):      /machine:x64  /INCREMENTAL:NO  /debug
--     Linker flags (Debug):        /machine:x64  /debug /INCREMENTAL
--     ccache:                      NO
--     Precompiled headers:         YES
--     Extra dependencies:          comctl32 gdi32 ole32 setupapi ws2_32 Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Test Qt5::Concurrent Qt5::OpenGL vfw32 glu32 opengl32 D:/gits/ExternalLib/tbb-2018u1/lib/intel64/vc14/tbb.lib
--     3rdparty dependencies:
--
--   OpenCV modules:
--     To be built:                 core flann imgproc ml objdetect photo video dnn imgcodecs shape videoio highgui superres ts features2d calib3d stitching videostab
--     Disabled:                    world
--     Disabled by dependency:      -
--     Unavailable:                 cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python2 python3 viz
--
--   Windows RT support:            NO
--
--   GUI:
--     QT 5.x:                      YES (ver 5.8.0)
--     QT OpenGL support:           YES (Qt5::OpenGL 5.8.0)
--     OpenGL support:              YES (glu32 opengl32)
--     VTK support:                 NO
--
--   Media I/O:
--     ZLib:                        build (ver 1.2.8)
--     JPEG:                        build (ver 90)
--     WEBP:                        build (ver encoder: 0x020e)
--     PNG:                         build (ver 1.6.24)
--     TIFF:                        build (ver 42 - 4.0.2)
--     JPEG 2000:                   build (ver 1.900.1)
--     OpenEXR:                     build (ver 1.7.1)
--     GDAL:                        NO
--     GDCM:                        NO
--
--   Video I/O:
--     Video for Windows:           YES
--     DC1394 1.x:                  NO
--     DC1394 2.x:                  NO
--     FFMPEG:                      YES (prebuilt binaries)
--       avcodec:                   YES (ver 57.89.100)
--       avformat:                  YES (ver 57.71.100)
--       avutil:                    YES (ver 55.58.100)
--       swscale:                   YES (ver 4.6.100)
--       avresample:                YES (ver 3.5.0)
--     GStreamer:                   NO
--     OpenNI:                      NO
--     OpenNI PrimeSensor Modules:  NO
--     OpenNI2:                     NO
--     PvAPI:                       NO
--     GigEVisionSDK:               NO
--     DirectShow:                  YES
--     Media Foundation:            NO
--     XIMEA:                       NO
--     Intel PerC:                  NO
--
--   Parallel framework:            TBB (ver 2018.0 interface 10001)
--
--   Trace:                         YES (with Intel ITT)
--
--   Other third-party libraries:
--     Use Intel IPP:               2017.0.2 [2017.0.2]
--                at:               D:/gits/ExternalLib/opencv-3.3.0/3rdparty/ippicv/ippicv_win
--     Use Intel IPP IW:            prebuilt binaries (2017.0.2)
--     Use Intel IPP Async:         NO
--     Use Lapack:                  NO
--     Use Eigen:                   YES (ver 3.3.4)
--     Use Cuda:                    NO
--     Use OpenCL:                  YES
--     Use OpenVX:                  NO
--     Use custom HAL:              NO
--
--   OpenCL:                        
--     Include path:                D:/gits/ExternalLib/src/opencv-3.3.0/3rdparty/include/opencl/1.2
--     Use AMDFFT:                  NO
--     Use AMDBLAS:                 NO
--
--   Python 2:
--     Interpreter:                 C:/Python27/python.exe (ver 2.7.14)
--
--   Python 3:
--     Interpreter:                 NO
--
--   Python (for build):            C:/Python27/python.exe
--
--   Java:
--     ant:                         NO
--     JNI:                         NO
--     Java wrappers:               NO
--     Java tests:                  NO
--
--   Matlab:                        Matlab not found or implicitly disabled
--
--   Documentation:
--     Doxygen:                     NO
--
--   Tests and samples:
--     Tests:                       YES
--     Performance tests:           YES
--     C/C++ Examples:              YES
--
--   Install path:                  D:/gits/ExternalLib/opencv-3.3.0/install
--
--   cvconfig.h is in:              D:/gits/ExternalLib/opencv-3.3.0
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: D:/gits/ExternalLib/opencv-3.3.0

 

Note: XBL for Qualcomm

Posted in ARM, DragonBoard, Qualcomm with tags , on 2017 年 10 月 16 日 by Kun-Yi

Qualcomm 的平台從原本的 自家的SBL (Second Boot Loader) 改成走 UEFI 的 XBL (eXtensible Boot loader)

而且Toolchain 從以前的ARM DS-5 改成自家的Snapdragon LLVM, 最新的LLVM 是4.0.2(Oct. 2017), 但是平台上用的 XBL toolchain 可能是舊的

要看ReleaseNote 裡面用的版本, 因為他基於llvm.org 的版本不同, 跟改進的週期因素, 常常Compiler optional 關鍵字會起變化 需要特別的版本才能正確的re-build XBL (最近遇到必須是 SD LLVM 3.5.x, 但是官方支援管道, 極有可能會遇到不熟的跟你扯半天也沒正確結果)

今天找了一下 https://github.com/sudosurootdev/prebuilts_clang_linux-x86_host_msm-3.5/tree/pointers 這有一個 For Android NDK 用的版本 但是可以順利Rebuild XBL

 

 

Note: Kontron SMARC-sAMX6i

Posted in ARM, i.MX6 with tags on 2017 年 10 月 11 日 by Kun-Yi

from https://lists.yoctoproject.org/pipermail/meta-freescale/2014-December/011841.html download device tree files

The board always boot from ECSPI4, use W25Q16DW (16MBits/2MBytes)
ECSPI4 memory space layout

Partition 0, from 0 ~ 0xbffff (768KB), for bootloader
Partition 1, from 0xc0000 ~ 0xcffff (64KB), for U-Boot Environment use 32KB
Partition 2, others space, for user

LCD Brightness control through the below pins

MX6QDL_PAD_SD1_DAT0__GPIO1_IO16, Backlight Enabled
MX6QDL_PAD_SD1_DAT1__GPIO1_IO17, LCD Power Enabled
MX6QDL_PAD_SD1_CMD__PWM4_OUT, Brightness PWM ouput

I2C ports

I2C1, for SMARC General Purpose

MX6QDL_PAD_CSI0_DAT8__I2C1_SDA
MX6QDL_PAD_CSI0_DAT9__I2C1_SCL

I2C2, for HDMI

MX6QDL_PAD_KEY_COL3__I2C2_SCL
MX6QDL_PAD_KEY_ROW3__I2C2_SDA

I2C3, for Power Managmenet
I2C-GPIO0, for System management (PMIC:PFUZE100 on the bus)

MX6QDL_PAD_ENET_TXD0__GPIO1_IO30, SCL   MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28, SDA

I2C-GPIO1, for SMARC CAMERA

MX6QDL_PAD_GPIO_6__GPIO1_IO06, SCL
MX6QDL_PAD_KEY_COL2__GPIO4_IO10, SDA

I2C-GPIO2, for SMARC LCD

MX6QDL_PAD_SD1_DAT2__GPIO1_IO19, SCL
MX6QDL_PAD_SD1_DAT3__GPIO1_IO21, SDA