Go to file
Huang Xin ac7353506c Upgrade Readme.md 2019-05-22 11:29:48 +08:00
Framework Init projects 2018-09-11 14:56:00 +08:00
build remove build temp file 2018-09-11 14:59:56 +08:00
include Init projects 2018-09-11 14:56:00 +08:00
linux32 Init projects 2018-09-11 14:56:00 +08:00
log Init projects 2018-09-11 14:56:00 +08:00
Makefile Init projects 2018-09-11 14:56:00 +08:00
Readme.md Upgrade Readme.md 2019-05-22 11:29:48 +08:00
compile.sh Init projects 2018-09-11 14:56:00 +08:00

Readme.md

安全网关项目产品代码仓库

简介

  安全网关项目产品侧仓库,主要存放应用与安全网关设备上的应用、内核等相关功能的代码。

目录结构

Product					安全网关产品源代码主目录
├── build				Makefile和编译脚本目录               
├── common				公共代码/头文件/配置文件 目录
├── modules		  		linux内核态源代码目录
│   └── demo			内核态驱动程序 demo 目录
└── user				用户态源代码目录
    └── demo			用户态应用程序 demo 目录

注意事项:

  1. 内核态功能相关代码存放于 modules 目录下
  2. 用户态功能相关代码存放与 user 目录下
  3. 每个独立的功能以子目录方式存放到适当的目录下
  4. user 与 modules 目录中共有的源代码和头文件以及配置文件必须存放到 common 目录中
  5. 不得把相同功能、相同定义、相同配置的内容独立放到各自的 user 和 modules 目录中

编译方法

1. 从仓库获取最新代码

git clone https://git.komect.net:SDX/vBRAS.git

git pull

2. 安装必要软件(UBuntu)

sudo ./fsl-qoriq-glibc-x86_64-fsl-toolchain-aarch64-toolchain-2.4.1.sh sudo apt-get -y install git u-boot-tools device-tree-compiler autoconf curl flex sudo apt-get -y install automake dh-autoreconf libssl-dev openssl libpcap-dev bc sudo apt-get -y install python-pip qemu-utils libncurses5-dev python-crypto bison

3. 安装 linux 内核源代码

sudo mkdir -p /opt/fsl-kernel /opt/fsl-kernel/arm64 /opt/fsl-kernel/x86 sudo chmod 777 /opt/fsl-kernel -R cp ./vBRAS/Platform/kernel/linux-4.9.140.tar.gz /opt/fsl-kernel cd /opt/fsl-kernel tar -xvaf ./linux-4.9.140.tar.gz ./ cp ./linux-4.9.140 ./x86 cp ./linux-4.9.140 ./arm64

4. 设置环境变量

在 ~/.bashrc 文件末尾加上以下几行配置
export HUACHENG_LINUX_KERNEL=/opt/fsl-kernel/x86/linux-4.9.140 export HUACHENG_ARM64_KERNEL=/opt/fsl-kernel/arm64/linux-4.9.140 export SDKTARGETSYSROOT=/opt/fsl-qoriq/2.4.1/sysroots/aarch64-fsl-linux export PATH=/opt/fsl-qoriq/2.4.1/sysroots/x86_64-fslsdk-linux/usr/bin:/opt/fsl-qoriq/2.4.1/sysroots/x86_64-fslsdk-linux/usr/sbin:/opt/fsl-qoriq/2.4.1/sysroots/x86_64-fslsdk-linux/bin:/opt/fsl-qoriq/2.4.1/sysroots/x86_64-fslsdk-linux/sbin:/opt/fsl-qoriq/2.4.1/sysroots/x86_64-fslsdk-linux/usr/bin/../x86_64-fslsdk-linux/bin:/opt/fsl-qoriq/2.4.1/sysroots/x86_64-fslsdk-linux/usr/bin/aarch64-fsl-linux:/opt/fsl-qoriq/2.4.1/sysroots/x86_64-fslsdk-linux/usr/bin/aarch64-fsl-linux-musl:$PATH source ~/.bashrc

5. 编译内核

  • x64_86
    cd /opt/fsl-kernel/x86/linux-4.9.140 && make -j
  • arm64
    cd /opt/fsl-kernel/arm64/linux-4.9.140 && unset LDFLAS 修改 Makefile 文件第 257、258 两行
    ARCH ?= $(SUBARCH) CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

    ARCH ?= arm64 CROSS_COMPILE ?= aarch64-fsl-linux-
    然后运行 make 命令进行编译

6. 构建系统

  • 构建
    cd vBRAS/Product
    make
  • 清理
    make OPT=clean
  • 安装
    make OPT=install [DIR=../_install]
    DIR 环境变量指定了最终安装默认,默认为 ../_install。支持绝对路径以及相对路径。
  • 安装目录结构
_install
└── debug               系统构建类型 debug/release
    ├── targets         构建可执行程序、驱动安装目录
    │   ├── ARM64       ARM64 平台的可执行程序、驱动
    │   └── LINUX       Linux 平台的可执行程序、驱动
    └── targets.debug   构建可执行程序、驱动的对应调试符号信息安装目录
        ├── ARM64       ARM64 平台的可执行程序、驱动调试符号信息
        └── LINUX       ARM64 平台的可执行程序、驱动调试符号信息
  • 编译信息
    执行 make 命令进行编译结束后vBRAS/Common/compile.h 文件中保存了当前系统编译信息,可以在代码中直接引用。 /* This file is auto generated,for vBRAS version info /
    /
    Used readelf to get this information form driver of application /
    /
    "readelf --debug-dump=macro " */
    #define vBRAS_COMPILE_DATE "2019-05-22"
    #define vBRAS_COMPILE_TIME "11:19:58"
    #define vBRAS_COMPILE_MAJOR "20190522"
    #define vBRAS_COMPILE_SUB "111958"
    #define vBRAS_COMPILE_BY "hx"
    #define vBRAS_COMPILE_HOST "hx-ubuntu"
    #define vBRAS_GIT_TAGS "vBRAS1.0-20181213-stable-159-g1b4c69da2-dev"
    #define vBRAS_GIT_VERS "1b4c69da2d9cd6d133075f2fd96fbe0ac220fb72"

    vBRAS_GIT_TAGS 记录了当前源码在 gitlab 服务器上面的分支信息 vBRAS_GIT_VERS 记录了当前源码在 gitlab 服务器上面的版本信息