راهاندازی شبکه در سیستمهایی که از سیستم عامل U-Boot استفاده میکنند شامل سه مرحله است: الف) پیکربندی شبکه، ب) بارگذاری تصاویر (هسته/رمدیسک اولیه/dtb) در حافظه و ج) اجرای واقعی کدهای بارگذاری شده قبلی.
ابتدا باید شبکه را به صورت خودکار از طریق DHCP با اجرا پیکربندی کنید
بارگذاری خودکار setenv بدون dhcp
یا به صورت دستی با تنظیم چندین متغیر محیطی
setenv ipaddr ماسک شبکه setenv
سرور setenv setenv dnsip
دروازه setenv
اگر ترجیح می دهید، می توانید این تنظیمات را با اجرا کردن دائمی کنید
ذخیره
پس از آن باید تصاویر (هسته / ramdisk اولیه / dtb) را در حافظه بارگذاری کنید. این کار با دستور tftpboot انجام می شود که باید آدرسی را که تصویر در آن ذخیره می شود در حافظه ارائه شود. متأسفانه نقشه حافظه می تواند از سیستمی به سیستم دیگر متفاوت باشد، بنابراین هیچ قانون کلی وجود ندارد که از چه آدرس هایی می توان برای این کار استفاده کرد.
در برخی از سیستم ها، U-Boot مجموعه ای از متغیرهای محیطی را با آدرس های بار مناسب از پیش تعریف می کند: kernel_addr_r، ramdisk_addr_r و fdt_addr_r. شما می توانید با اجرا بررسی کنید که آیا آنها تعریف شده اند یا خیر
printenv kernel_addr_r ramdisk_addr_r fdt_addr_r
اگر آنها تعریف نشده اند، باید اسناد سیستم خود را برای مقادیر مناسب بررسی کنید و آنها را به صورت دستی تنظیم کنید. برای سیستم های مبتنی بر SOC های Allwinner SunXi (به عنوان مثال Allwinner A10، نام معماری "sun4i" یا Allwinner A20، نام معماری "sun7i")، می توانید به عنوان مثال از مقادیر زیر استفاده کنید:
setenv kernel_addr_r 0x46000000 setenv fdt_addr_r 0x47000000 setenv ramdisk_addr_r 0x48000000
هنگامی که آدرس های بار تعریف می شوند، می توانید تصاویر را از سرور tftp تعریف شده قبلی در حافظه بارگذاری کنید.
tftpboot ${kernel_addr_r} tftpboot ${fdt_addr_r}
tftpboot ${ramdisk_addr_r}
بخش سوم تنظیم خط فرمان هسته و اجرای کد بارگذاری شده است. U-Boot محتوای متغیر محیطی "bootargs" را به عنوان خط فرمان به هسته ارسال می کند، بنابراین هر پارامتری برای هسته و نصب کننده - مانند دستگاه کنسول (به بخش 5.3.1 مراجعه کنید) یا گزینه های پیش کاشت (به بخش 5.3.2 مراجعه کنید) .XNUMX و ضمیمه B) - با دستوری مانند تنظیم می شود
setenv bootargs console=ttyS0,115200 rootwait panic=10
دستور دقیق برای اجرای کد بارگذاری شده قبلی بستگی به فرمت تصویر استفاده شده دارد. با uImage/uInitrd، دستور این است
bootm ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
و با تصاویر بومی لینوکس است
bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}
توجه: هنگام بوت کردن تصاویر استاندارد لینوکس، بارگذاری تصویر ramdisk اولیه بعد از هسته و dtb مهم است زیرا U-Boot متغیر اندازه فایل را به اندازه آخرین فایل بارگذاری شده تنظیم می کند و دستور bootz به اندازه تصویر ramdisk نیاز دارد. به درستی کار کند در صورت بوت کردن یک کرنل مخصوص پلتفرم، یعنی یک هسته بدون درخت درخت، به سادگی پارامتر ${fdt_addr_r} را حذف کنید.