基本上Node.js在Openembedded上的recipes都已經寫好了,只要clone下來,並且加入IMAGE_INSTALL列表即可
brook@vista:~/projects/poky$ git clone https://github.com/imyller/meta-nodejs.git Cloning into 'meta-nodejs'... remote: Counting objects: 1575, done. remote: Compressing objects: 100% (14/14), done. remote: Total 1575 (delta 9), reused 0 (delta 0), pack-reused 1561 Receiving objects: 100% (1575/1575), 241.91 KiB | 368.00 KiB/s, done. Resolving deltas: 100% (846/846), done. Checking connectivity... done. brook@vista:~/projects/poky$ . oe-init-build-env You had no conf/local.conf file. This configuration file has therefore been created for you with some default values. You may wish to edit it to, for example, select a different MACHINE (target hardware). See conf/local.conf for more information as common configuration options are commented. You had no conf/bblayers.conf file. This configuration file has therefore been created for you with some default values. To add additional metadata layers into your configuration please add entries to conf/bblayers.conf. The Yocto Project has extensive documentation about OE including a reference manual which can be found at: http://yoctoproject.org/documentation For more information about OpenEmbedded see their website: http://www.openembedded.org/ ### Shell environment set up for builds. ### You can now run 'bitbake <target>' Common targets are: core-image-minimal core-image-sato meta-toolchain meta-ide-support You can also run generated qemu images with a command like 'runqemu qemux86' brook@vista:~/projects/poky/build$ vim conf/bblayers.conf ...下段說明 brook@vista:~/projects/poky/build$ vim conf/local.conf ...下段說明 brook@vista:~/projects/poky/build$ bitbake core-image-minimal WARNING: Host distribution "Ubuntu-16.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution. Parsing recipes: 100% |#############################################################################################| Time: 00:00:28 Parsing of 876 .bb files complete (0 cached, 876 parsed). 1316 targets, 49 skipped, 0 masked, 0 errors. NOTE: Resolving any missing task queue dependencies Build Configuration: BB_VERSION = "1.30.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "Ubuntu-16.04" TARGET_SYS = "i586-poky-linux" MACHINE = "qemux86" DISTRO = "poky" DISTRO_VERSION = "2.1.1" TUNE_FEATURES = "m32 i586" TARGET_FPU = "" meta meta-poky meta-yocto-bsp = "krogoth:8c69f7d56cbd496aa01ba0738675a170826a536b" meta-nodejs = "master:848b0defe8eba6e7ffa97b66e4316c17c92be9d4" ... brook@vista:~/projects/poky/build$ ./tmp/sysroots/x86_64-linux/usr/bin/qemu-system-i386 -nographic -kernel ./tmp/deploy/images/qemux86/bzImage-qemux86.bin -cpu qemu32 -drive file=./tmp/deploy/images/qemux86/core-image-minimal-qemux86.ext4,if=virtio,format=raw -show-cursor -usb -usbdevice tablet -vga vmware -no-reboot -m 256 -append "vga=0 uvesafb.mode_option=640x480-32 root=/dev/vda rw mem=256M ip=192.168.7.2::192.168.7.1:255.255.255.0 oprofile.timer=1 rootfstype=ext4 " Poky (Yocto Project Reference Distro) 2.1.1 qemux86 /dev/ttyS0 qemux86 login: root root@qemux86:~# uname -a Linux qemux86 4.4.11-yocto-standard #1 SMP PREEMPT Sun Oct 9 19:29:24 CST 2016 i686 GNU/Linux root@qemux86:~# echo 'console.log("hello world");' > node.js root@qemux86:~# node node.js hello world
conf/bblayers.conf修改的內容
BBLAYERS ?= " \ /home/brook/projects/poky/meta \ /home/brook/projects/poky/meta-poky \ /home/brook/projects/poky/meta-yocto-bsp \ ${TOPDIR}/../meta-nodejs \ "
conf/local.conf修改的內容
# This sets the default machine to be qemux86 if no other machine is selected: MACHINE ??= "qemux86" CORE_IMAGE_EXTRA_INSTALL += "nodejs"
-
參考資料:
- meta-nodejs, Node.js的openembedded recipes。
- JavaScript for IoT: Blinking LED on Raspberry Pi with Node.js , Node.js的demo影片。
- 「Node.js & IoT: Zero to One」 是一本 Node.js 的入門電子書,內容定位為基礎教學,目標是介紹 Node.js 以及 Node.js + IoT 相關技術主題,每個主題都從基本觀念(Zero)開始,介紹到能撰寫簡單的程式為止(One)。不過目前只有介紹JS的基本語法。
- Addons。教你如何擴充JS,用C/C++寫一個Node.js module。