交换芯片linux内核编译,移植,修改mkconfig,增加新功能
2021/12/28 7:08:32
本文主要是介绍交换芯片linux内核编译,移植,修改mkconfig,增加新功能,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
//Note: 通过socket与内核sdk进行控制交互
/root/rtk-9310/sdk/include/dal/rtrpc/rtrpc_acl.h //例子之一。
sdk/src/rtk/vlan.c
sdk/src/dal/rtrpc/rtrpc_vlan.c //平台通过rpc方式调用sdk代码。
loader/u-boot-2011.12/board/Realtek/switch/sdk/include/dal/dal_mgmt.h loader/u-boot-2011.12/board/Realtek/switch/sdk/include/dal/dal_mapper.h -> dal_mapper_t //所有模块回调函数结构体。
Note:将sdk嵌入linux内核中。 -Y //menuconfig
//Note:以ko的方式编译并加载sdk。-M //menuconfig
sdk/system/linux/rtk/module.c //通过ko方式加载方式,初始化rtk芯片;同时导出所有sdk api接口供内核其他ko模块调用。
module_init(rtk_sdk_init); -> rtk_init -> rtrpc_init
module_exit(rtk_sdk_exit);
EXPORT_SYMBOL(rtk_init);
EXPORT_SYMBOL(rtk_rate_init);
EXPORT_SYMBOL(rtk_qos_init);
EXPORT_SYMBOL(rtk_port_init);
EXPORT_SYMBOL(rtk_l2_init);
EXPORT_SYMBOL(rtk_flowctrl_init);
//Note:由linux内核启动,引导rc/init脚本,脚本中启动用户app。
sdk/system/linux/usrAppStart.c -> main() -> rtk_init()
//Note: 此pdf文档介绍sdk目录及分层结构
RTK_MS_SDK_StarterGuide(66).pdf //D:\workpaceYaoliu\work resource\realink-switch资料\93100-qsding\used-file
//Note: sdk-test.
module/unittest/lkm/sdk_test_module.c
sdk/system/linux/rtdrv/rtdrv_netfilter.c -> module_init(rtdrv_init); -> rtdrv_modules_init -> rtdrv_cmdFunc_register(RTDRV_SET, RTDRV_INIT_OFFSET, do_rtdrv_set_ctl_init);
sdk/src/app/diag_v2/src/diag_sdk.c -> sdktest_run -> cparser_cmd_sdk_test_group_item -> diag shell v2.
-> sdk/src/app/diag_v2/config/script/mk_parser.py //Note:python脚本解析生成diag v2 shell cli。 module/unittest/src/sdk/sdk_test.c -> unitTestCase
/root/rtk-9310/module/example/src/test_phyApi.c
//Note: uboot-cli 关联一部分rtk初始化。
/root/rtk-9310/loader/u-boot-2011.12/include/command.h <- U_BOOT_CMD_MKENT_COMPLETE
/root/rtk-9310/sdk/system/uboot/cmd/uboot_cmd.c <- U_BOOT_CMD <- do_rtk
/root/rtk-9310/sdk/system/uboot/cmd/uboot_func.c <- rtk_network_on
//Note: uboot升级命令以及falsh存放uboot的地址。
RTK_MS_U_Boot_2011_12_UserGuide_3.4(67).pdf //D:\workpaceYaoliu\work resource\realink-switch资料\93100-qsding\used-file
//Note:添加交叉编译器到PATH;/etc/profile or source /etc/profile.
/opt/rtk-ms-2.0.0-linux-mips-3.18-4.8.5-u0.9.33-toolchain/bin
//Note:编译sdk,同时编译内核+uboot.
RTK_MS_SDK_StarterGuide(66).pdf —> 7 Build SDK Image
//Note: 编译busybox.
cd /root/rtk-9310/kernel/uClinux/user/busybox
vi /root/rtk-9310/kernel/uClinux/user/busybox/.config.mkconfig //选配支持命令
cd vi /root/rtk-9310/
make rt_sdk_app //编译busybox
make sdk_romfs //打包rootfs
//Note: 根据需要单独编译kernel、uboot、sdk_app、rootfs(根文件系统)、usrApp
//Note: 编译sdk/sdk_app/rootfs前提得先编译内核出来,因为会依赖内核中的库文件。
/root/rtk-9310/make/Makefile + /root/rtk-9310/Makefile
rt_kernel镜像:/root/rtk-9310/kernel/uClinux/images/vmlinux.bin //make rt_kernel
rt_uboot镜像: /root/rtk-9310/loader/u-boot-2011.12/u-boot.bin //make rt_loader
rt_sdk_app: /root/rtk-9310/kernel/uClinux/user/busybox/busybox -------------------------->
------------------------------------------------ --> init(/etc/inittab or /etc/config/inittab or /etc/init.d/rcS) -> inittab(::sysinit:/etc/rc) -> /etc/rc 脚本中添加用户启动app的脚本 //make rt_sdk_app
rt_rootfs: /root/rtk-9310/kernel/uClinux/romfs //make sdk_romfs
usrApp: /root/rtk-9310/module/usrApp/exe //make new_all
//Note: 单独编译模块KO;【make ni】 或者 make devmod //内核+uboot+KO ;//menuconfig 在sdk,linux去选配 -Y;-M
INSTALL drivers/net/switch/rtcore/rtcore.ko
INSTALL drivers/net/switch/rtk/rtk.ko
INSTALL drivers/net/switch/rtnic/rtnic.ko
INSTALL net/ipv4/ip_tunnel.ko
INSTALL net/ipv4/tunnel4.ko
INSTALL net/ipv6/ipv6.ko
INSTALL net/ipv6/sit.ko
INSTALL net/ipv6/xfrm6_mode_beet.ko
INSTALL net/ipv6/xfrm6_mode_transport.ko
INSTALL net/ipv6/xfrm6_mode_tunnel.ko
INSTALL net/switch/rtdrv/rtdrv.ko
DEPMOD 3.18.24
/root/rtk-9310/kernel/uClinux/images/vmlinux.bin
/root/rtk-9310/kernel/uClinux/images/vmlinux.bix
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 4925767 Bytes = 4810.32 kB = 4.70 MB
这篇关于交换芯片linux内核编译,移植,修改mkconfig,增加新功能的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法