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用户下进行编译,否则可能会出错)
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- orangepi_lite_defconfig //配置uboot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- //编译
此处编译可能会出现错误,缺少一个pathon.h头文件,错误如下图,
解决办法:输入命令 yum install python-devel sudo dd if=./spl/sunxi-spl.bin of=/dev/sdb bs=1k seek= //烧写bl1到sd卡
sudo dd if=./u-boot.bin of=/dev/sdb bs=1k seek= //烧写uboot.bin到sd卡里

//烧写后,正常情况下应可用sd卡启动板,可通过uart接收到板上uboot的输出信息.
3 编译内核:
解包linux内核源码后,进入内核源码目录下操作:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sunxi_defconfig //配置内核
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage -j4 //编译出内核镜像
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs //编译出设备树文件 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules //编译出驱动模块
//完成后,就可以把设备树文件,内核镜像,文件系统放在sd卡分区里.
文件系统可沿用前面所做的文件系统,或者重编busybox制作文件系统也可.
//我这里是所有所需文件及文件系统都放在sd卡的第一个分区(ext4格式)里, 挂载在/run/media/jk/linux/
//也可以将下面的文件都放到fat32分区里。
/复制编译出来的设备树文件到sd卡分区里,并重命名为orangepi_lite.dtb
sudo cp arch/arm/boot/dts/sun8i-h3-orangepi-lite.dtb /run/media/jk/linux/orangepi_lite.dtb //复制内核镜像到sd卡分区里
sudo cp arch/arm/boot/zImage /run/media/jk/linux/zImage //把编译出来的驱动模块安装到sd卡分区里
sudo make ARCH=arm modules_install INSTALL_MOD_PATH=/run/media/jk/linux
以上步骤完成后, 即可把sd卡接板上启动系统. 进入uboot后,还需要设置好环境变量:
//设置uboot启动后自动引导系统(下面两个根据自己文件的存放位置选择相应的命令,第一个文件放在ext4中,第二个放在fat32)
setenv bootcmd "ext4load mmc 0:1 0x46000000 zImage; ext4load mmc 0:1 0x47000000 orangepi_lite.dtb; bootz 0x46000000 0:0 0x47000000"
setenv bootcmd "fatload mmc 0:2 0x46000000 zImage; fatload mmc 0:2 0x47000000 orangepi_lite.dtb; bootz 0x46000000 0:0 0x47000000" //设置内核启动参数.这里需要注意sd卡在uboot上是第0个设备,但在linux内核里变成了第2个设备(可在内核的log看到).
setenv bootargs "root=/dev/mmcblk2p1 rw console=ttyS0,115200n8"
保存环境变量:
saveenv
重启系统:
reset
以上步骤完成后,应就可以进入文件系统了.
linux4.11内核设备编译时出现的问题(参考博客并更改的)的更多相关文章
- v75.01 鸿蒙内核源码分析(远程登录篇) | 内核如何接待远方的客人 | 百篇博客分析OpenHarmony源码
子曰:"不学礼,无以立 ; 不学诗,无以言 " <论语>:季氏篇 百篇博客分析.本篇为: (远程登录篇) | 内核如何接待远方的客人 设备驱动相关篇为: v67.03 ...
- Linux新内核:提升系统性能 --Linux运维的博客
http://blog.csdn.net/linuxnews/article/details/52864182
- <Win10开发>UWP使用.Net Native编译时遇到的一些问题。
最近开始尝试把WP8.1 Runtime的项目升级成Win10 UWP,我用的方法没什么技巧性,就是直接复制文件和代码到新建的UWP项目.结果是后台代码未经修改,全部正常运行.但是UI控件的布局有些偏 ...
- 鸿蒙内核源码分析(源码注释篇) | 鸿蒙必定成功,也必然成功 | 百篇博客分析OpenHarmony源码 | v13.02
百篇博客系列篇.本篇为: v13.xx 鸿蒙内核源码分析(源码注释篇) | 鸿蒙必定成功,也必然成功 | 51.c.h .o 几点说明 kernel_liteos_a_note | 中文注解鸿蒙内核 ...
- ubuntu14.04 64位系统下编译3.13.11内核源码
该过程一共分为四步: 1.下载内核:我下载的是3.13.11这个版本的内核! 2.解压内核:我将其解压/home/jello/Downloads/linux-3.13.11目录下!下文将会基于此目录编 ...
- 【转】内核编译时, 到底用make clean, make mrproper还是make distclean(转载)
原文网址:http://dongyulong.blog.51cto.com/1451604/449470 内核编译时, 到底用make clean, make mrproper还是make distc ...
- ubuntu下使用g++编译时默认支持C++11 配置方法
1.只需要在源文件程序中加上如下一行代码: #pragma GCC diagnostic error "-std=c++11" 此时源文件代码如下: #pragma GCC dia ...
- VMware Workstation虚拟机打开系统时,提示“无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件。是否在安装 VMware Workstation 后重新引导?”
VMware Workstation虚拟机打开系统时,提示“无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件.是否在安装 VMware Workstation 后重新引导? ...
- 保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事
保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事 10 things to consider when securing an embedded 802.11 Wi-Fi device 随着 ...
随机推荐
- 碎碎念(DP)
链接:https://ac.nowcoder.com/acm/contest/3006/F来源:牛客网 题目描述 在ACM比赛里,除了CE以外都是有效的提交.每一个提交都会有其评测的结果,或是AC,或 ...
- core_cm4.h(129): error: #35: #error directive: "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
今天使用 systick 的时候,只使用了头文件 core_cm4.h,结果就报错了,原因是 __FPU_PRESENT 没有定义,这个定义其实在 stm32f4xx.h 里面.所以如果要解决这个错误 ...
- VUE学习(一)——使用npm安装项目
npm是node.js自带的功能 Node.js 安装配置 本章节我们将向大家介绍在 Windows 和 Linux 上安装 Node.js 的方法. 本安装教程以 Node.js v4.4.3 LT ...
- javascript数组日期
arr forEach(callback,thisArg) thisArg:指明回调函数的this指向 callback(element,index,arr) element:每次取到的数组元素值 i ...
- adfs环境安装
安装文档参考: https://docs.microsoft.com/zh-cn/windows-server/identity/ad-fs/deployment/set-up-the-lab-env ...
- UML-异常处理
1.名词解释 缺陷(Fault):错误引起的行为.如:程序员拼写错了数据库名称 错误(Error):缺陷在运行系统中的表现.如:当使用拼写错误的名称调用数据库时,抛出数据库异常 故障(Failure) ...
- HDU 5312:Sequence
Sequence Accepts: 25 Submissions: 1442 Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 2621 ...
- NOI2019退役记
Day0 时光荏苒,日月如梭.人生中第二次也是最后一次全国赛开始了. 坐6h高铁+1h大巴来到gzez,热死.室友是A类的Gloid和C类的仓鼠,我寝室是为数不多(或许只有1个)的凑齐了ABC三种类别 ...
- JS-表单验证二
3.范围验证:年龄范围验证: <head> <meta http-equiv="Content-Type" content="text/html; ch ...
- nodejs(15)express开启cors跨域
express开启cors跨域 package.json "dependencies": { "body-parser": "^1.18.3" ...