• Lichee-Pi 第一步 u-boot编译


    开始入坑,写个博客记录一下自己的历程。

    1.开始我看荔枝派官方指南,看了一下发现很蛋疼的问题:网址是:https://www.kancloud.cn/lichee/lichee/227741 前面没问题

    第一步:克隆一下文件

    mkdir licheepi
    cd licheepi
    git clone https://github.com/linux-sunxi/linux-sunxi.git
    git clone https://github.com/linux-sunxi/u-boot-sunxi.git
    git clone https://github.com/linux-sunxi/sunxi-tools.git

    第二步:开始安装依赖

    sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev 
    lib32ncurses5-dev gcc-multilib x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev 
    g++-multilib mingw32 tofrodos python-markdown libxml2-utils
    
    sudo apt-get install gcc-arm-linux-gnueabihf

    这里mingw32安装不了,要修改源

    sudo gedit /etc/apt/sources.list  
    
    deb http://us.archive.ubuntu.com/ubuntu trusty main universe //在sources.list末尾添加,保存
    
    sudo apt-get update
    
    sudo apt-get install mingw32
    

    可以写一个c文件 用g++编译运行一下,没问题就安装成功。

    第三步:再到本教程所在github工程下的Config_Files里下载荔枝板的配置文件A13-Lichee_defconfig,sun5i-a13-lichee.dts。网址:https://github.com/Lichee-Pi

    但是我发现了一个非常蛋疼的问题,我找了半天找不到这个文件。这就很蛋疼了。所以我又找了一篇教程:https://debugdump.com/t_561.html 他是直接克隆lichee pi下的u-boot工程。所以我就重新git一下

    git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-current

    -b的意思就是克隆的同时在该文件夹创建一个新的分支,名叫v3s-current,这个名字反正自己随便可以更改。

    修改u-boot/include/configs/sun8i.h文件 加入:

    #define CONFIG_BOOTCOMMAND   "setenv bootm_boot_mode sec; " 
                                "load mmc 0:1 0x41000000 zImage; "  
                                "load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb; " 
                                "bootz 0x41000000 - 0x41800000;"
    
    #define CONFIG_BOOTARGS      "console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw  vt.global_cursor_default=0"

    这里应该是修改 bootload的串口波特率还有一些堆栈的位置。 接着进入u-boot

    cd u-boot
    ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_800x480LCD_defconfig (群主网店5寸屏)
    
    ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_480x272LCD_defconfig (通用4.3寸屏)
    
    ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_defconfig (默认)
    
    ARCH=arm make menuconfig
    
    执行编译:
    ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make
    
    多核编译,避免cpu其他内核打酱油, J后的参数是参与编译的cpu个数:
    ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -J3

    这里编译失败,提示我

    ./scripts/dtc-version.sh: line 17: dtc: command not found
    ./scripts/dtc-version.sh: line 18: dtc: command not found
    * Your dtc is too old, please upgrade to dtc 1.4 or newer
    make: * [checkdtc] Error 1

    要更新软件:

     apt-get install device-tree-compiler

    然后再编译一次

    提示

      COPY    u-boot.bin
      MKIMAGE u-boot.img
      COPY    u-boot.dtb
      BINMAN  u-boot-sunxi-with-spl.bin
      OBJCOPY u-boot.srec
      SYM     u-boot.sym
      MKIMAGE u-boot-dtb.img
    ./scripts/check-config.sh u-boot.cfg 
            ./scripts/config_whitelist.txt . 1>&2

    img已经被制作出来了,应该是成功了。

    获取设备树:

        git clone https://github.com/Lichee-Pi/linux.git -b zero-4.13.y    //获取Linux源码(zero-4.13.y分支对网卡支持比较好)
        cd linux                                    //进入到该目录
        make ARCH=arm licheepi_zero_defconfig                     //生成荔枝派Zero 默认配置文件
        arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts              //设备树文件(默认不需要修改)
        make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4          //编译内核
        make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs        //编译设备树

     4. 根文件系统

     1). 下载最新的buildroot稳定版本
            官方网站:   https://buildroot.org/download.html
            长支持版本:buildroot-2017.02.7.tar.gz
            最新稳定版:buildroot-2017.08.1.tar.gz

        2). 配置buildroot 参数, make menuconfig; make

            QQ20171122094600.png

            QQ20171122094653.png

    算了这篇我不想写了,直接参考https://debugdump.com/t_561.html完事。。

  • 相关阅读:
    教你一步一步做无线点餐项目(登录篇)
    用Android中的ActionBar来实现分页Title栏滑块效果
    IIS处理brower的一个页面请求(www.test.com/SX?a=1)的处理流程
    [转载]物化视图——数据仓库手册
    [WEB系统中的设计模式(暂时放在这里,看不大懂)]mvc在web系统中的模式与应用
    ORACLE的分布式管理
    C#中 中 A==B && C==D ? E: F语法的一点问题
    delete 和 truncate
    prototype.js开发者手册
    【一个不错的oracle数据库诊断例子,值得学习一下】Oracle数据库诊断案例redo log日志组处于高激活状态
  • 原文地址:https://www.cnblogs.com/ZQQH/p/8316197.html
Copyright © 2020-2023  润新知