飞凡Hi3536内核编译与烧写
来源:互联网 发布:尤西雷 知乎 编辑:程序博客网 时间:2024/04/28 03:24
开发平台:飞凡嵌入式Hi3536
开发板采用SPI NORFlash启动,默认内核不支持USB摄像头工作,需重新编译内核,并烧写系统。
一、编译内核
采用Hisi官方提供的SDK中内核linux-3.10.y,配置文件为hi3536_full_A17_slave_defconfig。主要流程:
#cd /opt/hi3536/Hi3536_SDK_V2.0.2.0/osdrv/opensource/kernel/linux-3.10.y
#cp arch/arm/configs//hi3536_full_A17_slave_defconfig .config
#make ARCH=arm CROSS_COMPILE=arm-hisiv400-linux- menuconfig
由于对Linux驱动架构不熟悉,也不能确定所使用USB摄像头的属类,这里将所有V4L2相关驱动全部选上,在menuconfig 搜索V4L2将所有的选为Y,注意依赖项的选择,如果依赖关系不正确的,menuconfig会提示。
保存、退出得到所需要的配置文件,然后编译内核
#make ARCH=arm CROSS_COMPILE=arm-hisiv400-linux- uImage
二、烧写系统
1、参数配置
配置tftp服务器
#可以使用任意的tftp服务器,将相关文件拷贝到tftp服务器目录下;
#单板上电后,敲任意键进入u-boot。设置serverip(即tftp服务器的ip)、ipaddr(单板ip)和ethaddr(单板的MAC地址)。
setenv serverip xx.xx.xx.xx
setenv ipaddr xx.xx.xx.xx
setenv ethaddr xx:xx:xx:xx:xx:xx
setenv netmask xx.xx.xx.xx
setenv gatewayip xx.xx.xx.xx
ping serverip,确保网络畅通。
2、根据系统硬件的配置,选择合适的烧写方案。我的开发办为SPI NOR启动,采用的是“烧写双主控(SPIBOOT_NAND256M).txt”,注意的是由于我编译出的内核大于了4M,按照原本的文件内核空间是没有4M的,是没有办法烧写的,所以要做修改。修改后文件如下:*****************************************************************************烧写双主控(SPIBOOT_NAND256M).txt*****************************************************************************烧写Glibc映像文件到SPI Flash1)地址空间说明(其中,m表示master arm;s表示slave arm)| 1M | 6M | 12M | 1M | 4M | 6M ||---------------|---------------|---------------|---------------|---------------|---------------|| boot(m) | kernel(m) | empty(m) | boot(s) | kernel(s) | rootfs(s) |以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。2)烧写主u-bootmw.b 0x42000000 0xff 0x100000tftp 0x42000000 osdrv_master/image_glibc/u-boot-hi3536.binsf probe 0sf erase 0x0 0x100000sf write 0x42000000 0x0 0x100000reset3)烧写主内核mw.b 0x42000000 0xff 0x600000tftp 0x42000000 osdrv_master/image_glibc/uImage_hi3536sf probe 0sf erase 0x100000 0x600000sf write 0x42000000 0x100000 0x6000004)擦除空白,主文件系统放nand上sf probe 0sf erase 0x700000 0xc000005)烧写从u-bootmw.b 0x42000000 0xff 0x100000tftp 0x42000000 osdrv_slave/image_glibc/u-boot-hi3536.binsf probe 0sf erase 0x1300000 0x100000sf write 0x42000000 0x1300000 0x1000006)烧写从内核mw.b 0x42000000 0xff 0x400000tftp 0x42000000 osdrv_slave/image_glibc/uImage_hi3536sf probe 0sf erase 0x1400000 0x400000sf write 0x42000000 0x1400000 0x4000007)烧写从文件系统mw.b 0x42000000 0xff 0x600000tftp 0x42000000 osdrv_slave/image_glibc/rootfs-SLV_FULL_REL.cramfs.initrd.imgsf probe 0sf erase 0x1800000 0x600000sf write 0x42000000 0x1800000 0x6000008)烧写主文件系统mw.b 0x42000000 0xff 0x7000000tftp 0x42000000 osdrv_master/image_glibc/rootfs_hi3536_2k_4bit_spiboot.yaffs2nand erase;nand write.yaffs 0x42000000 0x0 0x661b180;(实际的文件系统大小)9)设置启动参数setenv bootargs 'mem=128M console=ttyAMA0,115200 root=/dev/mtdblock3 rootfstype=yaffs2 mtdparts=hi_sfc:1M(boot),6M(kernel),12M(norflash);hinand,256M(rootfs)'setenv bootcmd 'sf probe 0;sf read 0x42000000 0x100000 0x600000;bootm 0x42000000'setenv slave_autostart 1setenv slave_bootcmd 'sf probe 0;sf read 0x81000000 0x1300000 0x80000;sf read 0x82000000 0x1400000 0x400000;sf read 0x83000000 0x1800000 0x600000;bootm 0x81000000 0x82000000 0x83000000'setenv slave_bootargs 'mem=96M console=ttyAMA0,115200'sa
之后重启,插入USB摄像头,会看到生成的 /dev/video0设备文件。
- 飞凡Hi3536内核编译与烧写
- 内核编译与烧写
- Jetson TX1内核kernel编译与烧写
- Hi3536 uboot引导内核全过程
- linux内核编译及烧写
- Hi3536编译sample时出现错误
- Hi3536 CentOS 平台交叉编译脚本
- openwrt 编译与烧写
- openwrt 编译与烧写
- openwrt 编译与烧写
- busybox编译与烧写
- 嵌入式内核与文件系统烧写
- 如何下载Android kernel内核源代码,编译烧写验证
- 编译 Linux 3.5 内核烧写 Android 到tiny4412
- 升级与编译内核
- 内核配置与编译
- 编译uboot与内核
- 内核配置与编译
- linux下面tar解压文件提示gzip: stdin: not in gzip format处理
- Hook讲解 First
- CI里文件上传
- isolinux制作
- Maven3 安装使用(一)
- 飞凡Hi3536内核编译与烧写
- 分页机制,一点小小的理解,os 于渊的树上的
- Java面试题
- JSTL标签FforEach标签的用法
- SDL容器--(C++学习笔记)
- HDU 1214 圆桌会议
- MySQL基本语法思维导图
- curl模拟提交
- 2016,11,13,SUN