1.LSDK的构造

设备要求: ubuntu 14/16/18

1.1源代码

源代码获取地址:https://lsdk.github.io/
在LS1043中 ,共有五个image需要刷写:

  1. RCW: reset配置字
  2. U-boot:boot loader
  3. PPA: 优先保护程序
  4. Fman: Frame manager hardware accelerator
  5. Linux:linux image
    创建DCM_git文件夹 在/home/user 来存储:

RCW:

git clone https://source.codeaurora.org/external/qoriq/qoriq-components/rcw
cd rcw
git checkout -b integration origin/github.com.qoriq-os/integration

u-boot:

git clone https://github.com/qoriq-open-source/u-boot
  • 1

linux:

git clone https://github.com/qoriq-open-source/linux
cd u-boot
git checkout -b LSDK-17.12 LSDK-17.12

PPA:

  git clone https://github.com/NXP/qoriq-ppa-binary/blob/integration/soc-ls1043/ppa.itb
  • 1

Fsl_fman:

git clone https://github.com/NXP/qoriq-fm-ucode
  • 1

1.2ubuntu 工具链

下载gcc linaro 工具链:https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/
并保存在DCM_git目录中。

sudo apt install crossbuild-essential-arm64 gcc-aarch64-linux-gnu
export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64
sudo apt install device-tree-compiler
export PATH=$PATH:/home/<user>/DCM_git/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin

1.3 添加补丁

在DCM_git文件夹中,创建三个文件夹:
dcm-linux_patches
dcm-rcw_patches
dcm-uboot_patches
CAF 下载地址:https://www.codeaurora.org/projects/nxp-dual-chip-module-automotive-gateway
对所有的补丁重复上述操作,
更改补丁名称:
“0001-armv8-ls1043adcm-Enable-USB-support.patch” to “0014-armv8-ls1043adcm-Enable-USB-
support.patch”.
添加补丁:

1.cd u-bootsudo git am ../dcm-uboot_patches/*The patch will be applied to u-boot.
2.cd  linuxsudo git am ../dcm-linux_patches/*The patch will be applied to linux.
3.cd rcwsudo git am ../dcm-rcw_patches/*The patch will be applied to rcw.

在DCM_git文件夹中,创建两个文件夹:
dcm-linux_patches_addons
dcm-uboot_patches_addons
从CAF链接下载:
添加补丁:

1.cd u-bootsudo git am ../dcm-uboot_patches_addons/*The patch will be applied to u-boot.
2.cd  linuxsudo git am ../dcm-linux_patches_addons/*The patch will be applied to linux.

1.4 构造RCW

export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64
export PATH=$PATH:/home/<user>/DCM_git/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin
cd ../rcw/ls1043ardb
make
tclsh ../tools/byte_swap.tcl RR_SPPP_3560/rcw_1600_qspiboot.bin RR_SPPP_3560/rcw_1600_qspiboot_swapped.bin 8

构建成功的rcw_1600_qspiboot_swapped.bin 会生成在…/rcw/ls1043ardb/RR_SPPP_3560。

1.5构造U-boot

U-boot包括了四种形式:ddr、qspi、nand、sd
在DCM_git下创建u-boot_binary目录,在其下创建四个子文件夹: ddr、qspi、nand、sd。

cd u-boot
export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64
export PATH=$PATH:/home/<user>/DCM_git/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin

1.5.1 DDR boot

make distclean && make ls1043adcm_sdcard_defconfig && make -j3
u-boot-dtb.bin  被创建在此文件夹
mv u-boot-dtb.bin ~/DCM_git/u-boot_binary/ddr/u-boot-dtb_ramboot.bin

1.5.2 QSPI NOR boot

make distclean && make ls1043adcm_defconfig && make -j3
mv u-boot-dtb.bin ~/DCM_git/u-boot_binary/qspi/u-boot-dtb_qspi.bin

1.5.3 NAND boot

make distclean && make ls1043adcm_nand_defconfig && make -j3mv u-boot-dtb.bin ~/DCM_git/u-boot_binary/nand/u-boot-with-spl-pbl-nand.bin

1.5.4 SD boot

make distclean && make ls1043adcm_sdcard_defconfig && make -j3mv u-boot-with-spl-pbl.bin ~/DCM_git/u-boot_binary/qspi/u-boot-dtb_sd.bin

1.6构建linux

下载rootfs (ramdisk版本):https://github.com/qoriq-open-source/ramdiskrfs
下载ramdisk_rootfs_arm64.ext4.gz 。
在/home/user目录下构建ramdisk_fs文件夹,

mv ramdisk_rootfs_arm64.ext4.gz ~/ramdisk_fs
  • 1

下载tcpdump arm64
link:https://packages.debian.org/stretch/tcpdump
并下载该链接下的libpcap 和libssl arm64版本
在ramdisk_fs目录下创建libpcap 、libssl文件夹,将上述下载内容拷贝到对应的文件夹

cd libpcap
dpkg -x libpcap0.8_1.8.1-3_arm64.deb .
cd ../libssl
dpkg -x libssl1.0.2_1.0.2t-1~deb9u1_arm64.deb .
cd ..
dpkg -x tcpdump_4.9.2-1_deb8u1_arm64.deb .
sudo mkdir TEMP
sudo gunzip ramdisk_rootfs_arm64.ext4.gz
sudo mount ramdisk_rootfs_arm64.ext4 TEMP/
sudo cp usr/sbin/tcpdump TEMP/sbin/
sudo cp libpcap/usr/lib/aarch64-linux-gnu/libpcap.so.0.8 TEMP/usr/lib64
sudo cp libpcap/usr/lib/aarch64-linux-gnu/libpcap.so.1.8.1 TEMP/usr/lib64
sudo cp libssl/usr/lib/aarch64-linux-gnu/libcrypto.so.1.0.2 TEMP/usr/lib64
sudo cp libssl/usr/lib/aarch64-linux-gnu/libssl.so.1.0.2 TEMP/usr/lib64
sudo umount TEMP/
sudo gzip -9 ramdisk_rootfs_arm64.ext4
cp ramdisk_rootfs_arm64.ext4.gz ~/DCM_git/linux
mv ramdisk_rootfs_arm64.ext4.gz fsl-image-core-ls1043ardb.ext2.gzexport CROSS_COMPILE=aarch64-linux-gnu-export ARCH=arm64export PATH=$PATH:/home/<user>/DCM_git/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/binmake defconfigmake lsdk.configmake -j6../u-boot/tools/mkimage -f kernel-ls1043a-rdb.its kernel-ls1043a-rdb.itb

kernel-ls1043a-rdb.itb创建成功。
若在上述内核编译过程中遇到权限不足 或缺少头文件等问题:

chmod 777 linux/* -R
  • 1

1.7 通过SD卡启动系统

(使用sd boot的前提是开发板上驱动电阻的形式为sd boot形式)
先通过sudo fdisk -l 查看sd卡在主机上所获取的设备号,假设为/dev/sde,则:

export DEVSD=/dev/sde
sudo fdisk ${DEVSD}
Press “d”. (Repeat unitl all the partitions are deleted)
Press “n”. This creates a new partition.
Press “p”. This creates a primary partition.
Press “1”. The first partition.
Press enter. This will create a partition that starts at offset 2048.
Press “t”. To set partition type.
Press “1” to select partition number 1. Note: If “1” is already entered in the command and
displayed, directly go to the next step.
Now type “83” to select Linux file system.
Press “w”. This writes the partition table and fdisk exits
This newly created partition need to be formatted to be usable. Firstly, remove and put SD Card
back into its slot, then run the following commands to format the partition:
sudo mkfs.ext3 -L rootfs ${DEVSD}1

将所有的binary拷贝到sd卡:

1. U-boot: u-boot: u-boot-with-spl-pbl_sd.bin(image build as in section SD Boot)
sudo dd if=u-boot-with-spl-pbl_sd.bin of=/dev/ sde bs=512 seek=8
2. PPA: ppa.itb
sudo dd if=ppa.itb of=/dev/sde bs=512 seek=8192
3. Fman: fsl_fman_ucode_ls1043_r1.1_106_4_18.bin
sudo dd if=fsl_fman_ucode_ls1043_r1.1_106_4_18.bin of=/dev/sde bs=512 seek=18432
4. Linux: kernel-ls1043a-rdb.itb
sudo dd if=kernel-ls1043a-rdb.itb of=/dev/sde bs=512 seek=32768

将sd卡插入开发板即可。

1.8 在ubuntu主机上安装串口驱动

FTDI驱动: https://blog.csdn.net/Davidietop/article/details/86520281
检查是否安装成功:

lsmod | grep usbserial
  • 1

查找设备列表:

dmesg
  • 1

串口工具:minicom 、设置端口为USB-serial的名字,设置波特率为115200。

MPC- LS中LS1043 内核编译---1 默认版本相关推荐

  1. CentOS 5.5 安装SCST-FCST中的内核编译错误

    环 境: CentOS 5.4 x86_64 linux-2.6.32.29 安 装: intel pro 1000 系列15.4的驱动,编译安装 e1000-8.0.18 问 题: 内核打完补丁后m ...

  2. 编译内核启用KASan动态检测内核内存错误功能(ubuntu16.04 4.4.0内核编译升级到linux-4.4.252版本)

    目录 一.编译内核并配置支持KAsan 1.下载源码 2.安装编译内核必须的库 3.清理之前内核编译生成及相关配置 4.配置内核参数 5.开始编译 6.模块(驱动)安装 7.安装新编译的内核 8.修改 ...

  3. linux如何查看python的版本_linux怎么改python默认版本

    1 查看当前python默认版本 小编以centos 7系统为例进行讲解.首先,在shell终端上输入命令: python --version 查看当前系统中,目前python默认采用的版本号. 2 ...

  4. 【Linux 内核】编译 Linux 内核 ④ ( 打开 Linux 内核编译 菜单配置 |菜单配置中的光标移动与选中状态 | 保存配置 | 配置项帮助文档 )

    文章目录 一.打开 Linux 内核编译 菜单配置 二.菜单配置中的光标移动与选中状态 三.保存配置 四.配置项帮助文档 一.打开 Linux 内核编译 菜单配置 执行 make menuconfig ...

  5. 2.6内核编译配置选项简介--介绍make menuconfig中的每个选项含义

    Linux 2.6.19.x 内核编译配置选项简介 作者: 金步国 版权声明 本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布.任何人都可以自由使用.转载.复制和再分发 ...

  6. linux中内核4c,Linux内核编译

    年纪大了,记性不好,这篇文档作为自学笔记,也算是积累,给自己一个交待. Linux内核编译的大致流程如下: 一.获取内核代码:编译内核代码之前一定要获取到内核代码,到http://www.kernel ...

  7. Linux下编译build的命令,Linux内核编译中build目录设置

    配置参数 最近在分析yocto中名为poky的嵌入式自动构建系统.在对内核进行定制的时候,看到了一个在进行内核编译时挺有用的特性,之前(作为野生程序员的我)一直没有发现. 该特性就是将源码与编译工作目 ...

  8. Linux中gcc的编译、静态库和动态库的制作

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 Linux中gcc的编译.静态库.动态库 文章目录: 1 gcc的编译过程 1.1 gcc的编译过程 1.2 gcc的常用参数 2 gcc 静态库的制 ...

  9. linux 内核 ntfs,Linux大脑 内核 内核编译(NTFS)

    Linux大脑 "内核" 关于它 什么是内核 kernel(内核)是操作系统的核心,相当于人的大脑,掌控所有的硬件设备的控制权,也就是希望计算机帮你完成各项工作,那都需要通过内核的 ...

最新文章

  1. 隐藏input边框(ie6、ie7)
  2. Catalina.stop: Connect refused解决过程
  3. 数据中心液冷技术发展分析
  4. racle的STRUCT和VARRAY的读写方法
  5. aop简介-aop的底层实现
  6. javascript 理解对象--- 定义多个属性和读取属性的特性
  7. jQuery Mobile主题使用与定制
  8. manacher算法--最长回文子串
  9. java delete file 失败_文件无法删除java.io.IOException: Unable to delete
  10. discuz字典doc_Discuz! X2.5数据字典
  11. VMware虚拟机安装系统
  12. 视频分配器(视频放大分配器)
  13. 如何用命令行的形式进行仿真及do脚本的使用(仿真工具使用技巧)【Modesim/Questasim】
  14. html如何给图片加链接
  15. python_cv2_图片黑白操作
  16. Word处理控件Aspose.Words功能演示:在C#中的Word文档中添加或删除水印
  17. 解答:为什么要搭建企业论坛?如何快速搭建?
  18. linux 软件安装及卸载
  19. matlab里颜色直方图的画法
  20. 数据分析-常用的数据分析框架-06

热门文章

  1. 2021中大计算机考研,中山大学公布2021年硕士研究生招生拟录取名单公示的通知...
  2. dcrs 端口配ip_神州数码DCRS-5950 基本配置(一)
  3. linux 降低gcc版本,如何降低自己的gcc版本
  4. 汪国真的诗《热爱生命》
  5. cv2 python 获取斑马线_基于python的opencv图像处理实现对斑马线的检测示例
  6. 欢迎大家加入.net技术交流群:(QQ群:100862931)
  7. java中的split方法
  8. python处理csv文件将字符串格式XXXX年XX月XX日转化为datetime64XXXX-XX-XX格式,可以进行索引设置和日期计算
  9. 粒子群算法(PSO)的C++实现
  10. RocketMQ 为什么延迟消息不能自定义延迟时间