Cannot Boot from SD Card with Linux and i.MX6 SABRE

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Cannot Boot from SD Card with Linux and i.MX6 SABRE

Jump to solution
16,637 Views
kriszawada
Contributor III

I cannot figure out why the SABRE board does not boot from the SD Card when I put Linux on it.

I have been following the document named i.MX_6Dual6Quad_Sabre-AI_Linux_User's_Guide.pdf.  I've attached it at well.  The instructions are actually listed under "Chapter 8 Using a Linux Host to Set Up an SD/MMC Card".

The steps I followed are the following:

1) Got a new 8 GB Micro SD with SD Adapter

2) Plugged card into a Ubuntu desktop machine (Ubuntu 12.04.3 LTS) and plugged the card into the slot.  The card is recognized as  '/dev/sdb'.

3) Next, I called umount '/dev/sdb' to ensure that I could modify the partitions (NOTE: '/dev/sdb1' or '/dev/sdb2', etc.. were not mounted).

4) Executed command to write the bootloader binary image to disk (SD Card):

    sudo dd if=/home/user/Downloads/L3.0.35_4.1.0_130816_images_MX6/u-boot-mx6dl-sabreauto.bin of=/dev/sdb bs=512 seek=2 skip=2 conv=fsync

5) Executed command to copy the Linux OS image to disk (SD card):

    sudo dd if=/home/user/Downloads/L3.0.35_4.1.0_130816_images_MX6/uImage of=/dev/sdb bs=512 conv=fsync

6) Setup partitioning on the SD card by calling

    sudo fdisk /dev/sdb

6-a) Enter the 'u' key until terminal shows it has switched to sectors instead of cylinders ("Changing display/entry units to cylinders (DEPRECATED!)" -> "Changing display/entry units to sectors").

6-b) Enter the 'd' key until the terminal shows there are no more partitions ("No partition is defined yet!").

6-c) Enter the 'n' key to create a partition.

6-d) Enter the 'p' key to create a primary partition.

        Partition type:

            p   primary (0 primary, 0 extended, 4 free)

            e   extended

       Select (default p):

6-e) Enter the  '1' key to specify that it is the first partition.

        Partition number (1-4, default 1):

6-f) Specify 16384 for the first sector offset.

        First sector (2048-15564799, default 2048):

6-g) Nest, press the enter key to take the default value.

        Last sector, +sector or +size{K,M,G} (16384-15564799, default 15564799):

6-h) Press the 'w' key to write the partition table to SD card and exit the fdisk application.

7) Format the newly created partition using the following command:

    sudo mkfs.ext4 /dev/sdb1

8) Create a new directory.

    mkdir /home/user/mountpoint

9) Mount the new partition to that directory:

    sudo mount /dev/sdb1 /home/user/mountpoint

10) Unzip the root file system compressed file

    gunzip /home/user/Downloads/L3.0.35_4.1.0_130816_images_MX6/rootfs.ext2.gz

11) Create a new directory:

    mkdir /home/user/rootfs

12) Mount the uncompressed root file system to the directory

    sudo mount -o loop -t ext2 /home/user/Downloads/L3.0.35_4.1.0_130816_images_MX6/rootfs.ext2 /home/user/rootfs

13) Enter the newly created directory and with new mount point.

    cd /home/user/rootfs

14) Copy the file system contents to the new partition.

    sudo cp -a * /home/kzawada/mountpoint

15) Dismount the SD card partition and give it a little bit of time to finish writing all the data.

    sudo umount /home/kzawada/mountpoint

16) Unplug the SD Card once writing is finished and plug in to Freescale SABRE i.MX6 Series board.

17) Plug-in the USB Cable for debug and setup a terminal.

18) Plug in the power cord.

19) Press the reset button.

At this point there is no response at all on the debug board or indication the LCD screen that something is happening. 

I am able to boot from an SD card that contains Android and Windows Embedded Compact 7 on the same board.  This leads me to believe that the way the the SD card is written (MBR, partitions, etc...) is incorrect and the board cannot boot from this SD card.

What could be wrong with the procedure of programming the SD card?

Labels (2)
0 Kudos
1 Solution
6,701 Views
Yuri
NXP Employee
NXP Employee

1.
Under items 4) and 5) – looks like – “u-boot-mx6dl-sabreauto.bin” is rewritten
by uImage, assuming uImage size if greater than (512 x 2) bytes.

So, please try at first to write and boot only U-boot.

2.
It makes sense to use the recent Linux BSP (L3.14.28) for i.MX6, please refer

to the following Web.

http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=IMX6_SW

http://www.freescale.com/webapp/Download?colCode=L3.14.28_1.0.0_iMX6QDLS_BUNDLE

3.

  For the SABRE-SD You may use SD demo images (.sdcard fime extention), such as
"fsl-image-qt5-x11-imx6qdlsolo.sdcard".

Please use the next Linux command to deploy it to SD card :

$ sudo dd if= fsl-image-qt5-x11-imx6qdlsolo.sdcard of=/dev/sdb bs=1M


Have a great day,
Yuri

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
22 Replies
261 Views
kriszawada
Contributor III

Thanks Yuri.

You are right for BusyBox the login with "root" (with empty password) works great.

I also attached my terminal output for anyone else that is searching this forum.

0 Kudos
261 Views
kriszawada
Contributor III

I changed the first command to be:

sudo dd if=u-boot-mx6q-sabresd.bin of=/dev/sdb bs=512 seek=2 skip=2 conv=fsync

Mainly because I am using the SABRE-SD and not the SABRE-AI (Automotive) board.  Still the same outcome.  Nothing is happening and no debug output over USB-to-UART.

0 Kudos