100 lines
4.6 KiB
Markdown
100 lines
4.6 KiB
Markdown
# **安全网关项目产品代码仓库**
|
||
## **简介**
|
||
  安全网关项目产品侧仓库,主要存放应用与安全网关设备上的应用、内核等相关功能的代码。
|
||
## **目录结构**
|
||
<pre>
|
||
Product 安全网关产品源代码主目录
|
||
├── build Makefile和编译脚本目录
|
||
├── common 公共代码/头文件/配置文件 目录
|
||
├── modules linux内核态源代码目录
|
||
│ └── demo 内核态驱动程序 demo 目录
|
||
└── user 用户态源代码目录
|
||
└── demo 用户态应用程序 demo 目录
|
||
</pre>
|
||
|
||
>#### **注意事项:**
|
||
>1. 内核态功能相关代码存放于 modules 目录下
|
||
>2. 用户态功能相关代码存放与 user 目录下
|
||
>3. 每个独立的功能以子目录方式存放到适当的目录下
|
||
>4. user 与 modules 目录中共有的源代码和头文件以及配置文件必须存放到 common 目录中
|
||
>5. 不得把相同功能、相同定义、相同配置的内容独立放到各自的 user 和 modules 目录中
|
||
|
||
## **编译方法**
|
||
#### 1. 从仓库获取最新代码
|
||
<code>git clone https://git.komect.net:SDX/vBRAS.git</code>
|
||
或
|
||
<code>git pull</code>
|
||
|
||
#### 2. 安装必要软件(UBuntu)
|
||
<code>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
|
||
</code>
|
||
|
||
#### 3. 安装 linux 内核源代码
|
||
<code>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
|
||
</code>
|
||
|
||
#### 4. 设置环境变量
|
||
在 ~/.bashrc 文件末尾加上以下几行配置
|
||
<code>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
|
||
</code>
|
||
|
||
#### 5. 编译内核
|
||
+ x64_86
|
||
<code>cd /opt/fsl-kernel/x86/linux-4.9.140 && make -j</code>
|
||
+ arm64
|
||
<code>cd /opt/fsl-kernel/arm64/linux-4.9.140 && unset LDFLAS</code>
|
||
修改 Makefile 文件第 257、258 两行
|
||
<code>ARCH ?= $(SUBARCH)
|
||
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)</code>
|
||
为
|
||
<code>ARCH ?= arm64
|
||
CROSS_COMPILE ?= aarch64-fsl-linux-</code>
|
||
然后运行 make 命令进行编译
|
||
|
||
#### 6. 构建系统
|
||
+ 构建
|
||
<code>cd vBRAS/Product
|
||
make</code>
|
||
</code>
|
||
+ 清理
|
||
<code>make OPT=clean</code>
|
||
+ 安装
|
||
<code>make OPT=install [DIR=../_install]</code>
|
||
DIR 环境变量指定了最终安装默认,默认为 ../_install。支持绝对路径以及相对路径。
|
||
+ 安装目录结构
|
||
<pre>
|
||
_install
|
||
└── debug 系统构建类型 debug/release
|
||
├── targets 构建可执行程序、驱动安装目录
|
||
│ ├── ARM64 ARM64 平台的可执行程序、驱动
|
||
│ └── LINUX Linux 平台的可执行程序、驱动
|
||
└── targets.debug 构建可执行程序、驱动的对应调试符号信息安装目录
|
||
├── ARM64 ARM64 平台的可执行程序、驱动调试符号信息
|
||
└── LINUX ARM64 平台的可执行程序、驱动调试符号信息
|
||
</pre>
|
||
+ 编译信息
|
||
执行 make 命令进行编译结束后,vBRAS/Common/compile.h 文件中保存了当前系统编译信息,可以在代码中直接引用。
|
||
<code>#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"
|
||
</code>
|
||
vBRAS_GIT_TAGS 记录了当前源码在 gitlab 服务器上面的分支信息
|
||
vBRAS_GIT_VERS 记录了当前源码在 gitlab 服务器上面的版本信息 |