zoukankan      html  css  js  c++  java
  • linux4.11内核设备编译时出现的问题(参考博客并更改的)

    AllWinnerH3 linux4.11版本的bsp下载:
    https://pan.baidu.com/s/1mhU4a8K 密码: b375
    H3-linux4.11_bsp目录就是所需的源码及编译工具.

    下载后, 先安装tools目录里的dtc工具. 解包dtc-master.zip, 执行”make && make install”即可.

    1 配置gcc-linaro-7.2.1交叉编译器。因新版的uboot需要大于6.x版本以上的编译器才可以。
     配置好后才可以编译uboot及内核源码.

    2 编译uboot:
    解包u-boot源码后,进入源码目录:(在root用户下进行编译,否则可能会出错

    1 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- orangepi_lite_defconfig  //配置uboot
    2 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-         //编译
      此处编译可能会出现错误,缺少一个pathon.h头文件,错误如下图,
      解决办法:输入命令  yum install python-devel
    3 4 sudo dd if=./spl/sunxi-spl.bin of=/dev/sdb bs=1k seek=8 //烧写bl1到sd卡 5 sudo dd if=./u-boot.bin of=/dev/sdb bs=1k seek=40 //烧写uboot.bin到sd卡里

    //烧写后,正常情况下应可用sd卡启动板,可通过uart接收到板上uboot的输出信息.

    3 编译内核:
    解包linux内核源码后,进入内核源码目录下操作:

    1 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sunxi_defconfig  //配置内核
    2 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage -j4   //编译出内核镜像
    3 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs   //编译出设备树文件
    4 
    5 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules //编译出驱动模块

    //完成后,就可以把设备树文件,内核镜像,文件系统放在sd卡分区里.
    文件系统可沿用前面所做的文件系统,或者重编busybox制作文件系统也可.

    //我这里是所有所需文件及文件系统都放在sd卡的第一个分区(ext4格式)里, 挂载在/run/media/jk/linux/

    //也可以将下面的文件都放到fat32分区里。

    1 /复制编译出来的设备树文件到sd卡分区里,并重命名为orangepi_lite.dtb
    2 sudo cp arch/arm/boot/dts/sun8i-h3-orangepi-lite.dtb /run/media/jk/linux/orangepi_lite.dtb
    3 
    4 //复制内核镜像到sd卡分区里
    5  sudo cp arch/arm/boot/zImage /run/media/jk/linux/zImage
    6 
    7 //把编译出来的驱动模块安装到sd卡分区里
    8 sudo make ARCH=arm  modules_install INSTALL_MOD_PATH=/run/media/jk/linux

    以上步骤完成后, 即可把sd卡接板上启动系统. 进入uboot后,还需要设置好环境变量:

    1 //设置uboot启动后自动引导系统(下面两个根据自己文件的存放位置选择相应的命令,第一个文件放在ext4中,第二个放在fat32)
    2 setenv bootcmd "ext4load mmc 0:1 0x46000000 zImage; ext4load mmc 0:1 0x47000000 orangepi_lite.dtb; bootz 0x46000000 0:0 0x47000000"
    3 setenv bootcmd "fatload mmc 0:2 0x46000000 zImage; fatload mmc 0:2 0x47000000 orangepi_lite.dtb; bootz 0x46000000 0:0 0x47000000"
    4 
    5 //设置内核启动参数.这里需要注意sd卡在uboot上是第0个设备,但在linux内核里变成了第2个设备(可在内核的log看到).
    6 setenv bootargs "root=/dev/mmcblk2p1 rw console=ttyS0,115200n8"
      保存环境变量:
      saveenv
      重启系统
      reset

    以上步骤完成后,应就可以进入文件系统了.

  • 相关阅读:
    将VSCode添加至右键菜单(Windows下)
    VSCode 快捷键
    dijkstra 优先队列最短路模板
    运营苹果手机“盗改销”、色情网站的黑产组织追踪
    Wireshark 设置显示端口号
    IDA_API_Help
    IDA配置
    windbg vmware配置
    !heap命令问题 Windbg
    落户
  • 原文地址:https://www.cnblogs.com/edan/p/9330708.html
Copyright © 2011-2022 走看看