作者:HankFu,文章来源:博客园
由于要满足尽量多的客户需求,Xilinx的默认linux kernel的配置,包含了尽可能多的常用模块。实际嵌入式产品中,很多模块用不到。
如果在linux kernel的编译目录,搜索所有目标(.o)文件,就能发现那些模块被编译到linux kernel中。对于不用的模块,可以配置linux kernel,去掉它们。
PetaLinux工程,修改linux kernel的配置后,保存在文件project-spec/meta-user/recipes-kernel/linux/bsp.cfg里。
/zcu106-bsp-kernel-cfg-peta/project-spec/meta-user/recipes-kernel/linux$ tree -L 2 linux-xlnx bsp.cfg linux-xlnx_%.bbappend
如果想快速去掉不用的模块,可以在文件project-spec/meta-user/recipes-kernel/linux/bsp.cfg里,添加如下内容,去掉不用的无线网络、虚拟化模块等。注意,请检查下面的项目,确保你的产品不会用到。如果要用到某些项目,请从bsp.cfg里中删除。
# CONFIG_EFI is not set # CONFIG_BT is not set # CONFIG_CFG80211 is not set # CONFIG_RFKILL is not set # CONFIG_NET_9P is not set # CONFIG_MTD_RAW_NAND is not set # CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set # CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set # CONFIG_MEDIA_RADIO_SUPPORT is not set # CONFIG_MEDIA_SDR_SUPPORT is not set # CONFIG_MEDIA_PLATFORM_SUPPORT is not set # CONFIG_MEDIA_TEST_SUPPORT is not set # CONFIG_IOMMU_SUPPORT is not set # CONFIG_IIO is not set # CONFIG_EXT3_FS is not set # CONFIG_BTRFS_FS is not set # CONFIG_OVERLAY_FS is not set # CONFIG_ECRYPT_FS is not set # CONFIG_JFFS2_FS is not set # CONFIG_UBIFS_FS is not set # CONFIG_CRAMFS is not set # CONFIG_NETWORK_FILESYSTEMS is not set # CONFIG_PARAVIRT is not set # CONFIG_NET_IP_TUNNEL is not set # CONFIG_IPV6 is not set # CONFIG_NETFILTER is not set # CONFIG_OPENVSWITCH is not set # CONFIG_MPLS is not set # CONFIG_NET_NSH is not set # CONFIG_CGROUPS is not set # CONFIG_XEN is not set # CONFIG_NAMESPACES is not set
如果产品中不使用声音,还可以增加下面两行,去掉声音模块。
# CONFIG_SND is not set # CONFIG_SOUND is not set
测试版本: 2021.2