开发环境
- win10 64位
- VMware Workstation Pro 16
- ubuntu 22.04
- 【迅为imx6q】开发板, 2G DDR
linux-imx 下载
-
使用 NXP 官方提供的 linux-imx,代码地址为: https://github.com/nxp-imx/linux-imx
-
使用 git 下载
linux-imx
,git clone https://github.com/nxp-imx/linux-imx
-
切换到想要的分支,我切换到:lf-5.15.y,也就是较新的Linux 5.15.71 版本,算是当前比较新的版本了
-
切换
linux-imx
代码 分支git checkout -b lf-5.15.y origin/lf-5.15.y
-
gcc 交叉编译工具链推荐:
gcc-arm-11.2-2022.02-x86_64-arm-none-linux-gnueabihf
,这个可以在 ARM 官方网站下载,较老或者较新的gcc 版本,可能编译会报错
新建 imx6q-topeet 设备树文件
-
当前新版本Linux 开发,不再需要创建一个 board 目录,而是通过创建 相应的设备树文件的方式,适配硬件电路板
-
新建 迅为imx6q 开发板设备树文件:
imx6q-topeet.dts
imx6qdl-topeet.dtsi
,可以拷贝一份,如
$ cp arch/arm/boot/dts/imx6q-sabresd.dts arch/arm/boot/dts/imx6q-topeet.dts
$ cp arch/arm/boot/dts/imx6qdl-sabresd.dtsi arch/arm/boot/dts/imx6qdl-topeet.dtsi
相关修改
一、 修改 `arch/arm/boot/dts/imx6q-topeet.dts``
- 主要是更改 include 文件,
#include "imx6qdl-sabresd.dtsi"
改为#include "imx6qdl-topeet.dtsi"
model = "Freescale i.MX6 Quad SABRE Smart Device Board";
compatible = "fsl,imx6q-sabresd", "fsl,imx6q";
改为
model = "Freescale i.MX6 Quad Topeet Smart Device Board";
compatible = "fsl,imx6q-topeet", "fsl,imx6q";
二、修改 arch/arm/boot/dts/imx6qdl-topeet.dtsi
文件
- 主要是 SD 卡的 cd 与 wp 引脚的修改
-
cd 引脚改为
cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
-
迅为imx6q 开发板 SD 卡没有 wp 写保护引脚,所以注释掉
wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
&usdhc2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc2>;
bus-width = <8>;
cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
status = "okay";
};
改为
&usdhc2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc2>;
bus-width = <8>;
cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
//wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
status = "okay";
};
三、修改 arch/arm/boot/dts/Makefile
- 增加 生成
imx6q-topeet.dtb
编译
-
编译方法比较的简单
-
编写 mk.sh 脚本
#!/bin/bash
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- $1 $2 $3 $4
-
编译脚本 增加 执行权限 :
chmod +x mk.sh
-
编译命令如下:
./mk.sh imx_v7_defconfig
./mk.sh -j8
- 编译生成的产物:
arch/arm/boot/zImage
arch/arm/boot/dts/imx6q-topeet.dtb
烧写到 sd 卡
-
首先 sd 卡需要分区,注意分区时,sd 卡前面预留一些空间,如 8MB,可以创建多个分区,并且使用 ext4 格式化
-
分区可以使用 ubuntu fdisk
-
如 32 G sd 卡分区如下
Device Boot Start End Sectors Size Id Type
/dev/sdc1 16384 81919 65536 32M 83 Linux
/dev/sdc2 81920 147455 65536 32M 83 Linux
/dev/sdc3 147456 8536063 8388608 4G 83 Linux
/dev/sdc4 8536064 62333951 53797888 25.7G 83 Linux
-
注意第一个分区: start 不是 0 开始,而是:16384 个 块,每个 块大小为 512,也就是 8M 预留空间
-
分区使用
mkfs.ext4
进行格式化,重新拔插 sd 卡,分区会挂载到 ubuntu 中的/media
目录下,如
zhangsz@zhangsz-virtual-machine:~/linux/imx6q/linux-imx_5.15.71$ df -l
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 810584 2180 808404 1% /run
/dev/sda3 308001632 71477756 220805272 25% /
tmpfs 4052904 0 4052904 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
vmhgfs-fuse 904497148 801675128 102822020 89% /mnt/hgfs
/dev/sda2 524252 5364 518888 2% /boot/efi
tmpfs 810580 2412 808168 1% /run/user/1000
/dev/sr0 129778 129778 0 100% /media/zhangsz/CDROM
/dev/sdc2 26596 8848 15460 37% /media/zhangsz/455d8c51-6af5-44ec-8060-a8ae8a85f2fc
/dev/sdc4 26299884 26472 24912084 1% /media/zhangsz/16729114-d269-46f5-8370-50e5b3a1971b
/dev/sdc1 26596 9504 14804 40% /media/zhangsz/d9f5098f-78b4-43c1-81f2-c558ef1fcffe
/dev/sdc3 4046560 26492 3793972 1% /media/zhangsz/ac8ba6b4-4928-40ff-9c42-8869cb0d123a
- 只需要 把 Linux 编译的产物:
arch/arm/boot/zImage
arch/arm/boot/dts/imx6q-topeet.dtb
分别复制到 第一个分区 ,如 /dev/sdc1
对应的 /media/zhangsz/d9f5098f-78b4-43c1-81f2-c558ef1fcffe
中即可
zhangsz@zhangsz-virtual-machine:~/linux/imx6q/linux-imx_5.15.71$ sudo cp arch/arm/boot/zImage /media/zhangsz/d9f5098f-78b4-43c1-81f2-c558ef1fcffe
zhangsz@zhangsz-virtual-machine:~/linux/imx6q/linux-imx_5.15.71$ sudo cp arch/arm/boot/dts/imx6q-topeet.dtb /media/zhangsz/d9f5098f-78b4-43c1-81f2-c558ef1fcffe
zhangsz@zhangsz-virtual-machine:~/linux/imx6q/linux-imx_5.15.71$ ls /media/zhangsz/d9f5098f-78b4-43c1-81f2-c558ef1fcffe
imx6q-topeet.dtb lost+found zImage
创建 根文件系统
-
使用 busybox 创建根文件系统,后面再写一篇,创建的方法其实大同小异
-
根文件系统创建后,把所有的文件,拷贝到 sd 的 第三个分区即可
启动Linux
-
u-boot 使用 【迅为iMX6Q】开发板 u-boot 2022.04 SD卡 启动 编译生成的, 版本 : 2022.04
-
设置 u-boot env 启动选项,重新开机或按重启按钮,回车进入 u-boot 命令行
/* 设置 bootargs,注意根文件系统 放置的分区, mmcblk1p3, blk1 表示 sd 卡设备号 1, 3代表 第三个分区 */
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p3 rootwait rw'
/* 设置 bootcmd ,注意linux zImage 与 设备树 dtb 存放的分区 mmc 1:1 */
setenv bootcmd 'ext4load mmc 1:1 0x18000000 imx6q-topeet.dtb; ext4load mmc 1:1 0x12000000 zImage; bootz 0x12000000 - 0x18000000'
/* 保存 env */
saveenv
/* 重启 */
reset
启动Linux 信息
-
正确读取设备树文件
imx6q-topeet.dtb
与 Linux 内核文件zImage
后,就可以 通过bootz 0x12000000 - 0x18000000
成功引导 Linux -
如果把根文件系统也放置到 sd 卡的 分区,就可以成功进入 Linux shell 终端了
U-Boot 2022.04-gdad04f4713 (Jan 07 2023 - 19:51:31 +0800)
CPU: i.MX6Q rev1.3 996 MHz (running at 792 MHz)
CPU: Extended Commercial temperature grade (-20C to 105C) at 37C
Reset cause: POR
Model: i.MX6 Quad Topeet Smart Device Board
DRAM: 2 GiB
Core: 80 devices, 19 uclasses, devicetree: separate
MMC: FSL_SDHC: 1, FSL_SDHC: 2, FSL_SDHC: 3
Loading Environment from MMC... OK
No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)
In: serial
Out: serial
Err: serial
SEC0: RNG instantiated
switch to partitions #0, OK
mmc1 is current device
flash target is MMC:1
Net: Could not get PHY for FEC0: addr 1
Could not get PHY for FEC0: addr 1
No ethernet found.
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
53408 bytes read in 6 ms (8.5 MiB/s)
9504552 bytes read in 458 ms (19.8 MiB/s)
Kernel image @ 0x12000000 [ 0x000000 - 0x910728 ]
## Flattened Device Tree blob at 18000000
Booting using the fdt blob at 0x18000000
Using Device Tree in place at 18000000, end 1801009f
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.15.71-g3e935c2ed688 (zhangsz@zhangsz-virtual-machine) (arm-none-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209) #4 SMP PREEMPT Sun Jan 8 00:02:49 CST 2023
[ 0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Freescale i.MX6 Quad Topeet Smart Device Board
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] Reserved memory: created CMA memory pool at 0x6c000000, size 320 MiB
[ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000010000000-0x000000007fffffff]
[ 0.000000] HighMem [mem 0x0000000080000000-0x000000008fffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000010000000-0x000000008fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000010000000-0x000000008fffffff]
[ 0.000000] percpu: Embedded 12 pages/cpu s17164 r8192 d23796 u49152
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 520256
[ 0.000000] Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk1p3 rootwait rw
[ 0.000000] Dentry cache hash table entries: 262144 (order: 8, 1048576 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 1728212K/2097152K available (12288K kernel code, 1339K rwdata, 4404K rodata, 1024K init, 432K bss, 41260K reserved, 327680K cma-reserved, 262144K highmem)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 0.000000] Trampoline variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] L2C-310 errata 752271 769419 enabled
[ 0.000000] L2C-310 enabling early BRESP for Cortex-A9
[ 0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[ 0.000000] L2C-310 ID prefetch enabled, offset 16 lines
[ 0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[ 0.000000] L2C-310 cache controller enabled, 16 ways, 1024 kB
[ 0.000000] L2C-310: CACHE_ID 0x410000c7, AUX_CTRL 0x76470001
[ 0.000000] Switching to timer-based delay loop, resolution 333ns
[ 0.000001] sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 715827882841ns
[ 0.000031] clocksource: mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 637086815595 ns
[ 0.001585] Console: colour dummy device 80x30
[ 0.001634] Calibrating delay loop (skipped), value calculated using timer frequency.. 6.00 BogoMIPS (lpj=30000)
[ 0.001656] pid_max: default: 32768 minimum: 301
[ 0.001900] Mount-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[ 0.001942] Mountpoint-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[ 0.002756] CPU: Testing write buffer coherency: ok
[ 0.002813] CPU0: Spectre v2: using BPIALL workaround
[ 0.003080] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.004140] Setting up static identity map for 0x10100000 - 0x10100060
[ 0.004309] rcu: Hierarchical SRCU implementation.
[ 0.004944] smp: Bringing up secondary CPUs ...
[ 0.005765] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.005780] CPU1: Spectre v2: using BPIALL workaround
[ 0.006687] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[ 0.006702] CPU2: Spectre v2: using BPIALL workaround
[ 0.007573] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[ 0.007590] CPU3: Spectre v2: using BPIALL workaround
[ 0.007703] smp: Brought up 1 node, 4 CPUs
[ 0.007722] SMP: Total of 4 processors activated (24.00 BogoMIPS).
[ 0.007737] CPU: All CPU(s) started in SVC mode.
[ 0.008250] devtmpfs: initialized
[ 0.017434] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[ 0.017677] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.017707] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[ 0.037160] pinctrl core: initialized pinctrl subsystem
[ 0.038919] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.047631] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.048758] thermal_sys: Registered thermal governor 'step_wise'
[ 0.049051] cpuidle: using governor menu
[ 0.049261] CPU identified as i.MX6Q, silicon rev 1.5
[ 0.066894] vdd3p0: supplied by regulator-dummy
[ 0.068354] mxs_phy 20c9000.usbphy: supply phy-3p0 not found, using dummy regulator
[ 0.068945] mxs_phy 20ca000.usbphy: supply phy-3p0 not found, using dummy regulator
[ 0.080019] platform 21dc000.mipi: Fixing up cyclic dependency with 20e0000.iomuxc-gpr:ipu2_csi1_mux
[ 0.080110] platform 21dc000.mipi: Fixing up cyclic dependency with 20e0000.iomuxc-gpr:ipu1_csi0_mux
[ 0.081409] platform 2400000.ipu: Fixing up cyclic dependency with ldb
[ 0.081500] platform 2400000.ipu: Fixing up cyclic dependency with 21e0000.mipi
[ 0.081574] platform 2400000.ipu: Fixing up cyclic dependency with 21dc000.mipi
[ 0.081649] platform 2400000.ipu: Fixing up cyclic dependency with 20e0000.iomuxc-gpr:ipu1_csi0_mux
[ 0.083843] platform 2800000.ipu: Fixing up cyclic dependency with ldb
[ 0.083940] platform 2800000.ipu: Fixing up cyclic dependency with 21e0000.mipi
[ 0.084026] platform 2800000.ipu: Fixing up cyclic dependency with 20e0000.iomuxc-gpr:ipu2_csi1_mux
[ 0.084105] platform 2800000.ipu: Fixing up cyclic dependency with 21dc000.mipi
[ 0.090324] No ATAGs?
[ 0.090479] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[ 0.090498] hw-breakpoint: maximum watchpoint size is 4 bytes.
[ 0.091491] imx6q-pinctrl 20e0000.pinctrl: initialized IMX pinctrl driver
[ 0.094259] imx mu driver is registered.
[ 0.094759] imx rpmsg driver is registered.
[ 0.109244] Kprobes globally optimized
[ 0.128173] vgaarb: loaded
[ 0.129048] SCSI subsystem initialized
[ 0.129535] usbcore: registered new interface driver usbfs
[ 0.129599] usbcore: registered new interface driver hub
[ 0.129647] usbcore: registered new device driver usb
[ 0.129780] usb_phy_generic usbphynop1: supply vcc not found, using dummy regulator
[ 0.129931] usb_phy_generic usbphynop1: dummy supplies not allowed for exclusive requests
[ 0.130084] usb_phy_generic usbphynop2: supply vcc not found, using dummy regulator
[ 0.130223] usb_phy_generic usbphynop2: dummy supplies not allowed for exclusive requests
[ 0.131386] gpio-155 (scl): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[ 0.132484] i2c i2c-0: IMX I2C adapter registered
[ 0.133264] gpio-108 (scl): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[ 0.135152] i2c i2c-1: IMX I2C adapter registered
[ 0.135904] gpio-3 (scl): enforced open drain please flag it properly in DT/ACPI DSDT/board file
[ 0.137043] i2c i2c-2: IMX I2C adapter registered
[ 0.137677] mc: Linux media interface: v0.10
[ 0.137726] videodev: Linux video capture interface: v2.00
[ 0.137826] pps_core: LinuxPPS API ver. 1 registered
[ 0.137841] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.137866] PTP clock support registered
[ 0.165839] imx-ipuv3 2400000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
[ 0.195835] imx-ipuv3 2800000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
[ 0.197472] mxc_vdoa 21e4000.vdoa: i.MX Video Data Order Adapter(VDOA) driver probed
[ 0.198211] mxc_mipi_csi2 21dc000.mipi: i.MX MIPI CSI2 driver probed
[ 0.198230] mxc_mipi_csi2 21dc000.mipi: i.MX MIPI CSI2 dphy version is 0x3130302a
[ 0.198800] MIPI CSI2 driver module loaded
[ 0.198851] Advanced Linux Sound Architecture Driver Initialized.
[ 0.200064] Bluetooth: Core ver 2.22
[ 0.200115] NET: Registered PF_BLUETOOTH protocol family
[ 0.200128] Bluetooth: HCI device and connection manager initialized
[ 0.200146] Bluetooth: HCI socket layer initialized
[ 0.200161] Bluetooth: L2CAP socket layer initialized
[ 0.200186] Bluetooth: SCO socket layer initialized
[ 0.200755] clocksource: Switched to clocksource mxc_timer1
[ 0.200953] VFS: Disk quotas dquot_6.6.0
[ 0.201045] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.208928] NET: Registered PF_INET protocol family
[ 0.209614] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[ 0.211554] tcp_listen_portaddr_hash hash table entries: 1024 (order: 1, 12288 bytes, linear)
[ 0.211659] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.211686] TCP established hash table entries: 16384 (order: 4, 65536 bytes, linear)
[ 0.211857] TCP bind hash table entries: 16384 (order: 5, 131072 bytes, linear)
[ 0.212169] TCP: Hash tables configured (established 16384 bind 16384)
[ 0.212398] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[ 0.212492] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[ 0.212755] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.213441] RPC: Registered named UNIX socket transport module.
[ 0.213460] RPC: Registered udp transport module.
[ 0.213472] RPC: Registered tcp transport module.
[ 0.213480] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.214441] PCI: CLS 0 bytes, default 64
[ 0.214800] armv7-pmu pmu: hw perfevents: no interrupt-affinity property, guessing.
[ 0.215041] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[ 0.217639] Bus freq driver module loaded
[ 0.218644] Initialise system trusted keyrings
[ 0.218885] workingset: timestamp_bits=14 max_order=19 bucket_order=5
[ 0.224415] NFS: Registering the id_resolver key type
[ 0.224507] Key type id_resolver registered
[ 0.224520] Key type id_legacy registered
[ 0.224603] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 0.224618] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[ 0.224658] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[ 0.225140] fuse: init (API version 7.34)
[ 0.323533] Key type asymmetric registered
[ 0.323555] Asymmetric key parser 'x509' registered
[ 0.323655] bounce: pool size: 64 pages
[ 0.323693] io scheduler mq-deadline registered
[ 0.323708] io scheduler kyber registered
[ 0.328873] pwm-backlight backlight-lvds: supply power not found, using dummy regulator
[ 0.333427] mxc_mipi_dsi 21e0000.mipi: i.MX MIPI DSI driver probed
[ 0.335361] mxc_hdmi 20e0000.hdmi_video: supply HDMI not found, using dummy regulator
[ 0.337867] mxc_sdc_fb fb@0: registered mxc display driver ldb
[ 0.370832] imx-ipuv3 2800000.ipu: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
[ 0.438429] Console: switching to colour frame buffer device 128x48
[ 0.474941] mxc_hdmi 20e0000.hdmi_video: Detected HDMI controller 0x13:0xa:0xa0:0xc1
[ 0.474980] fbcvt: 1920x1080@60: CVT Name - 2.073M9
[ 0.475082] mxc_sdc_fb fb@1: registered mxc display driver hdmi
[ 0.516097] mxc_sdc_fb fb@2: registered mxc display driver lcd
[ 0.516116] mxc_sdc_fb fb@2: ipu0-di0 already in use
[ 0.516134] mxc_sdc_fb: probe of fb@2 failed with error -16
[ 0.516208] mxc_sdc_fb fb@3: registered mxc display driver ldb
[ 0.530464] imx-sdma 20ec000.sdma: Direct firmware load for imx/sdma/sdma-imx6q.bin failed with error -2
[ 0.530487] imx-sdma 20ec000.sdma: Falling back to sysfs fallback for: imx/sdma/sdma-imx6q.bin
[ 0.532141] mxs-dma 110000.dma-apbh: initialized
[ 0.535878] pfuze100-regulator 1-0008: unrecognized pfuze chip ID!
[ 0.537526] 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 31, base_baud = 5000000) is a IMX
[ 1.634981] printk: console [ttymxc0] enabled
[ 1.641270] imx sema4 driver is registered.
[ 1.660143] brd: module loaded
[ 1.671034] loop: module loaded
[ 1.675776] ahci-imx 2200000.sata: fsl,transmit-level-mV not specified, using 00000024
[ 1.683749] ahci-imx 2200000.sata: fsl,transmit-boost-mdB not specified, using 00000480
[ 1.691780] ahci-imx 2200000.sata: fsl,transmit-atten-16ths not specified, using 00002000
[ 1.699967] ahci-imx 2200000.sata: fsl,receive-eq-mdB not specified, using 05000000
[ 1.707718] ahci-imx 2200000.sata: supply ahci not found, using dummy regulator
[ 1.715211] ahci-imx 2200000.sata: supply phy not found, using dummy regulator
[ 1.722518] ahci-imx 2200000.sata: supply target not found, using dummy regulator
[ 1.734421] ahci-imx 2200000.sata: SSS flag set, parallel bus scan disabled
[ 1.741441] ahci-imx 2200000.sata: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode
[ 1.750243] ahci-imx 2200000.sata: flags: ncq sntf stag pm led clo only pmp pio slum part ccc apst
[ 1.761203] scsi host0: ahci-imx
[ 1.764749] ata1: SATA max UDMA/133 mmio [mem 0x02200000-0x02203fff] port 0x100 irq 85
[ 1.772922] imx ahci driver is registered.
[ 1.781050] spi-nor spi0.0: found w25q32, expected m25p32
[ 1.786482] spi-nor spi0.0: w25q32 (4096 Kbytes)
[ 1.794604] tun: Universal TUN/TAP device driver, 1.6
[ 1.799829] CAN device driver interface
[ 1.805986] pps pps0: new PPS source ptp0
[ 1.812151] fec 2188000.ethernet: Invalid MAC address: 00:00:00:00:00:00
[ 1.818890] fec 2188000.ethernet: Using random MAC address: da:0a:fa:aa:87:7e
[ 1.826905] mdio_bus 2188000.ethernet-1: MDIO device at address 1 is missing.
[ 1.834643] fec 2188000.ethernet eth0: registered PHC device 0
[ 1.841639] usbcore: registered new interface driver r8152
[ 1.847177] usbcore: registered new interface driver lan78xx
[ 1.852913] usbcore: registered new interface driver asix
[ 1.858359] usbcore: registered new interface driver ax88179_178a
[ 1.864518] usbcore: registered new interface driver cdc_ether
[ 1.870403] usbcore: registered new interface driver smsc95xx
[ 1.876208] usbcore: registered new interface driver net1080
[ 1.881928] usbcore: registered new interface driver cdc_subset
[ 1.887882] usbcore: registered new interface driver zaurus
[ 1.893521] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
[ 1.901013] usbcore: registered new interface driver cdc_ncm
[ 1.906714] usbcore: registered new interface driver r8153_ecm
[ 1.912571] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.919105] ehci-pci: EHCI PCI platform driver
[ 1.923648] usbcore: registered new interface driver usb-storage
[ 1.932841] SPI driver ads7846 has no spi_device_id for ti,tsc2046
[ 1.939032] SPI driver ads7846 has no spi_device_id for ti,ads7843
[ 1.945239] SPI driver ads7846 has no spi_device_id for ti,ads7845
[ 1.951444] SPI driver ads7846 has no spi_device_id for ti,ads7873
[ 1.958541] egalax_ts 1-0004: Failed to switch to I2C interface
[ 1.964930] egalax_ts 2-0004: Failed to switch to I2C interface
[ 1.974375] input: max11801_ts as /devices/platform/soc/2100000.bus/21a4000.i2c/i2c-1/1-0048/input/input2
[ 1.987036] snvs_rtc 20cc000.snvs:snvs-rtc-lp: registered as rtc0
[ 1.993190] snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01T00:00:00 UTC (0)
[ 2.002373] i2c_dev: i2c /dev entries driver
[ 2.008543] mxc_v4l2_output v4l2_out: V4L2 device registered as video16
[ 2.015327] mxc_v4l2_output v4l2_out: V4L2 device registered as video17
[ 2.022085] mxc_v4l2_output v4l2_out: V4L2 device registered as video18
[ 2.028826] mxc_v4l2_output v4l2_out: V4L2 device registered as video19
[ 2.035574] mxc_v4l2_output v4l2_out: V4L2 device registered as video20
[ 2.049721] max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails
[ 2.052791] max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails
[ 2.060888] max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails
[ 2.066533] max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails
[ 2.074856] Bluetooth: HCI UART driver ver 2.3
[ 2.079339] Bluetooth: HCI UART protocol H4 registered
[ 2.084529] Bluetooth: HCI UART protocol BCSP registered
[ 2.089898] Bluetooth: HCI UART protocol LL registered
[ 2.095111] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 2.101433] ata1: SATA link down (SStatus 0 SControl 300)
[ 2.106884] ahci-imx 2200000.sata: no device found, disabling link.
[ 2.113212] Bluetooth: HCI UART protocol Marvell registered
[ 2.118839] usbcore: registered new interface driver btusb
[ 2.124358] ahci-imx 2200000.sata: pass ahci_imx..hotplug=1 to enable hotplug
[ 2.125509] sdhci: Secure Digital Host Controller Interface driver
[ 2.137709] sdhci: Copyright(c) Pierre Ossman
[ 2.142117] sdhci-pltfm: SDHCI platform and OF driver helper
[ 2.149059] sdhci-esdhc-imx 2194000.mmc: Got CD GPIO
[ 2.150283] usbcore: registered new interface driver usbhid
[ 2.160374] sdhci-esdhc-imx 2198000.mmc: Got CD GPIO
[ 2.165397] sdhci-esdhc-imx 2198000.mmc: Got WP GPIO
[ 2.170608] usbhid: USB HID core driver
[ 2.177768] isl29018 2-0044: No cache defaults, reading back from HW
[ 2.184818] isl29018 2-0044: Failed to read 1: -6
[ 2.189535] isl29018 2-0044: regmap initialization fails: -6
[ 2.200425] mxc_hdmi_cec soc:hdmi_cec@120000: HDMI CEC initialized
[ 2.201082] mmc1: SDHCI controller on 2194000.mmc [2194000.mmc] using ADMA
[ 2.206262] mmc3: SDHCI controller on 219c000.mmc [219c000.mmc] using ADMA
[ 2.211021] mmc2: SDHCI controller on 2198000.mmc [2198000.mmc] using ADMA
[ 2.213603] wm8962 0-001a: Failed to read ID register
[ 2.236785] fsl-ssi-dai 202c000.ssi: No cache defaults, reading back from HW
[ 2.247762] mmc1: host does not support reading read-only switch, assuming write-enable
[ 2.259176] mmc1: new high speed SDHC card at address aaaa
[ 2.265945] mmcblk1: mmc1:aaaa SD32G 29.7 GiB
[ 2.267482] NET: Registered PF_LLC protocol family
[ 2.273446] mmcblk1: p1 p2 p3 p4
[ 2.275929] NET: Registered PF_INET6 protocol family
[ 2.284871] Segment Routing with IPv6
[ 2.288601] In-situ OAM (IOAM) with IPv6
[ 2.292646] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 2.294216] mmc3: new DDR MMC card at address 0001
[ 2.299201] NET: Registered PF_PACKET protocol family
[ 2.304276] mmcblk3: mmc3:0001 AJTD4R 14.6 GiB
[ 2.308456] can: controller area network core
[ 2.315422] mmcblk3: p1 p2
[ 2.317589] NET: Registered PF_CAN protocol family
[ 2.321145] mmcblk3boot0: mmc3:0001 AJTD4R 4.00 MiB
[ 2.325018] can: raw protocol
[ 2.332281] mmcblk3boot1: mmc3:0001 AJTD4R 4.00 MiB
[ 2.332942] can: broadcast manager protocol
[ 2.339811] mmcblk3rpmb: mmc3:0001 AJTD4R 4.00 MiB, chardev (240:0)
[ 2.342123] can: netlink gateway - max_hops=1
[ 2.353133] Bluetooth: RFCOMM TTY layer initialized
[ 2.358036] Bluetooth: RFCOMM socket layer initialized
[ 2.363230] Bluetooth: RFCOMM ver 1.11
[ 2.366996] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 2.372330] Bluetooth: BNEP filters: protocol multicast
[ 2.377567] Bluetooth: BNEP socket layer initialized
[ 2.382561] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 2.388492] Bluetooth: HIDP socket layer initialized
[ 2.393702] lib80211: common routines for IEEE802.11 drivers
[ 2.399441] Key type dns_resolver registered
[ 2.404684] Registering SWP/SWPB emulation handler
[ 2.409728] Loading compiled-in X.509 certificates
[ 2.453406] galcore 130000.gpu: deferred probe timeout, ignoring dependency
[ 2.460389] galcore: probe of 130000.gpu failed with error -110
[ 2.466883] mxc_vpu 2040000.vpu_fsl: deferred probe timeout, ignoring dependency
[ 2.474366] mxc_vpu: probe of 2040000.vpu_fsl failed with error -110
[ 2.484342] gpio-keys gpio-keys: failed to get gpio: -16
[ 2.489669] gpio-keys: probe of gpio-keys failed with error -16
[ 2.496167] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 2.507701] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 2.514600] ALSA device list:
[ 2.517577] #0: imx-hdmi-soc
[ 2.521366] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 2.530116] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[ 2.555617] EXT4-fs (mmcblk1p3): recovery complete
[ 2.561864] EXT4-fs (mmcblk1p3): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[ 2.571702] VFS: Mounted root (ext4 filesystem) on device 179:3.
[ 2.579253] devtmpfs: mounted
[ 2.584789] Freeing unused kernel image (initmem) memory: 1024K
[ 2.631229] Run /sbin/init as init process
Please press Enter to activate this console.
/ # ls
bin etc linuxrc proc sbin uimage
boot home lost+found root sys usr
dev lib mnt rtt tmp var
- 【迅为iMX6Q】开发板 Linux 5.15.71 SD卡 启动 成功
小结
-
【迅为iMX6Q】开发板 Linux 5.15.71 SD卡 启动比较的简单,主要是修改了 sd 卡的 cd 与 wp 引脚
-
注意 sd 卡分区,ext4 格式化
-
默认配置,开发板的一些驱动,如触摸屏、LCD、以太网等还没有正常的启动,需要继续适配