بخاطر شعار انجمن (مشکل جدید؛ تاپیک جدید) این کارو کردم.
اون چیزی که نیاز داشتم رو خودم پیدا کردم فقط کاشکی خودتون جای پیشنهاد کتاب و کدوم کار حماقته کدوم نیست از اول خودتون میگفتید که من انقد درگیر نشم.
در حال حاضر مشکل با busybox هست. وقتی لینوکسم رو بوت میکنم میگه busybox not tainted .
هسته vmlinuz هست و از فایل iso اوبونتو ۱۵ i386 کش رفتم. باینری busybox هم از initrd.lz بیرون کشیدم.
قبل دستور find . | cpio -H newc -o با دستور ln -s ./bin/busybox ./bin/sh دستور هایی که نیاز داشتم رو نصب کردم.
مشخصه که کلا init رو بالا نمیاره چون چند خط echo گذاشته بودم ولی اونها رو نخوند.
#!/bin/sh
mount -t proc /proc /proc
mount -t sysfs none /sys
echo Now, linux booted completely!
exec /bin/ash --login
درحال حاضر دارم تلاش میکنم این مشکل رو حل کنم بعدش برم مونو رو تهیه کنم.
تا وقتی نگید چه کارهایی رو انجام دادین چه بسته هایی رو نصب کردین نکردین هیشکی نمیتونه کمکتون کنه
ولی تا اینجا مشخصه که حداقل دوتا اشتباه انجام دادین
vmlinuz رو "کش رفتین" !!!
باینری busybox رو بیرون کشیدین؟!!!
فکر کنم اگه چند دقیقه از وقتتون رو بذارین linux from scratch بخونین خودتون متوجه میشین چه اشتباهاتی رو انجام دادین!
خوب چرا کپی کردن اونها اشتباست؟
یه چیزی که قشنگ مشخصه اینه که فایلی که من ساختم مانت نمیشه.
والله vmlinuz انقد چیز میز رو صفحه کینوشت ارور اصلی گم میشود و نمیتونستم پیداش کنم واسه همین هر لینوکسی که داشتم هسته رو بیرون کشیدم. تست کردم
هسته Androidx86 گفت
RAMDISK: Unable to mount on (0:0) 13273 != 32768
Failed to access perfctr msr (msr c1 is 0)
همه هسته ها گفتن
Kernel panic:Unable to mount root fs
Reboot in 60 seconds...
یعنی توزیع های مختلف علاوه بر initrd مختلف؛ هسته های متفاوت هم دارند که تفاوت خیلی زیادی دارند تا حدی که عوض کردنشون باعث ارور میشه؟
من هسته ۳۲ بیتی گرفتم و تمام ابزار ها هم ۳۲ بیتی هستند و نسخه i386 رو از مخازن اوبونتو دانلود کردم (packages.ubuntu.com)
ولی محیطی که شبیه سازی رو باهاش انجام میدم و بیلد میکنم ۶۴ بیتی هستند. عمل بیلد روی Ubuntu 14.10 i686 انجام میشه و شبیه سازی روی qemu-system-i386 روی ویندوز ۶۴ بیتی انجام میشه.
من هی بکیجی نصب نکردم فقط باینری busybox هست و پوشه های proc و bin و lib و ...
البته الان پاک کردم و sh و bash و mount و ... رو جدا جدا دانلود کردم.