用于 arm 处理器 imx287 的 Buildroot Linux

问题描述

我有一个任务是用ARM iMX287的新内核构建buildroot,buildroot版本是2018.02.4,以前用内核v4.14.67构建,现在我尝试用内核f5.10.48构建,内核构建通常,我将内核、文件系统等写入 U-Boot,启动系统并看到以下内容

## Flattened Device Tree blob at 41000000
   Booting using the fdt blob at 0x41000000
   Loading Device Tree to 47b1b000,end 47b23148 ... OK

Starting kernel ...

data abort
pc : [<42000134>]          lr : [<28c82330>]
sp : 424cf570  ip : 900a40a6     fp : d6e26852
r10: 2687e604  r9 : c0dabbc0     r8 : 47b1b000
r7 : 000009e3  r6 : 424ce540     r5 : 420000a0  r4 : 40008000
r3 : 21162500  r2 : 29a2d619     r1 : 03b63138  r0 : e12c87c4
Flags: nzCv  IRQs off  FIQs off  Mode SVC_32
Resetting cpu ...

resetting ...

buildroot 中使用了以下内核配置:

CONfig_POSIX_MQUEUE=y
CONfig_EXT2_FS=m
CONfig_EXT3_FS=m
CONfig_SERIAL_MXS_AUART=m
CONfig_SERIAL_MCTRL_GPIO=m
CONfig_SND_MXS_SOC=m
CONfig_SND_SOC_MXS_SGTL5000=m
CONfig_SND_SOC_SGTL5000=m
CONfig_CONfigFS_FS=y
CONfig_DEBUG_INFO=n
CONfig_DEBUG_KERNEL=n
CONfig_USB_OTG=y
CONfig_USB_OTG_FSM=y
CONfig_USB_ACM=y
CONfig_U_SERIAL_CONSOLE=y
CONfig_USB_G_SERIAL=m
CONfig_USB_U_ETHER=m
CONfig_USB_ETH=m
CONfig_RTC_DRV_DS1307=y
CONfig_USB_SERIAL=m
CONfig_USB_SERIAL_FTDI_SIO=m
CONfig_NET_IPIP=m
CONfig_NET_IP_TUNNEL=m
CONfig_NET_UDP_TUNNEL=m
CONfig_INET_TUNNEL=m
CONfig_L2TP=m
CONfig_TUN=m
CONfig_NF_CONNTRACK=y
CONfig_NF_NAT_REDIRECT=y
CONfig_NETFILTER_XT_MATCH_MULTIPORT=y
CONfig_NF_CONNTRACK_IPV4=y
NF_LOG_IPV4=y
NF_REJECT_IPV4=y
CONfig_NF_NAT_IPV4=y
CONfig_NF_NAT_MASQUERADE_IPV4=y
CONfig_IP_NF_NAT=y
CONfig_IP_NF_TARGET_MASQUERADE=y
CONfig_IP_NF_TARGET_NETMAP=y
CONfig_IP_NF_TARGET_REDIRECT=y
CONfig_IP_NF_RAW=y
CONfig_HZ_250=y
CONfig_HZ=250
CONfig_PREEMPT=y
CONfig_PREEMPT_COUNT=y
CONfig_HAVE_GCC_PLUGINS=n
CONfig_GCC_PLUGINS=n

在构建内核时,我看到以下消息:

Using /home/max/work/buildroot/buildroot-2018.02.4/output/build/linux-5.10.48/.config as base
Merging new_kernel_defconfig
Value of CONfig_POSIX_MQUEUE is redefined by fragment tm4/soyuz_new_kernel_defconfig:
PrevIoUs value: # CONfig_POSIX_MQUEUE is not set
New value: CONfig_POSIX_MQUEUE=y

Value of CONfig_EXT2_FS is redefined by fragment tm4/soyuz_new_kernel_defconfig:
PrevIoUs value: # CONfig_EXT2_FS is not set
New value: CONfig_EXT2_FS=m

Value of CONfig_EXT3_FS is redefined by fragment tm4/soyuz_new_kernel_defconfig:
PrevIoUs value: # CONfig_EXT3_FS is not set
New value: CONfig_EXT3_FS=m
...

更换内核后,用新内核编译DTB文件时出现错误,我是这样解决的:我静态编译dtc for arm,在设备上加载dtc并创建来自 /proc/device-tree 的 DTS 文件,现在 DTB 构建没有错误

有什么想法吗?如果有一些调试消息,我可以理解出了什么问题,但内核似乎根本没有加载。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)