MTP8926 Linux Android™ Software User Manual: Submit Technical Questions at
MTP8926 Linux Android™ Software User Manual: Submit Technical Questions at
MTP8926 Linux Android™ Software User Manual: Submit Technical Questions at
User Manual
80-ND928-7 A
February 12, 2014
Restricted Distribution: Not to be distributed to anyone who is not an employee of either Qualcomm or its
subsidiaries without the express approval of Qualcomm’s Configuration Management.
Not to be used, copied, reproduced, or modified in whole or in part, nor its contents revealed in any manner to others
without the express written permission of Qualcomm Technologies, Inc.
Qualcomm reserves the right to make changes to the product(s) or information contained herein without notice. No
liability is assumed for any damages arising directly or indirectly by their use or application. The information
provided in this document is provided on an “as is” basis.
This document contains confidential and proprietary information and must be shredded when discarded.
Qualcomm is a trademark of QUALCOMM Incorporated, registered in the United States and other countries. All
QUALCOMM Incorporated trademarks are used with permission. Other product and brand names may be
trademarks or registered trademarks of their respective owners.
This technical data may be subject to U.S. and international export, re-export, or transfer (“export”) laws. Diversion
contrary to U.S. and international law is strictly prohibited.
1 Introduction...................................................................................................... 5
1.1 Purpose.......................................................................................................................... 5
1.2 Scope............................................................................................................................. 5
1.3 Conventions .................................................................................................................. 5
1.4 References..................................................................................................................... 5
1.5 Technical assistance ...................................................................................................... 6
1.6 Acronyms ...................................................................................................................... 6
Figures
Figure 3-1 Decoding the software release build ID ................................................................................... 14
Figure 3-2 Combined software release packages ....................................................................................... 16
Tables
Table 1-1 Reference documents and standards ............................................................................................ 5
Table 2-1 Required hardware, software, and other equipment .................................................................... 7
Table 3-1 Component release build properties .......................................................................................... 17
Table 4-1 Equipment and software required for programming firmware images...................................... 25
2 1.1 Purpose
3 This document is designed to provide users with the necessary information to obtain, build, and
4 program software applicable to the MSM8926 Linux Android™ Product Line (PL) as-is into a
5 reference platform.
6 1.2 Scope
7 This document provides software users with instructions on how to set up a development
8 environment, obtain the software, and install it into the development environment. It also covers
9 software operation, such as instructions for rebuilding the software as-is and programming the
10 resultant build products (firmware) into a reference platform. The programming information
11 provides the information needed to program and reprogram the firmware devices of the system. It
12 describes the firmware devices and the equipment, software, and procedures needed to erase
13 firmware devices, load software into the firmware devices, and verify the load process.
14 1.3 Conventions
15 Function declarations, function names, type declarations, and code samples appear in a different
16 font, e.g., #include.
17 Commands to be entered appear in a different font, e.g., copy a:*.* b:.
18 Button and key names appear in bold font, e.g., click Save or press Enter.
19 1.4 References
20 Reference documents are listed in Table 1-1. Reference documents that are no longer applicable
21 are deleted from this table; therefore, reference numbers may not be sequential.
Ref. Document
Qualcomm Technologies
Q1 Application Note: Software Glossary for Customers CL93-V3077-1
Q2 USB Host Driver for Windows 2000/Windows XP User Guide 80-V4609-1
Q3 USB Host Driver Installation Instructions for Microsoft Windows 80-VP092-1
Q4 Presentation: Introduction to Qualcomm ChipCenter™ and Qualcomm 80-NC193-1
ChipCode™
Q5 Qualcomm ChipCode™ and Qualcomm ChipCenter™ User Guide 80-NC193-2
Ref. Document
Resources
R1 Android™ Open Source Project Page http://source.android.com/
R2 Android™ Developer Resources http://developer.android.com/index.html
R3 Android™ Source Download and System Setup http://source.android.com/source/
building.html
R4 Code Aurora Forum https://www.codeaurora.org/
R5 Using Repo and Git http://source.android.com/source/
developing.html
R6 LYA Releases (Qualcomm Docs and Downloads) https://downloads.cdmatech.com/qdc/
R7 Using Python on Windows http://docs.python.org/2/using/
windows.html
6 1.6 Acronyms
7 For definitions of terms and abbreviations, see [Q1].
20 sudo vi /etc/apt/sources.list
21
22 ii Edit the file to enable the universe and multiverse sources and disable the Ubuntu
23 installation CD source.
24 iii From the command line, perform the package list update and package upgrades.
25
31 sudo apt-get install git-core gnupg flex bison gperf build-essential zip
32 curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev
33 ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libxml-
34 simple-perl libc6-dev libgl1-mesa-dev mingw32 tofrodos python-markdown
35 libxml2-utils xsltproc
36
1 4. IMPORTANT – Make Bash the default shell (Android build scripts contain Bash shell
2 dependencies that require the system default shell /bin/sh to invoke bash) using one of the
3 following options:
4 Reconfigure the package.
5 i Use the command:
6
9 ii Answer no.
10 Manually change the symlink /bin/sh→dash to /bin/sh→bash
11 i Use the command:
12
13 sudo rm /bin/sh
14
18 NOTE: See the Ubuntu Wiki page at https://wiki.ubuntu.com/DashAsBinSh for more information.
27 System->Administration->Samba
28 preferences->server settings:
29 vmgroup, security=user authentication
30 encrypt pw=yes, guest accnt=no guest accnt
31 add share directory=/, share name=root, description=root directory
16 chmod +x jdk-<xxx>.bin
17
18 4. Execute the installation script in the directory where you want the jdk package installed (this
19 creates a directory under the directory where you executed the installation script).
20
21 mkdir -p /opt/jdk6
22 cd /opt/jdk6
23 ./jdk-<xxx>.bin
24
25 5. Override the use of any other installed jdk by adding <jdk_installdir>/ bin to the front of your
26 path.
27
28 export PATH=/opt/jdk6/jdk<xxx>/bin:$PATH
29 NOTE: Include the above path setting in your .bash_profile so it is set automatically every time you
30 log in.
16 4. Make sure that the installed directory location for repo is included in your PATH.
17
18 export PATH=~/bin:$PATH
19
20 5. Try running repo—help to verify installation; you should see a message similar to the
21 following:
22
23 $ repo—help
24 usage: repo COMMAND [ARGS]
25 repo is not yet installed. Use “repo init” to install it here.
26 The most commonly used repo commands are:
27 init Install repo in the current working directory
28 help Display detailed help on a command
29
30 6. For access to the full online help, install repo (repo init).
2 NOTE: Between it asks for jdk. Download jdk version 6 with .bin from http://www.oracle.com/
3 technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html;
4 the filename is jdk-6u45-linux-x64.bin.
7 git –version
8
9 a. If necessary, obtain the new git version at http://git-scm.com/downloads and clone the git
10 clone at https://github.com/git/git.
11 17. Check out the latest version, Ver v1.8.5, by running:
12
18 NOTE: The install file is located in the git directory and provides the installation instructions.
39 NOTE: j4 is how many CPUs are in use; this speeds up the process.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15+
M
Ta
Pl
R
Fl con
R co
Ai nfig
Im
C
SW ore
SM
AM m
od
as
at
ri
ag
rg
co fig
fo
nt
h ig
e
et
re
ID
er
ba
/p
le
fa
ro
se
as
f
ce
du
e
ID
ct
20
1 Character positions 11, 12 and 13, and 14 in the build ID can take the following values:
2 Character position 11 – Air interface
3 N
4 A – UMTS
5 B – Multimode
6 C – C2K only
7 Character positions 12 and 13 – Code base
8 AZ – L4
9 LY – Linux Android
10 Character position 14 – Image core ID
11 A – Apps (proprietary HLOS)
12 N – Non-HLOS umbrella package, integrated package containing each of the following:
13 – M – MPSS
14 – B – Boot images
15 – L – Low-Power Audio Subsystem (LPASS) and Sensors (ADSP)
16 – W – Wireless Connectivity Networking Subsystem (WCNSS)
17 – R – Resource Power Manager (RPM)
18 NOTE: For some recent builds, the Linux Android HLOS/APSS component ID format has changed from
19 that described above to the format LNX.LA.Branch-Version-Chipset, where Branch is the
20 Android branch expressed as a variable number of digits grouped by periods, Version is the
21 APSS build ID version expressed as a variable number of digits, and Chipset is “8x26” followed
22 by an optional period that, if present, is followed by a variable number of digits; e.g., the APSS
23 build ID M8926AAAAANLYD10130 might become LNX.LA.3.5-08110-8x26.0. The spin
24 number (preceded by a hyphen) may be appended to the APSS component ID specified in the
25 about.html file on ChipCode, e.g., LNX.LA.3.5-08110-8x26.0-1.
MPSS (AZM)
ADSP (AZL)
WCNSS (AZW)
RPM (AZR)
SDI (AZI)
1 Table 3-1 provides the component release build properties. Make sure the build PC has the
2 correct versions for each tool.
11 NOTE: If the person opening the case does not already know who within their company has the ability to
12 download the software, the purpose of the Salesforce case is to be connected with their approved
13 downloader. Keep in mind that access is not granted to everyone that uses the MTP; your
14 company may limit the number of persons given permission to become approved downloaders.
26 NOTE: If you are installing Git on Windows for the first time, see the following two pages:
27 https://chipcode.qti.qualcomm.com/projects/help/wiki/Installing_Git_on_Windows
28 https://chipcode.qti.qualcomm.com/projects/help/wiki/Line_Endings
29 For MSM8926 LA builds, you may see the following distributions:
30 qualcomm_msm8926-la-1-0-1_amss_device – For releases prior to ES 5.0 (ES 4.0 and older)
31 qualcomm_msm8926-la-1-0-1_amss_device _fc – For ES 5.0, FC release, and future releases
32 To make the build process proceed as smoothly as possible, create an empty top-level directory
33 on the Windows build PC. Inside this directory, use Git to clone the desired release according to
34 the procedure described here:
35 https://chipcode.qti.qualcomm.com/projects/help/wiki/Cloning_Code_from_a_Repository
1 Without specifying the optional destination directory, the following command downloads the
2 release into a newly created subdirectory off the current working directory; here and in what
3 follows, this subdirectory is referred to as <target_root>. When the release has been cloned, it is
4 good policy to check that what has been downloaded inside <target_root> mirrors the top-level
5 directory structure displayed on the release’s ChipCode page.
6
10 NOTE: It is very important to ensure that the contents.xml file and the various component directories are
11 located in <target_root> as indicated in the screenshot above.
1 If you have questions about ChipCode or run into issues cloning the release, select the question
2 mark (?) icon at the top right to access the help index.
3 If you need further support, see Section 1.5 to submit a case. When selecting the Case Record
4 Type, select “Admin Question.”
13 NOTE: The spin number potentially specified in the ChipCode version of the APSS component ID
14 may not be included in the matching APSS component ID listed on CAF.
24 repo sync
25
30 cp -r <target_root>\LINUX\android\vendor\qcom\proprietary \
31 <android_root>/vendor/qcom/
32 chmod -R 755 vendor/qcom/proprietary
33 NOTE: The copy command above is meant to be suggestive of the operation(s) required to copy the
34 specified directory from the Windows build machine to the specified location on the Linux
35 build machine. The actual operation(s) required will vary depending on your setup.
6 cd <android_root>
7
8 2. Enter the following command to configure the build environment shell settings.
9
10 source build/envsetup.sh
11 NOTE: You must use the source command so the environment settings are defined in the current
12 shell.
13 3. Enter the choosecombo command to select the build configuration, or enter with
14 noparameters to see an interactive menu for making selections.
15
18 4. Run make to start the build (shown below with –j4 option to run parallel builds for faster
19 build times on a multicore build machine).
20
21 make -j4
22 NOTE: If you need to restart the build process, follow steps 1 to 3 above and replace step 4 with:
23 make clobber
14 NOTE: The following steps are designed to minimize the amount of data transferred from the Linux build
15 machine to the Windows build machine.
16 2. Create, e.g., using Windows Explorer or the Windows command prompt, the following
17 relative paths rooted in the <target_root>\LINUX\android\out\target\product\msm8226
18 directory on your Windows machine:
19 obj\EMMC_BOOTLOADER_OBJ
20 obj\KERNEL_OBJ
21 3. Inside the <android_root>/out/target/product/msm8226/obj/ directory on your Linux
22 machine, there are two subdirectories, EMMC_BOOTLOADER_OBJ and KERNEL_OBJ.
23 Recursively copy, e.g., using Windows Explorer or the Windows command prompt, the
24 directory build-msm8226 (off EMMC_BOOTLOADER_OBJ) and the vmlinux file (off
25 KERNEL_OBJ) into the two relative paths above (on your Windows machine) as follows:
26 EMMC_BOOTLOADER_OBJ/build-msm8226 into obj\EMMC_BOOTLOADER_OBJ
27 KERNEL_OBJ/vmlinux into obj\KERNEL_OBJ
28 4. Confirm that the directory <android_root>\out\target\product\msm8226\ on your Windows
29 machine has the following relative paths rooted within it:
30 obj\EMMC_BOOTLOADER_OBJ\build-msm8226
31 obj\KERNEL_OBJ\vmlinux
4 cd <target_root>\common\build
5
8 python update_common_info.py—hlos
9
10 3. Copious amounts of text output will be produced in the command prompt window. After
11 approximately 1 min, a message similar to the following is printed out and control is handed
12 back to the command prompt.
13
16
6 Table 4-1 Equipment and software required for programming firmware images
Item description Version Source/vendor Purpose
1. Qualcomm QPST 2.7.394 or QTI Programming firmware
later images using QPST
2. Android SDK tools r10 or higher Android Open Windows host USB driver
(Host USB drivers, adb, Fastboot) ADB 1.0.29 or Source Project for ADB and Fastboot;
later ADB and Fastboot tools
for Windows
3. Qualcomm USB Network Driver 1.0.74 or later QTI Windows host USB drivers
Combo for QTI composite devices
8 4.2.1.2 Installing Android SDK for ADB, Fastboot, and USB driver for Windows
9 To install the Android SDK platform and USB driver components on a Windows machine:
10 1. Go to http://developer.android.com/sdk/win-usb.html.
11 2. Follow the instructions for installing the SDK and USB driver.
12 3. Right-click My Computer and select Properties→Advanced→Environment Variables,
13 and set the path to include the c:\android-sdk-windows\tools directory.
14 4. The Android USB driver for ADB and Fastboot needs to have the QTI SURF VID/PID added
15 in order to support connection to the SURF. Edit the file android-sdk-windows\usb_driver\
16 android_winusb.inf to add the QTI VID/PID lines to each section.
17
18 android_winusb.inf
19 [Google.NTx86]
20 ;Qualcomm SURF/FFA
21 %SingleAdbInterface% = USB_Install, USB\VID_05C6&PID_9025
22 %CompositeAdbInterface% = USB_Install, USB\VID_05C6&PID_9025&MI_01
23 %SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_D00D
24 [Google.NTamd64]
25 ;Qualcomm SURF/FFA
26 %SingleAdbInterface% = USB_Install, USB\VID_05C6&PID_9025
27 %CompositeAdbInterface% = USB_Install, USB\VID_05C6&PID_9025&MI_01
28 %SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_D00D
29
30 In addition, make sure that there are matching entries under the [Strings] section.
31
32 [Strings]
33 SingleAdbInterface = “Android ADB Interface”
34 CompositeAdbInterface = “Android Composite ADB Interface”
35 SingleBootLoaderInterface = “Android Bootloader Interface”
36
37 5. The ADB client (adb.exe) supports a built-in list of recognized USB VID/PID devices. To
38 add the SURF or another device to the list of recognized devices not included in the built-in
39 support list, create a %USERPROFILE%\.android directory if it does not exist.
40 6. Navigate to the %USERPROFILE%\.android directory.
4 NOTE: Do not run android update adb or it will reset the contents of this file and overwrite the line
5 just added.
13 8. Obtain the latest version of the Qualcomm Composite USB driver from Documents and
14 Downloads (to also include network interface support, use the Qualcomm Composite USB
15 Network Combo driver).
16 Android debugging is enabled/disabled in user space with composition 9025/9026 respectively.
17
18 qcmdm.inf
19 [Models]
20 %QUALCOMM90252% = Modem2, USB\VID_05C6&PID_9025&MI_02
21 %QUALCOMM90261% = Modem2, USB\VID_05C6&PID_9026&MI_01
22
23 [Models.NTamd64]
24 %QUALCOMM90252% = Modem2, USB\VID_05C6&PID_9025&MI_02
25 %QUALCOMM90261% = Modem2, USB\VID_05C6&PID_9026&MI_01
26 [Models.NTia64]
27 %QUALCOMM90252% = Modem2, USB\VID_05C6&PID_9025&MI_02
28 %QUALCOMM90261% = Modem2, USB\VID_05C6&PID_9026&MI_01
29 [Strings]
30 QUALCOMM90252 = “Qualcomm Android Modem 9025”
31 QUALCOMM90261 = “Qualcomm HS-USB Android Modem 9026”
32
33 qcser.inf
34 [QcomSerialPort]
35 %QcomDevice90250% = QportInstall00, USB\VID_05C6&PID_9025&MI_00
36 %QcomDevice90253% = QportInstall00, USB\VID_05C6&PID_9025&MI_03
37 %QcomDevice90260% = QportInstall00, USB\VID_05C6&PID_9026&MI_00
38 %QcomDevice90262% = QportInstall00, USB\VID_05C6&PID_9026&MI_02
39
40 [QcomSerialPort.NTia64]
41 %QcomDevice90250% = QportInstall00, USB\VID_05C6&PID_9025&MI_00
42 %QcomDevice90253% = QportInstall00, USB\VID_05C6&PID_9025&MI_03
43 %QcomDevice90260% = QportInstall00, USB\VID_05C6&PID_9026&MI_00
17 [QCOM.NTia64]
18 qcwwan.DeviceDesc90254 = qcwwan.ndi, USB\VID_05C6&PID_9025&MI_04
19 qcwwan.DeviceDesc90263 = qcwwan.ndi, USB\VID_05C6&PID_9026&MI_03
20 [QCOM.NTamd64]
21 qcwwan.DeviceDesc90254 = qcwwan.ndi, USB\VID_05C6&PID_9025&MI_04
22 qcwwan.DeviceDesc90263 = qcwwan.ndi, USB\VID_05C6&PID_9026&MI_03
23 [Strings]
24 qcwwan.DeviceDesc90254 = “Qualcomm Wireless HS-USB Ethernet Adapter
25 9025”
26 qcwwan.DeviceDesc90263 = “Qualcomm Wireless HS-USB Ethernet Adapter
27 9026”
35 fastboot devices
36
6 cd <root>/LINUX/device/out/host/linux-x86/bin
7 3. Enter the following command:
8
14 cd <root>/LINUX/device/out/target/product/surf/obj/
15 APPS/AppName_intermediates/
16
19 cp package.apk AppName.apk
20