jenkins自动化编译服务器搭建

作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

官网
Jenkins详细教程

jenkins自定义命令

设备树

生成设备树,

$ dtc -I dts -O dtb -o system.dtb system-top.dts

解压设备树获取源码,

$ dtc -I dtb -O dts -o system.dts system.dtb

根文件系统

u-boot引导的根文件系统需要使用mkimage工具制作一下,

$ mkimage -n "rootfs" -A arm -O linux -T ramdisk -C gzip -a 0x4000000 -e 0x4000040 -d rootfs.ext4.gz rootfs.ext4.gz.uboot

zynq ultrascale

环境准备,

$ source petalinux-v2018.2-final/settings.sh

新建和编译工程,该过程只需执行一次,建议手动执行,无需加入jenkins,新建工程之后需要更新设备树,再编译工程

$ petalinux-create -t project -n <project name> --template zynqmp
$ petalinux-config --get-hw-description=<hdf path>
$ petalinux-build # 编译工程

编译u-boot,生成的固件是代码树根目录u-boot.elf

$ make CROSS_COMPILE=aarch64-linux-gnu- EXT_DTB=<dtb path>

编译内核,生成的固件是arch/arm64/boot/Image

$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4

制作启动镜像,

$ petalinux-package --boot --fsbl <fsbl elf> --atf <atf elf> --pmufw <pmu elf> --u-boot=<u-boot elf> -o boot.bin

zynq

环境准备,

$ source petalinux-v2015.2.1-final/settings.sh

新建和编译工程,该过程只需执行一次,建议手动执行,无需加入jenkins,新建工程之后需要更新设备树,再编译工程

$ petalinux-create -t project -n <project name> --template zynq
$ petalinux-config --get-hw-description=<hdf path>
$ petalinux-build # 编译工程

编译u-boot,生成的固件是代码树根目录u-boot

$ make CROSS_COMPILE=arm-xilinx-linux-gnueabi-

编译内核,生成的固件是arch/arm/boot/uImage

$ make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- uImage -j4

制作启动镜像,

$ petalinux-package --boot --fsbl <fsbl elf> --u-boot=<u-boot elf> -o boot.bin

t2080

环境准备,有两种,编译u-boot时采用第二个命令,编译其他目标时采用第一个命令

$ source environment-setup-ppc64e6500-fsl-linux # 1
$ source environment-setup-ppce6500-fsl-linux # 2

编译u-boot,生成的固件是代码树根目录u-boot.bin

$ make

编译内核,生成的固件是arch/arm/boot/uImage

$ unset LDFLAGS
$ export LOADADDR=0x1000000
$ export UIMAGE_ENTRYADDR=0x1000040
$ make -j4

hi3531d

环境准备,

$ export PATH=hisi-linux/x86-arm/arm-hisiv600-linux/target/bin:$PATH

编译u-boot,生成的固件是代码树根目录u-boot.bin

$ make ARCH=arm CROSS_COMPILE=arm-hisiv600-linux-

编译内核,生成的固件是arch/arm/boot/uImage

$ make ARCH=arm CROSS_COMPILE=arm-hisiv600-linux- uImage -j4

制作启动镜像,

$ dd if=./u-boot.bin of=./fb1 bs=1 count=64
$ dd if=reg_info_hi3531d.bin of=./fb2 bs=8192 conv=sync
$ dd if=./u-boot.bin of=./fb3 bs=1 skip=8256
$ cat fb1 fb2 fb3 > boot.bin
$ rm -f fb1 fb2 fb3

ft-2000/4

环境准备,

$ export PATH=gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin:$PATH

编译UEFI,生成的固件是代码树根目录ft2004.fd

$ ./build2004.sh

获取归档的版本号

u-boot和内核

u-boot和内核版本号位于代码树include\generated\autoconf.h某一行(行号不固定),可通过写一个应用程序严格匹配#define CONFIG_LOCALVERSION "-fdk-来得到版本号,例如,其中1.0.1-20191128.1947就是最终的版本号。

#define CONFIG_LOCALVERSION "-fdk-1.0.1-20191128.1947"

UEFI

待定,但也会统一采用CONFIG_LOCALVERSION来表示,保证接口的通用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值