ALPHA I.MX自学笔记(一,环境搭建)

ALPHA I.MX自学笔记(一,环境搭建)

资源准备

一、目录创建

  1. 资源与项目目录创建

    RESOURCE_DIR=~/Sources/02-IMX6/01-Resource
    PROJECT_DIR=~/Sources/02-IMX6/02-Projects/01-SDK_work
    mdir -p ${RESOURCE_DIR} ${PROJECT_DIR}
    

二、工具链安装

  1. 资源下载

    git clone https://e.coding.net/alientek-linux/imx6ull/05_Tools.git ${RESOURCE_DIR} --depth=1 
    ## 64位系统
    tar -xvf ${RESOURCE_DIR}/05_Tools/01、交叉编译器/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz -C ~/.local/share/
    
  2. 添加到环境变量

    # 备份~/.bashrc文件
    cp -arf ~/.bashrc ~/.bashrc.bak
    
    # ~/.bashrc增加如下内容
    # set PATH so it includes user's toolchain if it exists
    if [ -d "$HOME/.local/share/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin" ] ; then
        PATH="$HOME/.local/share/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin:$PATH"
    fi
    
  3. 测试

    # 退出当前ssh终端
    exit 
    
    #重新连接测试,执行正常即成功
    arm-linux-gnueabihf-gcc -v
    
  4. 说明

    1. arm-linux-gnueabihf-gcc 是教程系统的交叉编译工具链,用于编译教程内核、 uboot、例程等
      等源码。
    2. poky-arm-gcc 里面的 fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-
      4.1.15-2.1.0.sh 是出厂系统交叉编译工具链,用于编译出厂内核、 uboot、出厂 QT 系统、自己 QT
      应用等等。

因为选择了教程系统的交叉编译工具链,所以uboot、kernel都要选择教程源码

三、uboot源码安装

  1. 下载

    git clone https://e.coding.net/alientek-linux/imx6ull/01_Soure_Code.git ${RESOURCE_DIR} --depth=1 
    
  2. 解压并命名

    tar -xvf ${RESOURCE_DIR}/01_Soure_Code/04、NXP官方原版Uboot和Linux/uboot-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 -C ${PROJECT_DIR}
    mv ${PROJECT_DIR}/uboot-imx-rel_imx_4.1.15_2.1.0_ga/ ${PROJECT_DIR}/uboot
    

四、linux源码安装

  1. 下载

    步骤三中已经下载过源码,所以再重复下载

  2. 解压并重命名

    tar -xvf ${RESOURCE_DIR}/01-Resource/01_Soure_Code/04、NXP官方原版Uboot和Linux/linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 -C ${PROJECT_DIR}
    mv ${PROJECT_DIR}/linux-imx-rel_imx_4.1.15_2.1.0_ga ${PROJECT_DIR}/linux
    
五、顶层Makefile
LOCAL_DIR  = $(strip $(shell pwd))

SDK_TOP    = $(LOCAL_DIR)
UBOOT_DIR  = $(LOCAL_DIR)/uboot
KERNEL_DIR = $(LOCAL_DIR)/kernel

CPU_CORES = $(shell grep '^core id' /proc/cpuinfo |sort -u |wc -l)
UBOOT_DEFCONFIG  ?= mx6ul_14x14_evk_emmc_defconfig 
KERNEL_DEFCONFIG ?= imx_v7_defconfig 

export ARCH ?= arm
export CROSS_COMPILE ?= arm-linux-gnueabihf-

build_all := uboot kernel
clean_all := $(addsuffix _clean,$(build_all))
.PHONY : clean $(build_all) $(clean_all) 

all: ${build_all}

clean:
	$(MAKE) $(clean_all)

uboot:
	$(MAKE) -C $(UBOOT_DIR) $(UBOOT_DEFCONFIG)
	$(MAKE) -C $(UBOOT_DIR) -j${CPU_CORES}

uboot_clean:
	$(MAKE) clean -C $(UBOOT_DIR)  

kernel:
	$(MAKE) -C $(KERNEL_DIR) $(KERNEL_DEFCONFIG)
	$(MAKE) -C $(KERNEL_DIR) -j${CPU_CORES}

kernel_clean:
	$(MAKE) clean -C $(KERNEL_DIR)

VSCode配置

  • 内核配置:.vscode/settings.json

    "files.exclude": {
            "**/.git": true,
            "**/.github": true,
            "**/.svn": true,
            "**/.hg": true,
            "**/CVS": true,
            "**/.DS_Store": true,  
            
            "**/*.o":true,
            "**/*.su":true, 
            "**/*.cmd":true,
            "**/*.tmp*":true,
        
            "Documentation":true, 
        
            /* 屏蔽不用的架构相关的文件 */
            "arch/[b-z]*"       :true,     /* except arm */
            "arch/a[a-qs-z]*"   :true,
            "arch/ar[a-ln-z]*"  :true,  
            "arch/arm[0-9]*"    :true,    
        
            "arch/arm/mach-[ac-z]*"     :true,   /* except arm/mach-bcm */
            "arch/arm/mach-b[a-be-z]*"  :true,
        
            /* 屏蔽排除不用的配置文件 */
            "arch/arm/configs/[ac-z]*":true, 
        
            /* 屏蔽掉不用的DTB文件 */
            "arch/arm/boot/dts/[ac-z]*":true, 
            "arch/arm/boot/dts/*.tmp":true, 
        },
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值