كيف تجعل Uboot للعمل مع squashfs / ما هو FDT في Uboot؟
-
22-09-2019 - |
سؤال
أقوم بإعداد Chamikaze Toolchain (من OpenWrt) ، وتجميع kernel Linux 2.6.30.x لـ AMCC PPC405EX KILAUEA لوحة مرجعية. ومع ذلك ، لسبب ما أقوم بشيء خاطئ في Uboot ، لأنني غير قادر على تشغيل kernel من صورة Squashfs. يتم تحميل الصورة بشكل جيد على TFTP و uncompsections ، لكن إخراج وحدة التحكم لا يبدأ.
لم أغير سطر أوامر Linux kernel ويبدو جيدًا (console=ttyS0,115200 root=/dev/mtdblock
). أنا أيضًا في حيرة بعض الشيء FDT في أوبوت؟
لست متأكدًا تمامًا مما إذا كان هذا ينتمي حقًا إلى Stackoverflow ، ولكن مرة أخرى هذا ليس حقًا سؤال Superuser.com أيضًا (ولأن هذا يتعلق ببيئة التطوير ، فهو بالتأكيد برمجة ذات صلة, ، على الرغم من أنه ليس بالضبط سؤال البرمجة)
المحلول
تمكنت من حل هذا بنفسي ، أنا ليس من المفترض أن تستخدم openwrt-boardname-squashfs.img
لكن يجب أن أستخدم openwrt-architecture-uImage
الصورة ، التي تحتوي فقط على النواة ، خذ root.squashfs
و openwrt-boardname.dtb
من build_dir
لأنهم لم يتم نسخهم في bin/
الدليل.
بعد ذلك ، ستجلب هذه الأوامر اللوحة بشكل صحيح:
tftp 0xfc1e0000 openwrt-kilauea.dtb
tftp 0x400000 openwrt-ppc40x-uImage
tftp 0x200000 root.squashfs
setenv bootargs 'console=ttyS0,115200 root=/dev/mtdblock2 rw'
bootm 0x400000 - 0xfc1e0000
من المحتمل أن تكون هناك طريقة أسهل ، لكنني لم أحسب كيفية "إعادة" MTD لذلك لن أضطر إلى تحميل صورة Kernel في البداية إلى user
الفضاء في الذاكرة.