دستور پخت ucLinux برای ARM!
مواد لازم: لینوکس! یک عدد
ARM: یک عدد میکروپروسسور ( برای میکروکنترلرها بعدا صحبت خواهیم کرد. )
کراس کمپایلر برای آرم. یک عدد که می تونید از اینجا دانلودش کنید. http://www.uclinux.org/pub/uClinux/arm-elf-tools/
/
غیر از این کراس کمپایلرهای دیگری هم هستند.
از این هم می تونید استفاده کنید: http://opensrc.sec.samsung.com/download/arm-elf-tools-20040427.sh
از قبل کمپایل و آماده شده. فقط نصبش کنید.
من قبلا یک بار از این برای کار با simplescalar-arm استفاده کرده بودم:
http://www.eecs.umich.edu/~taustin/simplescalar
و سه فایل binutils-2.10.tar.gz
gcc-2.95.2.tar.gz
glibc-2.1.3-armlinux.tar.gz
رو دانلود کنید. الان که چک کردم ظاهرا آقای آستین این فایل ها رو برداشته. اگر کسی می خواد اینها رو یه پست بزنه که من یه جای دیگه پلودشون کنم.
ucLinux یک عدد که می تونید از اینجا دانلود کنید:http://www.uclinux.org/pub/uClinux/uClinux-2.6.x
برای کمپایل binutil
برای کمپایل کراس کمپایلر:
خوب. تا اینجا شما یک کمپایلر استاندارد دارید که می تونه فایل های C رو برای ARM کمپایل کنه. برای استفاده از کمپایلر gcc از دستور زیر میشه استفاده کرد:
سایر برنامه ها مثل arm-linux-gcc و arm-linux-ld و ... هم هستند.
* اگر برای کسی جالبه من SPEC CPU2006 و MiBench رو برای آرم کمپایل کردم.
:nerd:** اگر حوصله ساختنش رو خودتون ندارید می تونید از اینجا دانلودشون کنید:
http://www.gnuarm.com/
برای کمپایل ucLinux ( این روشی بود که من برای کمپایلش روی OpenRISC 1200 استفاده کرده بودم. علی القاعده نباید با ARM متفاوت باشه ولی من هنوز تستش نکردم )
همه جا or32-uclinux رو با arm-linux جابجا کنید.
در نهایت شما یک تصویر بوت از ucLinux خواهید داشت.
------------------------------------
خب. تا حالا حتما سردرد گرفتید. ها!
بعد از کمی گوگل گردی من دیدم که ظاهرا سامسونگ خیلی مرام گذاشته و این کارها رو قبلا انجام داده!
نتایج اون رو هم گذاشته اینجا: http://opensrc.sec.samsung.com
حتما یک نگاه به قسمت دانلودش بندازید.
:arrow: :arrow:راهنمای استفاده رو هم اینجا گذاشته:http://opensrc.sec.samsung.com/document/Getting_Familiar_with_uClinuxARM2_6.html
توضیحاتش کامله و شامل گرفتن، پچ و کمپایل ucLinux میشه. این رو حتما بخونید.
و البته خود آرم هم یک راهنما رو گذاشته اینجا:http://www.arm.com/linux/ARM-Linux-Notes.pdf
به طور خلاصه اینها هم کراس کمپایلر دارند و هم ucLinux آماده.
اما!
آخر سر اومده یک دستورcat /proc/meminfo زده که نتایج جالبی داره.
همون طور که می بینید فقط برای بالا آوردن خود لینوکس جدا از برنامه های خودتون به حدود 2مگ رم نیاز دارید. ضمنا تصویر خود لینوکس برای پروگرم چیزی حدود 1.5 مگ هست. طبیعتا این توی میکروپروسسورها مسئله ای نیست. ولی توی میکروکنترلرها چرا. اگر اشتباه نکنم میکرویی که الان بچه های اینجا دارند روش کار می کنند حدود 256 کیلوبایت رم داره. درسته؟
در این صورت برای بقیش باید یک فکری کرد.
ادامه دارد . . .
مواد لازم: لینوکس! یک عدد
ARM: یک عدد میکروپروسسور ( برای میکروکنترلرها بعدا صحبت خواهیم کرد. )
کراس کمپایلر برای آرم. یک عدد که می تونید از اینجا دانلودش کنید. http://www.uclinux.org/pub/uClinux/arm-elf-tools/
/
غیر از این کراس کمپایلرهای دیگری هم هستند.
از این هم می تونید استفاده کنید: http://opensrc.sec.samsung.com/download/arm-elf-tools-20040427.sh
از قبل کمپایل و آماده شده. فقط نصبش کنید.
من قبلا یک بار از این برای کار با simplescalar-arm استفاده کرده بودم:
http://www.eecs.umich.edu/~taustin/simplescalar
و سه فایل binutils-2.10.tar.gz
gcc-2.95.2.tar.gz
glibc-2.1.3-armlinux.tar.gz
رو دانلود کنید. الان که چک کردم ظاهرا آقای آستین این فایل ها رو برداشته. اگر کسی می خواد اینها رو یه پست بزنه که من یه جای دیگه پلودشون کنم.
ucLinux یک عدد که می تونید از اینجا دانلود کنید:http://www.uclinux.org/pub/uClinux/uClinux-2.6.x
برای کمپایل binutil
کد:
cd binutils-2.10 ./configure --target=arm-linux --prefix=<CROSSDIR> make make install cd ..
برای کمپایل کراس کمپایلر:
کد:
cd gcc-2.95.2 ./configure --target=arm-linux --prefix=<CROSSDIR> make LANGUAGES=c make LANGUAGES=c install cd ..
کد:
arm-linux-gcc
* اگر برای کسی جالبه من SPEC CPU2006 و MiBench رو برای آرم کمپایل کردم.
:nerd:** اگر حوصله ساختنش رو خودتون ندارید می تونید از اینجا دانلودشون کنید:
http://www.gnuarm.com/
برای کمپایل ucLinux ( این روشی بود که من برای کمپایلش روی OpenRISC 1200 استفاده کرده بودم. علی القاعده نباید با ARM متفاوت باشه ولی من هنوز تستش نکردم )
همه جا or32-uclinux رو با arm-linux جابجا کنید.
کد:
cp -f -dR $LINUX_VER/include/linux/* tools/or32-uclinux/include/linux cp -f -dR $LINUX_VER/include/asm-or32/* tools/or32-uclinux/include/asm cd $BUILD_TOP/tools/or32-uclinux ln -s include sys-include cd $BUILD_TOP cd $GCC_VER bzip2 -dc ../$GCC_VER.or32patch.bz2 |patch -p1 cd $BUILD_TOP cd b-gcc ../$GCC_VER/configure --target=or32-uclinux --prefix=$BUILD_TOP/tools/or32-uclinux --with-local-prefix=$BUILD_TOP/tools/or32-uclinux/or32-uclinux --with-gnu-as --with-gnu-ld --disable-libssp --enable-languages=c make all install cd $BUILD_TOP cd $LINUX_VER make vmlinux ARCH=or32 CROSS_COMPILE=$BUILD_TOP/tools/or32-uclinux/bin/or32-uclinux-
در نهایت شما یک تصویر بوت از ucLinux خواهید داشت.
------------------------------------
خب. تا حالا حتما سردرد گرفتید. ها!
بعد از کمی گوگل گردی من دیدم که ظاهرا سامسونگ خیلی مرام گذاشته و این کارها رو قبلا انجام داده!
نتایج اون رو هم گذاشته اینجا: http://opensrc.sec.samsung.com
حتما یک نگاه به قسمت دانلودش بندازید.
:arrow: :arrow:راهنمای استفاده رو هم اینجا گذاشته:http://opensrc.sec.samsung.com/document/Getting_Familiar_with_uClinuxARM2_6.html
توضیحاتش کامله و شامل گرفتن، پچ و کمپایل ucLinux میشه. این رو حتما بخونید.
و البته خود آرم هم یک راهنما رو گذاشته اینجا:http://www.arm.com/linux/ARM-Linux-Notes.pdf
به طور خلاصه اینها هم کراس کمپایلر دارند و هم ucLinux آماده.
اما!
آخر سر اومده یک دستورcat /proc/meminfo زده که نتایج جالبی داره.
کد:
MemTotal: 2516 kB MemFree: 560 kB Buffers: 900 kB Cached: 188 kB SwapCached: 0 kB Active: 984 kB Inactive: 44 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 2516 kB LowFree: 560 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB Mapped: 0 kB Slab: 752 kB Committed_AS: 0 kB PageTables: 0 kB VmallocTotal: 4194303 kB VmallocUsed: 0 kB VmallocChunk: 4194303 kB
در این صورت برای بقیش باید یک فکری کرد.
ادامه دارد . . .
دیدگاه