首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏文件系统知识

    【NAND文件系统】UBI介绍

    UBI- Unsorted Block Images UBI简介 UBI全称Unsorted Block Images,是一种原始flash设备的卷管理系统。 UBI 主要功能 UBI的主要功能如下: UBI 提供可以动态创建、删除或调整大小的卷; UBI 在整个闪存设备上实现磨损均衡(您可能认为您在不断地写入/擦除UBI卷的同一个逻辑擦除块,但实际上UBI UBI卷 一个UBI卷就是一串连续的逻辑擦除块(LEBs)。 UBI卷大小在创建卷时指定,但以后可能会更改(卷可动态调整大小)。UBI提供用户空间工具用于操作UBI卷。 UBI 卷的块接口 ubiupdatevol 更新ubi卷,也可以用来清空ubi卷 ubicrc32 计算与 UBI使用的初始种子相同的文件的 CRC-32校验和 ubinize 生成ubi镜像 删除基于UBI卷的块设备 必须基于UBI卷创建或者删除ubi块设备 $ubiblock -c /dev/ubi0_0 $ubiblock -r /dev/ubi0_0 ubi只读块设备被成功创建

    1.9K00编辑于 2025-02-19
  • 来自专栏Elastic Stack专栏

    Elasticsearch 插件用于 UBI:分析用户搜索行为

    LTR(学习排序):利用 UBI 创建判断列表来为 LTR 模型提供数据,并根据点击/浏览量或其他业务需求提升结果。UBI 在 GitHub 上维护,遵循 Apache 2.0 许可。 UBI 方案UBI 提出了用于查询的方案,当用户搜索时触发,以及用于事件的方案,当用户在搜索上下文中进行其他互动时触发。例如,如果用户搜索“鞋子”,会捕获一个查询类型的文档。 UBI 在 Elasticsearch 中的应用因为 UBI 是一个标准而不是工具或库,因此我们只需两个组件来在 Elasticsearch 中实现它:应用程序:需要从应用程序生成符合 UBI 标准的使用事件索引 要开始捕获 UBI 事件,我们需要以下步骤:安装 UBI 的 Elasticsearch 插件加载示例数据测试插件后续文章将涵盖可视化部分,敬请关注! 安装 UBI 的 Elasticsearch 插件用户行为洞察(UBI)插件用于捕获搜索查询并更好地理解用户行为。该插件专注于捕获服务器端查询,而 o19s/ubi 仓库则负责客户端事件捕获。

    40321编辑于 2025-08-05
  • 来自专栏韦东山嵌入式

    SPINAND UBI 离线烧录 开发指南

    ubi layout volume 由128 个struct ubi_vtbl_record(u-boot-2018/drivers/mtd/ubi/ubimedia.h)组成, 结构体各个成员使用大端表示 ubi 中crc32_le 参考crc32_le.c 用法sunxi_mbr 中crc32 参考crc32.c 用法 10 烧写逻辑卷 PEB = ubi_ec_hdr + ubi_vid_hdr + ubi_ec_hdr 存放于0 字节偏移处,大小与物理页size 对齐 ubi_vid_hdr 存放于1 个物理页size 偏移处,大小也与物理页size 对齐 10.1 ubi_ec_hdr ubi_ec_hdr struct ubi_ec_hdr 位于u-boot-2018/drivers/mtd/ubi/ubi-media.h,结构体各个成员使用大端表示。 /drivers/mtd/ubi/ubi-media.h,结构体各个成员使用大端表示。

    89220编辑于 2023-02-24
  • 来自专栏软件研发

    讲解ubi-partman failed with exit code 141

    讲解ubi-partman failed with exit code 141在进行Linux系统的安装或者升级过程中,我们可能会遇到ubi-partman failed with exit code 问题原因ubi-partman failed with exit code 141错误的主要原因是与磁盘的分区相关。 磁盘设备故障:在某些情况下,磁盘设备本身可能出现故障,导致ubi-partman无法访问或者读取磁盘的分区信息,从而引发错误。 ubi-partman主要的功能如下:磁盘检测:ubi-partman会检测当前系统中的所有磁盘和分区,并显示基本的信息,如磁盘大小、分区类型等。这些信息可以帮助你选择合适的磁盘进行分区操作。 ubi-partman提供许多不同的文件系统类型供选择,如ext4、NTFS等。

    88010编辑于 2023-12-27
  • 来自专栏文件系统知识

    【文件系统】如何在ubi之上运行squashfs

    由于ubifs是运行在UBI卷之上的文件系统,而squashfs是运行在block device之上的文件系统,二者本来无任何交集,但是UBI提供了能够在ubi卷之上创建只读块设备的特性(R/O block R/O block devices on top of UBI volumes UBI 允许在 UBI 卷上创建只读块设备,该卷适用于只读的、面向块的文件系统,例如 squashfs。 镜像ubi.image ubinize -m 4KiB -p 256KiB ubinize.cfg -o ubi.image 烧写ubi镜像 上一步骤生成的ubi.image可以直接写入flash,这里使用 烧写ubi镜像 ubiformat /dev/mtd3 -y -f ubi.image attach ubiattach -p /dev/mtd3 attach之后会生成新的ubi设备以及ubi卷。 -r /dev/ubi0_0 基于ubi2_0创建ubi块设备的命令如下: ubiblock -c /dev/ubi2_0 执行完成后,会在/dev生成ubi块设备文件 # ls /dev/ubiblock2

    1K10编辑于 2025-02-19
  • 来自专栏LINUX阅码场

    尹忠凯: 针对Flash的Linux UBI子系统代码深度分析

    UBI简介 ? ubi_device *ubi_devices 中,代码如下: ? ubi_volume *volumes[] 是一个指针数组,数组中的每一个元素都是struct ubi_volume 结构(详细过程见ubi_read_volume_table() 函数)。 ubi_cdev_operations:是针对UBI设备(/deb/ubi0等)进行操作的,从UBI设备的角度可以看到不同的volume,因此可以对volume进行创建,删除,扩容等操作。 ubi_ctrl_cdev_operations:是针对UBI层(/dev/ubi_ctrl)的操作,从该角度可以看到UBI设备,因此可以对UBI设备进行创建,删除操作。

    2.6K30发布于 2021-05-08
  • 来自专栏QB杂货铺

    一种分片更新ubi卷的方式(基于ubiupdatevol,拓展fifo支持)

    ubi卷的更新方式 对于ubi卷,不能像普通块设备一样进行随机读写。每次更新需要从头写入。 如果对ubi卷执行-t,则等同于擦除该卷的数据。 ubiupdatevol version 2.0.1 - a tool to write data to UBI volumes. file "fs.img" to UBI volume /dev/ubi0_1 Example 2: ubiupdatevol /dev/ubi0_1 -t - wipe out UBI volume 例如 ubiupdatevol /dev/ubi0_1 -f & dd if=newdata.part1 of=/dev/ubi0_1_fifo dd if=newdata.part2 of=/dev/ ubi0_1_fifo dd if=/dev/zero of=/dev/ubi0_1_fifo 原文:https://www.cnblogs.com/zqb-all/p/11074500.html

    1.1K10发布于 2019-12-27
  • 来自专栏全栈程序员必看

    ubifs使能和禁止压缩_移植不成功胚胎去哪了

    1484): ubi_io_write:write 512 bytes to PEB 57:0 int ubi_io_write(struct ubi_device*ubi, const void *buf = ubi->mtd->erasesize; ubi->peb_count = mtd_div_by_eb(ubi->mtd->size,ubi->mtd); ubi -m 3 UBI: attaching mtd3 to ubi0 UBI: physical eraseblock size: 131072 bytes (128 KiB) UBI: logical root@dm368-evm:/# ubiattach/dev/ubi_ctrl -m 3 UBI: attaching mtd3 to ubi0 UBI: physical eraseblock size UBI: attached mtd3 to ubi0 UBI: MTD device name: “filesystem1” UBI: MTD device size:

    74750编辑于 2022-09-21
  • 来自专栏3分钟云计算

    使用buildx构建多架构的镜像

    例如: mac:learn-operator jianzhang$ docker buildx imagetools inspect registry.access.redhat.com/ubi8/ubi-minimal :latest Name: registry.access.redhat.com/ubi8/ubi-minimal:latest MediaType: application/vnd.docker.distribution.manifest.list.v2 /ubi-minimal:latest@sha256:c1cd272f2ffd1d4ae660bdd31d08f2072e9a6a0805d4d31730dc475e55296948 MediaType /ubi-minimal:latest@sha256:9bf78e321fd7fe46075971a83c6f92e48cbc35b546bf9af72b865fc45673d562 MediaType /ubi-minimal:latest 支持四种架构: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x 该基础镜像满足多架构需求,Dockerfile

    1.3K20编辑于 2022-06-13
  • UBIFS:新一代嵌入式闪存文件系统详解

    UBIFS = UBI File System(无序块映像文件系统) 它不是单独工作的,而是建立在UBI(无序块管理层)之上! UBI层的关键作用 UBI的功能分解: UBI层 ┌───────────────┐ │ 1. 磨损均衡 │ ← 让所有块均匀使用 │ 2. 创建UBIFS文件系统 # 步骤1:创建UBI设备 ubiattach -m 0 -d 0 /dev/mtd0 # 步骤2:创建UBI卷 ubimkvol /dev/ubi0 -N rootfs -s 启动参数配置 # 传统root参数 root=/dev/mtdblock3 rootfstype=jffs2 # UBIFS root参数 ubi.mtd=0 root=ubi0:rootfs rootfstype # 格式化UBI ubiattach # 附加UBI设备 ubimkvol # 创建UBI卷 mkfs.ubifs # 创建UBIFS镜像 调试技巧 # 查看UBIFS详细信息 cat

    20410编辑于 2026-02-02
  • 来自专栏韦东山嵌入式

    全志Tina Linux SPINAND UBI 离线烧录 开发指南 支持百问网T113 D1-H哪吒 DongshanPI-D1s V853-Pro等开发板

    ubi layout volume 由128 个struct ubi_vtbl_record(u-boot-2018/drivers/mtd/ubi/ubimedia.h)组成, 结构体各个成员使用大端表示 ubi 中crc32_le 参考crc32_le.c 用法sunxi_mbr 中crc32 参考crc32.c 用法 10 烧写逻辑卷 PEB = ubi_ec_hdr + ubi_vid_hdr + ubi_ec_hdr 存放于0 字节偏移处,大小与物理页size 对齐 ubi_vid_hdr 存放于1 个物理页size 偏移处,大小也与物理页size 对齐 10.1 ubi_ec_hdr ubi_ec_hdr struct ubi_ec_hdr 位于u-boot-2018/drivers/mtd/ubi/ubi-media.h,结构体各个成员使用大端表示。 /drivers/mtd/ubi/ubi-media.h,结构体各个成员使用大端表示。

    1.5K30编辑于 2022-12-28
  • 来自专栏韦东山嵌入式

    修改系统启动环境变量

    => print aw-ubi-spinand.ubootblks=24 boot_dsp0=sunxi_flash read 45000000 ${dsp0_partition};bootr 45000000 rsa_cert3 loglevel=8 mmc_root=/dev/mmcblk0p5 mtd_name=sys nand_root=/dev/ubiblock0_5 partitions=mbr@ubi0 _0:boot-resource@ubi0_1:env@ubi0_2:env-redund@ubi0_3:boot@ubi0_4:rootfs@ubi0_5:private@ubi0_6:rootfs_data @ubi0_7:UDISK@ubi0_8: root_partition=rootfs rootfstype=squashfs setargs_mmc=setenv bootargs earlyprintk =setenv bootargs ubi.mtd=${mtd_name} ubi.block=0,${root_partition} earlyprintk=${earlyprintk} clk_ignore_unused

    52210编辑于 2024-08-19
  • 来自专栏文件系统知识

    【NAND文件系统】UBIFS介绍

    MTD 提供了 MTD 设备的概念(例如,/dev/mtd0),它基本上代表原始闪存; UBI 子系统,这是一个用于闪存设备的磨损均衡和卷管理系统; UBI 在MTD设备之上工作并提供UBI卷的概念; 然而,UBI 是线性扩展的,这使得整个UBI/UBIFS堆栈的可扩展性是线性的。 但 UBIFS 的作者相信创建对数可扩展的UBI2并改善这种情况是可能的。 输出文件ubi.image ubi.image是ubi镜像,可以直接写入mtd设备(raw flash). 设备ID,使用ubinfo -a 列出所有UBI设备信息,刚刚新增的UBI设备ID是2. ubi2的volume0信息与ubinize.cfg 配置文件的内容一致。 /dev/ubi2_0 -t $ ubiupdatevol /dev/ubi2_1 -t 参考 Linux 内核驱动解析 - UBI坏块预留大小 UBIFS - UBI File-System UBI

    1.6K10编辑于 2025-02-19
  • 来自专栏QB杂货铺

    ubifs开销测试

    问题 在板子上观察到56M的ubi卷,挂载上ubifs之后,df -h显示可用空间约为50M。 如此计算开销超过了10%,那么这个开销随容量如何变化呢,是固定为10%吗还是有其他规律? first_id_byte=0xec second_id_byte=0xd3 third_id_byte=0x10 fourth_id_byte=0xa6 sudo modprobe ubi mtd= 0 sudo ubimkvol /dev/ubi0 -N ubifs-vol -s 100MiB sudo mkdir -p /mnt/ubifs sudo mount -t ubifs /dev/ubi0 _0 /mnt/ubifs df -h | grep ubi0_0 对应卸载命令为 sudo umount /mnt/ubifs sudo rmmod ubifs ubi nandsim 查看ubi信息的命令 ubinfo /dev/ubi0_0 测试结果 ?

    96820发布于 2019-12-27
  • 来自专栏产品那些事

    【产品那些事】固件安全-关于OTA升级包分析

    格式文件提取出来之后什么是ubi格式文件? UBI(Unsorted Block Image)是一种用于 NAND 闪存的文件系统,它提供了对闪存的磨损均衡和坏块管理。UBI 文件系统常见于嵌入式设备中,尤其是在需要可靠性和耐用性的场景。 解压后的ubi文件ubi_reader安装及使用ubi_reader 是一个用于处理 UBI 文件系统的工具集。它包括几个命令行工具,用于读取和提取 UBI 和 UBIFS 映像文件。 # 查看 UBI 映像文件的信息ubireader_display_info 12D4.ubi# 提取 UBI 映像文件中的所有内容ubireader_extract_images 12D4.ubi当然还有其他命令 这里就不一一演示了# 列出 UBI 映像文件中的文件ubireader_list_files 12D4.ubi# 提取特定的文件或块ubireader_extract_files 12D4.ubiunsquashfs

    1.9K00编辑于 2024-07-24
  • 来自专栏全志嵌入式那些事

    全志D1-H哪吒上裸机执行 rt-thread 的 rt-smart os

    查看一下 sys 中的信息 ubi part sys ubi info l # 输出如下: Volume information dump: vol_id 0 boot_normal partitions=mbr@ubi0_0:boot-resource@ubi0_1:env@ubi0_2:env-redund@ubi0_3:boot@ubi0_4:rootfs @ubi0_5:dsp0@ubi0_6:recovery@ubi0_7:UDISK@ubi0_8: root_partition=rootfs setargs_nand_ubi=setenv bootargs ubi.mtd=${mtd_name} ubi.block=0,${root_partition} earlyprintk=${earlyprintk} clk_ignore_unused initcall_debug bootcmd 这个是 uboot 启动时候执行的变量, 内容是 run setargs_nand_ubi 和 boot_normal 其中 setargs_nand_ubi 是设置 bootargs

    51110编辑于 2024-02-02
  • 来自专栏韦东山嵌入式

    Linux SPI-NAND 驱动开发指南

    ) @version: UBI implementation version which is supposed to accept this UBI image(%UBI_VERSION) @vol_type , %UBI_COMPAT_IGNORE,%UBI_COMPAT_PRESERVE, or %UBI_COMPAT_REJECT) @vol_id: ID of this volume @lnum: logical 但是 P1 的序列号更大,所以 UBI 在连接 flash 时选择 P1。 UBI 不时地将逻辑擦除块移动到其他物理擦除块,以达到损耗均衡的目的。 例如,如果 UBI将 L 从 P 移动到 P1,在 P 被物理擦除之前会发生不干净的重启,有两个物理擦除块 P 和 P1 对应于 L, UBI 必须在 flash 连接时选择其中一个。 UBI 使用 @copy_flag 字段表示这个逻辑擦除块是一个副本。UBI 还计算数据的 CRC,当数据被移动时,并将其存储在副本 (P1) 的 @data_crc 字段。

    4.8K50编辑于 2023-02-24
  • 优化减少容器镜像大小 - 使用最小的包管理器

    Redhat: name size Desc ubi9-minimal 98.7MB microdnf package manager ubi9 230M dnf package manager Alpine redhat ubi9 5.92M docker pull godnf/ubi9:latest 我们可以基于基础镜像构建继续构建。 1> 构建python的容器镜像 Dockerfile FROM godnf/ubi9:latest RUN godnf install python CMD ["/bin/python"] 2> 执行构建: docker build -t godnf-ubi9-python . 3> 运行容器 [root@localhost tst]# docker run -it godnf-ubi9-python -minimal 和 godnf/ubi9作为FROM镜像构建python,可以看到redhat/ubi9-minimal microdnf的构建出来的容器镜像几乎大了一倍。

    45210编辑于 2024-06-20
  • 来自专栏中间件兴趣圈

    Elasticsearch Index Templates(索引模板)

    一个索引模板示例如下: 1PUT _template/template_1 2{ 3 "index_patterns": [“ubi*”], //@1 4 "settings 5 List<String> indexPatterns = new ArrayList<String>(); 6 indexPatterns.add("ubi host_name", "localhost"); 6 data.put("created_at", "2019-04-07 23:05:04"); 7 //ubi _201904该索引一开始不存在,但索引ubi_201904符合ubi_index_template 8 //中定义的匹配表达式ubi*,所以会自动创建索引。 (); 12 } 13 } 其返回结果: 1IndexResponse[index=ubi_201904,type=_doc,id=lCJZ-GkBrOLJP-QWff3I,version

    3.6K30发布于 2019-06-11
  • 来自专栏数据猿

    数据猿专访阳光保险谢国忠,大数据时代思想转变最重要

    个性化保险中发展最为成熟的是车险,即UBI(Usage Based Insurance)车险。 国外UBI车险发展较国内更为成熟,UBI车险用户主要集中在欧洲和美国,2015年底UBI车险用户大约在1200万人左右。在UBI车险最热的意大利,渗透率达14%。 若车险费率市场化完全放开,同时伴随着车联网50%的新车渗透率预期,保守估计UBI 车险的渗透率在2020 年可以达到10%~15%,UBI 车险将有望达到1400亿元的市场规模。 实际上,在国内保险市场,因为监管层面的限制,目前暂时没有真正的UBI车险产品,但众多保险公司已经展开了积极的尝试。 谢国忠表示,目前限制UBI车险发展的除了监管层面的限制之外,数据量不足与覆盖度的问题也同样亟需解决。

    1.1K100发布于 2018-04-24
领券