Kindle Fire Coupon Kindle Fire Coupon 2012 Kindle DX Coupon 2012 Kindle Fire 2 Coupon Amazon Coupon Codes 2012 Kindle DX Coupon PlayStation Vita Coupon kindle touch coupon amazon coupon code kindle touch discount coupon kindle touch coupon 2012 logitech g27 coupon 2012 amazon discount codes
Facebook RSS Reset

Hướng dẫn build linux với yocto project cho board beaglebone black, linux kernel 4.5.7

Đây là bài viết tham kho v cách build yocto cho beaglebone black, đng thi cũng là bài b sung cho các bn đang hc lp Basic Embedded Linux Training. Hin ti kernel to ra vi yocto này có version là 4.5.7.

1.Cài đt các package yêu cu cho yocto :

Cũng tương t vi các hưng dn cho board khác, vic đu tiên là chc chn bn đã cài đt các pagekage ph thuc ban đu cho Linux host. C th thì bạn cần cái một số package phụ thuộc sau đây (Chọn 1 trong 2 thôi nhé) :

Đối với máy tính cài linux Ubuntu or Debian:

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
     build-essential chrpath socat libsdl1.2-dev xterm

Đối với máy tính cài linux Fedora:

	sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \
     diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
     ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue socat \
     SDL-devel xterm perl-Thread-Queue

2.Build yocto cho beaglebone black

i đây là trình t các bưc cho vic build yocto beaglebone

  • c 1 : To thư mc làm vic và download source yocto và các meta cn thiết cho bbb.
mkdir yocto_bbb
cd yocto_bbb
git clone -b krogoth git://git.yoctoproject.org/poky.git poky-krogoth
cd poky-krogoth
git clone -b krogoth git://git.openembedded.org/meta-openembedded
git clone -b krogoth https://github.com/meta-qt5/meta-qt5.git
git clone -b krogoth git://github.com/jumpnow/meta-bbb

Sau khi hoàn thành quá trình download source thì ta s có các thư mc như hình sau :

yocto2

Bước 2 :  Khởi tạo môi trường build. Lúc này bạn di chuyển đúng thư mục yocto_bbb và chạy lệnh sau :

MACHINE=beaglebone source poky-krogoth/oe-init-build-env build

Sau khi chy lnh này thì s có 1 thư mc build t đng to ra và trong đó có chưa thư mc conf vi 2 file quan trng trong thư mc này là bblayer.conf và local.conf mà bưc tiếp theo s cn sa đến chúng.

c 3 : M file build/conf/bblayer.conf và thêm vào các layer cn thiết đ ni dung ging như sau, lưu ý cn thay đi đưng dn cho đúng vi máy ca bn vì bên dưi là thư mc làm vic ca riêng máy mình :

	# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
	# changes incompatibly
	POKY_BBLAYERS_CONF_VERSION = "2"
	
	BBPATH = "${TOPDIR}"
	BBFILES ?= ""
	
	BBLAYERS ?= " \
	  /home/dongpv/data/yocto_bbb/poky-krogoth/meta \
	  /home/dongpv/data/yocto_bbb/poky-krogoth/meta-bbb \
	  /home/dongpv/data/yocto_bbb/poky-krogoth/meta-qt5 \
	  /home/dongpv/data/yocto_bbb/poky-krogoth/meta-poky \
	  /home/dongpv/data/yocto_bbb/poky-krogoth/meta-yocto-bsp \
	  /home/dongpv/data/yocto_bbb/poky-krogoth/meta-openembedded/meta-networking \
	  /home/dongpv/data/yocto_bbb/poky-krogoth/meta-openembedded/meta-python \
	  /home/dongpv/data/yocto_bbb/poky-krogoth/meta-openembedded/meta-oe \
  "

Sau đó, tiếp tc m file build/conf/local.conf và tìm đến dòng này và b comment đi : MACHINE ?= “beaglebone”

c 4 : Tiến hành fetch và build linux bng yocto, chc chn rng bn đang đng ti thư mc build, vì nếu đng sai directory s không chy đưc :

dongpv@ubuntu:~/data/yocto_bbb/build$ bitbake console-image

Quá trình biên dch c này s mt 1 thi gian khá lâu, tùy theo cu hình máy tính s mt đến vài gi hoc c ngày. Sau khi build thành công s các file output cho bbb đưc locate ti : /home/dongpv/data/yocto_bbb/build/tmp/deploy/images/beaglebone

c 5 : c này, ta s tìm hiu làm th nào đ flash tt c các component vào th nh sdcard đ nó có th boot đưc.

Mình s kim tra trong thư mc meta-bbb/scripts nó có chưa các script h tr cho vic format và chép các component linux qua th nh 1 cách t đng. Trình t tng bưc nhé :

+ Đu tiên là format sdcard vi script có sn là mk2parts.sh :

	dongpv@ubuntu:~/data/yocto_bbb/build$ cd ../poky-krogoth/meta-bbb/scripts/
	dongpv@ubuntu:~/data/yocto_bbb/poky-krogoth/meta-bbb/scripts$ sudo ./mk2parts.sh sdb
	[sudo] password for dongpv: 
	Working on /dev/sdb
…….

Lưu ý là sdb tương ứng với device file của sdcard sau khi cắm vào. Kiểm tra cẩn thận nếu nhầm phân vùng của linux host sẽ format nhầm và mất dữ liệu của PC.

+ Tạo 1 thư mục để làm mount point cho sdcard sau khi cắm vào linux host (PC):

sudo mkdir /media/card    (lệnh này chỉ cần làm 1 lần đầu tiên)

+ Chép uboot vào sdcard:

Việc scripts chép các component vào sdcard sẽ thông qua 1 biến môi trường của thư mục build/tmp vậy nên cần export nó trước :

export OETMP = /home/dongpv/data/yocto_bbb/build/tmp

Chép uboot : meta-bbb/scripts$ ./copy_boot.sh sdb (uboot size nh nên s chép rt nhanh)

+ Chép rootfs vào sdcard :

meta-bbb/scripts$ ./copy_rootfs.sh sdb console

dongpv@ubuntu:~/data/yocto_bbb/poky-krogoth/meta-bbb/scripts$ ./copy_rootfs.sh sdb console

dongpv@ubuntu:~/data/yocto_bbb/poky-krogoth/meta-bbb/scripts$./copy_emmc_install.sh sdb console

Như vy là ta đã xong vic chép tt c vào sdcard. Tiếp theo là boot như thế nào?

c 6 : sau khi insert sdcard vào bbb thì mình s phi nhn và gi button S2 đ khi bootloader quét qua phím này s detect đưc và t đng chuyn sang mode load t sdcard thay vì load mc đnh t eMMC. Sau khi boot xong thì kết qu như sau :

boot_yocto_4.5

Xong. Chúc các bạn thành công !

Leave a comment

2 Responses to “Hướng dẫn build linux với yocto project cho board beaglebone black, linux kernel 4.5.7”

  1. Đặng Vũ
    February 21, 2017 at 4:13 am #

    em bị cái này trong lúc format sdCard, bác xem hộ em với là nó bị làm sao vậy?

    ngocvu@ngocvu:~/yocto_bbb/poky-krogoth/meta-bbb/scripts$ sudo ./mk2parts.sh sde1

    Working on /dev/sde1

    umount: /dev/sde1: not mounted
    DISK SIZE – 3963617280 bytes

    Okay, here we go …

    === Zeroing the MBR ===

    1024+0 records in
    1024+0 records out
    1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,223072 s, 4,7 MB/s

    === Creating 2 partitions ===

    Checking that no-one is using this disk right now … FAILED

    This disk is currently in use – repartitioning is probably a bad idea.
    Umount all file systems, and swapoff all swap partitions on this disk.
    Use the –no-reread flag to suppress this check.

    sfdisk: Use the –force flag to overrule all checks.

    === Done! ===

  2. February 21, 2017 at 4:23 am #

    em bị lỗi này trong lúc format SdCard, bác xem giúp em là lỗi gì với!!!!

    ngocvu@ngocvu:~/yocto_bbb/poky-krogoth/meta-bbb/scripts$ sudo ./mk2parts.sh sde1

    Working on /dev/sde1

    umount: /dev/sde1: not mounted
    DISK SIZE – 3963617280 bytes

    Okay, here we go …

    === Zeroing the MBR ===

    1024+0 records in
    1024+0 records out
    1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,223072 s, 4,7 MB/s

    === Creating 2 partitions ===

    Checking that no-one is using this disk right now … FAILED

    This disk is currently in use – repartitioning is probably a bad idea.
    Umount all file systems, and swapoff all swap partitions on this disk.
    Use the –no-reread flag to suppress this check.

    sfdisk: Use the –force flag to overrule all checks.

    === Done! ===

Leave a Comment