# uboot ÄÄÆÄÀÏ ¼³Ä¡ $ cd /opt/ $ sudo wget https://releases.linaro.org/13.09/components/toolchain/binaries/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz $ sudo tar xf gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz #Ä¿³Î Toolchain ¼³Ä¡ $ cd /opt/ $ sudo wget http://crztech.iptime.org:8080/Release/Toolchain/x86_64-arago-linux.tgz $ sudo tar xf x86_64-arago-linux.tgz Ä¿³Î ¼Ò½º µð·ºÅ丮·Î À̵¿ "build_kernel" ÆÄÀÏ¿¡¼­ ¼öÁ¤ export CROSS_COMPILE=/opt/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf- export TOOLCHAIN_PATH=/opt/x86_64-arago-linux/usr #application ÄÄÆÄÀÏ·¯ http://crztech.iptime.org:8080/Release/Toolchain/arm-2013.05-24-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 #source download http://crztech.iptime.org:8080/Release/mango-am335x-ST/Linux/kernel4.4/20200702/ $ tar xf m3358_buildroot_k4419-xxxx.tgz $ tar xf m3358_buildroot_k4419-xxxx-image.tgz mv m3358_buildroot_k4419-xxxx-image m3358_buildroot_k4419-xxxx/image #u-boot ÄÄÆÄÀÏ $ ./build_uboot config $ ./build_uboot #Kernel ÄÄÆÄÀÏ $ ./build_kernel defconfig m3358_audio_defconfig $ ./build_kernel #ÆÄÀÏ ½Ã½ºÅÛ ÄÄÆÄÀÏ $ ./build_rootFS.sh #MMC ºÎÆà À̹ÌÁö Write ¹× ºÎÆÃÇϱâ 1) Àüü À̹ÌÁö Write ¹æ¹ý $ tar xvf m3358_buildroot_xxx_image.tgz # ubuntu 16.04 ÀÌ»óÀÎ °æ¿ì $ sudo ./create-sdcard-ubuntu16.0.6.sh /dev/sdb # ubuntu 12.04, 14.04 ÀÌÇÏÀÎ °æ¿ì $ sudo ./create-sdcard.sh /dev/sdb 2) Ä¿³Î À̹ÌÁö Write ¹æ¹ý Ä¿³Î ÄÄÆÄÀÏ ÈÄ $ cp /zImage custom_datafs/boot/ $ cp am335x-evmsk.dtb custom_datafs/boot/ $ ./custom_datafs_make.sh½ÇÇà ÈÄ custom_datafs.tar.gz ÀÌ ¸¸µé¾î Áø´Ù.? $ sudo ./create-sdcard-ubuntu16.0.6.sh /dev/ ¶Ç´Â $ sudo ./create-sdcard.sh /dev/ #ºÎÆà ¸ðµå SD ºÎÆà : SW 4¹ø ON, ³ª¸ÓÁö OFF NAND ºÎÆà : SW 1,2, 4¹ø ON, ³ª¸ÓÁö OFF 3. Nand¿¡ u-boot¿Í Ä¿³Î WriteÇϱâ ÆÄÀÏ ½Ã½ºÅÛ ¸¸µé±â Linux pc¿¡¼­ image µð·ºÅ丮·Î À̵¿ mkdir rootfs cd rootfs/ sudo tar xf ../rootfs.tar.gz sudo tar cf ../rootfs.tar . cd .. - nand¿¡ WriteÇÒ rootfs À̹ÌÁö SD¿¡ º¹»ç(linux pc¿¡¼­ ÀÛ¾÷) ºÎÆà µÇ´Â SDÄ«µå¸¦ linux pc¿¡ ÀåÂø $ cd => rootfs.tar ÆÄÀÏÀÌ ÀÖ´Â µð·ºÅ丮·Î À̵¿ $ mkdir fs $ dmesg | tail sdc: sdc1 sdc2 device node È®ÀÎ : ÇÊÀÚ´Â µð¹ÙÀ̽º ³ëµå °¡ sdc ÀÌ´Ù. 2¹ø° ÆÄƼ¼Ç¿¡ ÆÄÀÏ ½Ã½ºÅÛÀÌ ÀÖÀ¸¹Ç·Î $ sudo mount /dev/sdc2 fs $ sudo cp rootfs.tar fs/root/ $ sync;sudo umount /dev/sdc2 SD Ä«µå¸¦ »©¼­ º¸µå¿¡ ÀåÂø ÈÄ ºÎÆÃÀ» ÇÑ´Ù. -nfs server¸¦ ÀÌ¿ëÇÑ ¹æ¹ý SD ºÎÆà ÈÄ ¾Æ·¡ ¸í·É ¼öÇà Root ÆÄÀÏ ½Ã½ºÅÛÀ» copyÇÑ´Ù. mkdir nfs_mount ÀÌ´õ³Ý ¿¬°áÇÏ°í, nfs ¸¶¿îÆ® Çϱâ udhcpc -ieth0 mount -t nfs 192.168.100.10:/home/icanjji/work ./nfs_mount -o nolock IP´Â »ç¿ëÀÚ ¸¶´Ù ´Ù¸£´Ù. ¸Â°Ô ¼³Á¤ÇÑ´Ù. (nfs server ¼³Á¤ ÈÄ) cp ./nfs_mount/dk-am3358/4.4/image/rootfs.tar . sync --ÆÄÀÏ ½Ã½ºÅÛ nand WriteÇϱâ SD ·Î ºÎÆà ÈÄ u-boot ÇÁ·ÒÇÁÆ®·Î µé¾î°¡¼­ nand scrub.chip ÈÄ ´Ù½Ã ºÎÆà ÈÄ ¾Æ·¡ ¸í·ÉÀ» ¼öÇàÇÑ´Ù. ./image_write.sh Write°¡ ¿Ï·á°¡ µÇ¸é, nand mode·Î ºÎÆÃÇÑ´Ù. -imag_write.sh ÆÄÀÏ ³»¿ë #!/bin/sh ROOT_DIR=`pwd` mkdir -p $ROOT_DIR/boot-images mount /dev/mmcblk0p1 $ROOT_DIR/boot-images flash_erase /dev/mtd0 0 0 flash_erase /dev/mtd4 0 0 flash_erase /dev/mtd5 0 0 flash_erase /dev/mtd8 0 0 flash_erase /dev/mtd9 0 0 echo $ROOT_DIR echo nandwrite -p /dev/mtd0 $ROOT_DIR/boot-images/MLO nandwrite -p /dev/mtd0 $ROOT_DIR/boot-images/MLO echo nandwrite -p /dev/mtd4 $ROOT_DIR/boot-images/am335x-evmsk.dtb nandwrite -p /dev/mtd4 /boot/am335x-evmsk.dtb echo nandwrite -p /dev/mtd5 $ROOT_DIR/boot-images/u-boot.img nandwrite -p /dev/mtd5 $ROOT_DIR/boot-images/u-boot.img echo nandwrite -p /dev/mtd8 /boot/zImage nandwrite -p /dev/mtd8 /boot/zImage ubiformat /dev/mt9 ?s 2048 echo ubiattach /dev/ubi_ctrl -m 9 -O 2048 ubiattach /dev/ubi_ctrl -m 9 -O 2048 echo ubimkvol /dev/ubi0 -N rootfs -m -n 0 ubimkvol /dev/ubi0 -N rootfs -m -n 0 echo mkdir -p /mnt/nand_rootfs mkdir -p /mnt/nand_rootfs echo mount -t ubifs -o sync ubi0:rootfs /mnt/nand_rootfs mount -t ubifs -o sync ubi0:rootfs /mnt/nand_rootfs cd /mnt/nand_rootfs echo tar xvf $ROOT_DIR/rootfs.tar tar xvf $ROOT_DIR/rootfs.tar cd umount /mnt/nand_rootfs sync