嵌入式Linux——从0烧写一整套系统

hello,小伙伴们大家好。今天我们来聊一聊如何从“0”来烧写一整套系统,一般我们很少会从“0”去烧写一整套系统的。一般我们所用的板子厂家在出厂前都给我们烧好系统,我们只需要根据需求去更新uboot,内核或者根文件系统。但如果我们面对的是一块空板,里面没有内核,根文件系统,甚至uboot都没有,这时候系统是无法启动的,此时的板子就如同一块板砖。造成空板的原因可能有很多,如厂家出厂时没有烧上系统,这种情况相对来说比较少。一般比较多的可能是由于我们的一些不当操作导致系统污染损坏不能正常工作,这时我们就能得重烧系统了。好的,说了这么多,下面我们来看看如何往一块空板烧入一整套系统吧!

准备阶段:
在准备阶段我们应该准备好我们配置编译好的uboot,内核镜像和根文件系统。这里就不讲解这些镜像怎么配置和制作了,可以先用厂家的SDK提供的配置文件去配置和编译,后面再出文章讲解。

烧录uboot:

这一步是最开始的一步,也是最难的一步。只要我们能将uboot烧录到板子并成功运行uboot,我们就已经成功一半了。

一般来说我们使用的板子支持多种启动方式,如eMMC启动,nandflash启动,norflash启动,otg,sd卡和usb启动等等。我个人一般喜欢将系统烧到eMMC当中。

启动方式可以通过BOOT拨码开关来选择。(以下是拨码表和BOOT拨码开关)

一般来说厂家的SDK包中会提供一些烧录工具,用来往空板中烧录程序。

如果没有这些烧录工具的话,我们可以使用OTG或SD卡先启动uboot,然后在uboot中使用tftp将pc机的其他镜像下载到pc机,在通过mmc 命令写入到eMMC中,然后拨码开关选到eMMC启动,重新上电就能正常使用我们配置好的系统了。这里如何使用OTG和SD卡启动就不多作介绍了,感兴趣的小伙伴可以去看相关博客。我这里主要介绍使用厂家提供的Flash Tool 来往eMMC空板中烧入uboot。

在使用这个工具前需要将拨码开关拨到eMMC启动;

Bin File 选择我们准备好的uboot镜像路径,然后烧写到eMMC中。烧写成功后关闭Flash Tool,给板子重新上电,就可以成功运行uboot啦!

在uboot使用tftp下载烧录内核和根文件系统:

首先我们得确保uboot支持tftp,如果不支持的话,我们需要重新配置uboot,使其支持tftp。

进入uboot之后,我们可以通过mmc命令选择我们的eMMC,对其进行分区。系统的启动需要有uboot,内核和根文件系统,其他文件系统可以根据自己需要添加。

以下我自己的eMMC分区情况,除了根文件系统,这里还涉及其他文件系统。简单的系统只需要uboot,内核和根文件系统即可。

uboot进行网络配置

setenv gatewayip 192.168.5.1
setenv netmask 255.255.255.0
setenv serverip 192.168.5.11
saveenv
SigmaStar # print
baudrate=115200
bootargs=console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait rootfstype=ext4 rw init=/linuxrc LX_MEM=0x1000000000,0x100000000 mma_heap=mma_heap_name0,miu=0,sz=0x40000000 mma_memblock_remove=0 cma=4M@0x1004000000 mmap_reserved=fb,miu=0,sz=0x800000,max_start_off=0xF700000,max_end_off=0xFF00000 mtdparts=
bootcmd=dcache on ; emmc read.p 0x23000000 kernel 0xA00000; bootm 0x23000000; dcache on ; bootm 0x23000000
bootdelay=0
ethaddr=00:10:ab:20:81:70
fdtcontroladdr=249bf370
serverip=192.168.5.11
stderr=uart@1F221000
stdin=uart@1F221000
stdout=uart@1F221000

通过tftp烧写内核,服务器需要支持tftp。

命令行输入 reset ,系统就成功启动啦!

这里有一个注意的点哦,就是在配置编译uboot,内核和根文件系统的时候要根据自己的板子选择正确的xxxx_defconfig 文件哦。如果配置文件选错可能会导致系统起不来,本人就是在这一块花了不少时间,最后才发现是板子型号与配置文件不匹配,泪崩。。。

系统成功启动后就可以正常使用啦,好的,本期分享就到这里咯,下期再见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

零里小斯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值