最近项目需要支持ARM平台,所以之前使用的那些镜像需要重新构建。构建多架构镜像的方法有很多,这里列出个人觉得最简单的一种方法。
在板子上观察到56M的ubi卷,挂载上ubifs之后,df -h显示可用空间约为50M。 如此计算开销超过了10%,那么这个开销随容量如何变化呢,是固定为10%吗还是有其他规律?
UBI全称是Unsorted Block Images,上图为UBI在系统中的层次结构,最下面是flash层(包括flash控制器,各个flash驱动代码,spi-mem层等);MTD层是对flash层的抽象,一个flash可能被划分成不同的分区,每一个分区都会对应一个MTD设备;UBI层是基于MTD层之上的更高层,UBI层抽象出一个个逻辑擦写块,每个逻辑擦写块都有一个物理擦写块与之前对应,有了这个映射,我们就可以加一些软件算法,达到擦写均衡的目的,从而提高flash的使用寿命;再往上是基于UBI层实现和各种文件系统,比如UBIFS。
OTA(Over-the-Air)是一种通过无线通信网络(如Wi-Fi、蜂窝网络)远程下载和安装设备固件或软件更新的方式。这种方式广泛应用于智能手机、物联网设备、汽车电子等领域。
我属于提前批拿到哪吒开发板的,兴奋之余开始研究如何去运行自己的裸机程序,美其名曰:操作系统.
介绍 Sunxi SPINand mtd/ubi 驱动设计, 方便相关驱动和应用开发人员
在容器镜像场景,alpine总是让人着迷,拥有最小的包管理器apk,使得alpine的最小容器镜像大小可以只要7M, 大大的减小了基于此做的容器镜像大小。但是alpine使用 musl libc,而不是 glibc 作为 C 库,可能会影响到一些应用的兼容性,如 NVIDIA 的官方 CUDA 驱动和工具包是针对基于 glibc进行构建和测试,musl libc 存在兼容性问题。如果强行安装GNU glibc,又非常麻烦。
在进行Linux系统的安装或者升级过程中,我们可能会遇到ubi-partman failed with exit code 141的错误提示。这个错误提示通常会伴随着无法继续分区的问题,导致安装或者升级失败。在本文中,我们将深入探讨这个错误的原因和解决方法。
sys_partition.fex 文件中的各个分区大小会按照LEB 大小对齐,sunxi_mbr 分区概念与UBI卷(volume)概念相同 需要修改原镜像文件:物理区TOC0 合逻辑区sunxi_mbr.fex 需要动态生成文件:逻辑区ubi layout volume 注意:
参看:UG: DaVinci PSP Installation on DM36x EVM
硬件设备及镜像 主板为:Yuzuki Lizard V851S开发板 宿主机环境:ubuntu 22.04 SDK版本:Yuzukilizard的github上的Docker镜像 img为:github上Yuzukilizard释放的镜像:[01]v851s_linux_lizard_uart0_2022_12_29.img v851s_linux_lizard_uart0_2022_12_29.img
介绍TinaLinux Flash,分区,文件系统等存储相关信息,指导方案的开发定制。
OTA(Over-the-Air)是一种通过无线通信网络(如Wi-Fi、蜂窝网络)远程下载和安装设备固件或软件更新的方式。这种方式广泛应用于智能手机、物联网设备、汽车电子等领域。 小米发烧友估计对此并不陌生,线刷、卡刷、各种系统的刷机包,最近的澎湃OS不知道各位米友试着刷了没有。当然还有路由器、汽车,甚至台灯等各种智能家居,都是通过OTA的方式进行升级更新。 这里笔者通过两个固件解压包分析案例,来学习固件安全相关内容。
系统没有swap分区的时候,依旧会进行swap操作,swap操作不一定会操作到swap分区。
如果您之前编译过EV200的SDK,那么您会发现,编译DV300的过程很类似,软件包直接拷贝,无需重新下载,通常在1-2个小时内能搞定SDK的编译。 DV300的入门会简洁介绍,如果遇到编译错误,请你阅读EV200的编译过程和相应目录下的readme查询解决方法。
2020 年 12 月初,Kubernetes 在其最新的 Changelog 中宣布,自 Kubernetes 1.20 之后将弃用 Docker 作为容器运行时。
查看分区格式 # df -hT // ext4 文件格式 Filesystem Type Size Used Available Use% Mounted on /dev/system ext4 2.0G 112.4M 1.8G 6% / devtmpfs devtmpfs 107.2M 0 107.2M 0% /dev tmpf
我在用TI的dm368开发板,kernel是2.6.32.17,默认的flash文件系统是jffs2,但是jffs2在大分区下,mount速度很慢,而且占用ram较多,因此,我想使用ubifs看看性能是否会更好些。
对于ubi卷,不能像普通块设备一样进行随机读写。每次更新需要从头写入。 具体的,需要在打开对应的设备之后,先执行一个ioctl UBI_IOCVOLUP,同时传入要更新的数据大小。 随后开始写入数据。写入可以分多次,但必须写满ioctl指定的需要更新的数据量。 写入足够的数据量之后,ubi才算更新完成。提前中断的话,该卷会被破坏,只能重新开始一次更新才能修复它。
第一步: 编译路径执行make menucinfig和make ota_menucinfig中分别选中: (1)Allwinner > swupdate (2)Allwinner > swupdate > Swupdate Settings > General Configuration > MTD support (3)Allwinner > swupdate > Image Handlers > ubivol
随着5G时代的到来,物联网扮演的角色也越来越重要,同时也伴随更多的安全风险。IOT安全涉及内容广泛,本系列文章将从技术层面谈一谈笔者对IOT漏洞研究的理解。笔者将从固件、web、硬件、IOT协议、移动应用五个维度分别探讨,由于水平能力有限,不当或遗漏之处欢迎大家指正补充。 IoT固件基础 之所以将固件作为第一个探讨的主题,因为比较基础,IOT漏洞研究一般无法绕过。以下将介绍固件解密(若加密)、解包打包、模拟和从固件整体上作安全评估四部分。 1.1 固件解密 有些IOT设备会对固件加密甚至签名来提高研究门槛和
数据猿导读 在大数据技术越来越成熟的今天,保险业也与时俱进,进入了“大数据保险时代”。“大数据+保险”能碰撞出什么样的火花呢? 记者 | 大文 本文长度为2300字,建议阅读5分钟 本文为《数据驱动金
索引模板,故名思议,就是创建索引的模板,模板中包含公共的配置(settings)和映射(Mapping),并包含一个简单触发条件,及条件满足时使用该模板创建一个新的索引。
这是linux tar文件,需要解压在linux机器。这是主要tar文件IPNC RDK安装。这个包含在以下文件
本项目被认为有助于从存储媒体或网络更新嵌入式系统。但是,它应该主要作为一个框架来考虑,在这个框架中可以方便地向应用程序添加更多的协议或安装程序(在SWUpdate中称为处理程序)。
模块被加载后,在/sys/module/目录下降出现以此模块名命名的目录 root@dm368-evm:/sys/module# ls 8250 lockd snd_pcm_oss tuner_simple cmemk mt20xx snd_timer tuner_xc2028 davinci_display mt9p031 soundcore tvp514x davinci_enc_mngr musb_hdrc spurious usb_storage davinci_mmc netpoll sunrpc usbcore davincifb nfs tcp_cubic usbserial dm365_imp option tda8290 usbtest dm365mmap printk tda9887 videobuf_core edmak scsi_mod tea5761 videobuf_vmalloc irqk snd tea5767 vpfe_capture kernel snd_pcm ths7303 xc5000 root@dm368-evm:/sys/module#
在设备BSP调试的过程中,经常会出现需要修改DTS的情况,比如调试一个新的屏幕、传感器或者wifi模组,传统的方法是: 在源码中直接修改board.dts文件->重新编译&打包->烧写到设备里 这种方法繁杂,编译和烧写都要花费时间,严重影响开发效率。 因此,全志(其实是uboot提供的)提供了一个启动阶段DTS调试的方法,可以让我们在启动阶段就把DTS改掉,这次启动加载的就是改后的DTS。 *注:这种修改是一次性的,不可以保存的,只限这次启动的时候生效,断电或者重启就不生效了1.设备上电过程中串口按住电脑键盘的"s"按键,让设备进入boot: *注:是真的按住调试的电脑的键盘的s按键,和按住2另设备跳烧录的操作一样(参考:[https://d1.docs.aw-ol.com/study/study_4compile/#pc2](https://d1.docs.aw-ol.com/study/study_4compile/#pc2)) 如果进入boot成功,就会有如下log,这时就可以在串口对设备进行DTS修改操作。 (详细log如下)
在网上一直没有找到一篇专门讲SPI NAND介质改动的文章。实际上需要修改的地方很少,但是由于自己不熟悉,也折腾了不少时间。这篇文章更多是自己折腾过程的记录。同时也给可能遇到同样问题的小伙伴一个参考。
在 Crunchy Data 担任解决方案架构师的角色中,我帮助客户使用 Crunchy Postgres for Kubernetes(CPK)快速上手。在 Kubernetes 中安装和管理 Postgres 集群从未如此简单。然而,有时事情不会按计划进行,我注意到一些 Kubernetes 安装可能出现问题的主要领域。今天,我想逐步介绍一些人们在尝试在 Kubernetes 中运行 Postgres 时经常遇到的常见问题,并提供一些基本的故障排除思路以便入门。当然,您的问题可能不在这里,但如果您只是想诊断安装失败或群集故障,这是我首选的入门故障排除清单。
选文:Selene Wang 作者: Brian Fung,2016.01.04 翻译:田桂英, wendy Zhou,Aileen Fang 校对:汪霞 多年以来,保险公司都依据对你汽车的年行驶公里数的估计值来决定你的车辆保费。 但是随着技术的发展,现在保险公司具有前所未有的能力――掌握你实际的驾驶习惯。 保险公司掌握着你频繁猛踩刹车的次数,掌握着你每天在路上的时间――保险公司越 来越多地依赖于这些精准的风险评估技术手段,并使用该信息来设置你每月的车辆保 费。 Liberty Mutual,美国第三大财
上一篇文章主要介绍了Quarkus以及给Quarkus提供“神力”的Java虚拟机GraalVM,并演示了如何安装GraalVM以及Quarkus的初步用法。本文将主要指向Quarkus的“亮点”——本地化应用程序。
前几天去上海参加了geekpwn,看着大神们一个个破解成功各种硬件,我只能在下面喊 6666,特别羡慕那些大神们。所以回来就决定好好研究一下路由器,争取跟上大神们的步伐。看网上公开的D-Link系列的漏洞也不少,那就从D-Link路由器漏洞开始学习。
作者:Sebao@知道创宇404实验室 前 言 前几天去上海参加了geekpwn,看着大神们一个个破解成功各种硬件,我只能在下面喊 6666,特别羡慕那些大神们。所以回来就决定好好研究一下路由器,争取跟上大神们的步伐。看网上公开的D-Link系列的漏洞也不少,那就从D-Link路由器漏洞开始学习。 准 备 工 作 既然要挖路由器漏洞,首先要搞到路由器的固件。 D-Link路由器固件下载地址: ftp://ftp2.dlink.com/PRODUCTS/ 下载完固件发现是个压缩包,解压之后里面还是有
SWUpdate使用库“libconfig”作为镜像描述的默认解析器。 但是,可以扩展SWUpdate并添加一个自己的解析器, 以支持不同于libconfig的语法和语言。 在examples目录中,有一个用Lua编写的,支持解析XML形式 描述文件的解析器。
OpenELA 已将其进程自动化,以便在 RHEL 新版本发布后几天内即可获得新的企业 Linux 源。
猜猜它是什么?印着姓名、职位和邮箱,看起来是个名片。可是右下角有芯片,看起来又像是个PCB电路板。
WT-ARM9X25-S2 核心模块是基于 ATMEL AT91SAM9X25 ARM9 处理器的工业级嵌入式核心板卡,采用表贴式邮票口封装, 4cm X 4cm 超小尺寸, 108 引脚。该产品主要面向工业控制,仪表仪器,医疗电子,物联网网关等应用, 可以帮助客户快速开发高可靠性产品。
WT-ARM9X25-S2 核心模块是基于 ATMEL AT91SAM9X25 ARM9 处理器的工业级嵌入式核心板卡,采用表贴式邮票口封装, 4cm X 4cm 超小尺寸, 108 引脚。该产品主要面向工业控制,仪表 仪器,医疗电子,物联网网关等应用, 可以帮助客户快速开发高可靠性产品。
主要是IDA,IDA的安装就不用多说了。这里说明的是辅助插件MIPSROP这些插件的安装,书里面给的插件的链接已经无法支持IDA 6.7以后的版本,主要是由于版本以后的API有更新,具体原因IDA的官方博客也给出了说明,查看了issue以后,发现有大佬已经写了能够支持IDA7.0的插件,安装的命令照着readme做即可顺利的装上。
廖威雄,就职于珠海全志科技股份有限公司,负责Linux IO全栈研发、性能优化、开源社区开发交流、Linux 内核开源社区pstore/blk,mtdpstore模块的作者、大客户存储技术支持、全志首个UBI存储方案主导人、全志首个RTOS NFTL主导人
数据猿导读 马云发布“NASA”计划,愿望是要建成世界第五大经济体;雅虎“卖身”最终敲定,再次被Verizon压价3.5亿美元;呼和浩特市与九次方大数据合作,共同激活政府数据价值……以下为您奉上更多大
在上一篇 运维人员的愿望是什么? 文章中我们详细介绍了如何开发一个Operator. 但是,在Operator开发完成之后,将会面临新的问题。比如如何安装部署到分布式集群、升级以及给这个Operato
嵌入式系统三大部分:bootloader(uboot)、Linux内核、根文件系统。
下面是小米路由器折腾记录,包括开启 SSH,然后安装 MT 工具箱,主要是为了其中的两个插件,一个是去广告,一个是 SS 代理,不过附带竟然发现了 frp 插件,开心啊。下面就是具体的记录。
“ 本文来演示如何创建一个operator, 该operator会自动监管应用的pod数量。并且,把这个operator部署在Kubernete/OpenShift 集群上,让它真正运行起来。”
自 1994 年面世以来,红帽 Linux 已经陪伴开发者们走过了将近 30 年的旅程。2014 年红帽吸纳了 CentOS 社区主要成员包括当时的项目领导者、核心项目贡献者。Red Hat 和 CentOS 项目联手,目的是开发用于企业 IT 的下一代 Linux 创新技术。这些年,我们看到开源模型继续蓬勃发展,推动了 Linux 容器、Kubernetes、微服务、无服务器等的兴起。鉴于社区推动的创新步伐迅速,社区领导层在 2019 年决定向 CentOS Linux 社区引入一个新模式:CentOS Stream,将社区工作转向上游。CentOS Stream 是一个面向开发者的发行版,旨在帮助社区成员、红帽合作伙伴和其他人在更稳定和可预测的 Linux 生态系统中充分利用开源创新。
Mondoo是一个Cloud-Native安全和漏洞风险管理系统且开箱即用。Mondoo集成了主要的云环境,CI/CD环境和构建工具(如packer)以及资源调配工具Terraform,Ansible和Chef等。
领取专属 10元无门槛券
手把手带您无忧上云