天嵌 ARM开发社区

 找回密码
 注册
查看: 3540|回复: 3

TQIMX6Q教程——内核启动与文件系统挂载

[复制链接]
freewing 发表于 2015-7-27 11:44:10 | 显示全部楼层 |阅读模式
  经过前面的移植,u-boot已经有能力启动内核了,本文主要来看下如何通过之前移植的u-boot来启动内核。如果按照前面的文章完成了LTIB的编译,那么,Linux的内核应该就会出现rpm/BUILD/目录下,接下来,我们就开始移植这个3.0.35版本的内核到TQIMX6Q


  内核的编译
  为了简化内核编译的过程,可以在内核目录下创建编译脚本,命名为build.sh,内容如下:
  1. <font face="微软雅黑">#!/bin/sh  
  2.   
  3. export ARCH=arm  
  4. export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-  
  5. make uImage -j8  </font>
复制代码


  为该脚本添加可执行权限:
  1. <font face="微软雅黑">chmod a+x build.sh  </font>
复制代码


  由于本文使用的内核镜像格式是uImage,因此会依赖u-boot编译时生成的工具——mkimage。该工具为u-boot目录的tools子目录下,可以将mkimage拷贝到/usr/bin或者/usr/local/bin目录下,当然也可以是用环境变量PATH,方法如下:
  1. <font face="微软雅黑">export PATH=$PATH:~/Projects/imx6/L3.0.35_4.1.0/ltib/rpm/BUILD/u-boot-2009.8/tools  </font>
复制代码


  安装路径需要根据自己的实际情况填写。完成以上操作之后就可以编译内核了,执行脚本程序:
  1. <font face="微软雅黑">./build.sh  </font>
复制代码


  内核的编译时间较长,需耐心等待,也与机器的配置有关。




  内核启动尝试

  内核编译完成后,uImage会出现在arch/arm/boot/目录下,将该镜像烧写到SD卡:
  1. <font face="微软雅黑">sudo dd if=arch/arm/boot/uImage of=/dev/sdb bs=512 seek=2048  
  2. sync  </font>
复制代码


  然后用SD卡启动开发板,按任意键打断u-boot启动,进入命令行,修改u-boot环境变量:
  1. <font face="微软雅黑">setenv bootargs_base 'setenv bootargs console=ttymxc0,115200'  
  2. setenv bootargs_mmc 'setenv bootargs ${bootargs} root=/dev/mmcblk1p1 rootwait rw'  
  3. setenv bootcmd_mmc 'run bootargs_base bootargs_mmc; mmc dev 1; mmc read ${loadaddr} 0x800 0x2000; bootm'  
  4. setenv bootcmd 'run bootcmd_mmc'  
  5. saveenv  </font>
复制代码


  以上指令的含义:
  1. <font face="微软雅黑">第一条:bootargs_base,维持默认状态,作用是在bootargs中指定串口终端及波特率。  
  2. 第二条:bootargs_mmc,是MMC方式启动内核使用的bootargs特有参数。  
  3. 第三条:bootcmd_mmc,是MMC方式启动特有的命令组合。  
  4. 第四条:bootcmd是内核启动命令。  
  5. 第五条:保存env到SD存储介质。 </font>
复制代码


  完成之后执行命令:
  1. <font face="微软雅黑">boot</font>
复制代码


  或者重新上电开发板就可以启动内核了。




  内核的修改

  通过上面的设置,u-boot已经可以引导内核启动了,但是,内核启动后仅打印了一部分log,猜测是内核中UART的GPIO管脚配置不正确,开始一段log能打印出来是因为u-boot阶段配置好了UART,而内核中又将这两个引脚配置为其它用途了。首先来解决串口log问题,打开文件arch/arm/mach-mx6/board-mx6q_sabresd.h并作如下修改:
  1. <font face="微软雅黑">... ...  
  2. /* UART1 for debug */  
  3. // MX6Q_PAD_CSI0_DAT10__UART1_TXD,  
  4. MX6Q_PAD_SD3_DAT7__UART1_TXD,  
  5. // MX6Q_PAD_CSI0_DAT11__UART1_RXD,  
  6. MX6Q_PAD_SD3_DAT6__UART1_RXD,  
  7. ... ...  </font>
复制代码


  其实,u-boot已经作过相应的修改,修改UART1相关的配置信息,除了以上修改之外,还需要将SD3与串口冲突的两个引脚:
  1. <font face="微软雅黑">/* USDHC3 */  
  2. MX6Q_PAD_SD3_CLK__USDHC3_CLK_50MHZ,  
  3. MX6Q_PAD_SD3_CMD__USDHC3_CMD_50MHZ,  
  4. MX6Q_PAD_SD3_DAT0__USDHC3_DAT0_50MHZ,  
  5. MX6Q_PAD_SD3_DAT1__USDHC3_DAT1_50MHZ,  
  6. MX6Q_PAD_SD3_DAT2__USDHC3_DAT2_50MHZ,  
  7. MX6Q_PAD_SD3_DAT3__USDHC3_DAT3_50MHZ,  
  8. // MX6Q_PAD_SD3_DAT4__USDHC3_DAT4_50MHZ,  
  9. // MX6Q_PAD_SD3_DAT5__USDHC3_DAT5_50MHZ,  
  10. // MX6Q_PAD_SD3_DAT6__USDHC3_DAT6_50MHZ,  
  11. // MX6Q_PAD_SD3_DAT7__USDHC3_DAT7_50MHZ,  
  12. MX6Q_PAD_NANDF_D0__GPIO_2_0,      /* SD3_CD */  
  13. MX6Q_PAD_NANDF_D1__GPIO_2_1,      /* SD3_WP */  </font>
复制代码

  注释掉以上四行。保存后重新编译内核并烧写到SD卡,重新启动开发板会发现内核已经可以正常打印启动Log了。接下来将LTIB编译生成的rootfs烧写到开发板,并使用编译好的内核挂载该文件系统。




  挂载文件系统
  文件系统的构建方式都差不多,这里就不再自己构建了,直接使用LTIB编译时生成的文件系统。
  将SD卡插ubunut上,对该SD卡进行分区:
  1. <font face="微软雅黑">sudo fdisk /dev/sdb  </font>
复制代码


  然后如下操作:
  Step1: 通过指令u切换到sectors模式。输入u后回车,fdisk会在sectors模式和cylinders模式间切换,这里切换到sectors模式。
  Step2:通过d指令删除原来的分区。重复的输入d并回车,可以删除SD卡原有的分区,知道没有任何分区为止。
  Step3:通过n指令新建分区。输入n并回车。
  Step4:输入分区编号。这里输入数字1。
  Step5:输入分区的起始位置。该位置是sectors为单位的,每个sector的大小为512B,这里偏移8M,给内核留下足够的存储空间,输入16384并回车。
  Step6:输入分区的结束为止。直接使用默认值,即到达SD卡的末尾,故直接回车即可。
  Step7:保存分区信息。输入指令w并回车。

  这样就完成了SD卡的分区,接下来需要将该分区格式化为ext3或者ext4,指令如下:
  1. <font face="微软雅黑">sudo mkfs.ext3 /dev/sdb1  
  2. 或者  
  3. sudo mkfs.ext4 /dev/sdb1 </font>
复制代码


  最后,将文件系统拷贝到该分区,进入ltib目录下的rootfs文件夹,然后执行如下指令:
  1. <font face="微软雅黑">sudo mount /dev/sdb1 /mnt  
  2. sudo cp -a * /mnt  </font>
复制代码

  也可以重新拔插SD卡,将rootfs内的文件拷贝到ubunut挂载的分区。

  如果rootfs是压缩包,则可以解压到SD卡分区,比如bzip的压缩包,可以如下处理:
  1. <font face="微软雅黑">sudo tar jxf rootfs.tar.bz2 -C /mnt  
  2. sudo mv /mnt/rootfs/* /mnt </font>
复制代码


  不过一般不用这么麻烦,直接用前面的方式拷贝即可。拷贝完成后执行sync指令,然后将SD插到开发板上启动开发板。启动时发现内核并没有成功挂载上rootfs文件系统,且根本没有识别到SD卡,因此,猜测是SD相关的引脚配置不正确。通过查阅原理图及内核源码文件可知,代码中配置的uSDHC2的WP和CD引脚与TQIMX6Q的连接方式不一致,因此,需要作如下修改:

  Step1:打开arch/arm/mach-mx6/board-mx6q_sabresd.h,作如下修改:
  1. <font face="微软雅黑">/* USDHC2 */  
  2. MX6Q_PAD_SD2_CLK__USDHC2_CLK,  
  3. MX6Q_PAD_SD2_CMD__USDHC2_CMD,  
  4. MX6Q_PAD_SD2_DAT0__USDHC2_DAT0,  
  5. MX6Q_PAD_SD2_DAT1__USDHC2_DAT1,  
  6. MX6Q_PAD_SD2_DAT2__USDHC2_DAT2,  
  7. MX6Q_PAD_SD2_DAT3__USDHC2_DAT3,  
  8. // MX6Q_PAD_NANDF_D4__USDHC2_DAT4,  
  9. // MX6Q_PAD_NANDF_D5__USDHC2_DAT5,  
  10. // MX6Q_PAD_NANDF_D6__USDHC2_DAT6,  
  11. // MX6Q_PAD_NANDF_D7__USDHC2_DAT7,  
  12. // MX6Q_PAD_NANDF_D2__GPIO_2_2,  /* SD2_CD */  
  13. MX6Q_PAD_GPIO_2__USDHC2_WP,  
  14. // MX6Q_PAD_NANDF_D3__GPIO_2_3,  /* SD2_WP */  
  15. MX6Q_PAD_GPIO_4__USDHC2_CD,  </font>
复制代码

  Step2:打开arch/arm/mach-mx6/board-mx6q_sabresd.c,作如下修改:
  1. <font face="微软雅黑">#define SABRESD_SD2_CD          IMX_GPIO_NR(1, 4)  
  2. #define SABRESD_SD2_WP          IMX_GPIO_NR(1, 2)  </font>
复制代码

  即将SD2_CD的引脚号修改为GPIO1_4和GPIO1_2。
  按照以上步骤修改内核后重新编译并烧写到SD卡,然后使用SD卡启动开发板。



  效果展示
  按照上面的步骤修改后内核就可以正常启动了,下面是启动Log:
  1. U-Boot 2009.08-dirty ( 3月 23 2015 - 23:14:02)  
  2.   
  3. CPU: Freescale i.MX6 family TO1.2 at 792 MHz  
  4. Thermal sensor with ratio = 174  
  5. Temperature:   23 C, calibration data 0x54e4bb69  
  6. mx6q pll1: 792MHz  
  7. mx6q pll2: 528MHz  
  8. mx6q pll3: 480MHz  
  9. mx6q pll8: 50MHz  
  10. ipg clock     : 66000000Hz  
  11. ipg per clock : 66000000Hz  
  12. uart clock    : 80000000Hz  
  13. cspi clock    : 60000000Hz  
  14. ahb clock     : 132000000Hz  
  15. axi clock   : 264000000Hz  
  16. emi_slow clock: 132000000Hz  
  17. ddr clock     : 528000000Hz  
  18. usdhc1 clock  : 198000000Hz  
  19. usdhc2 clock  : 198000000Hz  
  20. usdhc3 clock  : 198000000Hz  
  21. usdhc4 clock  : 198000000Hz  
  22. nfc clock     : 24000000Hz  
  23. Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [POR ]  
  24. Boot Device: SD  
  25. I2C:   ready  
  26. DRAM:   1 GB  
  27. MMC:   FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3  
  28. In:    serial  
  29. Out:   serial  
  30. Err:   serial  
  31. Net:   got MAC address from IIM: 00:00:00:00:00:00  
  32. FEC0 [PRIME]  
  33. Hit any key to stop autoboot:  0   
  34. mmc1 is current device  
  35.   
  36. MMC read: dev # 1, block # 2048, count 8192 ... 8192 blocks read: OK  
  37. ## Booting kernel from Legacy Image at 10800000 ...  
  38.    Image Name:   Linux-3.0.35-2666-gbdde708-g3344  
  39.    Image Type:   ARM Linux Kernel Image (uncompressed)  
  40.    Data Size:    3866004 Bytes =  3.7 MB  
  41.    Load Address: 10008000  
  42.    Entry Point:  10008000  
  43.    Verifying Checksum ... OK  
  44.    Loading Kernel Image ... OK  
  45. OK  
  46.   
  47. Starting kernel ...  
  48.   
  49. Uncompressing Linux... done, booting the kernel.  
  50. Linux version 3.0.35-2666-gbdde708-g334422e-dirty (lilianrong@ubuntu) (gcc version 4.6.2 20110630 (prerelease) (Freescale MAD -- Linaro 2011.07 -- Built at 2011/08/10 09:20) ) #5 SMP PREEMPT Wed Mar 25 19:29:24 CST 2015  
  51. CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d  
  52. CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache  
  53. Machine: Freescale i.MX 6Quad/DualLite/Solo Sabre-SD Board  
  54. Ignoring unrecognised tag 0x54410008  
  55. Memory policy: ECC disabled, Data cache writealloc  
  56. CPU identified as i.MX6Q, silicon rev 1.2  
  57. PERCPU: Embedded 7 pages/cpu @8c008000 s5440 r8192 d15040 u32768  
  58. Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 194560  
  59. Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk1p1 rootwait rw  
  60. PID hash table entries: 4096 (order: 2, 16384 bytes)  
  61. Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)  
  62. Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)  
  63. Memory: 512MB 256MB = 768MB total  
  64. Memory: 765764k/765764k available, 282812k reserved, 0K highmem  
  65. Virtual kernel memory layout:  
  66.     vector  : 0xffff0000 - 0xffff1000   (   4 kB)  
  67.     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)  
  68.     DMA     : 0xf4600000 - 0xffe00000   ( 184 MB)  
  69.     vmalloc : 0xc0800000 - 0xf2000000   ( 792 MB)  
  70.     lowmem  : 0x80000000 - 0xc0000000   (1024 MB)  
  71.     pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)  
  72.     modules : 0x7f000000 - 0x7fe00000   (  14 MB)  
  73.       .init : 0x80008000 - 0x8003c000   ( 208 kB)  
  74.       .text : 0x8003c000 - 0x80a8f8f4   (10575 kB)  
  75.       .data : 0x80a90000 - 0x80af3e00   ( 400 kB)  
  76.        .bss : 0x80af3e24 - 0x80b41d4c   ( 312 kB)  
  77. SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=4, Nodes=1  
  78. Preemptible hierarchical RCU implementation.  
  79. NR_IRQS:624  
  80. MXC GPIO hardware  
  81. sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms  
  82. arm_max_freq=1GHz  
  83. MXC_Early serial console at MMIO 0x2020000 (options '115200')  
  84. bootconsole [ttymxc0] enabled  
  85. Console: colour dummy device 80x30  
  86. Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)  
  87. pid_max: default: 32768 minimum: 301  
  88. Mount-cache hash table entries: 512  
  89. CPU: Testing write buffer coherency: ok  
  90. hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available  
  91. CPU1: Booted secondary processor  
  92. CPU2: Booted secondary processor  
  93. CPU3: Booted secondary processor  
  94. Brought up 4 CPUs  
  95. SMP: Total of 4 processors activated (6324.22 BogoMIPS).  
  96. print_constraints: dummy:   
  97. NET: Registered protocol family 16  
  98. print_constraints: vddpu: 725 <--> 1300 mV at 700 mV fast normal   
  99. print_constraints: vddcore: 725 <--> 1300 mV at 1150 mV fast normal   
  100. print_constraints: vddsoc: 725 <--> 1300 mV at 1200 mV fast normal   
  101. print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast normal   
  102. print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast normal   
  103. print_constraints: vdd3p0: 2625 <--> 3400 mV at 3000 mV fast normal   
  104. hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.  
  105. hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-step.  
  106. hw-breakpoint: maximum watchpoint size is 4 bytes.  
  107. L310 cache controller enabled  
  108. l2x0: 16 ways, CACHE_ID 0x410000c7, AUX_CTRL 0x02070000, Cache size: 1048576 B  
  109. bio: create slab <bio-0> at 0  
  110. mxs-dma mxs-dma-apbh: initialized  
  111. print_constraints: SPKVDD: 4200 mV   
  112. print_constraints: vmmc: 3300 mV   
  113. SCSI subsystem initialized  
  114. spi_imx imx6q-ecspi.0: probed  
  115. usbcore: registered new interface driver usbfs  
  116. usbcore: registered new interface driver hub  
  117. usbcore: registered new device driver usb  
  118. Freescale USB OTG Driver loaded, $Revision: 1.55 [        DISCUZ_CODE_33        ]nbsp;
  119. mc_pfuze 1-0008: recv failed!:-5,80  
  120. mc_pfuze: probe of 1-0008 failed with error -1  
  121. imx-ipuv3 imx-ipuv3.0: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)  
  122. imx-ipuv3 imx-ipuv3.1: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)  
  123. mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 driver probed  
  124. mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 dphy version is 0x3130302a  
  125. MIPI CSI2 driver module loaded  
  126. Advanced Linux Sound Architecture Driver Version 1.0.24.  
  127. Bluetooth: Core ver 2.16  
  128. NET: Registered protocol family 31  
  129. Bluetooth: HCI device and connection manager initialized  
  130. Bluetooth: HCI socket layer initialized  
  131. Bluetooth: L2CAP socket layer initialized  
  132. Bluetooth: SCO socket layer initialized  
  133. cfg80211: Calling CRDA to update world regulatory domain  
  134. max17135 2-0048: PMIC MAX17135 for eInk display  
  135. i2c-core: driver [max17135] using legacy suspend method  
  136. i2c-core: driver [max17135] using legacy resume method  
  137. Switching to clocksource mxc_timer1  
  138. NET: Registered protocol family 2  
  139. IP route cache hash table entries: 32768 (order: 5, 131072 bytes)  
  140. TCP established hash table entries: 131072 (order: 8, 1048576 bytes)  
  141. TCP bind hash table entries: 65536 (order: 7, 786432 bytes)  
  142. TCP: Hash tables configured (established 131072 bind 65536)  
  143. TCP reno registered  
  144. UDP hash table entries: 512 (order: 2, 16384 bytes)  
  145. UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)  
  146. NET: Registered protocol family 1  
  147. RPC: Registered named UNIX socket transport module.  
  148. RPC: Registered udp transport module.  
  149. RPC: Registered tcp transport module.  
  150. RPC: Registered tcp NFSv4.1 backchannel transport module.  
  151. PMU: registered new PMU device of type 0  
  152. Static Power Management for Freescale i.MX6  
  153. wait mode is enabled for i.MX6  
  154. cpaddr = c0880000 suspend_iram_base=c091c000  
  155. PM driver module loaded  
  156. IMX usb wakeup probe  
  157. add wake up source irq 75  
  158. IMX usb wakeup probe  
  159. cpu regulator mode:ldo_enable  
  160. i.MXC CPU frequency driver  
  161. JFFS2 version 2.2. (NAND) &#169; 2001-2006 Red Hat, Inc.  
  162. msgmni has been set to 1495  
  163. alg: No test for stdrng (krng)  
  164. io scheduler noop registered  
  165. io scheduler deadline registered  
  166. io scheduler cfq registered (default)  
  167. mxc_mipi_dsi mxc_mipi_dsi: i.MX MIPI DSI driver probed  
  168. MIPI DSI driver module loaded  
  169. mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver ldb  
  170. _regulator_get: get() with no identifier  
  171. imx-ipuv3 imx-ipuv3.1: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)  
  172. Console: switching to colour frame buffer device 128x48  
  173. mxc_sdc_fb mxc_sdc_fb.1: register mxc display driver ldb  
  174. mxc_sdc_fb mxc_sdc_fb.2: register mxc display driver lcd  
  175. mxc_sdc_fb mxc_sdc_fb.3: register mxc display driver ldb  
  176. mxc_sdc_fb mxc_sdc_fb.3: ipu1-di0 already in use  
  177. mxc_sdc_fb: probe of mxc_sdc_fb.3 failed with error -16  
  178. imx-sdma imx-sdma: loaded firmware 1.1  
  179. imx-sdma imx-sdma: initialized  
  180. Serial: IMX driver  
  181. imx-uart.2: ttymxc2 at MMIO 0x21ec000 (irq = 60) is a IMX  
  182. imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX  
  183. console [ttymxc0] enabled, bootconsole disabled  
  184. console [ttymxc0] enabled, bootconsole disabled  
  185. loop: module loaded  
  186. No sata disk.  
  187. m25p80 spi0.0: unrecognized JEDEC id ffffff  
  188. GPMI NAND driver registered. (IMX)  
  189. vcan: Virtual CAN interface driver  
  190. CAN device driver interface  
  191. flexcan netdevice driver  
  192. FEC Ethernet Driver  
  193. fec_enet_mii_bus: probed  
  194. ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver  
  195. fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller  
  196. fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1  
  197. fsl-ehci fsl-ehci.0: irq 75, io base 0x02184000  
  198. fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00  
  199. hub 1-0:1.0: USB hub found  
  200. hub 1-0:1.0: 1 port detected  
  201. add wake up source irq 72  
  202. fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller  
  203. fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2  
  204. fsl-ehci fsl-ehci.1: irq 72, io base 0x02184200  
  205. fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00  
  206. hub 2-0:1.0: USB hub found  
  207. hub 2-0:1.0: 1 port detected  
  208. Initializing USB Mass Storage driver...  
  209. usbcore: registered new interface driver usb-storage  
  210. USB Mass Storage support registered.  
  211. ARC USBOTG Device Controller driver (1 August 2005)  
  212. mousedev: PS/2 mouse device common for all mice  
  213. input: gpio-keys as /devices/platform/gpio-keys/input/input0  
  214. input: max11801_ts as /devices/platform/imx-i2c.1/i2c-1/1-0048/input/input1  
  215. egalax_ts 1-0004: egalax_ts: failed to read firmware version  
  216. egalax_ts: probe of 1-0004 failed with error -5  
  217. egalax_ts 2-0004: egalax_ts: failed to read firmware version  
  218. egalax_ts: probe of 2-0004 failed with error -5  
  219. elan - Read Hello Packet Failed  
  220. elan-touch: probe of 2-0010 failed with error -22  
  221. i2c-core: driver [isl29023] using legacy suspend method  
  222. i2c-core: driver [isl29023] using legacy resume method  
  223. snvs_rtc snvs_rtc.0: rtc core: registered snvs_rtc as rtc0  
  224. i2c /dev entries driver  
  225. Linux video capture interface: v2.00  
  226. mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video16  
  227. mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video17  
  228. mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video18  
  229. mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video19  
  230. mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video20  
  231. mag3110 2-000e: check mag3110 chip ID  
  232. mag3110 2-000e: read chip ID 0xfffffffb is not equal to 0xc4!  
  233. mag3110: probe of 2-000e failed with error -22  
  234. i2c-core: driver [mag3110] using legacy suspend method  
  235. i2c-core: driver [mag3110] using legacy resume method  
  236. mma8451 0-001c: read chip ID 0x1 is not equal to 0x1a or 0x2a!  
  237. mma8451: probe of 0-001c failed with error -22  
  238. imx2-wdt imx2-wdt.0: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=1)  
  239. Bluetooth: Virtual HCI driver ver 1.3  
  240. Bluetooth: HCI UART driver ver 2.2  
  241. Bluetooth: HCIATH3K protocol initialized  
  242. Bluetooth: Generic Bluetooth USB driver ver 0.6  
  243. usbcore: registered new interface driver btusb  
  244. sdhci: Secure Digital Host Controller Interface driver  
  245. sdhci: Copyright(c) Pierre Ossman  
  246. mmc0: SDHCI controller on platform [sdhci-esdhc-imx.3] using DMA  
  247. sdhci sdhci-esdhc-imx.1: no card-detect pin available!  
  248. mmc1: SDHCI controller on platform [sdhci-esdhc-imx.1] using DMA  
  249. mmc2: SDHCI controller on platform [sdhci-esdhc-imx.2] using DMA  
  250. mxc_vdoa mxc_vdoa: i.MX Video Data Order Adapter(VDOA) driver probed  
  251. VPU initialized  
  252. mxc_asrc registered  
  253. Galcore version 4.6.9.6622  
  254. Thermal calibration data is 0x54e4bb69  
  255. Thermal sensor with ratio = 174  
  256. Anatop Thermal registered as thermal_zone0  
  257. anatop_thermal_probe: default cooling device is cpufreq!  
  258. leds-gpio: probe of leds-gpio failed with error -16  
  259. usbcore: registered new interface driver usbhid  
  260. usbhid: USB HID core driver  
  261. usbcore: registered new interface driver snd-usb-audio  
  262. mxc_hdmi_soc mxc_hdmi_soc.0: MXC HDMI Audio  
  263. Cirrus Logic CS42888 ALSA SoC Codec Driver  
  264. i2c-core: driver [cs42888] using legacy suspend method  
  265. i2c-core: driver [cs42888] using legacy resume method  
  266. imx-hdmi-soc-dai imx-hdmi-soc-dai.0: Failed: Load HDMI-video first.  
  267. wm8962 0-001a: Failed to get supply 'DCVDD': -19  
  268. wm8962 0-001a: Failed to request supplies: -19  
  269. wm8962 0-001a: asoc: failed to probe CODEC wm8962.0-001a: -19  
  270. asoc: failed to instantiate card wm8962-audio: -19  
  271. mmc0: new high speed DDR MMC card at address 0001  
  272. mmcblk0: mmc0:0001 008G92 7.28 GiB   
  273. mmcblk0boot0: mmc0:0001 008G92 partition 1 4.00 MiB  
  274. mmcblk0boot1: mmc0:0001 008G92 partition 2 4.00 MiB  
  275. mmcblk0: p1 p2 p3 < p5 p6 p7 p8 > p4  
  276. imx_3stack asoc driver  
  277. mmcblk0boot1: unknown partition table  
  278. Initialize HDMI-audio failed. Load HDMI-video first!  
  279. ALSA device list:  
  280.   No soundcards found.  
  281. NET: Registered protocol family 26  
  282. TCP cubic registered  
  283. NET: Registered protocol family 17  
  284. can: controller area network core (rev 20090105 abi 8)  
  285. NET: Registered protocol family 29  
  286. can: raw protocol (rev 20090105)  
  287. can: broadcast manager protocol (rev 20090105 t)  
  288. Bluetooth: RFCOMM TTY layer initialized  
  289. Bluetooth: RFCOMM socket layer initialized  
  290. Bluetooth: RFCOMM ver 1.11  
  291. Bluetooth: BNEP (Ethernet Emulation) ver 1.3  
  292. Bluetooth: BNEP filters: protocol multicast  
  293. Bluetooth: HIDP (Human Interface Emulation) ver 1.2  
  294. lib80211: common routines for IEEE802.11 drivers  
  295. VFP support v0.3:   
  296. implementor 41 architecture 3 part 30 variant 9 rev 4  
  297. mmcblk0boot0: unknown partition table  
  298. Bus freq driver module loaded  
  299. Bus freq driver Enabled  
  300. mxc_dvfs_core_probe  
  301. DVFS driver module loaded  
  302. regulator_init_complete: SPKVDD: incomplete constraints, leaving on  
  303. snvs_rtc snvs_rtc.0: setting system clock to 1970-01-01 00:46:38 UTC (2798)  
  304. Waiting for root device /dev/mmcblk1p1...  
  305. mmc1: new high speed SDHC card at address e624  
  306. mmcblk1: mmc1:e624 SS08G 7.40 GiB   
  307. mmcblk1: p1  
  308. EXT3-fs: barriers not enabled  
  309. kjournald starting.  Commit interval 5 seconds  
  310. EXT3-fs (mmcblk1p1): using internal journal  
  311. EXT3-fs (mmcblk1p1): recovery complete  
  312. EXT3-fs (mmcblk1p1): mounted filesystem with writeback data mode  
  313. VFS: Mounted root (ext3 filesystem) on device 179:25.  
  314. Freeing init memory: 208K  
  315. starting pid 1401, tty '': '/etc/rc.d/rcS'  
  316. Mounting /proc and /sys   
  317. Starting the hotplug events dispatcher udevd  
  318. udevd (1410): /proc/1410/oom_adj is deprecated, please use /proc/1410/oom_score_adj instead.  
  319. Synthesizing initial hotplug events  
  320. Setting the hostname to freescale  
  321. Mounting filesystems  
  322. cp: write error: No space left on device  
  323. cp: write error: No space left on device  
  324. cp: write error: No space left on device  
  325. cp: write error: No space left on device  
  326. cp: write error: No space left on device  
  327. cp: write error: No space left on device  
  328. mount: mounting usbfs on /proc/bus/usb failed: No such file or directory  
  329. starting pid 3114, tty '': '/etc/rc.d/rc_gpu.S'  
  330. starting pid 3120, tty '': '/etc/rc.d/rc_mxc.S'  
  331.   
  332. arm-none-linux-gnueabi-gcc (Freescale MAD -- Linaro 2011.07 -- Built at 2011/08/10 09:20) 4.6.2 20110630 (prerelease)  
  333. root filesystem built on Sun, 15 Mar 2015 14:27:16 +0800  
  334. Freescale Semiconductor, Inc.  
  335.   
  336. freescale login: root  
  337. login[3122]: root login on 'ttymxc0'  
  338. root@freescale ~[        DISCUZ_CODE_33        ]nbsp;  
  339. root@freescale ~$ cd /  
  340. root@freescale /$ ls  
  341. bin         etc         lost+found  proc        share       unit_tests  
  342. boot        home        mnt         root        sys         usr  
  343. dev         lib         opt         sbin        tmp         var  
  344. root@freescale /[        DISCUZ_CODE_33        ]nbsp;
复制代码


  总结

  基于Freescale官方维护的内核进行移植有非常详细的文档可以参考,而且还可以参考天嵌移植的代码,学习起来比较轻松,业余时间搞搞还是很不错的。以上有什么问题可以留言讨论。


相关产品:
http://www.embedsky.com/index.php?s=/Product/show/id/83.html
http://www.embedsky.com/index.php?s=/Product/show/id/73.html




kxj 发表于 2015-8-10 11:28:44 | 显示全部楼层
学习了,希望后续能有更多的教程出来。
zwpxts2008 发表于 2015-11-3 13:02:10 | 显示全部楼层
好多,没看懂
changyuezh 发表于 2016-3-29 17:18:29 | 显示全部楼层
如何挂载yaffs2文件系统呢?请指教
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-4 23:12 , Processed in 1.031250 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表