Android 6.0 marshmallow on DragonBoard 410c

Hi Randy,

I assume by your post that you ran the script after the successful sync rather than the first attempt, is that correct?

Hi Jake,
I started over and wiped the directory. Reading the instructions in Section 2.2 and item #3:

The script DB410c_build.sh inside the android_board_support_package_vla.br_XXXXX.zip file automatically downloads
the right source files and uses a proprietary tar file in the same directory for the build. One can directly skip to step 5 for clone and build. Steps 1-4 are for informational purposes only.

So this time, I just started at Step #5 and ran the script: BD410c_build.sh. starting on Nov 1st evening. It synced up >10GB of data after letting it run overnight. It eventually ran into the same type of error:

Applying patches …
applying patches on ./bootable/bootloader/lk …
./DB410c_build.sh: line 44: cd: /home/osboxes/dragonboard/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4/APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2/./bootable/bootloader/lk: No such file or directory
./bootable/bootloader/lk does not exist in BUILDROOT:/home/osboxes/dragonboard/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4/APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2

The only place I see the ./bootable/bootloader/lk directory is here:
./APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2/.repo/projects/bootable

Thanks, Randy

Hi, Johnny Lee,
I’m using EC20 on db410 android, but I can’t recognize /dev/ttyUSB* after rebuilding kernel. I added PID and so on. How did you build kernel? I also have a problem when I build reference-ril for include path is error, my arch is arm64 but in reference-ril, include path turns to arm, how can I fix it?

Many thanks, Micah

Hi Micah,

Sorry I’m not sure why you cannot recognize the USB port. Quectel’s document is very clearly and detailed, if you follow theirs document, I think it will be fine about the source code.
I will build the boot image after I change the kernel.
You could try “make -j8 bootimg” and then re-flash the boot image again.
I’m not understand what error you meet.
Could you provide the error log or what code change you consider that may need to modify for the references?

Thanks.

Best regards,
Johnny

Hi Johnny,

Thank you for your reply! It’s my first time to touch android kernel compile, so I don’t know how to make changes(according to Quectel’s document) into boot.img, etc. At first, I just go into the kernel directory
, and make menuconifg and add what is needed, then I exec make -j8 bootimage, but make failed for it’s not allowed with a .config in the kernel Dir. THEN, I edited [root]/device/qcom/msm8916_64/AndroidBoard.mk, change KERNEL_DEFCONFIG to my own defconfig(Compile Linux Kernel). make -j8 bootimage is OK, but still can’t recognize ttyUSB. HOW DID YOU MAKE BOOT.IMG? which files do you edit?

I have ANOTHER problem, It ran failed when I compile reference-ril. I think it’s the include path error, LOCAL_C_INCLUDES ought to be [root]/bionic/libc/kernel/uapi bionic/libc/kernel/uapi/asm-arm64, but it’s […]asm-arm. I manually changed the path in reference-ril/Android.mk, but there’s another Error unknown type name '_uint128_t’. HOW DID you compile reference-ril? (I’m using linux_android_board_support_package_vla.br.1.2.4-01810-8x16.0-3 from Qualcomm

make menuconfig error

LOCAL_CINCLUDES error

__uint128_t error

Any help would be appreciated!!!

Best regards,
Micah

Hi Micah,

I think you can try to execute
make kernelconfig
And change the needed modification, and then you can build boot image directly.
No need to edit AndroidBoard.mk.
I think the reason is that you may not modify the config successfully.

For compile reference-ril, please try to modify Android.mk from
LOCAL_C_INCLUDES := $(KERNEL_HEADERS)
to
LOCAL_C_INCLUDE :=

Also, I think you can use the latest BSP for Android M, which BSP is linux_android_board_support_package_vla.br_.1.2.7-01010-8x16.0-4

Thanks.

Best regards,
Johnny

Hi Johnny,

Thank you for your advice!! I tried as you said, and ttyUSB can be detected(I found ADB usb will influence ttyUSB detection, while ADB wifi is OK). Reference-ril also can be compiled, but when I exec adb logcat -b radioThere’s the log “dlopen failed: dlopen failed: “/system/lib/libreference-ril.so” is 32-bit instead of 64-bit”. By the way, this android source originally has reference-ril, do you delete them before fully compile? Or just compile with it, and then replace them and compile again?

Another question, SELinux need to be disabled at kernel config?

I considered about 1.2.7-01010-8×16.0-4, but EC20 driver may not support android6.0. Do you use this version?

Thanks.

Best regards,
Micah

Hi Micah,

I think you may need to change the following code in init.rc.


-service ril-daemon /system/bin/rild -l /system/lib/libreference-ril.so
+service ril-daemon /system/bin/rild -l /system/lib64/libreference-ril.so

By the way, this android source originally has reference-ril, do you delete them before fully compile? Or just compile with it, and then replace them and compile again?
-> I think it’s same. If you want to ensure you have build the reference-ril from Quectel, you can check the radio log with grep “Quectel”.
Or maybe you can delete the original reference-ril and replaced by Quectel’s reference-ril.

Another question, SELinux need to be disabled at kernel config?
-> If you want to disable SELinux, you can disable it from code or manually disable it by adb command.

I considered about 1.2.7-01010-8×16.0-4, but EC20 driver may not support android6.0. Do you use this version?
-> Yes, I’m using this version. I think EC20 can support Android 6.0 normally.

Thanks.

Best regards,
Johnny

Hi Johnny,

Thank you for your reply! I changed as you said, but I run command getprop init.svc.ril-daemon Still get stopped getprop gsm.version.ril-impl Still get None. There is no APN setting in Settings -> More.
I use logcat -b radio get the following(part):

D/RILD    (  307): **RIL Daemon Started**
D/RILD    (  307): **RILd param count=3**
D/TelephonyManager(  335): No /proc/cmdline exception=java.io.FileNotFoundException: /proc/cmdline: open failed: EACCES (Permission denied)
D/TelephonyManager(  335): /proc/cmdline=
D/TelephonyManager(  334): No /proc/cmdline exception=java.io.FileNotFoundException: /proc/cmdline: open failed: EACCES (Permission denied)
D/TelephonyManager(  334): /proc/cmdline=
D/SubscriptionManager(  800): [getPhoneId]- fail
D/TelephonyManager(  800): getTelephonyProperty: return propVal='null' phoneId=-1 property='gsm.current.phone-type' defaultVal='null' prop=
D/TelephonyManager(  800): getTelephonyProperty: return propVal='null' phoneId=-1 property='ro.telephony.default_network' defaultVal='null' prop=5
D/TelephonyRegistry(  800): listen oscl: hasNotifySubscriptionInfoChangedOccurred==false no callback
D/TelephonyRegistry(  800): systemRunning register for intents
D/SubscriptionManager( 2172): [getPhoneId]- fail
... ...

Maybe I need to use the newest version.

Thanks.

Best regards,
Micah

Hi Micah,

Just remind that you can double check the selinux is in Permissive mode, and check radio log whether RILDaemon is running normally or not.
Also, as I know, currently Android M has phone crash issue.
And it may has some impacts like OS cannot send commands to module.

Thanks.

Best regards,
Johnny

Hi Johnny,

Thank you so much for helping me all the time!

Best regards,
Micah

Hi Johnny,

I am working on a Sierra LTE modem and would like to seek your advice.

Now I can see AT commands can work between the system and modem, but Android still cannot recognize it. You mentioned before
“it seems Qualcomm remove phone components from APQ8016 BSP”

Is it true? How did you resolve it?

Below is the logcat file. Could you please give me advice where I should address the problem?

https://drive.google.com/open?id=0Bw59yJ-YYH6rVjVrY3BBaHdDY1E

Many thanks!

Best regards,
Raymond

HI All,

  I interfaced  telit le910 with dragon410 which was running android 5.0 and it worked perfectly, Now i upgraded the Android to 6.01 (LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2) and here the phone service is crashing repeatedly. Any one knows what is the issue, is there any precise modification is required in case of Marshmallow

Hi @raymondman,

Sorry that I didn’t notice your post.
The phone components that QCT remove qti-telephony-common.jar from Android 6.0 (LA1.2.7) BSP.
Therefore, if you use Android 6.0 to porting the LTE module, I think you may meet some issue like phone crash that caused OS cannot receive and recognize the status from modem, and also cannot send command to modem either.

I’m a SW FAE of ARROW Electronics, so that I can get more proprietary code of the BSP.
But sorry that I cannot share the proprietary code to you because there are some legal issue.
I hope QCT will solve this issue on next version.

Thanks.

Best regards,
Johnny

Hi…This is the third release, incorporating quite a few changes and improvements for both the consumer and enterprise reference platforms.For the first time are able to produce a common and unified kernel tree (4.4.0 based) that is shared across all the supported platforms.

printed circuits assembly

Hi Johnny,

Thanks for your reply.

Is it easier to port the LTE module to Android 5.0?

Thanks and regards,
Raymond

Hi @raymondman,

It may related to what module you need.
I have ported Quectel LTE module in Android already.
Their document is very clearly to teach user how to port it.
And I think it easily to port it to Android 5.0 also.

Thanks.

Best regards,
Johnny

Hi Johny,

I am Integrating Telit LE910 4G Modem with Android 6.0

After integrating the reference-ril.so file in android the telephony service is crashing
if i make “ro.telephony.default_network=9” . If i change to “ro.telephony.default_network=10” the device is detecting as cdma “[gsm.current.phone-type]: [2]” but phone service is not crashing and shaded signal bar is showing then in the notification bar it’s showing Roaming Indicator Off
The same modem work fine with Android 5.0.

Could you please advice me to resolve this issue.

Thanks & Regards
Aslam

Hi @rehilderman,

i am also facing same errors like you mentioned in your previous posts i.e.

Applying patches …
applying patches on ./bootable/bootloader/lk …
./DB410c_build.sh: line 44: cd: /media/sf_share/syna_workspace/DragonBoard_410C/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4/APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2/./bootable/bootloader/lk: No such file or directory
./bootable/bootloader/lk does not exist in BUILDROOT:/media/sf_share/syna_workspace/DragonBoard_410C/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4/APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2

does your issue is fixed ? if yes can you please help for this issue.

Thanks,
Raj.

I am having the same problem with the patch script. Is anyone working on a fix?

Thanks,
Jim