بوت شدن Sinux F1 از روی ای سی فلش

سلام
چه جوری میشه سیستم عامل از ای سی فلش رو برد بالا بیاد؟و اینکه این فایل image تولید شده الان 114 مگ هست و فلش روی برد 32 مگ …چی کار باید کرد؟ سیستم عامل رو باید سبک تر کرد؟

سلام.
نکته اول این هست که ما دو نوع حافظه فلش داریم که nor و nand هست و راه اندازی هر کدوم متفاوت و دردسر های مخصوص به خودش رو داره.
نکته دوم اینکه برای حل مشکل فضا ، اول از همه که باید سیستم عاملتون رو سبک کنید و فایل های اضافی رو ازش حذف کنید ، اما مرحله دوم این هست که بیاید و از فایل سیستمی به نام squashfs استفاده کنید. به طور خلاصه این فایل سیستم میاد و اول از همه فایل های شما رو فقط خواندنی میکنه و بعد از اون دیتا های اضافی رو ازش حذف میکنه تا بتونه حجمش رو کاهش بده (خود فایل ها رو دست نمیزنه و فقط یکسری بخش های اضافیش رو از فایل سیستم حذف میکنه) با این کار چندین برابر حجم حافظتون کم میشه

برای اینکه بهتر متوجه بشید یه نگاه به پوشه /output/images در بیلدروتی که نحوه ساختش در این آموزش توضیح داده شده بکنید

همونطور که میبینید فایل سیستم ما با فرمت ext4 حجمش 100MB هست اما با فرمت squashfs فقط 5.3MB یعنی تقریبا یک بیستم شده !!

-rw-r--r-- 1 mahdi2001h mahdi2001h 100M Jan  2 23:01 rootfs.ext2
lrwxrwxrwx 1 mahdi2001h mahdi2001h   11 Jan  2 23:01 rootfs.ext4 -> rootfs.ext2
-rw-r--r-- 1 mahdi2001h mahdi2001h 5.3M Jan  2 23:01 rootfs.squashfs

اما حالا میرسیم به بحث اینکه چجوری بیایم و اینکار رو انجام بدیم برای بردمون و از روی حافظه nor بوت بشیم.
من صرفا مراحلش رو به طور کلی میگم و جزییاتش برای خودش یه مطلب هست که اگر فرصت شد آمادش میکنم :slight_smile:

اول از همه باید توی فایل دیوایس تری بگید که میخواید از روی spi nor فایل سیستم رو بوت کنه ، برای اینکار خط 15 فایل /buildroot-sinux/board/sisoog/sinux/f1/devicetree/linux/devicetree.dts رو به این صورت تغییر میدیم

bootargs = "console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p3 rw";

به

bootargs = "console=ttyS0,115200 panic=5 rootwait root=/dev/mtdblock2 rw";

حالا باید ابزار sunxi-tools رو از سورس کامپایل کنید

sudo apt install pkg-config zlib1g-dev libusb-dev libusb-1.0-0-dev
git clone https://github.com/Icenowy/sunxi-tools.git -b f1c100s-spiflash
cd sunxi-tools
make 
sudo make install

بعد از اون این ابزار رو نصب کنید

sudo apt install dfu-util




به صورت usb چیپ f1c100s رو بوت کنید (برای اینکار لازمه که اول sd کارت رو در بیارید و بعد دکمه boot روی برد sinux f1 رو نگه دارید و بعد از اون برد را با کابل usb به سیستم وصل کنید)

حالا به این پوشه در بیلدروت برید

cd flashutils/linux/

بعد این دستور رو اجرا کنید

./fel-uboot.sh

و با این دستور ایمیج رو روی نور فلش بریزید

./dfu-nor-all.sh
3 پسندیده