MKIMAGE(1) General Commands Manual MKIMAGE(1)

mkimage - تولید ایمیج‌ها برای U-Boot

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

دستور 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) پشتیبانی می‌کند.

پیام راهنما را چاپ کرده و خارج می‌شود.
دستور mkimage اطلاعات موجود در سرآیند یک ایمیج موجود U-Boot را فهرست می‌کند.
داده‌های ایمیج را درون آن رونوشت نمی‌کند. بسته به نوع ایمیج، این کار ممکن است تنها سرآیند، همه‌چیز به جز داده‌های ایمیج، یا اصلاً هیچ‌چیزی ایجاد نکند.
فایل ایمیج را به عنوان image-type تجزیه می‌کند. مقدار list را به عنوان image-type ارسال کنید تا فهرست انواع ایمیج‌های پشتیبانی‌شده را مشاهده نمایید. اگر این گزینه مشخص نشود، مقدار پیش‌فرض آن kernel (ایمیج سنتی) خواهد بود. اگر این گزینه هنگام استفاده از -l مشخص نشده باشد، آن‌گاه mkimage تلاش خواهد کرد نوع ایمیج را به طور خودکار شناسایی کند. همه انواع ایمیج از تشخیص خودکار پشتیبانی نمی‌کنند، بنابراین ممکن است لازم باشد -T به صورت صریح مشخص شود.
هنگام ساخت یک ایمیج FIT با -f، نوع ایمیج همیشه برابر با flat_dt تنظیم می‌شود. در این حالت، -T ویژگی ‘type’ مربوط به گره ایمیج را تعیین می‌کند. اگر -T داده نشود، ویژگی ‘type’ به طور پیش‌فرض برابر با kernel خواهد بود.
حالت بی‌صدا. سرآیند ایمیج را چاپ نمی‌کند.
حالت مشروح. نام فایل‌ها را هنگام افزوده شدن به ایمیج چاپ می‌کند.
اطلاعات نسخه را چاپ کرده و خارج می‌شود.
معماری را تعیین می‌کند. برای مشاهده فهرست معماری‌های پشتیبانی‌شده، -h را به‌عنوان معماری ارسال کنید. اگر -A مشخص نشود، مقدار پیش‌فرض آن ppc است.
سیستم‌عامل را تعیین می‌کند. دستور bootm در U-Boot شیوه راه‌اندازی (بوت) را بر اساس نوع سیستم‌عامل تغییر می‌دهد. برای مشاهده فهرست سیستم‌عامل‌های پشتیبانی‌شده، -h را به‌عنوان os ارسال کنید. اگر -O مشخص نشود، مقدار پیش‌فرض آن linux است.
نوع فشرده‌سازی را تعیین می‌کند. داده‌های تصویر باید از قبل با استفاده از این نوع فشرده‌سازی فشرده شده باشند. mkimage داده‌های تصویر را به‌طور خودکار فشرده نخواهد کرد. برای مشاهده فهرست انواع فشرده‌سازی پشتیبانی‌شده، -h را به‌عنوان compression-type ارسال کنید. اگر -C مشخص نشود، مقدار پیش‌فرض آن gzip است.
آدرس مطلقی که داده‌های تصویر باید در آن بارگذاری شوند را تعیین می‌کند. load-address به‌عنوان یک عدد در مبنای شانزده (هگزادسیمال) تفسیر می‌شود.
آدرس مطلق نقطه ورود تصویر را تعیین می‌کند. دستور bootm در U-Boot پس از بارگذاری تصویر به این آدرس پرش خواهد کرد. entry-point به‌عنوان یک عدد در مبنای شانزده (هگزادسیمال) تفسیر می‌شود.
تصاویر ممکن است به پیکربندی‌های اضافه‌ای نیاز داشته باشند که با گزینه‌های دیگر مشخص نمی‌شود؛ این تنظیمات معمولاً در قالبی مختص به نوع تصویر هستند. انواع تصاویری که از این گزینه پشتیبانی می‌کنند و قالب پیکربندی آن‌ها در بخش CONFIGURATION فهرست شده‌اند.
برخی از انواع تصویر از مجموعه‌ای دوم از داده‌های پیکربندی پشتیبانی می‌کنند. انواع تصاویری که از پیکربندی ثانویه پشتیبانی می‌کنند و قالب پیکربندی آن‌ها در بخش CONFIGURATION فهرست شده‌اند.
از داده‌های تصویر موجود در image-data-file استفاده می‌کند. اگر image-type برابر با multi باشد، می‌توان چندین تصویر را که با دونقطه از یکدیگر جدا شده‌اند مشخص کرد:
image-data-file[:image-data-file...]
پرچم XIP (اجرا در محل / execute in place) را تنظیم می‌کند. دستور bootm در U-Boot داده‌های تصویر را بارگذاری نخواهد کرد و در عوض فرض می‌کند که این داده‌ها از قبل در آدرس بارگذاری در دسترس هستند (مانند حافظه فلش نگاشت‌شده در حافظه).
فایل TFA BL31 را به تصویر ضمیمه می‌کند.
آدرس بارگذاری و نقطه ورود فایل TFA BL31 را تعیین می‌کند.
فایل خام TEE را به تصویر ضمیمه می‌کند.
آدرس بارگذاری و نقطه ورود فایل خام TEE را در مبنای شانزده (هگزادسیمال) تعیین می‌کند.
فایل باینری درخت دستگاه (.dtb) را به FIT ضمیمه می‌کند.
توضیحی را برای افزودن هنگام امضا مشخص می‌کند. این معمولاً پیامی است که نحوهٔ امضای تصویر یا سایر اطلاعات مفید را توصیف می‌کند.
گزینه‌های اضافی را هنگام ایجاد تصویر به کامپایلر درخت دستگاه ارائه می‌دهد. برای مستندات گزینه‌های ممکن، dtc(1) را ببینید. اگر -D مشخص نشود، مقدار پیش‌فرض آن -I dts -O dtb -p 500 خواهد بود.
پس از پردازش، داده‌های تصویر را به بیرون از FIT منتقل کرده و آفست داده را در FIT ذخیره می‌کند. تصویرها بلافاصله پس از FIT و یکی پس از دیگری قرار می‌گیرند و هر یک روی یک مرز ۴ بایتی تراز می‌شوند. ویژگی ‘data’ موجود در هر تصویر با ویژگی‌های ‘data-offset’ و ‘data-size’ جایگزین خواهد شد. مقدار 0 برای ‘data-offset’ نشان می‌دهد که داده‌ها از نخستین بایت (تراز شده بر ۴ بایت) پس از FIT شروع می‌شوند.
میزان تراز (به مبنای شانزده / هگزادسیمال) که داده‌های خارجی بر مبنای آن تراز می‌شوند. این گزینه تنها زمانی اثر دارد که -E مشخص شده باشد.
داده‌های خارجی را در یک موقعیت خارجی ایستا قرار می‌دهد. به جای نوشتن ویژگی ‘data-offset’ که آفست را از انتهای FIT تعیین می‌کند، -p از ‘data-position’ به عنوان موقعیت مطلق از ابتدای FIT استفاده خواهد کرد. برای جزئیات در مورد استفاده از داده‌های خارجی به -E مراجعه کنید.
فایل منبع درخت تصویر (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 گزینه‌های اجباری هستند.
نشان می‌دهد که یک تصویر FIT موجود باید اصلاح شود. هیچ کامپایلی با dtc انجام نخواهد شد و -f نباید داده شود. این گزینه می‌تواند برای امضای تصویرها با کلیدهای اضافی پس از ساخت اولیهٔ تصویر به کار رود.
یک فایل ramdisk یا initramfs را به تصویر ضمیمه می‌کند.
دایرکتوری حاوی کلیدهای مورد استفاده برای امضا را مشخص می‌کند. این دایرکتوری باید شامل یک فایل کلید خصوصی name.key برای استفاده در امضا و یک گواهی name.crt (حاوی کلید عمومی) برای استفاده در اعتبارسنجی باشد. کلید عمومی تنها زمانی لازم است که با استفاده از -K در یک درخت دستگاه دیگر تعبیه شود. name مقدار ویژگی ‘key-name-hint’ در گرهٔ امضا است.
فایل کلید خصوصی مورد استفاده هنگام امضا را مشخص می‌کند. این گزینه می‌تواند به جای -k استفاده شود. زمانی مفید است که نام پایهٔ (basename) فایل کلید خصوصی با مقدار ‘key-name-hint’ همخوانی نداشته باشد. اما توجه داشته باشید که استفادهٔ هم‌زمان آن با گزینه‌های -K و/یا -k ممکن است نتایج غیرمنتظره‌ای به دنبال داشته باشد.
یک فایل باینری کامپایل‌شدهٔ درخت دستگاه (معمولاً .dtb) را مشخص می‌کند تا اطلاعات کلید عمومی در آن نوشته شود. هنگامی که یک کلید خصوصی برای امضای یک تصویر استفاده می‌شود، کلید عمومی متناظر برای اعتبارسنجی زمان اجرا در این فایل نوشته می‌شود. معمولاً این فایل همان باینری درخت دستگاهی است که توسط CONFIG_OF_CONTROL در U-Boot استفاده می‌شود.
مقدار ویژگی ‘key-name-hint’ در گرهٔ امضا را برای یک تصویر FIT که به طور خودکار تولید شده مشخص می‌کند. این گزینه تنها زمانی معنادار است که همراه با -f auto یا -f auto-conf استفاده شود. این گزینه همچنین مشخص می‌کند که تصویرها یا پیکربندی‌های موجود در FIT باید امضا شوند. اگر این گزینه مشخص شود، آنگاه -o نیز باید حتماً مشخص گردد.
الگوریتم مورد استفاده برای امضای یک تصویر FIT را مشخص می‌کند و مقداری را که از ویژگی ‘algo’ گرهٔ امضا در image-tree-source-file گرفته شده بازنویسی (override) می‌کند. استفاده از آن برای FIT که به صورت خودکار تولید می‌شود اجباری است.
مقادیر معتبر برای checksum عبارتند از:
sha1
sha256
sha384
sha512
مقادیر معتبر برای crypto عبارتند از:
rsa2048
rsa3072
rsa4096
ecdsa256
مشخص می‌کند که کلیدهای استفاده‌شده برای امضای FIT الزامی هستند. این بدان معناست که امضاهای ایمیج‌ها یا پیکربندی‌ها باید پیش از استفاده از آن‌ها (یعنی برای بوت شدن) راستی‌آزمایی شوند. بدون این گزینه، راستی‌آزمایی اختیاری خواهد بود (مناسب برای آزمایش، اما نه برای انتشار نهایی). این گزینه تنها در صورت استفاده با -K معنا پیدا می‌کند. هنگامی که هر دو (ایمیج‌ها و پیکربندی‌ها) امضا شده باشند، مقدار ویژگی ‘required’ برابر با "conf" خواهد بود.
موتور openssl مورد استفاده هنگام امضا و راستی‌آزمایی ایمیج. برای فهرست کاملی از موتورهای در دسترس، به engine(1) مراجعه کنید.
بروزرسانی برچسب زمان (timestamp) در FIT.
به‌طور معمول، برچسب زمان FIT اولین باری که mkimage اجرا می‌شود، هنگام تبدیل فایل منبع .its به فایل باینری .fit ایجاد می‌گردد. این متناظر با استفاده از -f است. اما اگر ورودی اصلی mkimage یک فایل باینری باشد (از پیش کامپایل‌شده)، فرض می‌شود که برچسب زمان پیش‌تر تنظیم شده است.

این بخش، قالب گزینه‌های پیکربندی اولیه و ثانویه را برای هر نوع ایمیجی که از آن‌ها پشتیبانی می‌کند، مستند می‌سازد.

پیکربندی اولیه فایلی حاوی مجموعه‌ای از دستورهای AIS (Application Image Script) است، در هر خط یک دستور. هر دستور ساختاری به شکل زیر دارد:

command argument ...

برای جزئیات بیشتر، به گزارش کاربردی TI به شناسهٔ SPRAAG0E مراجعه کنید.

پیکربندی اولیه یک فهرست جداشده با کاما از پارامترهای 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 مستند شده است.

پیکربندی اصلی، فایلی حاوی دستورهای پیکربندی است، همان‌گونه که در doc/imx/mkimage/imx8image.txt از کد منبع U-Boot مستند شده است.

پیکربندی اصلی، فایلی حاوی دستورهای پیکربندی است، همان‌گونه که در doc/imx/mkimage/kwbimage.txt از کد منبع U-Boot مستند شده است.

پیکربندی اصلی فهرستی از گزینه‌های سرآیند است که با نقطه‌ویرگول از هم جدا شده‌اند، به این صورت:

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
پیکربندی اصلی، فایلی شامل دستورهای پیکربندی است، همان‌گونه که در doc/imx/mkimage/mxsimage.txt از کد منبع U-Boot مستند شده است.

پیکربندی اصلی مقدار اختیاری byteswap است. در صورت وجود، بایت‌های هر واژهٔ ۳۲ بیتی ایمیج جابه‌جا خواهند شد (تبدیل از little-endian به big-endian یا برعکس).

پیکربندی اصلی فایلی حاوی سرآیند PBI (Pre-Boot Image) است. هر خط از پیکربندی قالب زیر را دارد:

value[ value...]

که در آن value یک عدد صحیح هگزادسیمال ۳۲ بیتی است. هر value پس از تبدیل شدن به بایت‌های خام، دقیقاً به ابتدای PBI اضافه می‌شود.

پیکربندی ثانویه فایلی با همان قالب فایل پیکربندی اصلی است. این اطلاعات پس از داده‌های پیکربندی اصلی و پیش از داده‌های ایمیج، درون ایمیج درج خواهد شد.

مرسوم است که از فایل پیکربندی اصلی برای RCW (Reset Configuration Word)، و از فایل پیکربندی ثانویه برای هرگونه دستور اضافی PBI استفاده شود. با این حال، می‌توان یک PBI موجود را نیز به قالب بالا تبدیل کرده و داده‌های اضافی را به انتهای ایمیج “زنجیر” (“chain”) کرد. این کار ممکن است به‌ویژه برای ایجاد ایمیج‌های بوت امن (secure boot) مفید باشد.

پیکربندی اصلی، نام پردازنده‌ای است که ایمیج برای آن تولید می‌شود. مقادیر معتبر عبارت‌اند از:

px30
rk3036
rk3066
rk3128
rk3188
rk322x
rk3288
rk3308
rk3328
rk3368
rk3399
rv1108
rk3568

فایل پیکربندی اصلی از خطوطی شامل جفت‌های کلید/مقدار تشکیل شده است که با نویسه‌های فاصله از یکدیگر جدا شده‌اند. در ادامه نمونه‌ای آورده شده است.

# Comments and blank lines may be used
key1 value1
key2 value2

انواع key پشتیبانی‌شده به شرح زیر هستند.

همگی این‌ها یک مقدار عدد صحیح مثبت را به عنوان آرگومان خود می‌پذیرند. این مقدار مستقیماً در فیلد مربوطه از ساختار سرآیند SPKG کپی خواهد شد. برای جزئیات در مورد این مقادیر، به بخش 7.4 از راهنمای کاربری Renesas RZ/N1 مراجعه کنید.
یک آرگومان عددی می‌پذیرد که به عنوان یک مقدار بولی در نظر گرفته می‌شود. هر مقدار غیر صفر باعث خواهد شد تا یک سرآیند امنیتی ساختگی BLp در خروجی SPKG گنجانده شود.
یک مقدار عدد صحیح مثبت را با یک پسوند اختیاری K یا M (نشان‌دهندهٔ به‌ترتیب KiB / MiB) می‌پذیرد. فایل خروجی SPKG تا مضربی از این مقدار تراز (pad) خواهد شد. پیکربندی اصلی، نامی است که برای درخت دستگاه (device tree) استفاده می‌شود.

پیکربندی اصلی، فایلی شامل دستورهای پیکربندی است، همان‌گونه که در doc/README.ublimage از سورس‌کد U-Boot مستند شده است.

برای zynqmpimage، پیکربندی اصلی فایلی حاوی PMUFW (سفت‌افزار واحد مدیریت توان - Power Management Unit Firmware) است. zynqimage از پیکربندی اصلی استفاده نمی‌کند.

برای هر دو نوع ایمیج، پیکربندی ثانویه فایلی شامل پارامترهای راه‌اندازی اولیه است، یک پارامتر در هر خط. هر پارامتر قالبی به این شکل دارد:

address data

که در آن address و data اعداد صحیح در مبنای شانزده (هگزادسیمال) هستند. هنگام بارگذاری ایمیج، رام بوت (boot ROM) هر data را در address می‌نویسد. حداکثر ۲۵۶ پارامتر را می‌توان به این روش مشخص کرد.

لطفاً باگ‌ها را به سامانه پیگیری باگ U-Boot گزارش دهید.

فهرست کردن اطلاعات ایمیج:

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
dtc(1), dumpimage(1), openssl(1), و  مستندات U-Boot
2022-06-11 U-Boot