ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

交换芯片linux内核编译,移植,修改mkconfig,增加新功能

2021-12-27 18:31:44  阅读:294  来源: 互联网

标签:rtk Note init 内核 linux 9310 root mkconfig sdk


//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

标签:rtk,Note,init,内核,linux,9310,root,mkconfig,sdk
来源: https://blog.csdn.net/lyeffort/article/details/122178002

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有