We are glad to deliver the latest Android Marshmallow 6.0.1 GA release for all our platforms: BD-SL-i.MX6 (SABRE Lite), Nitrogen6x, Nitrogen6_Max (Quad and QuadPlus), Nitrogen6_SOM, Nitrogen6_SOMv2, Nitrogen6_Lite, Nit6_SoloX and Nitrogen6_VM.
This release went under the same testing as our previous releases which is why we now recommend this release for new designs.
For the impatient
You can download images from here:
- m601-nitrogen6x-20170224.img.gz for Nitrogen6X, BD-SL-i.MX6 (SABRE Lite), Nitrogen6_Max, Nitrogen6_SOM and Nitrogen6_SOMv2
- m601-nit6xlite-20170224.img.gz for Nitrogen6_Lite
- NOTE: After several remarks, we recommend only Nitrogen6_Lite with 1GB of RAM for this version. For boards with only 512MB or RAM, KitKat 4.4.3 is the best option.
- m601-nitrogen6sx-20170224.img.gz for Nit6_SoloX
As usual, you’ll need to register on our site and agree to the EULA because it contains Freescale content.
Update 20170224 changelog:
- Fixed BT A2DP connection for TiWi-BLE
- Fixed USB storage management
- Fixed 6QP media profile
- Updated TiWi firmware files (both BT & WiFi)
Update 20161129 changelog:
- Fix ft5x06 firmware bug (timeout)
- Fix dirty cow kernel exploit (CVE-2016-5195)
- Add hwrotation override capability from U-Boot
- Updated TiWi firmware files to latest
- Updated TC358743 HDMI input driver
Update 20160811 changelog:
- Navigation bar buttons working on both Landscape and Portrait mode
- WiFi auto-connect at bootup
- Can now skip the “ANDROID_” text at bootup (
ro.init.skip.text
) - Updated TiWi wpa_supplicant lib
- Fixed CPUFreq permissions for Power HAL
Update 20160620 changelog:
- Adds basic OV564x autofocus support
The image is a 4GB SD card image that can be restored using zcat and dd under Linux.
~$ zcat m601*.img.gz | sudo dd of=/dev/sdX bs=1M
For Windows users, please use Alex Page’s USB Image Tool.
What’s new?
This section will only describe the changes brought either by the OS update itself or modified/added features.
OS update
Here is a non-exhaustive list of noticeable changes between Android 5.1.1 and 6.0.1:
- Security enhancements
- SELinux policies more strict
- Adoptable external storage
- App permissions now selectable
- MultiWindow mode
Google also provides a list of notable changes for developers:
For a more complete changelog between the two versions, we invite you to look at the very nice Opersys website which lists all the different commits between every version:
Same as before, TiWi-BLE offer the WiFi-P2P feature (also called WiFi Direct) but its firmware has proven not be stable. In case you want to disabled that feature to have a more stable connection, enter the following command line:
~/$ adb shell 'setprop persist.sys.wifidirect disabled'
Linux Kernel 3.14.52
Just like Android 5.1.1, this release is based on a 3.14 kernel. The only notable change since 5.1.1 is the use of the latest (and greatest) Vivante graphics libraries (v5.0.11 p8).
If you haven’t used Android with a 3.14.x kernel yet, please make sure to update U-Boot.
U-Boot changes
As said in the previous section, using a Linux Kernel >= 3.14.x now requires to have a U-Boot version >= v2015.07 due to our new display detection mechanism.
More information on those U-Boot changes on a previous blog post:
- https://boundarydevices.com/u-boot-v2016-03/
- https://boundarydevices.com/compiling-latest-u-boot-for-i-mx6-2015-edition/
As of this writing, the latest version we support is the 2016.03. You can download binaries directly from this webpage:
Then, you need to set a uboot_defconfig
variable which is unique per platform:
nit6xlite1g
for Nit6xlite with 1GB of RAMnitrogen6_max
for Nitrogen6_MAXnitrogen6q
for Nitrogen6x/BD-SL-i.MX6nitrogen6sx
for Nit6_SoloX
Below is an example for Nitrogen6x.
U-Boot> setenv uboot_defconfig nitrogen6q U-Boot> run upgradeu
Miscellaneous additions
- Support of data encryption
- ExFAT, NTFS and Ext4 are supported for all external media
- BUT requires SELinux to be disabled or permissive due to new more restrictive AOSP policies.
- Fastboot support improvement
- Requires to use latest U-Boot v2016.03
- Works with both sparse and regular images
- However, latest fastboot doesn’t look for unknown USB product ID so you now need to specify it as follows:
~/$ adb shell reboot bootloader ~/$ fastboot -i 0x0525 flash boot $OUT/boot.img finished. total time: 3.762s ~/$ fastboot -i 0x0525 flash recovery $OUT/recovery.img finished. total time: 3.402s ~/$ fastboot -i 0x0525 flash system $OUT/system.img finished. total time: 52.153s ~/$ fastboot -i 0x0525 continue resuming boot...
- Camera HALv3 is now being used
- Note that our auto-focus support has been integrated in version 20160620 of the Nitrogen6x image.
- Bluetooth Low Energy
- Dual display demo
- Our previous dual display demo is still working on this Marshmallow release
- SuperUser removal
- Since the Koush app isn’t supported in Marshmallow and that new SELinux policies prevent its use
Source code access
For the newcomers, please make sure to read our “Android Getting Started Guide” since it contains all the information you need to download, build and flash an Android image.
For those already familiar with our releases, here is a condensed version to get the source code:
~/$ mkdir myandroid ~/$ cd myandroid ~/myandroid$ repo init -u git://github.com/boundarydevices/android-manifest.git \ -b boundary-imx-m6.0.1_1.0.0-ga ~/myandroid$ repo sync ~/myandroid$ source build/envsetup.sh ~/myandroid$ lunch ... choose nitrogen6x / nit6xlite / nitrogen6sx from the list of boards ~/myandroid$ make 2>&1 | tee build.out
As always, let us know your experiences (both good and bad) when you test out this image.
What about root and superuser?
Hi,
Good question, forgot to mention it in the blog post but superuser has been removed for several reasons:
– The SuperUser package we were using (Koush/Cyanogen) isn’t supported for Marshmallow (cm13.0)
https://github.com/CyanogenMod/Superuser
– New AOSP SELinux policies prevent its use
-> we chose not to change AOSP base policies for CTS purposes
If you’re interested into such application, I suggest you look at:
http://www.supersuroot.com/
Regards,
Gary
Thank you.
Can you give me some information or link to instructions – how to properly write SU binaries into sd card?
Hi,
If you have a Linux machine you can simply mount the SD card and copy things manually to the system partition.
Also, another approach, if you just need root access for your own app is to integrate Chainfire libsuperuser:
https://github.com/Chainfire/libsuperuser
Regards,
Gary
Just wondering if this version supports portrait orientation with Video Hardware acceleration?
And also, does it support touch panel, say big screen with IrTouch Panel?
Thanks,
Wilson
Hi Wilson,
It supports portrait mode if you set ro.sf.hwrotation to 90 or 270 in the init.freescale.rc. As for Video acceleration, it works as well and the orientation should affect it whatsoever.
Finally, regarding the IrTouch panel it depends, if it shows up up as a USB HID device (like a mouse) it should be fine. Otherwise some adaptation is required.
Regards,
Gary
Hi
I wonder wether the BD android repo will support repo –mirror ?
At now I have a:
> cohen@PCLX30164:/usr/local/src/android/BoundaryDevices/mirror$ repo init -u git://github.com/boundarydevices/android-manifest.git –mirror
> Get https://gerrit.googlesource.com/git-repo/clone.bundle
> Get https://gerrit.googlesource.com/git-repo
> remote: Counting objects: 1, done
> remote: Finding sources: 100% (51/51)
> remote: Total 51 (delta 20), reused 51 (delta 20)
> Dépaquetage des objets: 100% (51/51), fait.
> Depuis https://gerrit.googlesource.com/git-repo
> 58f85f9..e01ee02 master -> origin/master
> 203153e..39252ba stable -> origin/stable
> * [nouvelle étiquette] v1.12.34 -> v1.12.34
> Get git://github.com/boundarydevices/android-manifest.git
> remote: Counting objects: 760, done.
> remote: Total 760 (delta 0), reused 0 (delta 0), pack-reused 760
> Réception d’objets: 100% (760/760), 179.81 KiB | 123.00 KiB/s, fait.
> Résolution des deltas: 100% (320/320), fait.
> Depuis git://github.com/boundarydevices/android-manifest
> * [nouvelle branche] boundary-imx-kk4.4.3-beta -> origin/boundary-imx-kk4.4.3-beta
> * [nouvelle branche] boundary-imx-kk4.4.3-ga -> origin/boundary-imx-kk4.4.3-ga
> * [nouvelle branche] boundary-imx-kk4.4.3-ga-hdmi_input -> origin/boundary-imx-kk4.4.3-ga-hdmi_input
> * [nouvelle branche] boundary-imx-kk4.4.3_2.0.1-ga -> origin/boundary-imx-kk4.4.3_2.0.1-ga
> * [nouvelle branche] boundary-imx-l5.0.0_1.0.0-ga -> origin/boundary-imx-l5.0.0_1.0.0-ga
> * [nouvelle branche] boundary-imx-l5.0.0_1.0.0-ga_cnt -> origin/boundary-imx-l5.0.0_1.0.0-ga_cnt
> * [nouvelle branche] boundary-imx-l5.1.1_2.0.0-beta -> origin/boundary-imx-l5.1.1_2.0.0-beta
> * [nouvelle branche] boundary-imx-l5.1.1_2.1.0-ga -> origin/boundary-imx-l5.1.1_2.1.0-ga
* [nouvelle branche] boundary-imx-m6.0.1_1.0.0-ga -> origin/boundary-imx-m6.0.1_1.0.0-ga
> * [nouvelle branche] boundary-imx_jb4.3_1.0.0-ga -> origin/boundary-imx_jb4.3_1.0.0-ga
> * [nouvelle branche] boundary-kk4.4.2_1.0.0-ga -> origin/boundary-kk4.4.2_1.0.0-ga
> * [nouvelle branche] imx-kk4.4.3-beta -> origin/imx-kk4.4.3-beta
> * [nouvelle branche] imx-kk4.4.3-ga -> origin/imx-kk4.4.3-ga
> * [nouvelle branche] master -> origin/master
> fatal: manifest ‘default.xml’ not available
> fatal: manifest default.xml not found
Thanks
Hi Rémi,
I think you are missing the branch name in the command. It looks like it defaults to master which indeed doesn’t have a default.xml.
Also, as a reminder, make sure that all the repos are not publicly available. The ones that are pulled from our linode servers must stay hidden as Freescale/NXP requires it.
Regards,
Gary
Yes of course. Just for internal use by us.
I’ll try with a branch name.
Thx
Yep cool ! Seems to work …
Hello,
I am trying to use the BD-SL-i.MX6 (SABRE Lite) board with Android Marshmallow 6.0.1 GA release. So I download the file m601-nitrogen6x-20160811.img.gz. I program a 16 Go SD Card with command “zcat m601*.img.gz | sudo dd of=/dev/sdX bs=1M”.
I insert SD card in slot and enter : setenv uboot_defconfig nitrogen6q then run upgradeu
The upgradeu occures an error :
MX6Q SABRELITE U-Boot > run upgradeu
Card did not respond to voltage select!
mmc0(part 0) is current device
MMC: block number 0x1 exceeds max(0x0)
** Can’t read from device 0 **
** Unable to use mmc 0:1 for fatload **
** Bad partition 1 **
mmc1 is current device
reading /6q_upgrade
** Unable to read “/6q_upgrade” from mmc 1:1 **
Loading file “/6q_upgrade” from mmc device 1:1 (xxb1)
Failed to mount ext2 filesystem…
** Bad ext2 partition or disk – mmc 1:1 **
When I try to boot :
MMC read: dev # 1, block # 2048, count 8192 … 8192 blocks read: OK
Wrong Image Format for bootm command
ERROR: can’t get kernel image!
Please could you help me ?
Mickael
Hi Mickael,
First, to update U-Boot you need to download the U-Boot image that matches your board separately from the Android release. This latter doesn’t include all the U-Boot files for all our platforms versions.
You can find the latest u-boot.nitrogen6q here:
http://linode.boundarydevice.wpengine.com/u-boot-images/u-boot.nitrogen6q
Then you might need to copy it to a SDCard/USB disk with a MBR partition table if your U-Boot is old (which seems to be the case). The problem is that Android release images now uses GUID partition table (GPT) which isn’t recognized on old U-Boot.
Regards,
Gary
Hi Gary,
Thanks for your answer. I copied uboot file and upgradeu still fails. I have to make MBR partition table, do you have the description somewhere ?
Regards
Mickael
Sorry I misunderstand your comment. I put u-boot.nitrogen6q and 6x_update file in SD with only one ext2 partitions. I am able to see the sd, its partition, but it fails to find 6X_update … Any idea ?
Thanks in advance
Mickael
Sorry, second time, I read too fast and I am too impatient to have my android. So I plugged my head and see that It calls for 6q_upgrade (logical !), after retrieve file on the web, I had to rename u-boot.nitrogen6q into u-boot.bin ! But unfortunately , I have this :
total of 490496 bytes were the same
—- U-Boot upgraded. reset
—- U-Boot upgraded. reset
And nothing happen when I try to restart manually …
Hi,
Please make sure to have only one SDcard plugged in. Also, please copy both 6x_upgrade and u-boot binary from the site I gave earlier. The fact that you need to rename the file tells me something is wrong.
Also, please specify your current U-Boot version.
Regards,
Gary
HI gary,
Thanks for you answer. So I am now connected by usb and use imx_usb_loader tool for flash u-boot.nitrogen6q. So that boots something from where I am trying to run upgradeu with a SDcard that contains u-boot.nitrogen6q and 6x_upgrade (downloaded from http://linode.boundarydevice.wpengine.com/u-boot-images/). There is logs when I am trying run upgradeu after a setenv uboot_defconfig :
=> run upgradeu
MMC: no card present
MMC: no card present
** Bad device mmc 0 **
MMC: no card present
** Bad device mmc 0 **
switch to partitions #0, OK
mmc1 is current device
** Unrecognized filesystem type **
** File not found /6q_upgrade *
I am complety lost …
Regards,
Mickael
Hi Mickael,
It seems that you an old environment saved into that NOR flash. Once U-Boot is booted up, please issue:
=> env default -a
=> savee
And then try to run the upgradeu again.
Regards,
Gary
Hi,
Thanks a lot that works now I have my Android !
Regards,
Mickael
Has anyone used a wifi usb dongle with Marshmallow Android and a Sabre Lite (BD-SL-i.MX6) board? I’d like to hook up my demo board to a wifi network rather than hardwire ethernet.
Hi,
I haven’t heard of someone doing that but it is definitely possible. The only problem is that it requires you to modify the Android image to include the WiFi dongle driver and HAL layers.
Regards,
Gary
hi, your SabreLite(BD-I.MX6) board can connect to internet through?
why my SabreLite board can not connect to internet?
I execute the following instruction correctly, but it’s not work.
~/$ mkdir myandroid
~/$ cd myandroid
~/myandroid$ repo init -u git://github.com/boundarydevices/android-manifest.git \
-b boundary-imx-m6.0.1_1.0.0-ga
~/myandroid$ repo sync
~/myandroid$ source build/envsetup.sh
~/myandroid$ lunch
… choose nitrogen6x / nit6xlite / nitrogen6sx from the list of boards
~/myandroid$ make 2>&1 | tee build.out
plz help… thx
sorry, it’s through ethernet to internet.
log:
root@nitrogen6x:/ # ping 192.168.11.1
connect: Network is unreachable
2|root@nitrogen6x:/ # busybox ping 192.168.11.1
PING 192.168.11.1 (192.168.11.1): 56 data bytes
64 bytes from 192.168.11.1: seq=0 ttl=64 time=1.179 ms
64 bytes from 192.168.11.1: seq=1 ttl=64 time=0.438 ms
Hi,
Not sure to understand how this is possible that Android ping doesn’t work but busybox one does. Are you using DHCP or fixed IP?
Also, can you try with selinux disabled? In U-Boot prompt, enter the following:
=> setenv selinux disabled
=> saveenv
=> reset
Regards,
Gary
thanks for your reply.
yes, I have closed selinux through modify android/system/core/init/init.cpp. but it’s no help to connect to internet.
I sync the source by above instruction, then I build the source to produce the image, and make boot sdcard by /device/boundary/mksdcard.sh.
there are some things wrong? i am not sure I have executed the instruction correctly.
you get android 6.0.2 source and build the source by above instruction ??
I doubt the instruction or the source that I synced have some problem.
android 6.0.2 and android 5.1.1 have the some problem.
and the image downloaded from this page have no problem.
please help me.
thanks
Hi,
Yes the pre-built images are made from an external build server in order to make the instructions work.
But it sounds like you’ve modified the source code (at least for selinux although you don’t need to). So please make sure to restore to the default state, make sure to ‘repo sync’ again and that no errors appear.
Also make sure your dev environment matches Google recommendations:
https://source.android.com/source/initializing.html
Regards,
Gary
Hi Gary,
I have 2 questions,
1. I just want to confirm whether Android 6.0.1(marshmallow)’s Selinux can be disabled during U-boot? (I know android 7.1.1 can not)
2. If serial port communication displays like “root@nitrogen6x: ……”, does it mean that we are super user now? (I use NITROGEN6X board)
Thank you and best regards,
Kevin
Hi Kevin,
1. Yes SELinux can be disabled in Marshmallow. Note that you can set it as permissive for Nougat, which will allow you almost anything but with a few avc warnings.
2. Yes console is root.
Regards,
Gary
Hi Gary,
I am having the same problem as “mlefores” was facing to get android working.
I have Nitrogen 6x and UBoot version is UBoot 2013.10
I have a sd card i have created a ext4 partition & have copied
u-boot.nitrogen6q for the Nitrogen6x/Sabre-lite using the imx.6Q from
https://boundarydevice.wpengine.com/compiling-latest-u-boot-for-i-mx6-2015-edition/
& 6x_upgrade script
on SD Card.
Finally i have two files on sd card
1)6x_upgrade
2)u-boot.nitrogen6q
Now in U-Boot> i executed
U-Boot> env default -a
U-Boot> savee
U-Boot> setenv uboot_defconfig nitrogen6q
U-Boot> run upgradeu
But i am getting errors:-
MMC: no card present
MMC: no card present
** Bad device mmc 0 **
MMC: no card present
** Bad device mmc 0 **
switch to partitions #0, OK
mmc1 is current device
Thanks in advance.
Regards,
Himanshu
Hi,
It’s missing the end of the log I guess, ‘mmc1 is current device’ isn’t an error. Two things can happen:
1- On very old u-boot, ext4 partitions weren’t supported. So you can either use a USB FAT32 formatted device and copy 6x_upgrade and u-boot to it.
Or you can use the unbricking procedure to boot the latest U-Boot via USB recovery (which supports ext4/USB/SATA etc…) and run upgradeu from there.
https://boundarydevice.wpengine.com/unbricking-nitrogen6x-sabre-lite-i-mx6-board/
2- The 6x_upgrade was maybe actually called 6q_upgrade, what is the output of ‘pri upgradeu’?
Regards,
Gary
Hi Gary,
I have formatted the SD Card to FAT 32 as per your suggestion & had copied the Two files Named
1)6x_upgrade
2)u-boot.nitrogen6q
Now in U-Boot> i executed
U-Boot> env default -a
U-Boot> savee
U-Boot> setenv uboot_defconfig nitrogen6q
U-Boot> run upgradeu
U-Boot > pri upgradeu
Please find the Complete log for above:-
U-Boot 2013.10-00054-g2a78739 (Dec 03 2013 – 12:45:23)
CPU: Freescale i.MX6Q rev1.2 at 792 MHz
Reset cause: POR
Board: Nitrogen6X
DRAM: 2 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected SST25VF016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB
auto-detected panel wsvga-lvds
Display: wsvga-lvds (1024×600)
In: serial
Out: serial
Err: serial
Net: using phy at 6
FEC [PRIME]
Hit any key to stop autoboot: 0
AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part
No port device detected!
** Bad device size – sata 0 **
** Bad device size – sata 0 **
SATA device 1: unknown device
** Bad device sata 1 **
** Bad device sata 1 **
MMC: no card present
mmc0(part 0) is current device
MMC: no card present
** Bad device mmc 0 **
MMC: no card present
** Bad device mmc 0 **
mmc1 is current device
** Unrecognized filesystem type **
Failed to mount ext2 filesystem…
** Unrecognized filesystem type **
(Re)start USB…
USB0: USB EHCI 1.00
scanning bus 0 for devices… 4 USB Device(s) found
scanning usb for storage devices… 0 Storage Device(s) found
scanning usb for ethernet devices… 0 Ethernet Device(s) found
USB device 0: unknown device
** Bad device usb 0 **
** Bad device usb 0 **
USB device 1: unknown device
** Bad device usb 1 **
** Bad device usb 1 **
6x_bootscript not found
serial console at 115200, 8N1
details at http://boundarydevice.wpengine.com/6q_bootscript
U-Boot > env default -a
## Resetting to default environment
U-Boot > savee
Saving Environment to SPI Flash…
SF: Detected SST25VF016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB
Erasing SPI flash…Writing to SPI flash…done
U-Boot > setenv uboot_defconfig nitrogen6q
U-Boot > run upgradeu
SATA device 0: Model: Firm: Ser#:
Type: Hard Disk
Capacity: not available
… is now current device
** Bad device size – sata 0 **
** Bad device size – sata 0 **
SATA device 1: unknown device
** Bad device sata 1 **
** Bad device sata 1 **
MMC: no card present
mmc0(part 0) is current device
MMC: no card present
** Bad device mmc 0 **
MMC: no card present
** Bad device mmc 0 **
mmc1 is current device
** Unrecognized filesystem type **
Failed to mount ext2 filesystem…
** Unrecognized filesystem type **
USB device 0: unknown device
** Bad device usb 0 **
** Bad device usb 0 **
USB device 1: unknown device
** Bad device usb 1 **
** Bad device usb 1 **
U-Boot > pri upgradeu
upgradeu=for dtype in ${bootdevs}; do for disk in 0 1 ; do ${dtype} dev ${disk} ;for fs in fat ext2 ; do ${fs}load ${dtype} ${disk}:1 10008000 /6x_upgrade && source 10008000 ; done ; done ; done
U-Boot >
Hi,
The message is clear, it can’t mount the partition since it’s ext4 and not ext2. So please use one of the following options: to a FAT32 device (either USB stick or sdcard)
1- use the USB recovery procedure to boot a proper U-Boot first
https://boundarydevice.wpengine.com/unbricking-nitrogen6x-sabre-lite-i-mx6-board/
2- or copy 6x_upgrade and u-boot.
Regards,
Gary
Hi Gary,
I am trying unbricking method on windows,
I had download the .exe
please check the method which i had tried.
D:\Nitrogen6x\sb_loader\sb_loader.v1.2>sb_loader.exe -f u-boot.nitrogen6q
Waiting for HID device for 2 seconds…
HID device was not found.
Please place the device in recovery mode and restart the program.
Hi,
Are you sure you have changed the DIP switch as shown in the pictures? Is the board still booting to U-Boot when plugging the power? If so the switches are wrong.
That being said, I guess using a USB FAT32 formatted stick is the easiest option for Windows users. Sorry I assumed you were using Linux.
Regards,
Gary
Hi Gary,
For your Question
Is the board still booting to U-Boot when plugging the power?
Ans:-Previously it was,but we have just inverted it and now on powerOn no uboot&no logs are coming on serial port.
Then we tried
sb_loader.exe -f u-boot.nitrogen6q But same error.
Will try with stick & let u know.
Hi Gary,
This time i have tried with FAT32 SD Card [Formatted via windows machine]
Command executed
U-Boot> env default -a
U-Boot> savee
U-Boot> setenv uboot_defconfig nitrogen6q
U-Boot> run upgradeu
U-Boot > pri upgradeu
Please find the log for above command:-
U-Boot 2013.10-00054-g2a78739 (Dec 03 2013 – 12:45:23)
CPU: Freescale i.MX6Q rev1.2 at 792 MHz
Reset cause: POR
Board: Nitrogen6X
DRAM: 2 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected SST25VF016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB
No panel detected: default to HDMI
Display: HDMI (1024×768)
In: serial
Out: serial
Err: serial
Net: using phy at 6
FEC [PRIME]
Hit any key to stop autoboot: 0
AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part
No port device detected!
** Bad device size – sata 0 **
** Bad device size – sata 0 **
SATA device 1: unknown device
** Bad device sata 1 **
** Bad device sata 1 **
MMC: no card present
mmc0(part 0) is current device
MMC: no card present
** Bad device mmc 0 **
MMC: no card present
** Bad device mmc 0 **
mmc1 is current device
** Unrecognized filesystem type **
Failed to mount ext2 filesystem…
** Unrecognized filesystem type **
…
Hi,
First, you don’t need to do “env default -a” every time, you’ll need to do it once the bootloader will be updated, not before.
Then I’ve cut the log, the interesting part is that u-boot says “Unrecognized filesystem type”. So it seems to be the issue here. Can you try the following commands:
=> mmc dev 1
=> fatls mmc 1
If at this point you cannot list the FAT partition it means that it hasn’t been properly formatted. Do you have a USB disk to try with?
Regards,
Gary
Hi Gary,
I have tried to do it via USB stick please check the log,
Now nothing is coming on serial port.
U-Boot > setenv uboot_defconfig nitrogen6q
U-Boot > run upgradeu
SATA device 0: Model: Firm: Ser#:
Type: Hard Disk
Capacity: not available
… is now current device
** Bad device size – sata 0 **
** Bad device size – sata 0 **
SATA device 1: unknown device
** Bad device sata 1 **
** Bad device sata 1 **
MMC: no card present
mmc0(part 0) is current device
MMC: no card present
** Bad device mmc 0 **
MMC: no card present
** Bad device mmc 0 **
mmc1 is current device
** Unrecognized filesystem type **
Failed to mount ext2 filesystem…
** Unrecognized filesystem type **
USB device 0:
Device 0: Vendor: Kingston Rev: PMAP Prod: DataTraveler 2.0
Type: Removable Hard Disk
Capacity: 3875.0 MB = 3.7 GB (7936000 x 512)
… is now current device
reading /6x_upgrade
1559 bytes read in 49 ms (30.3 KiB/s)
## Executing script at 10008000
check U-Boot
reading u-boot.nitrogen6q
490496 bytes read in 75 ms (6.2 MiB/s)
read 77c00 bytes from SD card
SF: Detected SST25VF016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB
probed SPI ROM
SF: 490496 bytes @ 0x400 Read: OK
byte at 0x12000025 (0x80) != byte at 0x12400025 (0x10)
Total of 37 byte(s) were the same
Need U-Boot upgrade
Program in 5 seconds
5
4
3
2
1
erasing
SF: 786432 bytes @ 0x0 Erased: OK
programming
SF: 489472 bytes @ 0x800 Written: OK
SF: 1024 bytes @ 0x400 Written: OK
verifying
SF: 490496 bytes @ 0x400 Read: OK
Total of 490496 byte(s) were the same
—- U-Boot upgraded. reset
Hi,
The good news is you succeeding in updating U-Boot. The bad news is that you bricked your board.
The reason is that I just realized you don’t use a standard Nitrogen6x but the 2GB version of it, therefore you need to use this binary:
http://linode.boundarydevice.wpengine.com/u-boot-images/u-boot.nitrogen6q2g
So now you need to unbrick the board using the binary above. Make sure there’s no permissions issue on your PC to access the USB ports.
Regards,
Gary
Hi Gary,
I have tried via sb_loader.exe please check the output.
Please help on this,as nothing is working now.
D:\Nitrogen6x\sb_loader\sb_loader.v1.2>sb_loader.exe -f u-boot.nitrogen6q
Found USB#VID_15A2&PID_0054#5&5AA9E9C&0&2.
Reg 0x20e05a8 is initialized.
Reg 0x20c4060 is initialized.
DCD Write Success!
Executed plugin successfully.
Loading Firmware.
Succeed to download u-boot.nitrogen6q to the device.
Failed to run plugin u-boot.nitrogen6q to the device.
Hi Gary,
I have tried with binary downloaded from your given link
http://linode.boundarydevice.wpengine.com/u-boot-images/u-boot.nitrogen6q2g
via sb_loader.exe please check the output.Its output is successful, but still i am not able to see any output on Uart
Please help on this.
D:\Nitrogen6x\sb_loader\sb_loader.v1.2>sb_loader.exe -f u-boot.nitrogen6q2g
D:\Nitrogen6x\sb_loader\sb_loader.v1.2>sb_loader.exe -f u-boot.nitrogen6q2g
Found USB#VID_15A2&PID_0054#5&5AA9E9C&0&2.
Reg 0x20e05a8 is initialized.
Reg 0x20e05b0 is initialized.
….
Reg 0x20c4060 is initialized.
DCD Write Success!
Executed plugin successfully.
Loading Firmware.
Succeed to download u-boot.nitrogen6q2g to the device.
Run into the image successfully.
Hi,
sbloader.exe output seems legit so that would mean your board isn’t really a Nitrogen6Q with 2GB of RAM. Do you have the exact reference of your platform?
Regards,
Gary
Hi Gary,
Its Nit6Q_W Quad-Core, 1GB DDR3, TiWi-BLE + Antenna
Regards,
Himanshu
Hi,
I don’t understand, your U-Boot log was saying 2GB of RAM, are you sure you have a 1GB version?
https://boundarydevice.wpengine.com/android-marshmallow-6-0-1-ga-release-mx6-boards/#comment-375339
https://boundarydevice.wpengine.com/android-marshmallow-6-0-1-ga-release-mx6-boards/#comment-375344
The Nit6Q_W 1GB of RAM works with the u-boot.nitrogen6q whereas the Nit6Q_W_2GB requires u-boot.nitrogen6q2g.
Plus sbloader seems to go further with the 2G version. Please make sure to try with the sbloader provided here:
https://boundarydevice.wpengine.com/windows-users-and-unbricking-an-i-mx-device/
Regards,
Gary
Hi Gary ,
Device we have matches with Nitrogen6 Quad with 2GB As compared from this link
https://boundarydevice.wpengine.com/product-selector-guide/
Hi,
Yes, so it is a 2GB version, not 1GB. So you need to use u-boot.nitrogen6q2g. Then the reason why sbloader doesn’t work, well the log looks good, please double-check the serial connection.
Also, please try the sbloader binary I pointed to earlier.
Regards,
Gary
Hi Gary,
While flashing u-boot.nitrogen6q2g via sbloader
My connection is only USB.
Do you want me to add serial connection in this process?
After flashing i make the dip switch to its previous position and then I am plugging in the power & checking on serial for uboot.
But Nothing is coming.
Regards,
Himanshu
Hi,
Yes you absolutely need a serial connection. The process just boots the binary, it is NOT flashed to NOR.
So the steps are:
1- use sbloader to boot the binary
2- plug you USB stick with 6x_upgrade and u-boot.nitrogen6q2g
2- stop the autostop boot to enter ‘env default -a; run upgradeu’
Regards,
Gary
Hi Gary,
Thanks Gary for such a nice support , I am able to get UBoot Upgraded. Now i will try for android & let u know.
Steps which i did:-
1)Had both connection for Nitrogen Board via USB & Serial to my PC
2)USB Stick was connected to Nitrogen6x which has “6x_upgrade” and “u-boot.nitrogen6q2g”
3)Flashed the u-boot.nitrogen6q2g via sbloader
Command is sb_loader.exe -f u-boot.nitrogen6q2g
4)Once this process was completed i was able to see the UBoot on serial.
5)Stopped the auto boot and entered command env default -a; run upgradeu’
Attaching the logs:-
U-Boot 2016.03-20505-g7e2d42d (Oct 14 2016 – 03:09:51 -0700), Build: jenkins-uboot_v2016.03-84
CPU: Freescale i.MX6Q rev1.2 at 792 MHz
Reset cause: POR
Board: Nitrogen6X
I2C: ready
DRAM: 2 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected SST25VF016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB
Display: hdmi:1280x720M@60 (1280×720)
In: serial
Out: serial
Err: serial
Net: Micrel ksz9021 at 6
FEC [PRIME], usb_ether
Error: usb_ether address not set.
Hit any key to stop autoboot: 0
=> env default -a
## Resetting to default environment
=> run upgradeu
AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part
No port device detected!
** Bad device size – sata 0 **
MMC: no card present
MMC: no card present
** Bad device mmc 0 **
MMC: no card present
MMC: no card present
** Bad device mmc 1 **
starting USB…
USB0: Port not available.
USB1: USB EHCI 1.00
scanning bus 1 for devices… 3 USB Device(s) found
scanning usb for storage devices… 1 Storage Device(s) found
scanning usb for ethernet devices… 0 Ethernet Device(s) found
USB device 0:
Device 0: Vendor: Kingston Rev: PMAP Prod: DataTraveler 2.0
Type: Removable Hard Disk
Capacity: 3875.0 MB = 3.7 GB (7936000 x 512)
… is now current device
reading /6x_upgrade
1559 bytes read in 23 ms (65.4 KiB/s)
## Executing script at 10008000
check U-Boot
reading u-boot.nitrogen6q2g
490496 bytes read in 49 ms (9.5 MiB/s)
read 77c00 bytes from SD card
SF: Detected SST25VF016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB
probed SPI ROM
device 0 offset 0x400, size 0x77c00
SF: 490496 bytes @ 0x400 Read: OK
byte at 0x120001d8 (0x89) != byte at 0x124001d8 (0x55)
Total of 472 byte(s) were the same
Need U-Boot upgrade
Program in 5 seconds
5
4
3
2
1
erasing
SF: 786432 bytes @ 0x0 Erased: OK
programming
device 0 offset 0x800, size 0x77800
SF: 489472 bytes @ 0x800 Written: OK
device 0 offset 0x400, size 0x400
SF: 1024 bytes @ 0x400 Written: OK
verifying
device 0 offset 0x400, size 0x77c00
SF: 490496 bytes @ 0x400 Read: OK
Total of 490496 byte(s) were the same
—- U-Boot upgraded. reset
Logs afterthis step :- restart and no SD card
U-Boot 2016.03-20505-g7e2d42d (Oct 14 2016 – 03:09:51 -0700), Build: jenkins-uboot_v2016.03-84
CPU: Freescale i.MX6Q rev1.2 at 792 MHz
Reset cause: POR
Board: Nitrogen6X
I2C: ready
DRAM: 2 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected SST25VF016B with page size 256 Bytes, erase size 4 KiB, total 2 MiB
auto-detected panel hannstar7
Display: lvds:hannstar7 (1280×800)
In: serial
Out: serial
Err: serial
Net: Micrel ksz9021 at 6
FEC [PRIME], usb_ether
Error: usb_ether address not set.
Regards,
Himanshu
Hi,
Glad to hear it works. Now that you have updated the U-Boot, don’t forget to clear the previous environment:
=> env default -a
=> savee
or
=> run clearenv
Regards,
Gary
Thanks Gary
after doing
=> env default -a
=> savee
Same SD card Works,
I am able to get android on Nitrogen6x
Thanks
Regards,
Himanshu
Hi Gary,
As android is working on our nitrogen board,we are facing some more issue:-
1)We have connected android to WIFI router but its showing no internet .
2)Is there some setting to set screen resolution.We are able to see complete screen on monitor but on screen which came with nitrogen display is not complete.
Regards,
Himanshu
Hi,
I am working on android on nitrogen6_max
Initially my mmc0 was not getting mounted due to old u-boot. As mentioned in the comments section, I resolved this by installing the latest uboot (downloaded the uboot sources, checked out to boundary-v2016.03 branch and built it).
I am making some changes at system level and want to flash my own images built form boundarydevices android source code. But “fastboot devices” does not show any devices.
Serial log shows that the device is entering in to fastboot but fastboot devices does not show anything.
Is it because of missing drivers? If so where can i find them?
Terminal OutPut:
nitrogen6x$ adb reboot-bootloader
nitrogen6x$ fastboot devices
nitrogen6x$
Looking forward for your support. If more information is needed, please let me know,
Hi,
You need to specify the ID of the device if it’s not a Google ID (new requirement from fastboot). Please try:
$ fastboot -i 0x0525 devices
Regards,
Gary
Thanks Gary.
fastboot is failing on mmc0. Hence i used mmc1.
I had to also use sudo. Please see the logs below.
nitrogen6x:~$ fastboot -i 0x0525 devices
no permissions fastboot
nitrogen6x:~$ sudo fastboot -i 0x0525 devices
???????????? fastboot
nitrogen6x$ sudo fastboot -i 0x0525 flash system system.img
target reported max download size of 637534208 bytes
sending ‘system’ (614400 KB)…
OKAY [ 30.761s]
writing ‘system’…
OKAY [ 58.847s]
finished. total time: 89.608s
Thank you for the assistance.
Hi,
Yes Fastboot can only manage one mmc, it is fixed to 1 so that it targets the eMMC of our platforms (when available).
https://github.com/boundarydevices/u-boot-imx6/blob/boundary-v2016.03/include/configs/boundary.h#L240
Otherwise you need to add the device id to udev not to have to ‘sudo’ everytime.
https://developer.android.com/studio/run/device.html#setting-up
Regards,
Gary
Hi,
I have two questions :
1 – On upper reply you said “It supports portrait mode if you set ro.sf.hwrotation to 90 or 270 in the init.freescale.rc” do I need to recompile android or this file can be found and patch on the SD ?
2 – What is the best\fast way to enable Bluetooth on Sabre Lite (I known that I need to add a USB dongle or a small card) ?
Thanks for your help,
Note : I stop trying to use LVDS, Full HD is not supported, i found how switch to 1080p on HDMI so my previous question is closed…
Hi,
1- You either need to rebuild the ramdisk or hack it manually:
https://boundarydevice.wpengine.com/hacking-ram-disks/
2- Depends on the BT chip you want to use. But you’ll need to rebuild all the BT-related HAL for that particular chip if it isn’t TI.
3- For LVDS, depends on your screen, it is possible to have 1080P LVDS display but it requires to use 2LVDS connectors which isn’t available on SabreLite but is on our Nitrogen6_MAX.
Regards,
Gary
Thanks for this fast answer,
For point 2 , if you sold or if you know the reference of BT 4 adapter that work out of the box for saber lite, I am very very interest in it.
For point 3, do you sell a card that allows 1080p on LVDS, I need Android >= 4.3, BT 4 adapter, I2C, USB ports, tactile touch, small form-factor, if bi-display is working it will be a plus.
=> If you sold a 1080p LVDS display that work we card I am interested too…
Don’t hesitate to contact me directly by e-mail for a commercial proposition on this items, it’s for a commercial product.
Thanks,
Hi,
There’s no adapter for the SabreLite, instead we made a different board which includes a WiFi and BT combo chip:
https://boundarydevice.wpengine.com/product/nitrogen6x-board-imx6-arm-cortex-a9-sbc/
You will be contacted soon with more information about our offerings (display, BT, etc…).
Regards,
Gary
Hi Gary,
As android is working on our nitrogen board,we are facing some more issue:-
1)We have connected android to WIFI router but its showing no internet .
2)Is there some setting to set screen resolution.We are able to see complete screen on monitor but on screen which came with nitrogen display is not complete.
Regards,
Himanshu
Hi Himanshu,
1) Please check your WiFi router settings. Can’t reproduce the issue here, works fine.
2) Which display are you talking about? The LVDS/LCD display only support their native resolutions. For display setting, please read this blog post:
https://boundarydevice.wpengine.com/display-configuration-u-boot/
Regards,
Gary
Hi Gary,
i’m porting android M on iMX6q_Sabresd from fsl, and i have problem with external SD card: android cannot detect sd card!
even kernel detected already, when sd card inserted:
mmc1: mmc_rescan_try_freq: trying to init card at 300000 Hz
mmc1: host does not support reading read-only switch, assuming write-enable
mmc1: new high speed SDHC card at address 0007
mmcblk1: mmc1:0007 SL32G 28.9 GiB
mmcblk1: p1 p2
Could you give me some advices, where can i modify in AOSP to mount/detect/enable external SD card on android M?
as description above on your device:
Adoptable external storage
– Enabled for external SD-Card only on our builds
I’m using android 6.0.1/kernel 4.1.15.
Thank you!
Regards,
Nguyen
Hi,
You need to modify the fstab. Note that we don’t support the SABRE SD, only our platforms.
Regards,
Gary
Hi Gary,
In /device/fsl/sabresd_6dq/fstab.freescale i’m using this to mount:
devices/soc0/soc/2100000.aips-bus/2194000.usdhc/mmc_host* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata
but not success!
Thanks for your reply!
Regards,
Nguyen
Hi,
On imx6 SD board on marshmallow 6 image facing the following issue with mic.
The mic works for record and play back for Tiny cap app which directly gets connected from Hardware layer Linux
But the mic app from Android frame work do not work and indicates package loss in the logs
Has anyone faced similar issue.
Thanks,
Hi,
Can you reproduce the issue on our platforms? If not, please ask the platform manufacturer (NXP) instead.
Regards,
Gary
This is also a good tool http://www.supersubeta.com/
Hello,
I recently purchased a Nit6Q_MAX board and I am having Wifi connection loss issues with Android.
When the connection is lost, there is a kernel message “wlcore: Scan completed due to error.” along with a trace and the TIWI module is restarted.
See the following pastebin:
http://pastebin.com/G6SJZ7Ez
There is no reliable way to reproduce the problem, or at least I have not found one yet. I am usually seeing the issue when doing a ping to other devices, or using the Android browser to access a web page, but it also happens when it is just idling. I would say it happens at least every 5 minutes, and sometimes it is also periodic every minute:
http://pastebin.com/ZR6eLWv8
What has been tried so far:
– m601-nitrogen6x-20161129.img.gz, l511-nitrogen6x-20160225.img.gz, and with an Android 601 build from source (above pastebins are with m601-nitrogen6x-20161129.img.gz)
– three different wifi access points in two different locations
– wifi access points set to channel auto, as well as channel 1/6/11 (the above pastebins are with channel set to 1)
– the original antenna that came with the device, as well as another external wifi antenna (above pastebins are with the original antenna)
I have no wifi issues on any of the tested access points with other devices (smartphone, laptop, tablet, wandboard, raspberry pi, etc.). I am located in Switzerland, do you think that could make a difference? (as far as I know, the US does not allow channels 12 and 13; however, I also manually switched channels to 1/6/11).
Have you seen similar issues with your devices?
Do you have an idea what could be done to troubleshoot the issue? (Maybe I am missing something obvious here)
Best Regards
Andreas
Hi Andreas,
Well I just pushed another update of firmware files since TI updated linux-firmware last December:
https://github.com/boundarydevices/android_device_boundary/commit/564a4a9e
However, looking at your log, can you try the following in the console (via ADB):
setprop persist.sys.wifidirect disabled
Then you need to reboot for the property to have any effect.
It was explained back in the KitKat release blog post that the WiFi chip supports “multi-role” which means WiFi-P2P.
However we’ve seen bad behavior with the multi-role firmware so we added a property that allows to remove the P2P feature and therefore use the single-role firmware (more reliable).
Let us know how it goes.
Regards,
Gary
Hi Gary
Thank you for the swift reply.
With ..
“setprop persist.sys.wifidirect disabled”
.. wifi has been running stable now for more than 24 hours, awesome!
(That is with the m601-nitrogen6x-20161129.img.gz image, I have not yet tried a build from source with the latest TI firmware, though I am sure this will work just as well if not better. In either case, I don’t really need multi-role.)
Thanks again
Andreas
Trying to build Marshmallow on 14.04 LTS machine that builds Kitkat correctly.
I followed the “android-getting-started-guide/” for Mashmellow
~/myandroid$ repo init -u git://github.com/boundarydevices/android-manifest.git \
-b boundary-imx-m6.0.1_1.0.0-ga
~/myandroid$ repo sync
After running while it “repo sync” pauses waiting on a password
Fetching projects: 46% (218/473) Fetching project android_hardware_broadcom_libbt
Fetching project platform/external/giflib
Fetching project platform/external/libmtp
Fetching project platform/packages/apps/Launcher3
Fetching project platform/frameworks/compile/mclinker
Fetching projects: 47% (223/473) Fetching project wfd-proprietary
git@linode.boundarydevice.wpengine.com‘s password:
Can you help get me past this ?
Thank you!
Hi,
This means that you haven’t registered you ssh public git. Please see the Android Getting Guide on how to register it.
Regards,
Gary
Hi Gary,
I use NITROGEN6X board.
If I install Android 6.0.1 OS and ‘open camera 1.41.1’ app from https://open-camera.en.uptodown.com/android,
how could I use a usb web camera?
The camera is Logitech C922, which can be connected to android directly.
Thank you and best regards,
Kevin
Hi Kevin,
Why don’t you use the Camera app present in the release?
Otherwise, try to change the init.i.MX6Q.rc to have uvc as back camera instead of ov5640_mipi:
https://github.com/boundarydevices/android_device_boundary/blob/boundary-imx-n7.1.1_1.0.0-ga/nitrogen6x/init.i.MX6Q.rc#L13
Regards,
Gary
Hi,
I had problem with N-Trig HID touchscreen in the Marshmallow Android build for Nitrogen6x. The Lollipop or Kitkat versions were fine. Change the kernel build to select N-Trig HID still did not help. What is specific step to remedy to use USB touch screen instead of I2C ?
Thanks,
Huicua
Hi,
HID_MULTITOUCH configuration was added in M since many customers rely on it.
Maybe your touch screen requires that option to be disabled?
Regards
Kernel menuconfig :
Device Drivers -> HID support -> Special HID drivers
HID Multitouch panels
N-Trig touch screen
Tried multiple times with kernel rebuild and to no avail. The USB touch screen simply does not work. Don’t know if something needs to change in the device tree ?
Hi,
No clue what is wrong with that N-Trig driver. The kernel was updated from 3.10 to 3.14 in Marshmallow, maybe you should check the differences.
Regards
Hi,
i just came across this link https://boundarydevice.wpengine.com/product-selector-guide/. Does it mean that the BD-SL-i.MX6 cannot be customized for 2GB DDR3?
If 2GB DDR3 can be made working on BD-SL-i.MX6 design, can Gary or someone please provide any links or instructions for the same. I tried nitrogen6q2g binary and stress test. Nothing worked
Hi,
I’m sure you understand we can’t help you with a custom design that wasn’t created by Boundary Devices.
Regards
Hi Gary,
Thank you for the reply and Yup I am well aware of that point.
My Custom design i mean No change in the HW design including DDR3 Layout and is exactly same as BD-SL-i.MX6. Therefore if we mount DDR3 1GB configuration(4x128x16) it is perfectly fine for U-boot, Kernel and everything is working.
I just wanted to increase the DDR3 size to 2GB on the same HW board just by mounting with 4x256x16 devices. This is where i had the problem, neither the original uboot.nitogen6q2q binary is working nor stress test or calibration
Kindly suggest me if the 2GB DDR3 configuration is feasible or not by re-using the same HW design (1GB DDR3 BD-SL-i.MX6).
If it is possible.. please provide me the instructions or any links to make it 2GB DDR 3 working on BD-SL-i.MX6 design
Regards
Hi,
Well the nitrogen6q2g works fine in our case, that’s it. So if it doesn’t work for you, you need to check your design. We can’t help any further than that I’m afraid.
Regards
Booting BD-SL.I.MX6 with Marshmallow image, it shows root@nitrogen6x on the serial console which means super access. right?
But it says permission denied for certain commands like “ifconfig”, “cd” to some directories.
Hi,
Yes, being root doesn’t give you all the permissions. Please make sure to read our wiki:
https://boundarydevices.com/wiki/operating-systems/#contentlink4
Especially this article:
https://boundarydevices.com/android-security-part-3-security-enhanced-linux-in-android/
Regards