برای نصب روی NAND ابتدا نیاز به یک لینوکس روی SD داریم. من از ایمیج پست قبلی استفاده می کنم.
ابتدا می خوام با اوبونتو ایمیج را روی uSD بریزم.
بعد از دانلود فایل آن را در آدرس زیر قرار دهید
کد:
/home/ma/linaro.untuch.13.2.25.img.gz
توجه کنید که ma اسم user من در اوبونتو هست.
ابتدا چندتا برنامه دانلود کنیم.
کد:
apt-get install gunzip pv lsblk screen
حالا ابتدا فایل ایمیج را از حالت فشرده خارج می کنم.
کد:
gunzip /home/ma/linaro.untuch.13.2.25.img.gz
حالا می خوام فایل را روی uSD بریزم،
با دستور زیر ابتدا اسم Device مربوط به uSD را پیدا می کنم
کد:
ma@ubuntu:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom sda 8:0 0 20G 0 disk ├─sda1 8:1 0 19G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 1022M 0 part [SWAP] sdb 8:16 1 1.9G 0 disk ├─sdb1 8:17 1 64M 0 part /media/7A30-2348 └─sdb2 8:18 1 1.8G 0 part /media/fec33567-75bc-43eb-86a0-c86ed8ee61cb
با توجه به حجم 1.9G می فهمم که اسم Device میکرو SD من sdb هست.
حالا با دستور زیر ایمیج را روی uSD میریزم.
کد:
pv /home/ma/linaro.untuch.13.2.25.img | dd of=/dev/sdb
اگه دقت کنید با کمک دستور pv می تونیم که progress بار هم داشته باشیم.
خوب حالا uSD ما آماده برای استفاده است. حالا فایل cubie_nand_uboot_partition_image.bin دانلود می کنم ( فایل پیوست) و در آدرس زیر از uSD قرار میدم.
کد:
/home/linaro/
حالا کابل برق و مبدل سریال به USB را به PC وصل می کنم.
الان می خوام خط فرمان کیوبی را از طریق ترمینال اوبونتو ببینم به خاطر همین از دستور زیر استفاده می کنم.
کد:
sudo screen /dev/ttyUSB0 115200
اگه دقت کنید از الان به بعد بجای اینکه
کد:
ma@ubuntu:~$
اول دستورها باشه، عبارت زیر میاد
کد:
root@linaro-alip:~#
در واقع از الان به بعد همه کارها را با خود کیوبی انجام می دهیم.
با دستور زیر فایل پیوست را روی NAND می ریزم، توجه کنید که با این دستور هرچی روی NAND بوده پاک میشه.
کد:
dd if=/home/linaro/cubie_nand_uboot_partition_image.bin of=/dev/nand sync
برای اینکه مطمئن بشیم اطلاعات درست روی NAND ریخته شده حدود 1 دقیقه صبر می کنیم. بعد در حالی که هنوز uSD وصل هست با دستور زیر برد را ریست می کنیم
کد:
Reboot
بعد از اینکه لینارو کامل بالا اومد پارتیشن nandb را با دستور زیر فرمت می کنیم
کد:
mkfs.ext4 /dev/nandb
حالا می خواهیم اطلاعات لینوکس را روی این پارتیشن بریزیم، پس اول اون را mount می کنیم
کد:
mount /dev/nandb /mnt
می خوام ببینم که mount شده یا نه بخاطر همین دستور زیر را اجرا می کنم
کد:
root@linaro-alip:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nand 93:0 0 3.8G 0 disk nanda 93:8 0 508K 0 disk nandb 93:16 0 3.8G 0 disk /mnt mmcblk0 179:0 0 1.9G 0 disk ├─mmcblk0p1 179:1 0 64M 0 part /media/AF49-9311
زیر قسمت mounpoint آدرس mount را نوشته. دقت کنید برای کپی کردن و کارهای دیگه با اسم Device کاری نداریم بلکه با آدرس mounpoint آن کار می کنیم.
حالا باید اطلاعات پارتیشن اول uSD را که اینجا با اسم mmcblk0 هست داخل nanadb کپی کنم.
اول یه پوشه به اسم boot داخل nanadb درست می کنم و بعد فایل uImage را کپی می کنم
کد:
mkdir /mnt/boot cp /media/AF49-9311/uImage /mnt/boot/uImage
حالا باید فایل های مربوط به rootfs را کپی کنیم. به خاطر همین دستورات زیر را خط به خط انجام بدید و منتظر بمونید فایل ها کامل کپی بشه.
کد:
root@linaro-alip:/# cp -r /bin /mnt root@linaro-alip:/# cp -r /home /mnt root@linaro-alip:/# cp -r /run /mnt root@linaro-alip:/# cp -r /selinux /mnt root@linaro-alip:/# cp -r /usr /mnt root@linaro-alip:/# cp -r /boot /mnt root@linaro-alip:/# cp -r /etc /mnt root@linaro-alip:/# cp -r /lib /mnt root@linaro-alip:/# cp -r /media /mnt root@linaro-alip:/# cp -r /opt /mnt root@linaro-alip:/# cp -r /root /mnt root@linaro-alip:/# cp -r /sbin /mnt root@linaro-alip:/# cp -r /srv /mnt root@linaro-alip:/# cp -r /var /mnt
حالا باید یک سری فولدر داخل nandb درست کنیم
کد:
mkdir dev proc mnt sys tmp
در پایان دستورات زیر را انجام میدیم
کد:
umount /mnt umount /media/AF49-9311 sync
حالا برد را خاموش می کنیم و uSD را از برد جدا می کنیم و برد را دوباره روشن می کنیم
کد:
Shutdown 0
با سلام من یه ایمیج linaro که دسکتاپ داشت رو به روش بالا انجام دادم مشکلی که دارم اینه که لینوکس بالا می یاد ولی دسکتاپش بالا نمیاد.خیلی باهاش ور رفتم نشد. اگه امکان داره راهنمایی کنید.
linaro.13.7.20 3