微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于 arm 处理器 imx287 的 Buildroot Linux

如何解决用于 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 举报,一经查实,本站将立刻删除。