نصب لینوکس روی نند

اول باید از سالم بودن پارتیشن های نند مطمئن بشیم، به خاطر همین بهترین راه نصب آندروید روی نند هست که با آموزش گفته شده در لینک زیر آن را انجام میدیم.

نصب ایمیج های آندروید

مرحله بعدی ساخت یک uSD حاوی لینوکس هست که آموزش آن در لینک زیر هست.

ساخت uSD لینوکس لینارو برای مارس بورد

حالا یک سری فایل و برنامه لازم داریم که من همه ی آنها را در فایل زیر روی سایت آپلود کردم. فایل زیر را دانلود کنید.

nand-install-files.zip

فایل Uenv.txt  و فایل u-boot.bin و پوشه sunxi-tools را در آدرس

Home/linaro

کوپی می کنیم و فایل uImage را با uImage  قبلی جایگزین می کنیم.

خوب حالا برد را با uSD بوت می کنیم.

حالا دستور زیر را انجام می دهیم

./home/linaro/sunxi-tools/nand-part /dev/nand 'linux 8000000'
این دستور حافظه نند را به دو پارتیشن تبدیل میکن

حالا دستورات زیر را انجام بدید و منتظر بمونید تا برد ریست بشه

sync

reboot

بعد از اینکه برد کامل بوت شد با دستور زیر پارتیشن ها را بررسی می کنیم

root@linaro-alip:~# lsblk

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

nand         93:0    0   3.7G  0 disk

├─nand1      93:1    0    16M  0 part

└─nand2      93:2    0   3.7G  0 part

nanda        93:8    0    16M  0 disk

nandb        93:16   0   3.7G  0 disk

mmcblk0     179:0    0   1.9G  0 disk

├─mmcblk0p1 179:1    0    64M  0 part

└─mmcblk0p2 179:2    0   1.8G  0 part /

با دستور زیر پارتیشن nandb را فرمت می کنیم

mke2fs -t ext4 /dev/nandb

حالا می خواهیم اطلاعات rootfs را از uSD روی نند بریزیم. برای اینکار از برنامه rsync استفاده می کنیم. پس ابتدا این برنامه را دانلود می کنیم.

apt-get install rsync

حالا با دستور زیر یک فایل متنی درست کنید

nano install-exclude

و این ادرس ها را داخل اون تایپ کنید

/dev/*

/proc/*

/sys/*

/media/*

/mnt/*

/run/*

/tmp/*

برای استفاده از nandb اول ان را با دستور زیر mount می کنیم.

mount /dev/nandb /mnt

با دستور زیر همه محتویات rootfs بجز آدرس های زیر داخل nandb کوپی می شود. این مرحله حدود 5 دقیقه یا بیشتر طول می کشه. پس منتظر بمونید.

rsync -aH --exclude-from=install-exclude  /  /mnt

برای امیدوار کردنتون بگم که من این مرحله را حدود 10 تا 15 بار تکرار کردم تا در پایان تونستم لینوکس را روی نند بالا بیارم، پس تا تموم شدن این مرحله صبور باشید و لطفا کلید اضافه ای نزنید.

الان ما تونستیم rootfs را روی نند بریزیم. الان می تونیم کرنل و تنظیمات را روی sd بزاریم و کرنل را طوری تنظیم کنیم تا rootfs را از روی نند بخونه، این تنظیمات داخل یک فایل متنی به اسم Uenv.txt قرار دارد که محتویات اون بصورت زیر است

setargs=setenv bootargs mem=1024M@0x40000000 console=ttyS0,115200 root=/dev/nandb init=/init loglevel=4 rootfstype=ext4 rootwait

به خاطر همین فایل تنظیمات را با دستورات زیر کنار کرنل کوپی می کنیم.

umount /mnt

mount /dev/mmcblk0p1 /boot

cp /home/linaro/Uenv.txt /boot/

reboot

پس از بالا اومد سیستم با دستور زیر بررسی می کنیم که rootfs کجا هست.

cat /proc/cmdline

mem=1024M@0x40000000 console=ttyS0,115200 root=/dev/nandb init=/init loglevel=4 rootfstype=ext4 rootwait

خوب تا حالا همه چیز درسته. حالا می خواهیم کرنل را هم روی نند بریزیم تا بدون uSD هم بتونیم بوت بکنیم. دستورات زیر را انجام می دهیم.

mount /dev/nanda /mnt

mount /dev/mmcblk0p1 /boot

cp /boot/uImage /mnt/linux

sync

cp /boot/script.bin /mnt

sync

cp /boot/Uenv.txt /mnt/linux

sync

cp /home/linaro/u-boot.bin /mnt/linux

sync

shutdown now

بعد از خاموش شدن uSD را از برد جدا می کنیم و برد را دوباره روشن می کنیم.

حالا می تونید از لینوکس روی نند لذت ببرید.

برچسب خورده : , . Bookmark the پیوند یکتا.

9 Responses to نصب لینوکس روی نند

  1. MOSTAFA میگوید :

    با سلام خدمت شما دوستان عزیز . اگه امکان داشته باشین یک شماتیک ساده تر از پایه های هدر برد رو اساتید بزارن تا بتونیم ما هم استفاده بکنیم . چون من و بچه های مثل من تازه کار هستند و دقیقا نمی شه از فایل شماتیک برد که در دسترس هستش زیاد سر در آورد . فقط شماره پین های روی برد و همچنین مربوط به کدوم پین هستند . ممنون از شما اساتید عزیز .

  2. بخشایی میگوید :

    خدا قوت حیلی عالی بود
    مهنذس سرعت لینوکس روی نند چجوریاست؟؟؟
    مثل اندروید خودش هست؟
    عملکرد و سرعت ؟؟؟؟؟؟

  3. majid میگوید :

    سلام
    من برای نصب لینوکس بر روی نند یک usd ساختم و قایلهای مورد نظر رو کپی کردم ولی نمیتونم از روی sd برد رو بوت کنم
    من مارس برد دارم
    با تشکر

    • mahdichi میگوید :

      با سلام
      اگه بوت نمیکنه این روش را امتحان کنید

      فایل uImage را جایگزین نکنید و اون را داخل پوشه Home/linaro بریزید.
      وقتی به دستور زیر رسیدید
      cp /home/linaro/Uenv.txt /boot/

      این دستور را هم اجرا کنید
      cp /home/linaro/uImage /boot/

      امیدوارم جواب بده.

  4. majid میگوید :

    سلام
    ممنونم از راهنماییتون.
    متاسفانه باز هم مشکلم حل نشد. واقعا موندم مشکل از کجاست!!!؟

  5. reza1 میگوید :

    سلام ممنون از آموزشتون
    مشکل من اینجاست نمی دونم کدوم پورت را وصل لپتاپ کنم که به حافظه nand دسترسی داشته باشم که بخوام حالا یا پارتیشن بندی کنم یا لینوکسی برنامه ای چیزی بریزم روش :( سیستم عامل من فدورا19 هست و /dev/nand را نمی شناسه otg و هم پاورش به usb لپتاپم زدم

    • mahdichi میگوید :

      سلام
      دوست عزیز، dev/nand مربوط به خود برده و ربطی به لبتاپ نداره،
      این جور نیست که شما فکر می کنید وصل لبتاپ کنید به عنوان یه حافظه باهاش رفتار می کنیم.
      این بورد یک کامپیوتر کامله، این دستوراتی که تو آموزش هست، همشون تو خوده برد باید اجرا شوند.

  6. rabadi8019 میگوید :

    سلام
    وقتتون بخیر
    می بخشید. من میخواستم یه تاچ نصب کنم به کوبی تراک. یه تاچ اسکرین 19 اینچ. میخواستم ببینم که آیا میتونم اینکارو بکنم؟
    بعد اینکه درایور مخصوص این تاچ اسکرین لینوکس و ویندوز رو میتونه پشتیبانی کنه، و نسخه های لینوکس اون
    Linux-32bit Redhat/Ubuntu/Fedora/Suse/CentOS/Debian
    Rs232/USB
    و Linux-64bit Redhat/Ubuntu/Fedora/Suse/CentOS/Debian
    Rs232/USB
    هست. آیا ایمیج این هست؟ من میتونم روی کوبی نصبش کنم؟
    ممنون میشم اگه جوابمو بدید

دیدگاهتان را بنویسید