CN108345460A - 一种多设备同步烧录Linux固件及应用程序的方法 - Google Patents
一种多设备同步烧录Linux固件及应用程序的方法 Download PDFInfo
- Publication number
- CN108345460A CN108345460A CN201711461415.9A CN201711461415A CN108345460A CN 108345460 A CN108345460 A CN 108345460A CN 201711461415 A CN201711461415 A CN 201711461415A CN 108345460 A CN108345460 A CN 108345460A
- Authority
- CN
- China
- Prior art keywords
- equipment
- application program
- burning
- linux
- programming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
随着嵌入式产业的不断发展,嵌入式设备的生产效率也要求不断的提高;本发明提供了一种多设备同步烧录Linux固件及应用程序的方法,实现更方便、更快捷的生产;本发明采用网口启动方式,设备上电后虚拟机会给设备DHCP一个IP,待设备获得IP后便会去服务器请求UBOOT文件;UBOOT启动后,将会去服务器获取脚本并在内存中执行脚本,该脚本的任务是从重新去TFTP服务器上获取UBOOT、KERNEL、ROOTFS文件并烧写至FALSH中;烧写完成后重新启动设备;Linux系统启动后运行文件系统里面的app程序,去主机上更新最新的应用程序。本发明最多可支持255台同时烧写,且无需人为操作,只要把设备上电接入网口即可自动完成烧写;本发明提出的多设备同步烧写方法,大大节省了在生产时烧录的时间并且还具备自动更新应用程序的功能全程无需人为操作,大大提高了生产效率,因而,具有很好的使用价值。
Description
技术领域
本发明涉及Linux系统技术领域,具体的说全自动化烧写Linux系统及其应用程序,主要是一种多设备同步烧录Linux固件及应用程序的方法。
背景技术
随着计算机技术、互联网技术和单片机技术的深入发展,嵌入式系统在经历了几十年的发展历程后,又进入了一个新的历史发展阶段,即从普遍低端应用进入到一个高、低端并行发展,并且不断提升低端应用技术水平的时代,其标志就是32位嵌入式系统的发展。网络、通信、多媒体、信息家电时代的到来,嵌入式系统得到大规模的应用。各种各样的新型嵌入式系统设备在使用频率上已经大大超过个人计算机。人们已经拥有大大小小各种嵌入式技术的电子产品,小到手表、MP3等微型数字化产品,大到车辆导航、家用电器、多媒体电器;而在服务行业和工业领域中,嵌入式技术的医疗设备、工业过程控制、各种智能ATM终端等正在逐渐改变传统的服务方式,提高工业生产效率。目前,我国嵌入式系统的发展十分迅速,其发展正从嵌入式系统走向嵌入式产业,巨大的市场需求不断加速嵌入式系统的产业化进程。随着嵌入式产业的不断发展,嵌入式设备的生产效率也要求不断的提高;
目前在嵌入式开发中,经常要实现将对应的固件,烧写到开发板中,然后开发板才能运行我们的程序。嵌入式开发,很多用的是Linux系统,也有用WinCE和其他系统,Linux系统中,多数为bootloader+kernel+rootfs的模式。其中,所用的bootloader,多为uboot。负责初始化硬件和设置好软件环境,然后加载kernel,运行kernel,kernel运行后,再去加载rootfs,之后就是你所看到的运行的Linux了。其中,在开发过程中,常常会遇到,需要把某个文件,比如U-boot.bin,uImage,rootfs等文件从PC上,下载到Uboot的SDRAM,即内存中,然后再用对应命令或工具,将数据写入到某存储介质中。传统的嵌入式设备从设备贴片回来后首先要进行固件的烧写,烧写完成后才能进行下一步工作;而传统的烧写方式,将固件从PC端下载到开发板中的各种方式,主要包括JTAG、NFS挂载、Nand Flash和Nor Flash,USB,RS232,网卡NIC等方式;而这些方式都是需要人为的去烧录每台设备,这就大大提高了人力成本和降低了生产效率,严重情况下还会影响企业的生产。
发明内容
本发明的目的在于克服现有技术存在的不足,而提供一种多设备同步烧录Linux固件及应用程序的方法,实现更方便、更快捷的生产。本发明鉴于AM335x系列芯片可以通过网口启动的方式将MLO,UBOOT,KERNEL,ROOTFS通过TFTP的方式下载至开发板,并可通过NFS的方式完成文件系统的挂载。因此,对最小系统板而言,仅需网口便可完成整个Linux的启动,即刚贴片回来的设备可直接通过网口进行设备的烧写与启动;本发明基于网口的启动方式,对网口启动的操作流程进行描述,并着重介绍了如何配置虚拟机和使用网口启动方式进行flash的烧写,待固件烧录完成后Linux系统会自动去更新最新的应用程序。本发明需要虚拟机具备DHCP和TFTP服务器功能,当设备上电后虚拟机给设备分配IP,然后设备会通过TFTP请求下载相应的烧写文件。
本发明的目的是通过如下技术方案来完成的。这种多设备同步烧录Linux固件及应用程序的方法,其特征在于:该方法包括如下步骤:
(1)、采用网口启动方式,设备上电后虚拟机给设备DHCP一个IP,待设备获得IP后去服务器请求UBOOT文件;
(2)、设备获取到UBOOT文件后,网口启动的任务已经完成,UBOOT启动后,将去服务器获取脚本并在内存中执行脚本,该脚本的任务是重新去TFTP服务器上获取UBOOT、KERNEL、ROOTFS文件并烧写至FALSH中,烧写完成后重新启动设备;
(3)、待这些固件全部烧写完成后,Linux系统启动后运行文件系统里面的app程序,去主机上更新最新的应用程序。
本发明的有益效果为:
(1)网口烧写最多可支持255台同时烧写,大大提高了生产烧写效率,烧写完成后观察指示灯是否亮起表示是否完成烧写;
(2)无需人为操作,只要把设备上电接入网口即可自动完成烧写;
(3)固件烧录完成后,系统会自动更新应用程序,从固件到应用程序的烧写全程无需人为操作;唯一需要人为操作的就是把设备通上电接上网线;
本发明提出的多设备同步烧写方法,大大节省了在生产时烧录的时间并且还具备自动更新应用程序的功能全程无需人为操作,大大提高了生产效率,因而,具有很好的使用价值。
附图说明
图1是本发明的典型应用;
图2是本发明中流程框图。
具体实施方式
下面将结合附图和实施例对本发明做详细的介绍:
本发明依据以下原理来实现多设备同步烧写固件及应用程序:
(1)设备上电后引导加载程序会自动执行这些代码,如选择哪种方式启动(NAND,SDcard,UART,EMAC。。。),然后跳转转到第二级bootloader。本发明采用网口启动方式,设备上电后虚拟机会给设备DHCP一个IP(因为一个网段最多是255个,所以我们可以同时烧写255台设备),待设备获得IP后便会去服务器请求UBOOT文件;
(2)设备获取到UBOOT文件后,网口启动的任务已经完成,UBOOT启动后,将会去服务器获取脚本并在内存中执行脚本,该脚本的任务是从重新去TFTP服务器上获取UBOOT、KERNEL、ROOTFS文件并烧写至FALSH中;烧写完成后重新启动设备;
(3)待这些固件全部烧写完成后,Linux系统启动后运行文件系统里面的app程序,去主机上更新最新的应用程序。最多可支持255台同时烧写,且无需人为操作,只要把设备上电接入网口即可自动完成烧写。
实施例:
本发明的典型应用如图1所示,由一台装有Linux虚拟机的PC和交换机组成,而交换机下可以接至多255台需要烧写的设备;本发明的流程如图2所示;
PC环境:
主机:Windows 7及以上
虚拟机:VMwave Workstation,Ubuntu 10.04及以上版本;
Linux SDK版本:ti-sdk-am335x-evm-05.06.tar及以上版本;
AM335x开发板平台:GPEVM
网口启动配置流程:
在Ubuntu中安装TFTP服务,确保可以正常TFTP download。
本示例中,TFTP目录为”/tftpboot”。
用sudo apt-get install tftpd-hpa安装TFPT服务器
sudo apt-get install xinetd安装新一代进程守护程序
配置TFTP服务器
sudo vim/etc/default/tftpd-hpa
将原来的内容改为:
TFTP_USERNAME="tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_DIRECTORY="tftp根目录"#服务器目录,需要设置权限为777,chomd 777
TFTP_OPTIONS="-l-c-s"
sudo service tftpd-hpa restart//重新启动TFTP服务
#service xinetd restart//重启xinetd服务重启tftp服务
iii.保存后退出.
c.增加地址空间定义。修改“/etc/dhcp3/dhcpd.conf”。
i.vim/etc/dhcp3/dhcpd.conf
ii.在文件的末尾,加入以下信息:
subnet 192.168.1.0netmask 255.255.255.0{
range dynamic-bootp 192.168.1.100 192.168.1.199;
if substring(option vendor-class-identifier,0,10)="AM335x ROM"{
filename"u-boot-spl-restore.bin";
}elsif substring(option vendor-class-identifier,0,17)="AM335x U-BootSPL"{
filename"u-boot-restore.img";
}else{
filename"flash-image.out";
}
}
iii.保存并退出
d.设置本机的eth0网卡ip为192.168.1.1:
ifconfig eth0 192.168.1.1
e.重启DHCP服务:
/etc/init.d/dhcp3-server restart
/etc/init.d/networking restart
至此,Ubuntu的DHCP服务建立已经完成。
iii.保存并退出
d.设置本机的eth0网卡ip为192.168.1.1:
ifconfig eth0 192.168.1.1
e.重启DHCP服务:
/etc/init.d/dhcp3-server restart
/etc/init.d/networking restart
至此,Ubuntu的DHCP服务建立已经完成。
注:DHCP的服务,Ubuntu12.04及以上版本亦可以使用isc-dhcp-server。
步骤a中对应的命令:apt-get install isc-dhcp-server;
步骤b中对应的文件为/etc/default/isc-dhcp-server;
步骤c中对应的文件为/etc/dhcp/dhcpd.conf;
步骤e中,对应的命令为/etc/init.d/isc-dhcp-server restart。
3.Linux sdk对网口启动的相关设置:
a.在Linux SDK 05.06中,在uboot中使用am335x_evm配置编译出UBoot的相关文件;
b.编译完成后,将生成的spl目录下的u-boot-spl.bin文件拷贝至TFTP文件夹下,并
重命名为u-boot-spl-restore.bin;
c.类似的,将生成的spl目录下的u-boot.img文件拷贝至TFTP文件夹下,并重命名为u-boot-restore.img;
d.至此,主机的配置已经全部完成。使用网线将AM335x的开发板的网口1连接至PC机,给开发板上电,进行网口启动。
注意:当使用EMAC启动时,不要使用网线直连板子和电脑,使用交换机或者路由器(关闭DHCP服务),确保网段内,没有其他的DHCP服务器。
4.Linux开发包对网口烧写flash的相关设置:
a.类似于3的步骤a、b、c,但在uboot编译时,使用am335x_evm_restore_flash配置编译出UBoot的相关文件,此时得到的u-boot-spl.bin和u-boot.img重命名后即为用于网口烧写的启动文件。使用该配置编译生成的uboot与之前不同的是,在启动后,会调用脚本文件debrick.scr,进行flash的烧写操作。
b.脚本文件debrick.scr的制作(以NAND flash作为示例):
i.脚本文件debrick.scr的源文件,可以参考u-boot文件夹下的
/doc/am335x.net-spl/debrick-nand.txt。源文件中可使用UBoot阶段的相关
命令对NAND flash进行操作。类似的,也可以对SPI flash进行操作。
ii.使用mkimage工具将源文件debrick-nand.txt制作成为debrick.scr
(mkimage位于u-boot文件夹下的tools文件夹中),命令如下
./mkimage-A arm-O U-Boot-C none-T script-d debrick-nand.txtdebrick.scr
iii.将debrick.scr拷贝到TFTP文件夹中。在启动时,会在uboot中自动调用。
c.将需要烧写到NAND FLASH的MLO和u-boot.img文件拷贝到TFTP文件夹中。
d.完成以上各步骤后,即可设置AM335的启动模式并连接网线进行网口烧写flash。
注:当安装完这些服务后设备还不能进行自动烧写时,用ifconfig命令观察网口ip是否正确;再把dhcp、tftp和网络服务重启;
sudo/etc/init.d/isc-dhcp-server restart
sudo/etc/init.d/xinetd restart
sudo/etc/init.d/networking restart
设备烧写完成后应用程序将会执行,会有运行指示灯提示;人为的工作只需把设备接上电源插上网线然后静静等待即可;
以上所述,仅为本发明较好的实施方式而已,并不构成对本发明保护范围的限定。任何在本发明精神之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (4)
1.一种多设备同步烧录Linux固件及应用程序的方法,其特征在于:该方法包括如下步骤:
(1)、采用网口启动方式,设备上电后虚拟机给设备DHCP一个IP,待设备获得IP后去服务器请求UBOOT文件;
(2)、设备获取到UBOOT文件后,网口启动的任务已经完成,UBOOT启动后,将去服务器获取脚本并在内存中执行脚本,该脚本的任务是重新去TFTP服务器上获取UBOOT、KERNEL、ROOTFS文件并烧写至FALSH中,烧写完成后重新启动设备;
(3)、待这些固件全部烧写完成后,Linux系统启动后运行文件系统里面的app程序,去主机上更新最新的应用程序。
2.根据权利要求1所述的多设备同步烧录Linux固件及应用程序的方法,其特征在于:所述的虚拟机具备DHCP和TFTP服务器功能,通过配置设备和虚拟机即可完成全自动化烧写。
3.根据权利要求1所述的多设备同步烧录Linux固件及应用程序的方法,其特征在于:设备上电后虚拟机会给设备DHCP一个IP,一个网段最多是255个,使能同时完成255台设备的固件烧录及应用程序的更新。
4.根据权利要求1所述的多设备同步烧录Linux固件及应用程序的方法,其特征在于:烧录过程实现全自动化,只需给设备通上电插上网线即可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711461415.9A CN108345460A (zh) | 2017-12-28 | 2017-12-28 | 一种多设备同步烧录Linux固件及应用程序的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711461415.9A CN108345460A (zh) | 2017-12-28 | 2017-12-28 | 一种多设备同步烧录Linux固件及应用程序的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108345460A true CN108345460A (zh) | 2018-07-31 |
Family
ID=62962539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711461415.9A Withdrawn CN108345460A (zh) | 2017-12-28 | 2017-12-28 | 一种多设备同步烧录Linux固件及应用程序的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108345460A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110045968A (zh) * | 2019-04-16 | 2019-07-23 | 广东欧谱曼迪科技有限公司 | 一种stm32跨单片机烧录程序的方法 |
CN110708379A (zh) * | 2019-10-09 | 2020-01-17 | 国网宁夏电力有限公司电力科学研究院 | 数据获取方法、集中器、数据获取系统及可读存储介质 |
CN111158710A (zh) * | 2019-12-30 | 2020-05-15 | 杭州迪普科技股份有限公司 | 程序烧写方法、装置及网络设备 |
CN112965730A (zh) * | 2021-04-24 | 2021-06-15 | 湖北迅迪科技有限公司 | 一种多台单片机同步烧写系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227562A (zh) * | 2016-07-22 | 2016-12-14 | 浪潮电子信息产业股份有限公司 | 一种Smart Rack整机柜BIOS批量自动升级的方法 |
CN106980524A (zh) * | 2017-04-11 | 2017-07-25 | 广东浪潮大数据研究有限公司 | 一种免物理介质安装k1 910操作系统及方法 |
CN107220085A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种自动升级raid卡固件的方法 |
-
2017
- 2017-12-28 CN CN201711461415.9A patent/CN108345460A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106227562A (zh) * | 2016-07-22 | 2016-12-14 | 浪潮电子信息产业股份有限公司 | 一种Smart Rack整机柜BIOS批量自动升级的方法 |
CN106980524A (zh) * | 2017-04-11 | 2017-07-25 | 广东浪潮大数据研究有限公司 | 一种免物理介质安装k1 910操作系统及方法 |
CN107220085A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种自动升级raid卡固件的方法 |
Non-Patent Citations (1)
Title |
---|
BAICAIDALUOBO2: "AM335x的网口启动及Flash烧写用户指南", 《HTTPS://WWW.DOC88.COM/P-6971897387446.HTML》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110045968A (zh) * | 2019-04-16 | 2019-07-23 | 广东欧谱曼迪科技有限公司 | 一种stm32跨单片机烧录程序的方法 |
CN110708379A (zh) * | 2019-10-09 | 2020-01-17 | 国网宁夏电力有限公司电力科学研究院 | 数据获取方法、集中器、数据获取系统及可读存储介质 |
CN111158710A (zh) * | 2019-12-30 | 2020-05-15 | 杭州迪普科技股份有限公司 | 程序烧写方法、装置及网络设备 |
CN111158710B (zh) * | 2019-12-30 | 2023-08-25 | 杭州迪普科技股份有限公司 | 程序烧写方法、装置及网络设备 |
CN112965730A (zh) * | 2021-04-24 | 2021-06-15 | 湖北迅迪科技有限公司 | 一种多台单片机同步烧写系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345460A (zh) | 一种多设备同步烧录Linux固件及应用程序的方法 | |
CN105117268B (zh) | 一种实现linux系统自动安装的安装方法及系统 | |
CN104639378A (zh) | 一种基于pxe的服务器自动化部署方法 | |
CN103984575A (zh) | 一种云计算环境下集群Linux操作系统快速部署方法 | |
CN108415712A (zh) | 一种基于pxe服务器批量安装中标麒麟操作系统的方法 | |
CN104219099A (zh) | 一种服务器集群自动部署的方法和装置 | |
CN106911729A (zh) | 一种适用于国产处理器的操作系统远程安装方法 | |
CN111966423B (zh) | 一种实现内存操作系统的方法和设备 | |
CN102012990A (zh) | 第三方软件漏洞的修补方法和装置 | |
CN102664922A (zh) | 一种基于Linux系统的高速网络启动方法 | |
CN105516154A (zh) | 应用于SEAndroid系统的安全策略配置方法及装置 | |
CN105183528A (zh) | 一种升级服务器bios的方法及系统 | |
CN104978224A (zh) | 一种面向多硬件平台的应用程序管理方法 | |
CN104503802A (zh) | 无人值守和远程安装操作系统服务端配置方法 | |
CN104423993A (zh) | 汽车电子设备软件的更新方法、更新终端及汽车电子系统 | |
Ramon | Intel Galileo and Intel Galileo Gen 2: API Features and Arduino Projects for Linux Programmers | |
CN103840968A (zh) | 一种版本更新方法、装置及终端设备 | |
CN109710297B (zh) | 一种设备整体或分模块进行升级和回退方法 | |
CN104123224A (zh) | 一种基于ia-64架构下的简易内存测试方法 | |
CN115408013A (zh) | Zynq UltraScale+MPSoC平台的固件和文件自动烧写方法 | |
CN101169726A (zh) | 基于MTD分区的嵌入式Linux系统在线升级方法 | |
CN105335194A (zh) | 一种基于tftp32制作PXE启动WinPE服务器的搭建方法 | |
CN102609280A (zh) | 一种网络部署操作系统的方法及装置 | |
CN108829410A (zh) | 一种配置定制化pxe无盘系统的方法及装置 | |
CN104461645A (zh) | 基于kexec的固件升级方法和固件升级装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180731 |
|
WW01 | Invention patent application withdrawn after publication |