Linux之系统移植和根文件系统构建

一、Windows下使用OTG烧写系统

1、在Windows使用NXP提供的mfgtool来向开发板烧写系统,需要用先将开发板的USB_OTG接口连接上电脑上。

Mfgtool工具是向板子先下载一个Linux系统,然后通过这个系统来完成烧写工作。

切记!使用OTG烧写的时候,要先把SD卡拔出来,等USBOTG与电脑连接成功后,可以将SD卡插进去。

烧写系统都是烧写到NAND或者EMMC中里面。

将拨码开关拨到01000000,进入USB下载模式。

烧写成功后,拨到10100110,从EMMC启动系统。

二、Ubuntu下通过脚本烧写系统

1、首先向SD卡烧写一个系统,然后使用SD卡启动,启动以后在Linux中执行烧写到EMMC或NAND中。(比较麻烦,不推荐)

正点原子官方Uboot编译与体验

一、何为Uboot?

1、uboot是一个裸机程序比较复杂。

2、uboot就是一个bootloader,作用就是用于启动linux或其他系统。Uboot最主要的工作就是初始化DDR,因为Linux是运行在DDR里面。一般linux镜像zImage(uImage)+设备树存放在SD,EMMC,NAND,SPI,FLASH等等外置存储区域。

        这里就牵扯到一个问题,需要将Linux镜像从外置flash拷贝到DDR中,再去启动。

Uboot的主要目的就是为系统的启动做准备。

Uboot不仅仅能启动Linux,也可以启动其他系统,比如vxworks。

Linux不仅仅能通过Uboot启动。

Uboot是个通用的bootloader。他支持多种架构。

Uboot获取,

1、首先就是Uboot官网的获取,支持少,比如某一款芯片驱动等不完善。

2、soc厂商会从uboot官网下载一个版本的uboot,然后在这个版本的uboot上加入相应的soc以及驱动,这就是soc厂商定制版的uboot。比如NXP官方的I.MX6ULL EVK板子。

3、做开发板的厂商,开发板会参考SOC厂商的板子。开发板必然会和官方的板子不一样。因此开发板厂商又会去修改SOC厂商做好的uboot,以适应自己的板子。

正点原子官方Uboot的初次编译

1、编译UBOOT的时候需要先配置

2、编译完成以后就会生成一个u-boot.bin。必须向u-boot.bin添加头部信息。Uboot编译最后会通过/tools/mkimage软件添加头部信息,

可以写脚本程序编译,脚本如下。

3、如果配置uboot,那么一定要注意shell脚本会清除整个工程,那么配置的文件也会被删除,配置也会被删除。

4、为了方便开发,建议直接在uboot顶层Makefile里面设置好ARCH和CROSS_COMPILE这两个变量的值。

 然后直接make V=1 -j12就行了。

Uboot启动log信息分析与基础命令

一、uboot启动log简析

1、以后带有调试性质的开发,uboot都是烧写到SD卡中的,因为方便烧写。

二、uboot命令使用

2.1、help命令

查看某一个命令帮助信息,?命令名
2.2、信息查询

1、bdinfo

2、pintenv命令:查看当前板子的环境变量(重要)

3、setenv命令 :设置环境变量,也可以自定义环境变量,setenv author zuozhongkai.也可以删除环境变量。

4、saveenv命令:保存环境变量

内存操作命令

1、md命令:md.b 80000000 10   md.w  80000000  10    md.l  800000000 10.查看内存命令

2、nm命令:  nm.d  80000000   nm.w 80000000   nm.l 80000000

修改内存命令(修改一个内存)

3、mm命令:mm.l 80000000 

修改连续的内存命令(内存地址会自增)

4、mw命令:mw.l   80000000 0A0A0A0A 10

0A0A0A0A   填充10个块

5、cp命令:cp.l   80000000   80000100   10

6、cmp命令:cmp.l  80000000  80000100 10

网络操作命令

网线插入到ENET2上,保证开发板和电脑处于同一网段内。

1、ping 命令.ping 192.168.66.130

2、dhcp命令,获取ip地址

3、nfs命令:用于调试下载 nfs 80800000 192.168.66.130:/home/wangzhen/IMX6ULL/nfs/zImage

4、tftp命令:首先需要安装tftp,可以百度一下。tftp 80800000 zImage

EMMC和SD卡操作命令

mmc  info  //设备信息

mmc rescan   //扫描设备

mmc list   //列出设备

mmc dev 0 //切换设备

mmc part  //列出分区

mmc read  //用于读取mmc设备的数据  mmc read addr blk# cnt   mmc read 808000000 600 10

mmc write  //用于将数据写入EMMC设备中  mmc write addr blk# cnt

mmc erase  //擦除

FAT格式文件系统操作命令

对于IMX6U来说,SD/EMMC分为三个分区:

第一个:存放uboot

第二个:存放Linux zImage  .dtb  FAT

第三个:系统的根文件系统   EXT4

fatinfo 命令:查看指定的MMC分区文件系统信息

fatinfo mmc 1:1

fatls命令:查询FAT格式设备的目录和文件信息

fatls mmc 1:1 

fstype命令:用于查看MMC设备某个分区的文件系统格式

fstype mmc 1:0    fstype  mmc 1:1  fstype  mmc  1:2

fatload命令:用于将指定的文件读取到DRAM中

fatload mmc 1:1 80800000 zImage

fatwrite命令:用于将DRAM中的数据写入MMC设备

fatwrite mmc 1:1 808000000 zImage 0x5c2720

BOOT操作命令

bootz命令:要启动Linux必须将zImage  。dtb文件放到DRAM中

(tftp 80800000 zImage    tftp 83000000 imx6ull-14x14-c.dtb   bootz 80800000 - 83000000)

boot命令:执行步骤

setenv bootcmd 'tftp 80800000 zImage;tftp 83000000 imx6ull-14x14-c.dtb;bootz 80800000 - 83000000;'

saveenv

boot

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_41392061

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值