| MKIMAGE(1) | General Commands Manual | MKIMAGE(1) |
نام (NAME)
mkimage - تولید ایمیجها برای U-Boot
خلاصه دستور (SYNOPSIS)
mkimage |
[-T type] -l image-file-name |
mkimage |
[option ...] [-T type] image-file-name |
mkimage |
[option ...] -f image-tree-source-file|auto|auto-conf image-file-name |
mkimage |
[option ...] -F image-file-name |
توضیحات (DESCRIPTION)
دستور mkimage برای ساخت ایمیجها جهت استفاده با بوتلودر U-Boot به کار میرود. این ایمیجها میتوانند شامل هسته لینوکس، device tree blob، ایمیج سیستمفایل ریشه، ایمیجهای میانافزار (firmware) و غیره، به صورت مجزا یا ترکیبی باشند.
دستور mkimage از قالبهای ایمیج متعددی پشتیبانی میکند. برخی از این قالبها ممکن است توسط سفتافزار بوت تعبیهشده (embedded boot firmware) برای بارگذاری U-Boot به کار روند. سایر قالبها ممکن است توسط U-Boot برای بارگذاری لینوکس (یا هستهای دیگر) استفاده شوند:
قالب سنتی (legacy) ایمیج، بخشهای مجزا (برای مثال، ایمیج هسته، device tree blob و ایمیج ramdisk) را پشت سر هم متصل میکند و یک سرآیند ۶۴ بایتی شامل اطلاعاتی درباره معماری مقصد، سیستمعامل، نوع ایمیج، روش فشردهسازی، نقاط ورود (entry points)، برچسب زمانی، مجموعهای مقابلهای (checksums) و غیره به آن میافزاید.
قالب جدید FIT (Flattened Image Tree) انعطافپذیری بیشتری در کار با انواع گوناگون ایمیجها فراهم میکند و همچنین حفاظت از یکپارچگی ایمیجها را با مجموعهای مقابلهای قویتر ارتقا میدهد. این قالب همچنین از بوت تأییدشده (verified boot) پشتیبانی میکند.
گزینهها (OPTIONS)
گزینههای عمومی (General options)
- -h
- --help
- پیام راهنما را چاپ کرده و خارج میشود.
- -l
- --list
- دستور mkimage اطلاعات موجود در سرآیند یک ایمیج موجود U-Boot را فهرست میکند.
- -s
- --no-copy
- دادههای ایمیج را درون آن رونوشت نمیکند. بسته به نوع ایمیج، این کار ممکن است تنها سرآیند، همهچیز به جز دادههای ایمیج، یا اصلاً هیچچیزی ایجاد نکند.
- -T image-type
- --type image-type
- فایل ایمیج را به عنوان image-type تجزیه میکند. مقدار list را به عنوان image-type ارسال کنید تا فهرست انواع ایمیجهای پشتیبانیشده را مشاهده نمایید. اگر این گزینه مشخص نشود، مقدار پیشفرض آن kernel (ایمیج سنتی) خواهد بود. اگر این گزینه هنگام استفاده از -l مشخص نشده باشد، آنگاه mkimage تلاش خواهد کرد نوع ایمیج را به طور خودکار شناسایی کند. همه انواع ایمیج از تشخیص خودکار پشتیبانی نمیکنند، بنابراین ممکن است لازم باشد -T به صورت صریح مشخص شود.
- هنگام ساخت یک ایمیج FIT با -f، نوع ایمیج همیشه برابر با flat_dt تنظیم میشود. در این حالت، -T ویژگی ‘type’ مربوط به گره ایمیج را تعیین میکند. اگر -T داده نشود، ویژگی ‘type’ به طور پیشفرض برابر با kernel خواهد بود.
- -q
- --quiet
- حالت بیصدا. سرآیند ایمیج را چاپ نمیکند.
- -v
- --verbose
- حالت مشروح. نام فایلها را هنگام افزوده شدن به ایمیج چاپ میکند.
- -V
- --version
- اطلاعات نسخه را چاپ کرده و خارج میشود.
- -A architecture
- --architecture architecture
- معماری را تعیین میکند. برای مشاهده فهرست معماریهای پشتیبانیشده، -h را بهعنوان معماری ارسال کنید. اگر -A مشخص نشود، مقدار پیشفرض آن ppc است.
- -O os
- --os os
- سیستمعامل را تعیین میکند. دستور bootm در U-Boot شیوه راهاندازی (بوت) را بر اساس نوع سیستمعامل تغییر میدهد. برای مشاهده فهرست سیستمعاملهای پشتیبانیشده، -h را بهعنوان os ارسال کنید. اگر -O مشخص نشود، مقدار پیشفرض آن linux است.
- -C compression-type
- --compression compression-type
- نوع فشردهسازی را تعیین میکند. دادههای تصویر باید از قبل با استفاده از این نوع فشردهسازی فشرده شده باشند. mkimage دادههای تصویر را بهطور خودکار فشرده نخواهد کرد. برای مشاهده فهرست انواع فشردهسازی پشتیبانیشده، -h را بهعنوان compression-type ارسال کنید. اگر -C مشخص نشود، مقدار پیشفرض آن gzip است.
- -a load-address
- --load-address load-address
- آدرس مطلقی که دادههای تصویر باید در آن بارگذاری شوند را تعیین میکند. load-address بهعنوان یک عدد در مبنای شانزده (هگزادسیمال) تفسیر میشود.
- -e entry-point
- --entry-point entry-point
- آدرس مطلق نقطه ورود تصویر را تعیین میکند. دستور bootm در U-Boot پس از بارگذاری تصویر به این آدرس پرش خواهد کرد. entry-point بهعنوان یک عدد در مبنای شانزده (هگزادسیمال) تفسیر میشود.
- -n primary-configuration
- --config primary-configuration
- تصاویر ممکن است به پیکربندیهای اضافهای نیاز داشته باشند که با گزینههای دیگر مشخص نمیشود؛ این تنظیمات معمولاً در قالبی مختص به نوع تصویر هستند. انواع تصاویری که از این گزینه پشتیبانی میکنند و قالب پیکربندی آنها در بخش CONFIGURATION فهرست شدهاند.
- -R secondary-configuration
- --secondary-config secondary-configuration
- برخی از انواع تصویر از مجموعهای دوم از دادههای پیکربندی پشتیبانی میکنند. انواع تصاویری که از پیکربندی ثانویه پشتیبانی میکنند و قالب پیکربندی آنها در بخش CONFIGURATION فهرست شدهاند.
- -d image-data-file
- --image image-data-file
- از دادههای تصویر موجود در image-data-file استفاده میکند. اگر image-type برابر با multi باشد، میتوان چندین تصویر را که با دونقطه از یکدیگر جدا شدهاند مشخص کرد:
- image-data-file[:image-data-file...]
- -x
- --xip
- پرچم XIP (اجرا در محل / execute in place) را تنظیم میکند. دستور bootm در U-Boot دادههای تصویر را بارگذاری نخواهد کرد و در عوض فرض میکند که این دادهها از قبل در آدرس بارگذاری در دسترس هستند (مانند حافظه فلش نگاشتشده در حافظه).
- -y
- --tfa-bl31-file
- فایل TFA BL31 را به تصویر ضمیمه میکند.
- -Y
- --tfa-bl31-addr
- آدرس بارگذاری و نقطه ورود فایل TFA BL31 را تعیین میکند.
- -z
- --tee-file
- فایل خام TEE را به تصویر ضمیمه میکند.
- -Z
- --tee-addr
- آدرس بارگذاری و نقطه ورود فایل خام TEE را در مبنای شانزده (هگزادسیمال) تعیین میکند.
- -b device-tree-file
- --device-tree device-tree-file
- فایل باینری درخت دستگاه (.dtb) را به FIT ضمیمه میکند.
- -c comment
- --comment comment
- توضیحی را برای افزودن هنگام امضا مشخص میکند. این معمولاً پیامی است که نحوهٔ امضای تصویر یا سایر اطلاعات مفید را توصیف میکند.
- -D dtc-options
- --dtcopts dtc-options
- گزینههای اضافی را هنگام ایجاد تصویر به کامپایلر درخت دستگاه ارائه میدهد. برای مستندات گزینههای ممکن، dtc(1) را ببینید. اگر -D مشخص نشود، مقدار پیشفرض آن -I dts -O dtb -p 500 خواهد بود.
- -E
- --external
- پس از پردازش، دادههای تصویر را به بیرون از FIT منتقل کرده و آفست داده را در FIT ذخیره میکند. تصویرها بلافاصله پس از FIT و یکی پس از دیگری قرار میگیرند و هر یک روی یک مرز ۴ بایتی تراز میشوند. ویژگی ‘data’ موجود در هر تصویر با ویژگیهای ‘data-offset’ و ‘data-size’ جایگزین خواهد شد. مقدار 0 برای ‘data-offset’ نشان میدهد که دادهها از نخستین بایت (تراز شده بر ۴ بایت) پس از FIT شروع میشوند.
- -B alignment
- --alignment alignment
- میزان تراز (به مبنای شانزده / هگزادسیمال) که دادههای خارجی بر مبنای آن تراز میشوند. این گزینه تنها زمانی اثر دارد که -E مشخص شده باشد.
- -p external-position
- --position external-position
- دادههای خارجی را در یک موقعیت خارجی ایستا قرار میدهد. به جای نوشتن ویژگی ‘data-offset’ که آفست را از انتهای FIT تعیین میکند، -p از ‘data-position’ به عنوان موقعیت مطلق از ابتدای FIT استفاده خواهد کرد. برای جزئیات در مورد استفاده از دادههای خارجی به -E مراجعه کنید.
- -f image-tree-source-file | auto | auto-conf
- --fit image-tree-source-file | auto | auto-conf
- فایل منبع درخت تصویر (image tree source) که ساختار و محتویات تصویر FIT را توصیف میکند.
- در برخی موارد ساده، منبع درخت تصویر میتواند به طور خودکار تولید شود. برای استفاده از این قابلیت، -f auto را ارسال کنید. گزینههای -d، -A، -O، -T، -C، -a و -e میتوانند برای مشخص کردن تصویری که باید در FIT گنجانده شود و ویژگیهای آن استفاده شوند. هیچ image-tree-source-file مورد نیاز نیست. گزینههای -g، -o و -k یا -G میتوانند برای ایجاد زیرگرههای امضاشدهٔ ‘images’ در FIT تولیدشدهٔ خودکار استفاده شوند. در عوض، برای دریافت زیرگرههای امضاشدهٔ ‘configurations’ و زیرگرههای هششدهٔ ‘images’، -f auto-conf را ارسال کنید. در این حالت -g، -o و -k یا -G گزینههای اجباری هستند.
- -F
- --update
- نشان میدهد که یک تصویر FIT موجود باید اصلاح شود. هیچ کامپایلی با dtc انجام نخواهد شد و -f نباید داده شود. این گزینه میتواند برای امضای تصویرها با کلیدهای اضافی پس از ساخت اولیهٔ تصویر به کار رود.
- -i ramdisk-file
- --initramfs ramdisk-file
- یک فایل ramdisk یا initramfs را به تصویر ضمیمه میکند.
- -k key-directory
- --key-dir key-directory
- دایرکتوری حاوی کلیدهای مورد استفاده برای امضا را مشخص میکند. این دایرکتوری باید شامل یک فایل کلید خصوصی name.key برای استفاده در امضا و یک گواهی name.crt (حاوی کلید عمومی) برای استفاده در اعتبارسنجی باشد. کلید عمومی تنها زمانی لازم است که با استفاده از -K در یک درخت دستگاه دیگر تعبیه شود. name مقدار ویژگی ‘key-name-hint’ در گرهٔ امضا است.
- -G key-file
- --key-file key-file
- فایل کلید خصوصی مورد استفاده هنگام امضا را مشخص میکند. این گزینه میتواند به جای -k استفاده شود. زمانی مفید است که نام پایهٔ (basename) فایل کلید خصوصی با مقدار ‘key-name-hint’ همخوانی نداشته باشد. اما توجه داشته باشید که استفادهٔ همزمان آن با گزینههای -K و/یا -k ممکن است نتایج غیرمنتظرهای به دنبال داشته باشد.
- -K key-destination
- --key-dest key-destination
- یک فایل باینری کامپایلشدهٔ درخت دستگاه (معمولاً .dtb) را مشخص میکند تا اطلاعات کلید عمومی در آن نوشته شود. هنگامی که یک کلید خصوصی برای امضای یک تصویر استفاده میشود، کلید عمومی متناظر برای اعتبارسنجی زمان اجرا در این فایل نوشته میشود. معمولاً این فایل همان باینری درخت دستگاهی است که توسط CONFIG_OF_CONTROL در U-Boot استفاده میشود.
- -g key-name-hint
- --key-name-hint key-name-hint
- مقدار ویژگی ‘key-name-hint’ در گرهٔ امضا را برای یک تصویر FIT که به طور خودکار تولید شده مشخص میکند. این گزینه تنها زمانی معنادار است که همراه با -f auto یا -f auto-conf استفاده شود. این گزینه همچنین مشخص میکند که تصویرها یا پیکربندیهای موجود در FIT باید امضا شوند. اگر این گزینه مشخص شود، آنگاه -o نیز باید حتماً مشخص گردد.
- -o checksum,crypto
- --algo checksum,crypto
- الگوریتم مورد استفاده برای امضای یک تصویر FIT را مشخص میکند و مقداری را که از ویژگی ‘algo’ گرهٔ امضا در image-tree-source-file گرفته شده بازنویسی (override) میکند. استفاده از آن برای FIT که به صورت خودکار تولید میشود اجباری است.
- مقادیر معتبر برای checksum عبارتند از:
-
مقادیر معتبر برای crypto عبارتند از:sha1 sha256 sha384 sha512
-
rsa2048 rsa3072 rsa4096 ecdsa256
- -r
- --key-required
- مشخص میکند که کلیدهای استفادهشده برای امضای FIT الزامی هستند. این بدان معناست که امضاهای ایمیجها یا پیکربندیها باید پیش از استفاده از آنها (یعنی برای بوت شدن) راستیآزمایی شوند. بدون این گزینه، راستیآزمایی اختیاری خواهد بود (مناسب برای آزمایش، اما نه برای انتشار نهایی). این گزینه تنها در صورت استفاده با -K معنا پیدا میکند. هنگامی که هر دو (ایمیجها و پیکربندیها) امضا شده باشند، مقدار ویژگی ‘required’ برابر با "conf" خواهد بود.
- -N engine
- --engine engine
- موتور openssl مورد استفاده هنگام امضا و راستیآزمایی ایمیج. برای فهرست کاملی از موتورهای در دسترس، به engine(1) مراجعه کنید.
- -t
- --touch
- بروزرسانی برچسب زمان (timestamp) در FIT.
- بهطور معمول، برچسب زمان FIT اولین باری که mkimage اجرا میشود، هنگام تبدیل فایل منبع .its به فایل باینری .fit ایجاد میگردد. این متناظر با استفاده از -f است. اما اگر ورودی اصلی mkimage یک فایل باینری باشد (از پیش کامپایلشده)، فرض میشود که برچسب زمان پیشتر تنظیم شده است.
پیکربندی (CONFIGURATION)
این بخش، قالب گزینههای پیکربندی اولیه و ثانویه را برای هر نوع ایمیجی که از آنها پشتیبانی میکند، مستند میسازد.
aisimage
پیکربندی اولیه فایلی حاوی مجموعهای از دستورهای AIS (Application Image Script) است، در هر خط یک دستور. هر دستور ساختاری به شکل زیر دارد:
command argument ...
برای جزئیات بیشتر، به گزارش کاربردی TI به شناسهٔ SPRAAG0E مراجعه کنید.
atmelimage
پیکربندی اولیه یک فهرست جداشده با کاما از پارامترهای NAND Flash به شکل زیر است:
parameter=value[,parameter=value...]
parameterهای معتبر عبارتند از:
| usePmecc |
| nbSectorPerPage |
| spareSize |
| eccBitReq |
| sectorSize |
| eccOffset |
و valueهای معتبر اعداد دهدهی هستند. برای اطلاع از مقادیر معتبر هر پارامتر، بخش 11.4.4.1 از SAMA5D3 Series Data Sheet را ببینید. پیکربندی اصلی، فایلی حاوی دستورهای پیکربندی است، همانگونه که در doc/imx/mkimage/imximage.txt از کد منبع U-Boot مستند شده است.
imx8image و imx8mimage
پیکربندی اصلی، فایلی حاوی دستورهای پیکربندی است، همانگونه که در doc/imx/mkimage/imx8image.txt از کد منبع U-Boot مستند شده است.
kwbimage
پیکربندی اصلی، فایلی حاوی دستورهای پیکربندی است، همانگونه که در doc/imx/mkimage/kwbimage.txt از کد منبع U-Boot مستند شده است.
mtk_image
پیکربندی اصلی فهرستی از گزینههای سرآیند است که با نقطهویرگول از هم جدا شدهاند، به این صورت:
key=value[;key=value...]
که کلیدهای معتبر در آن عبارتند از:
| کلید | توضیحات |
| lk | اگر 1 باشد، از یک سرآیند ایمیج LK (قدیمی) استفاده میشود. در غیر این صورت، یک سرآیند ایمیج BootROM به کار میرود. |
| lkname | نام سرآیند ایمیج LK. بیشینهٔ طول ۳۲ نویسهٔ ASCII است. در صورت مشخص نشدن، مقدار پیشفرض U-Boot خواهد بود. |
| media | دستگاه راهاندازی (boot). مقادیر معتبر در زیر آمده است. |
| nandinfo | نوع دستگاه NAND مورد نظر. مقادیر معتبر در زیر آمده است. |
| arm64 | اگر 1 باشد، نشاندهندهٔ یک ایمیج AArch64 است. |
| hdroffset | افزایش اندازهٔ گزارششدهٔ سرآیند BRLYT به این مقدار. |
مقادیر معتبر برای media عبارتند از:
| مقدار | توضیحات |
| nand | حافظه فلش NAND موازی |
| snand | حافظه فلش NAND سریال |
| nor | حافظه فلش NOR سریال |
| emmc | eMMC (کارت چندرسانهای جاسازیشده) |
| sdmmc | کارت SD (Secure Digital) |
مقادیر معتبر برای nandinfo عبارتند از:
| مقدار | نوع NAND | اندازه صفحه | اندازه OOB | اندازه کل |
| 2k+64 | سریال | 2KiB | 64B | |
| 2k+120 | سریال | 2KiB | 120B | |
| 2k+128 | سریال | 2KiB | 128B | |
| 4k+256 | سریال | 4KiB | 256B | |
| 1g:2k+64 | موازی | 2KiB | 64B | 1Gbit |
| 2g:2k+64 | موازی | 2KiB | 64B | 2Gbit |
| 4g:2k+64 | موازی | 2KiB | 64B | 4Gbit |
| 2g:2k+128 | موازی | 2KiB | 128B | 2Gbit |
| 4g:2k+128 | موازی | 2KiB | 128B | 4Gbit |
omapimage
پیکربندی اصلی مقدار اختیاری byteswap است. در صورت وجود، بایتهای هر واژهٔ ۳۲ بیتی ایمیج جابهجا خواهند شد (تبدیل از little-endian به big-endian یا برعکس).
pblimage
پیکربندی اصلی فایلی حاوی سرآیند PBI (Pre-Boot Image) است. هر خط از پیکربندی قالب زیر را دارد:
value[ value...]
که در آن value یک عدد صحیح هگزادسیمال ۳۲ بیتی است. هر value پس از تبدیل شدن به بایتهای خام، دقیقاً به ابتدای PBI اضافه میشود.
پیکربندی ثانویه فایلی با همان قالب فایل پیکربندی اصلی است. این اطلاعات پس از دادههای پیکربندی اصلی و پیش از دادههای ایمیج، درون ایمیج درج خواهد شد.
مرسوم است که از فایل پیکربندی اصلی برای RCW (Reset Configuration Word)، و از فایل پیکربندی ثانویه برای هرگونه دستور اضافی PBI استفاده شود. با این حال، میتوان یک PBI موجود را نیز به قالب بالا تبدیل کرده و دادههای اضافی را به انتهای ایمیج “زنجیر” (“chain”) کرد. این کار ممکن است بهویژه برای ایجاد ایمیجهای بوت امن (secure boot) مفید باشد.
rkimage
پیکربندی اصلی، نام پردازندهای است که ایمیج برای آن تولید میشود. مقادیر معتبر عبارتاند از:
| px30 |
| rk3036 |
| rk3066 |
| rk3128 |
| rk3188 |
| rk322x |
| rk3288 |
| rk3308 |
| rk3328 |
| rk3368 |
| rk3399 |
| rv1108 |
| rk3568 |
spkgimage
فایل پیکربندی اصلی از خطوطی شامل جفتهای کلید/مقدار تشکیل شده است که با نویسههای فاصله از یکدیگر جدا شدهاند. در ادامه نمونهای آورده شده است.
# Comments and blank lines may be used key1 value1 key2 value2
انواع key پشتیبانیشده به شرح زیر هستند.
- VERSION
- NAND_ECC_BLOCK_SIZE
- NAND_ECC_ENABLE
- NAND_ECC_SCHEME
- NAND_BYTES_PER_ECC_BLOCK
- همگی اینها یک مقدار عدد صحیح مثبت را به عنوان آرگومان خود میپذیرند. این مقدار مستقیماً در فیلد مربوطه از ساختار سرآیند SPKG کپی خواهد شد. برای جزئیات در مورد این مقادیر، به بخش 7.4 از راهنمای کاربری Renesas RZ/N1 مراجعه کنید.
- ADD_DUMMY_BLP
- یک آرگومان عددی میپذیرد که به عنوان یک مقدار بولی در نظر گرفته میشود. هر مقدار غیر صفر باعث خواهد شد تا یک سرآیند امنیتی ساختگی BLp در خروجی SPKG گنجانده شود.
- PADDING
- یک مقدار عدد صحیح مثبت را با یک پسوند اختیاری K یا M (نشاندهندهٔ بهترتیب KiB / MiB) میپذیرد. فایل خروجی SPKG تا مضربی از این مقدار تراز (pad) خواهد شد. پیکربندی اصلی، نامی است که برای درخت دستگاه (device tree) استفاده میشود.
ublimage
پیکربندی اصلی، فایلی شامل دستورهای پیکربندی است، همانگونه که در doc/README.ublimage از سورسکد U-Boot مستند شده است.
zynqimage و zynqmpimage
برای zynqmpimage، پیکربندی اصلی فایلی حاوی PMUFW (سفتافزار واحد مدیریت توان - Power Management Unit Firmware) است. zynqimage از پیکربندی اصلی استفاده نمیکند.
برای هر دو نوع ایمیج، پیکربندی ثانویه فایلی شامل پارامترهای راهاندازی اولیه است، یک پارامتر در هر خط. هر پارامتر قالبی به این شکل دارد:
address data
که در آن address و data اعداد صحیح در مبنای شانزده (هگزادسیمال) هستند. هنگام بارگذاری ایمیج، رام بوت (boot ROM) هر data را در address مینویسد. حداکثر ۲۵۶ پارامتر را میتوان به این روش مشخص کرد.
گزارش باگها (BUGS)
لطفاً باگها را به سامانه پیگیری باگ U-Boot گزارش دهید.
مثالها (EXAMPLES)
فهرست کردن اطلاعات ایمیج:
mkimage -l uImage
ایجاد ایمیج سنتی (legacy) با هسته لینوکس فشردهشده PowerPC:
mkimage -A powerpc -O linux -T kernel -C gzip \ -a 0 -e 0 -n Linux -d vmlinux.gz uImage
ایجاد ایمیج FIT با هسته لینوکس فشردهشده PowerPC:
mkimage -f kernel.its kernel.itb
ایجاد ایمیج FIT با هسته فشردهشده و امضای آن با کلیدهای موجود در دایرکتوری /public/signing-keys . کلیدهای عمومی متناظر به u-boot.dtb اضافه میشوند و مواردی که کلید برای آنها یافت نشود نادیده گرفته میشوند. همچنین یک توضیح (comment) اضافه میشود.
mkimage -f kernel.its -k /public/signing-keys -K u-boot.dtb \ -c "Kernel 3.8 image for production devices" kernel.itb
افزودن کلید عمومی به u-boot.dtb بدون نیاز به امضای یک FIT. این کار همچنین یک FIT شامل گره images بدون داده به نام unused.itb ایجاد میکند.
mkimage -f auto -d /dev/null -k /public/signing-keys -g dev \ -o sha256,rsa2048 -K u-boot.dtb unused.itb
افزودن کلید عمومی با ویژگی required = "conf" به u-boot.dtb بدون نیاز به امضای یک FIT. این کار همچنین یک FIT بیاستفاده به نام unused.itb ایجاد میکند.
mkimage -f auto-conf -d /dev/null -k /public/signing-keys -g dev \ -o sha256,rsa2048 -K u-boot.dtb -r unused.itb
بهروزرسانی یک ایمیج FIT موجود و امضای آن با کلیدهای اضافی. کلیدهای عمومی متناظر به u-boot.dtb اضافه میشوند. این کار تمام ایمیجها را با کلیدهای موجود در دایرکتوری جدید مجدداً امضا میکند. ایمیجهایی که درخواست امضا با کلیدهای ناموجود دارند نادیده گرفته میشوند.
mkimage -F -k /secret/signing-keys -K u-boot.dtb \ -c "Kernel 3.8 image for production devices" kernel.itb
ایجاد یک ایمیج FIT حاوی هسته، با استفاده از حالت خودکار. نیازی به فایل .its نیست.
mkimage -f auto -A arm -O linux -T kernel -C none -a 43e00000 -e 0 \ -c "Kernel 4.4 image for production devices" -d vmlinuz kernel.itb
ایجاد یک ایمیج FIT حاوی یک هسته و چند فایل درخت دستگاه (device tree)، با استفاده از حالت خودکار. نیازی به فایل .its نیست.
mkimage -f auto -A arm -O linux -T kernel -C none -a 43e00000 -e 0 \ -c "Kernel 4.4 image for production devices" -d vmlinuz \ -b /path/to/rk3288-firefly.dtb -b /path/to/rk3288-jerry.dtb kernel.itb
ایجاد یک ایمیج FIT حاوی یک هسته امضاشده، با استفاده از حالت خودکار. نیازی به فایل .its نیست.
mkimage -f auto -A arm -O linux -T kernel -C none -a 43e00000 -e 0 \ -d vmlinuz -k /secret/signing-keys -g dev -o sha256,rsa2048 kernel.itb
ایجاد یک ایمیج FIT حاوی یک هسته و چند فایل درخت دستگاه (device tree) و امضای هر پیکربندی، با استفاده از حالت خودکار. علاوه بر این، کلید عمومی مورد نیاز برای اعتبارسنجی امضاها با ویژگی required = "conf" به u-boot.dtb اضافه میشود.
mkimage -f auto-conf -A arm -O linux -T kernel -C none -a 43e00000 \ -e 0 -d vmlinuz -b /path/to/file-1.dtb -b /path/to/file-2.dtb \ -k /folder/with/signing-keys -g dev -o sha256,rsa2048 \ -K u-boot.dtb -r kernel.itb
تبدیل یک ایمیج FIT موجود از هر یک از سه نوع ذخیرهسازی داده (داخلی، data-offset خارجی یا data-position خارجی) به نوع دیگری از ذخیرهسازی داده.
// convert FIT from internal data to data-position mkimage -p 0x20000 -F internal_data.itb
// convert FIT from data-position to data-offset mkimage -E -F external_data-position.itb
// convert FIT from data-offset to internal data mkimage -F external_data-offset.itb
| 2022-06-11 | U-Boot |