سلام
چه جوری میشه سیستم عامل از ای سی فلش رو برد بالا بیاد؟و اینکه این فایل 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 بوت بشیم.
من صرفا مراحلش رو به طور کلی میگم و جزییاتش برای خودش یه مطلب هست که اگر فرصت شد آمادش میکنم
اول از همه باید توی فایل دیوایس تری بگید که میخواید از روی 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