Hello together
I work with the MCIMX6Q-SDB, the board runs well with android image on the sd card.
My next steps:
- Install Ubuntu 9.04 like "Setting up a Linux Host for LTIB Builds on Ubuntu 9.04"
- Installing LTIB like "User manual"
- Creating SD Cart like "Using a Linux Host to Set Up an SD/MMC Card"
After booting the following output occurs:
U-Boot 2009.08 (Apr 17 2013 - 11:37:47)
CPU: Freescale i.MX6 family TO1.2 at 792 MHz
Temperature: 45 C, calibration data 0x5824c17d
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock : 66000000Hz
ipg per clock : 66000000Hz
uart clock : 80000000Hz
cspi clock : 60000000Hz
ahb clock : 132000000Hz
axi clock : 264000000Hz
emi_slow clock: 132000000Hz
ddr clock : 528000000Hz
usdhc1 clock : 198000000Hz
usdhc2 clock : 198000000Hz
usdhc3 clock : 198000000Hz
usdhc4 clock : 198000000Hz
nfc clock : 24000000Hz
Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [POR ]
Boot Device: SD
I2C: ready
DRAM: 1 GB
MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
*** Warning - bad CRC or MMC, using default environment
In: serial
Out: serial
Err: serial
i2c: I2C3 SDA is low, start i2c recovery...
I2C3 Recovery success
Found PFUZE100! deviceid=10,revid=11
Net: got MAC address from IIM: 00:04:9f:02:6a:66
FEC0 [PRIME]
Hit any key to stop autoboot: 0
PHY indentify @ 0x1 = 0x004dd074
FEC: Link is down 7949
Using FEC0 device
TFTP from server 192.168.1.101; our IP address is 192.168.1.103
Filename 'uImage'.
Load address: 0x10800000
Loading: FEC: Link is down 7949
FEC: Link is down 7949
FEC: Link is down 7949
FEC: Link is down 7949
FEC: Link is down 7949
FEC: Link is down 7949
Solved! Go to Solution.
Ok, Answer based on what Leonardo replied :
Thomas, you can boot your board via NFS, then check if /dev/mmcblk0 and /dev/mmcblk0p1 devives are both in path /dev/.
If they both exist , use command "mount /dev/mmcblk0p1 part1"(Let me you assume you have a part1 directory)
to mount device to system, see following :
--On console---
#cd /mnt
#mkdir part1
#mount /dev/mmcblk0p1 ./part1
#cd part1
then using ls command to check if rootfs is normal. If it is abnormal, you can re-copy it . in your HOST ubuntu, assume your NFS directory is /opt/nfsroot/, using mkdir command to create a temp director, such as temp_rootfs, and compress ~/ltib/rootfs/* to rootfs.tar.gz , then copy rootfs.tar.gz to ./temp_rootfs.
1. On Host ubuntu:
#cd /opt/nfsroot
#mkdir temp_rootfs
#cd temp_root
#cp -r ~/ltib/rootfs/rootfs.tar.gz ./
2. On Console:
---format partiion1 on mmcblk0----
#mke2fs -T ext4 /dev/block/mmcblk0p2 -o ^extent -L rootfs
#cd /mnt
#mount /dev/mmcblk0p1 ./part1
#cd ./part1
#tar --numeric-owner -zxvf /tem_rootfs/rootfs.tar.gz
<Decompress file system to mmcblk0p1 partition directly>
Then reboot your system ! Try it ,please !
Regards,
Weidong
Hello,Thomas,
It seems that the environment in u-boot has been set to boot from TFTP and NFS. But TFTP server and NFS server can't be found in your ubuntu host.
So I suggest you check environment setting in u-boot.
Regards,
Weidong
Thank you for your replies, unfortunately I had in the past few days no time for the board, but now I am faced with a new problem, have reconfigured the boot loader, now the rootfs seemingly cannot be loaded, I followed the User Guide exactly, enclose the error output during boot:
VFS: Cannot open root device "mmcblk0p1" or unknown-block(179,1)
Please append a correct "root=" boot option; here are the available partitions:
b300 7757824 mmcblk0 driver: mmcblk
b310 2048 mmcblk0boot1 (driver?)
b308 2048 mmcblk0boot0 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,1)
The output from printenv:
ECPU U-Boot > printenv
bootdelay=5
baudrate=115200
ipaddr=192.168.0.222
serverip=192.168.0.10
netmask=255.255.255.0
rd_loadaddr=(0x1300000)
netdev=eth0
ethprime=FEC0
uboot=u-boot.bin
kernel=uImage
nfsroot=/opt/eldk/arm
bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
bootcmd_net=run bootargs_base bootargs_nfs; tftpboot ${loadaddr} ${kernel}; bootm
ethact=FEC0
loadaddr=0x10800000
bootargs_mmc=setenv bootargs ${bootargs} root=/dev/mmcblk0p1 rootwait rw
bootcmd_mmc=run bootargs_base bootargs_mmc; mmc dev 2; mmc read ${loadaddr} 0x800 0x2000; bootm
bootcmd=run bootcmd_mmc
stdin=serial
stdout=serial
stderr=serial
bootargs_base=setenv bootargs console=ttymxc0,115200
Environment size: 698/8188 bytes
ECPU U-Boot >
Big thanks in advance!
have you tried setting root=/dev/mmcblk1p1? The device /dev/mmcblk1p1 represents the SD card, were the rootfs is locate.
Leo
Ok, Answer based on what Leonardo replied :
Thomas, you can boot your board via NFS, then check if /dev/mmcblk0 and /dev/mmcblk0p1 devives are both in path /dev/.
If they both exist , use command "mount /dev/mmcblk0p1 part1"(Let me you assume you have a part1 directory)
to mount device to system, see following :
--On console---
#cd /mnt
#mkdir part1
#mount /dev/mmcblk0p1 ./part1
#cd part1
then using ls command to check if rootfs is normal. If it is abnormal, you can re-copy it . in your HOST ubuntu, assume your NFS directory is /opt/nfsroot/, using mkdir command to create a temp director, such as temp_rootfs, and compress ~/ltib/rootfs/* to rootfs.tar.gz , then copy rootfs.tar.gz to ./temp_rootfs.
1. On Host ubuntu:
#cd /opt/nfsroot
#mkdir temp_rootfs
#cd temp_root
#cp -r ~/ltib/rootfs/rootfs.tar.gz ./
2. On Console:
---format partiion1 on mmcblk0----
#mke2fs -T ext4 /dev/block/mmcblk0p2 -o ^extent -L rootfs
#cd /mnt
#mount /dev/mmcblk0p1 ./part1
#cd ./part1
#tar --numeric-owner -zxvf /tem_rootfs/rootfs.tar.gz
<Decompress file system to mmcblk0p1 partition directly>
Then reboot your system ! Try it ,please !
Regards,
Weidong
Huge thanks to Weidong and Leonardo
Changing to root=/dev/mmcblk1p1 solves my issue!
Attached the working environment:
ECPU U-Boot > printenv
bootdelay=5
baudrate=115200
ipaddr=192.168.0.222
serverip=192.168.0.10
netmask=255.255.255.0
loadaddr=0x10800000
rd_loadaddr=(0x1300000)
netdev=eth0
ethprime=FEC0
uboot=u-boot.bin
kernel=uImage
nfsroot=/opt/eldk/arm
bootargs_base=setenv bootargs console=ttymxc0,115200
bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
bootcmd_net=run bootargs_base bootargs_nfs; tftpboot ${loadaddr} ${kernel}; bootm
bootargs_mmc=setenv bootargs ${bootargs} rootfstype=ext2 root=/dev/mmcblk1p1 rw rootwait
bootcmd_mmc=run bootargs_base bootargs_mmc; mmc dev 2; mmc read ${loadaddr} 0x800 0x2000; bootm
bootcmd=run bootcmd_mmc
stdin=serial
stdout=serial
stderr=serial
ethact=FEC0
Environment size: 714/8188 bytes
ECPU U-Boot >
@Weidong
I burned the SD Card on Ubundu command line with:
1. sudo dd if=u-boot.bin of=/dev/sdd bs=512 seek=2 skip=2 conv=fsync
2. sudo dd if=uImage of=/dev/sdd bs=512 seek=2048 conv=fsync
3. create sdd1 with fdisk
4. Format sdd1 with mkfs.ext2
5. copy rootfs to sdd1
(By the way this is the method from SABRE-SD Linux User's Guide)
Will deal also with the approach of your second answer!
Once again -> Many thanks!
Hello,Thomas,
How did you burn images into your sd card ? by MFG Tool2 ?
weidong
Hello Thomas,
did you have set up a tftp server which provides a kernel for your board? If not do it ! Or you have to set up u-boot to boot from e.g. sdcard.
Cheers
MaTT
Hello Matt
Thanks a lot, this means the board uses the uboot from the sd card, but the uboot from ltib is configured to load the kernel from net?
Thomas
Thomas - It looks like it. Stop u-boot by pressing any key and find the bootcmd_mmc command. I think you can run:
setenv bootcmd 'run bootcmd_mmc' saveenv
to boot from the SD card.