- 论坛徽章:
- 0
|
bcm56334_b0在sdk-all-5.9.1移植后,为了方便系统启动时自动加载以及缩小.ko文件尺寸,需要将bcm-shell,appl等部分剪裁掉,方法主要是修改各级目录的makefile文件,使其只编译生成必须的两个模块文件: linux-kernel-bde.ko和linux-bcm-core.ko
需要修改的地方如下: 1 去掉$SDK/src/Makefile中目录搜索参数subdirs的appl,可以清除bcm-shell等应用的编译; 2 设置Make.local文件中NO_SAL_APPL=1,可清除sal应用的编译; 3 使Make.local文件中DISPATCH_LIST宏只保留ESW,清除掉其它体系文件的编译,FEATURE_LIST也可进行删 减或设置为EMPTY; 4 开启Make.local文件中三个配置参数: CFGFLAGS +=-DSOC_NO_NAMES CFGFLAGS +=-DSOC_NO_ALIAS CFGFLAGS +=-DSOC_NO_DESC 5 修改$SDK/systems/linux/kernel/common/Makefile文件中生成5个.ko模块对应的宏: KERNEL_XXX_LOCAL和KERNEL_XXX,令不需要的模块宏为空。 同时删除编译目标all中的依赖目标user_apps和link_check。 另外只保留$SDK/systems/linux/kernel/modules/Makefile文件中subdirs参数中的子参数shared 和bcm-core。 这样可以使不需要的模块和bcm-shell不编译; 6 此外还可能需要删除并修改$SDK/systems/linux/kernel/modules/bcm-core/bcm-core-symbols.h文件中的某些没有编译的模块中的符号; 7 加载bcm-core模块时可以通过指定参数init=bcm代替在bcm-shell启动后手动输入init bcm进行初始化,此初始化需要执行bcm-core.c文件中的bcore_init_all文件,因此需要使unit参数的范围定义宏在bde与bcore两个模块文件中保持一致; 8 通过以上步骤可以将映像大小由未删减之前的30M缩减到15M,为了进一步删减映像大小,还可以将不需要的bcm-API函数删除,可能需要修改的文件如下: $SDK/src/bcm/api_ref.c $SDK/src/bcm/dispatch.c $SDK/systems/linux/kernel/modules/include/bcm-export.h $SDK/src/bcm/esw/init.c $SDK/src/bcm/async_run.c $SDK/src/bcm/loop.c 此外$SDK/src/soc/phy目录有许多不需要的phy文件可以删除掉; $SDK/src/bcm/esw/下各芯片体系有许多交叉使用的文件,可以选择性删除,但不推荐这么做,因为enduro的芯片某些功能会使用同样esw下其它体系芯片的该功能文件,会造成混乱; 9 关于源代码中涉及到的芯片feature特性,源代码中定义在feature.c文件,打印出的bcm56334_b0默认feature特性参见文章bcm56334 soc-feature。所有property都为空;
|
|