日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux镜像模式,Linux实现HiTool的合并镜像功能

發(fā)布時間:2023/12/10 linux 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux镜像模式,Linux实现HiTool的合并镜像功能 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Linux實(shí)現(xiàn)HiTool的合并鏡像功能

完成uboot、kernel、rootfs后,HiTool提供了界面工具來制作合并鏡像。通過生成的文件分析發(fā)現(xiàn),這個功能主要就是合并了多個二進(jìn)制文件,其中指定區(qū)域段數(shù)據(jù)不足時使用0x00補(bǔ)全。知道規(guī)則后那么我們就可以做自己的合并鏡像功能了,實(shí)現(xiàn)在完成編譯后直接生成一個完整燒寫鏡像。

方式

這部分邏輯比較簡單,因此就不用C語言編寫了,直接使用shell腳本實(shí)現(xiàn)。其中主要涉及的指令為cat重定向和dd,它們分別用來進(jìn)行文件拼接和空白區(qū)域填充功能。

實(shí)現(xiàn)

切換路徑

最簡單的腳本形式,第一行指定解釋器,第二行移動路徑到我的鏡像輸出路徑

#!/bin/bash

cd out

刪除舊的文件

這里定義合并后的鏡像文件名稱,如果這個文件以及存在那么就把它刪除

outfile='img.flash'

if [ -f $outfile ]

then

rm -rf $outfile

fi

填充uboot

先設(shè)定生成的uboot文件名稱,然后獲取這個文件的長度,我這里鏡像中uboot設(shè)定的區(qū)域長度是1M大小。拼接文件可以使用符號進(jìn)行追加。因?yàn)楹喜⑽募袛?shù)據(jù)不足區(qū)域要補(bǔ)0,計(jì)算得到空缺長度addlen后,可以使用dd指令從zero中獲取一塊相同長度的數(shù)據(jù)填上,這樣第一部分就完成啦。

file='u-boot-hi3516ev200.bin'

len=`stat -c "%s" $file`

alllen=$((1 * 1024 * 1024))

addlen=`expr $alllen - $len`

echo len=$len alllen=$alllen addlen=$addlen

cat $file $outfile

dd if=/dev/zero bs=$addlen count=1 $outfile

填充kernel

這部分語法與上面一致,其中kernel區(qū)域指定長度為4M大小。

file='uImage'

len=`stat -c "%s" $file`

alllen=$((4 * 1024 * 1024))

addlen=`expr $alllen - $len`

echo len=$len alllen=$alllen addlen=$addlen

cat $file $outfile

dd if=/dev/zero bs=$addlen count=1 $outfile

填充rootfs

file='rootfs_uclibc_64k.jffs2'

len=`stat -c "%s" $file`

alllen=$((11 * 1024 * 1024))

addlen=`expr $alllen - $len`

echo len=$len alllen=$alllen addlen=$addlen

cat $file $outfile

dd if=/dev/zero bs=$addlen count=1 $outfile

填充完根文件系統(tǒng)后,整個合并的鏡像文件就算完成了。接著可以打印一下輔助信息做簡說明要判斷,HiTool工具提供了按地址燒寫的操作,我們可以把需要填寫的十六進(jìn)制文件長度也顯示出來。

echo

echo filepath: `pwd`/$outfile

alllen=`stat -c "%s" $outfile`

echo filesize: $alllen `printf "(HEX:%x)" $alllen`

echo

至此,把這些代碼都寫到一個腳本文件中,在make的時候調(diào)用一下就可以直接生成合并的鏡像文件發(fā)出去啦。測試一下運(yùn)行效果

Linux實(shí)現(xiàn)HiTool的合并鏡像功能 相關(guān)文章

631 echarts調(diào)色盤:主題調(diào)色盤,全局調(diào)色盤,局部調(diào)色盤,漸變顏色的實(shí)現(xiàn)

03.調(diào)色盤的使用.html !DOCTYPE htmlhtml lang="en"head meta charset="UTF-8" meta name="viewport" content="width=device-width, initial-scale=1.0" meta http-equiv="X-UA-Compatible" content="ie=edge" titleDocument/title script src="lib/echarts.

js實(shí)現(xiàn)大數(shù)相加算法

1、題目:實(shí)現(xiàn)兩個大數(shù)相加。 2、算法思路: 大數(shù)可能超出任何一種整數(shù)類型,會引發(fā)溢出問題,所以用字符串的格式存儲大數(shù): //js實(shí)現(xiàn)大數(shù)相加 function add(str1, str2) { if (Number(str1) Number(str2)) { var len = str1; } else { var len = str2; } var

Linux內(nèi)核源碼分析 -- 構(gòu)造新 cred -- prepare_kernel_cred

prepare_kernel_cred - Prepare a set of credentials for a kernel service 使用指定進(jìn)程的 real_cred 去構(gòu)造一個新的 cred,不是引用,不是引用,不是引用,而是創(chuàng)建一個新的 cred 源碼版本:Linux Kernel 5.9.9 prepare_kernel_cred /** * prepare_kernel

django 實(shí)現(xiàn)讀寫分離

主要目的:單個數(shù)據(jù)庫進(jìn)行讀寫操作頻繁,降低速度,增加服務(wù)器讀寫數(shù)據(jù)庫壓力,為了解決這一問題,對數(shù)據(jù)庫進(jìn)行讀寫分離,將大大提升項(xiàng)目的性能。其基本原理是: 讓主數(shù)據(jù)庫處理事務(wù)性的增刪改查,而從數(shù)據(jù)庫處理查詢操作,當(dāng)主數(shù)據(jù)庫因一些事務(wù)性操作導(dǎo)致數(shù)

安卓自動化測試--Momkey 自定義腳本實(shí)現(xiàn)自動化

MonkeyScript MS 是官方提供的,除了像猴子一樣隨機(jī)亂點(diǎn)之外,還可以通過編寫腳本的形式,完成一系列固定的操作。MS 提供一整套完善的 API 來進(jìn)行支持,主要還是基于坐標(biāo)點(diǎn)的操作,包含常用的:點(diǎn)擊、長按、輸入、等待等操作。 腳本用法 1、LaunchActivity(p

Oracle-Rman數(shù)據(jù)備份

1、Linux系統(tǒng)下備份 開啟歸檔日志 linux 啟動歸檔日志 SQL SHUTDOWN IMMEDIATE; SQL STARTUP MOUNT; mkdir -p /u01/arch SQL alter system set log_archive_dest_1='location=/u01/arch'; SQL alter database archivelog; SQL alter database open; SQL arch

linux lvm分區(qū)在線擴(kuò)容

轉(zhuǎn)載:https://www.cnblogs.com/tiantianhappy/p/10143663.html 前言: 對lvm格式的 / 分區(qū)進(jìn)行在線擴(kuò)容 1.添加新的磁盤 略 2.查詢磁盤情況 df -Thfdisk -l 3.如果沒有找到 cd /sys/class/scsi_host/echo "- - -" host0/scan #接口掃描新加磁盤即可,如果輸

SSH客戶端工具連接Linux(有的也可以連接Windows、mac、、iOS等多系統(tǒng)平臺)

要遠(yuǎn)程操作Linux的話還是得靠SSH工具,一般來說,Linux是打開了默認(rèn)22端口的SSH的服務(wù)端,如果我們要遠(yuǎn)程它的話,就需要一個SSH客戶。 我對一款好用的工具主要需要滿足以下幾點(diǎn)。 (1)連接服務(wù)器快速,穩(wěn)定; (2)支持sftp或者ftp文件傳輸; (3)支持X11

如何實(shí)現(xiàn)一個圣杯布局

什么是圣杯布局 圣杯布局是為了討論「三欄液態(tài)布局」的實(shí)現(xiàn),最早的完美實(shí)現(xiàn)是由 Matthew Levine 在 2006 年寫的一篇文章 《In Search of the Holy Grail》 ,它主要講述了網(wǎng)頁中關(guān)于最佳圣杯的實(shí)現(xiàn)方法。 它有以下幾點(diǎn)要求: 上部(header)和下部(footer)各

springboot 如何使用自定義注解+aop實(shí)現(xiàn)全局日志持久化操作

1.自定一個注解 package com.hc.manager.common.aop.annotation; import java.lang.annotation.*; /** * LogAnnotation * * @author summer.chou * @version V1.0 * @date 2020年3月18日 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME

總結(jié)

以上是生活随笔為你收集整理的Linux镜像模式,Linux实现HiTool的合并镜像功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。