Ehome:智能家居之嵌入式系统升级功能

2023-12-27 00:38

本文主要是介绍Ehome:智能家居之嵌入式系统升级功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


10、系统功能升级
通过网络进行升级:
设备给服务器发送版本号,如果小于服务器的版本号,就使用文件操作通过socket网络通信进行文件的复制(下载),PC端需要建立服务器用来打开使用buf缓冲区来进行发送,当接收到开发板的server,然后进行文件覆盖替换(u盘挂载system执行的命令)。

通过U盘来实现升级功能:

10.1 U盘的手工挂载
    #:' ls /dev/sd*
    插入U盘
    #:' ls /dev/sd*
/dev/sda  U盘
/dev/sda1 分区
#:' mount -t vfat /dev/sda1 /mnt
// 挂载
#:' umount /mnt
   // 卸载

10.2 u盘自动挂载
/dev/sda1设备文件自动创建
是由于热插拔事件产生,导致mdev程序被执行
由mdev来去创建的设备文件
其实可以通过设置让mdev在去创建/dev/sda1设备文件
的同时,可以完成u盘的自动挂载
// 涉及到的内容都在:usb.rar
问题1:如何配置让mdev既可以自动创建设备文件/dev/sda1
  又可以创建后自动挂载u盘?

/*  /etc/mdev.conf */
sd[a-z][0-9] 0:0 666 @/home/usb/usb_insert.sh /dev/$MDEV 
sd[a-z] 0:0 666 $/home/usb/usb_remove.sh

/* /home/usb/usb_insert.sh */
#!/bin/sh
echo $1 > /dev/console
mount -t vfat -o utf8=1 $1 /mnt/usb

/* /home/usb/usb_remove.sh */
#!/bin/sh
echo $1 > /dev/console
sync
umount /mnt/usb


问题2: 如何修改mdev.conf ,语法格式?
$:' vi busybox-1.23.2/docs/mdev.txt
sd[a-z][0-9] 0:0 666 @/home/usb/usb_insert.sh /dev/$MDEV
sd[a-z][0-9] , 设备文件的规则,满足该规则的
  sda1 // 满足
  sdb2 // 满足
  sda  // 不满足
0:0 , uid:gid
666 ,  权限
@ , 创建设备文件之后运行.sh脚本
/home/usb/usb_insert.sh /dev/$MDEV
// 创建sda1/sdb2...设备文件时执行/home/usb/usb_insert.sh脚本,
// 并且传递参数/dev/sda1(sdb2),$MDEV 可替换为参数

sd[a-z] 0:0 666 $/home/usb/usb_remove.sh

  $ , 销毁设备文件之前


<tips>
#:' cat /proc/cmdline
// 在根文件系统中查看bootargs环境变量
#:' df
// 查看自动挂载的设备和存储空间使用大小数据


实验步骤:// env/usb.rar
1) 在rootfs/etc/mdev.conf
  $:' cp /mnt/hgfs/project/env/usb/usb/mdev.conf rootfs/etc/
2) $:' mkdir rootfs/home/usb -p
  $:' cp /mnt/hgfs/project/env/usb/usb/usb_insert.sh rootfs/home/usb/
  创建挂载点
  $:' mkdir rootfs/mnt/usb
3) $:' cp /mnt/hgfs/project/env/usb/usb/usb_remove.sh rootfs/home/usb/


10.3手工操作将u盘中uImage 更新到 // u盘中要有uImage server client
     #:' dd if=/mnt/usb/uImage of=/dev/mmcblk0p1
输入文件 if指定
输出到哪去 of


10.4当点击按钮时自动更新
  system(" dd if=/mnt/usb/uImage of=/dev/mmcblk0p1");
  GUI: 给服务器发送命令 m
  server: 收到命令m
  执行system(" dd if=/mnt/usb/uImage of=/dev/mmcblk0p1");


这篇关于Ehome:智能家居之嵌入式系统升级功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/541339

相关文章

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

Django中使用SMTP实现邮件发送功能

《Django中使用SMTP实现邮件发送功能》在Django中使用SMTP发送邮件是一个常见的需求,通常用于发送用户注册确认邮件、密码重置邮件等,下面我们来看看如何在Django中配置S... 目录1. 配置 Django 项目以使用 SMTP2. 创建 Django 应用3. 添加应用到项目设置4. 创建

使用 Python 和 LabelMe 实现图片验证码的自动标注功能

《使用Python和LabelMe实现图片验证码的自动标注功能》文章介绍了如何使用Python和LabelMe自动标注图片验证码,主要步骤包括图像预处理、OCR识别和生成标注文件,通过结合Pa... 目录使用 python 和 LabelMe 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心

通过C#和RTSPClient实现简易音视频解码功能

《通过C#和RTSPClient实现简易音视频解码功能》在多媒体应用中,实时传输协议(RTSP)用于流媒体服务,特别是音视频监控系统,通过C#和RTSPClient库,可以轻松实现简易的音视... 目录前言正文关键特性解决方案实现步骤示例代码总结最后前言在多媒体应用中,实时传输协议(RTSP)用于流媒体服

Java操作xls替换文本或图片的功能实现

《Java操作xls替换文本或图片的功能实现》这篇文章主要给大家介绍了关于Java操作xls替换文本或图片功能实现的相关资料,文中通过示例代码讲解了文件上传、文件处理和Excel文件生成,需要的朋友可... 目录准备xls模板文件:template.xls准备需要替换的图片和数据功能实现包声明与导入类声明与

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类