码迷,mamicode.com
首页 > 系统相关 > 详细

linux4.11内核设备编译时出现的问题(参考博客并更改的)

时间:2018-07-18 19:08:41      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:make   evel   set   lan   ora   通过   range   otc   就是   

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/

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启动后自动引导系统
2 setenv bootcmd "ext4load mmc 0:1 0x46000000 zImage; ext4load mmc 0:1 0x47000000 orangepi_lite.dtb; bootz 0x46000000 0:0 0x47000000"
3 
4 
5 //设置内核启动参数.这里需要注意sd卡在uboot上是第0个设备,但在linux内核里变成了第2个设备(可在内核的log看到).
6 setenv bootargs "root=/dev/mmcblk2p1 rw console=ttyS0,115200n8"

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

linux4.11内核设备编译时出现的问题(参考博客并更改的)

标签:make   evel   set   lan   ora   通过   range   otc   就是   

原文地址:https://www.cnblogs.com/edan/p/9330708.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!