高通MDM平台 分割槽表

2021-09-29 11:21:39 字數 3409 閱讀 6840

最近想要回顧下之前的一些東西,記錄下一些簡單但細碎的東西,本章簡單從分割槽表入手隨便寫寫

分割槽表檔案在common\config\partition_nand.xml

0:boot//分割槽名

7500//大小必須為block整數,block 為64個page,也可以直接用size_blks

500//大小必須為block整數,block 為64個page,也可以直接用spad_blks

00xff

0x01

0x00

0xff

mdm9607-boot.img//韌體名稱

以乙個分割槽的配置為例,定義了乙個boot的分割槽,大小為7500kb + 500 kb,但是最後是需要取整到block,以128kb block size來看,最後大小為(59+4)*128kb 換算稱 16進製制就是 007e0000

這個可以從mtd中看到

cat proc/mtd

dev: size erasesize name

mtd0: 00140000 00020000 "sbl"

mtd1: 00140000 00020000 "mibib"

mtd2: 00c00000 00020000 "efs2"

mtd3: 000c0000 00020000 "tz"

mtd4: 00060000 00020000 "rpm"

mtd5: 000a0000 00020000 "aboot"

mtd6: 007e0000 00020000 "boot"

mtd7: 00be0000 00020000 "scrub"

mtd8: 02440000 00020000 "modem"

mtd9: 007c0000 00020000 "recovery"

mtd10: 00180000 00020000 "fota"

mtd11: 00f20000 00020000 "recoveryfs"

mtd12: 00040000 00020000 "sec"

mtd13: 09500000 00020000 "system"

從mtd 檔案看到flash分為13個mtd分割槽。下面簡單的介紹下每個分割槽的含義以及對應的韌體

sbl:sbl1.mbn  可以看做軟體最開始的入口,固定位置,由晶元固化pbl 跳轉

mibib:分割槽表 

efs2:modem efs 檔案系統

tz,rpm:trustzone  rpm

aboot:lk,ap的bootloader

boot:kernel mdm9607-boot.img

srub:flash srub 功能的交換區

modem:mp

recovery:公升級的kernel,與boot燒錄一樣的

recoveryfs:公升級的ubifs,只有部分必要的功能

system:ubifs

可以看到flash中儲存了兩個kernel 和兩個fs,乙個用於正常工作,乙個用於公升級操作。具體載入選擇在lk中通過cmdline傳遞載入哪個fs。下面就是載入mtd13的正常system fs

rootfstype=ubifs rootflags=bulk_read,sync root=ubi0:rootfs ubi.mtd=13
mdm平台中的fs都是採用的ubifs,包含的三個檔案系統:system ,recoveryfs,modem都是ubifs

從上面的cmdline中看到ubi0:rootfs,說明整個ubi0應該有分成不同的volume,具體需要追究下編譯過程中的ubifs製作:

ubinize -o $ $ $
[sysfs_volume]

mode=ubi

vol_id=0

vol_type=dynamic

vol_name=rootfs

vol_size=53mib

[usrfs_volume]

mode=ubi

vol_id=1

vol_type=dynamic

vol_name=usrfs

vol_flags = autoresize

[cache_volume]

mode=ubi

vol_id=2

vol_type=dynamic

vol_name=cachefs

vol_size=75mib

所以整個ubi0被分成了三個volume,cachefs是空的,所以沒有指定image

#ubinize args

ubinize_args = "-m 2048 -p 131072 -s 2048"

#mkubifs args

mkubifs_args = "-m 2048 -e 126976 -c 2146 -f"

#volume sizes

system_volume_size = "53mib"

cache_volume_size = "75mib"

rootfs 的ubi檔案是由meta/classes/image_types.bbclass來生成。一般不需要修改

usrfs 的ubi檔案是在mdm-usr-image.inc生成。

eval findandmountvolume$ usrfs /data

eval findandmountvolume$ cachefs /cache

eval findandmount$ modem /firmware

modem的ubifs名稱為non-hlos.ubi,製作ubifs 的配置檔案在common\config\my_ubi.ini,相應的mkfs.ubifs,ubinize配置在common\build\contents.xml中

@tool_name -r @src_dir -o @destn_image -m @min_ip_op_unit_size -e @eraseblock_size -c @max_file_system_size_logical_eraseblocks -f

mkfs.ubifs

./bin

2146

126976

2048

non-hlos.ubifs

@tool_name -v -o @destn_image -m @min_ip_op_unit_size -p @physical_eraseblock_size -s @sub_page_size ./../config/my_ubi.ini

ubinize

2048

131072

2048

non-hlos.ubi

把非分割槽表改為分割槽表

把非分割槽表改為分割槽表 說明 把非分割槽表改為分割槽表適用於歷史表 1 建立分割槽表 結構和非分割槽表tbl stock balance log相同 createtabletbl stock balance log part1 account id varchar2 20 byte occur d...

Hive分通表和分割槽表的區別

把錶或分割槽劃分成bucket有兩個理由 1,更快,桶為表加上額外結構,鏈結相同列劃分了桶的表,可以使用map side join更加高效。2,取樣sampling更高效。沒有分割槽的話需要掃瞄整個資料集。3.與分割槽不同的是,分割槽依據的不是真實資料表檔案中的列,而是我們指定的偽列,但是分桶是依據...

sqlserver 分割槽表

1 建分割槽函式,用於自動劃分物理表資料的流向 建好後可以在databases dbname storage中看到 下面分成四個區域 bigscreen且 computer且 pooltable 若是right,則x1 bigscreen x2 computer x3 pooltable x4 若是...