SlideShare a Scribd company logo
1 of 72
Download to read offline
MT7688 Emulator
MakerBoard
錢逢祥
Fred Chien
Open Source Developer
開放原始碼自幹者
黑客松台灣 共同創辦人
Hackathon Taiwan Co-founder
多年前
years ago
在那又大又土又慢又貴的年代
雖然我 慣 C
C Language Enthusiast
但我也受不了
每天和這些硬體一起醉
在這追求應用的時代
需要快速打造
我夢想能有個易開發的方法
在嵌入式系統上
自從 JavaScript 抬頭
聽說一個語言 20 年會進入成熟期
希望能用 JavaScript
進行各種物聯網或嵌入式應用開發
很多的人當我瘋子
在當時
有一天成真了,有大廠親自跳下來
我發現我真是瘋子
現在
Play in Pain
Less Memory
記憶體好少
Less Storage
儲存空間好少
Keep Connection Alive
必須連著線開發
SAVE ME !
Please!
Linux Kernel
Userspace
Node.js (JavaScript Engine)
Applications
Libraries
Linux Kernel
Userspace
Node.js (JavaScript Engine)
Applications
Libraries
footprint
Memory
Usage
這不是 PC 啊!
也不是 Server!
等等!?
我可以在 PC 上模擬嗎?
MakerBoard
Git Repository
http://github.com/cfsghost/makerboard
Run an Emulation
on your computer
QEMU
Virtual Machine
Container
technology
其實你也可以自幹
You can make it
什麼是 Container ?
What's that?
LXC? Docker ?
Chroot System Call
Unix
觀察 Linux 開機流程
了解 chroot 機制
Bootloader
Linux Kernel
Initrd/ramdisk image
bin lib
usrsbin tmp
etc
Root Filesystem
Bootloader
Linux Kernel
Initrd/ramdisk image
Root Filesystem on Disk
bin lib
usrsbin tmp
etc
Root Filesystem
var
Bootloader
Linux Kernel
Initrd/ramdisk image
Root Filesystem on Disk
bin lib
usrsbin tmp
etc
Root Filesystem
var
Detecting Disk &
Selecting run level
Bootloader
Linux Kernel
Initrd/ramdisk image
Root Filesystem on Disk
bin lib
usrsbin tmp
etc
Root Filesystem
var
chroot system call
(note: privot_root)
Root Filesystem
Chroot
Linux Kernel
bin lib usr ...
Chroot
...
Chroot
...
Chroot
...
* Run different systems on the same kernel
這一切只是個開始
It's jsut the beginning
cgroup
我能自幹 Container 了
然後呢?
Userspace
Chroot
Linux Kernel
bin lib usr ...
x86
Execute ELF files
Userspace
Chroot
Linux Kernel
bin lib usr ...
x86
Execute non-x86 ELF files
non-x86 ELF
怎麼跑?
Binary Format Support
apt-get install binfmt-support
qemu-user-static
apt-get install qemu-user-static
Register ELF on kernel
/proc/sys/binfmt_misc
Userspace
Chroot
Linux Kernel
bin lib usr ...
QEMU
Recognize ELF for ARM, MIPS and other architectures
x86
binfmt support
MT7688
MIPS & Little-endian
qemu-mipsel-static
<rootfs>/usr/bin/qemu-mipsel-static
Userspace
Chroot
Linux Kernel
bin lib usr ...
x86 Hardware
Execute Your MIPS Application
All Memory and Storage
on computer you can use
With Emulation
Sweet!
Thank God!
Userspace
Chroot
Linux Kernel
bin lib usr ...
x86 Hardware
Execute Your MIPS Application
Userspace
Chroot
Linux Kernel
x86 Hardware
Userspace
Linux Kernel
MT7688 Hardware
Copying your application to MT7688
Installation
How to install MakerBoard?
Install Dependencis
sudo apt-get install qemu-user-static squashfs-tools
Install MakerBoard
npm install makerboard -g
Usage
How to use MakerBoard?
Create an Emulation
makerboard create my7688
Run Emulation
makerboard run my7688
Live Demo
:-)

More Related Content

What's hot

五行完成網頁多國語系
五行完成網頁多國語系五行完成網頁多國語系
五行完成網頁多國語系amostsai
 
Getting started with test automation
Getting started with test automationGetting started with test automation
Getting started with test automationIvan Wei
 
學好 node.js 不可不知的事
學好 node.js 不可不知的事學好 node.js 不可不知的事
學好 node.js 不可不知的事Ben Lue
 
用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端鍾誠 陳鍾誠
 
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》鍾誠 陳鍾誠
 
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Joseph Chiang
 
Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出Eric Xiao
 
这年头,你只需要懂Node webkit
这年头,你只需要懂Node webkit这年头,你只需要懂Node webkit
这年头,你只需要懂Node webkitLainZQ
 
利用Javascript 與 html5開發線上遊戲_0基本概念
利用Javascript 與 html5開發線上遊戲_0基本概念利用Javascript 與 html5開發線上遊戲_0基本概念
利用Javascript 與 html5開發線上遊戲_0基本概念azole Lai
 
超酷炫科幻 UI:QML 入門
超酷炫科幻 UI:QML 入門超酷炫科幻 UI:QML 入門
超酷炫科幻 UI:QML 入門Fred Chien
 
北護樂學程式冬令營 2017
北護樂學程式冬令營 2017北護樂學程式冬令營 2017
北護樂學程式冬令營 2017Hamilton Wong
 
用JavaScript 實踐《軟體工程》的那些事兒!
用JavaScript  實踐《軟體工程》的那些事兒!用JavaScript  實踐《軟體工程》的那些事兒!
用JavaScript 實踐《軟體工程》的那些事兒!鍾誠 陳鍾誠
 
Node.js 淺談socket.io
Node.js   淺談socket.ioNode.js   淺談socket.io
Node.js 淺談socket.ioSimon Su
 
相容於node.js的 網頁型桌面程式設計 (使用Electron.js 開發)
相容於node.js的 網頁型桌面程式設計  (使用Electron.js 開發)相容於node.js的 網頁型桌面程式設計  (使用Electron.js 開發)
相容於node.js的 網頁型桌面程式設計 (使用Electron.js 開發)鍾誠 陳鍾誠
 
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介GO LL
 
基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映heyfluke
 
Koa 正在等一個人
Koa 正在等一個人Koa 正在等一個人
Koa 正在等一個人Fred Chien
 
用十分鐘瞭解 《JavaScript的程式世界》
用十分鐘瞭解  《JavaScript的程式世界》用十分鐘瞭解  《JavaScript的程式世界》
用十分鐘瞭解 《JavaScript的程式世界》鍾誠 陳鍾誠
 
SITCON 2016 ─ Modern Front-End Workflow with Webpack
SITCON 2016 ─ Modern Front-End Workflow with WebpackSITCON 2016 ─ Modern Front-End Workflow with Webpack
SITCON 2016 ─ Modern Front-End Workflow with Webpack昱安 周
 
Phantom js简介
Phantom js简介Phantom js简介
Phantom js简介Liu Allen
 

What's hot (20)

五行完成網頁多國語系
五行完成網頁多國語系五行完成網頁多國語系
五行完成網頁多國語系
 
Getting started with test automation
Getting started with test automationGetting started with test automation
Getting started with test automation
 
學好 node.js 不可不知的事
學好 node.js 不可不知的事學好 node.js 不可不知的事
學好 node.js 不可不知的事
 
用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端
 
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
 
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
 
Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出
 
这年头,你只需要懂Node webkit
这年头,你只需要懂Node webkit这年头,你只需要懂Node webkit
这年头,你只需要懂Node webkit
 
利用Javascript 與 html5開發線上遊戲_0基本概念
利用Javascript 與 html5開發線上遊戲_0基本概念利用Javascript 與 html5開發線上遊戲_0基本概念
利用Javascript 與 html5開發線上遊戲_0基本概念
 
超酷炫科幻 UI:QML 入門
超酷炫科幻 UI:QML 入門超酷炫科幻 UI:QML 入門
超酷炫科幻 UI:QML 入門
 
北護樂學程式冬令營 2017
北護樂學程式冬令營 2017北護樂學程式冬令營 2017
北護樂學程式冬令營 2017
 
用JavaScript 實踐《軟體工程》的那些事兒!
用JavaScript  實踐《軟體工程》的那些事兒!用JavaScript  實踐《軟體工程》的那些事兒!
用JavaScript 實踐《軟體工程》的那些事兒!
 
Node.js 淺談socket.io
Node.js   淺談socket.ioNode.js   淺談socket.io
Node.js 淺談socket.io
 
相容於node.js的 網頁型桌面程式設計 (使用Electron.js 開發)
相容於node.js的 網頁型桌面程式設計  (使用Electron.js 開發)相容於node.js的 網頁型桌面程式設計  (使用Electron.js 開發)
相容於node.js的 網頁型桌面程式設計 (使用Electron.js 開發)
 
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
 
基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映基于Android ndk的软件开发简介 放映
基于Android ndk的软件开发简介 放映
 
Koa 正在等一個人
Koa 正在等一個人Koa 正在等一個人
Koa 正在等一個人
 
用十分鐘瞭解 《JavaScript的程式世界》
用十分鐘瞭解  《JavaScript的程式世界》用十分鐘瞭解  《JavaScript的程式世界》
用十分鐘瞭解 《JavaScript的程式世界》
 
SITCON 2016 ─ Modern Front-End Workflow with Webpack
SITCON 2016 ─ Modern Front-End Workflow with WebpackSITCON 2016 ─ Modern Front-End Workflow with Webpack
SITCON 2016 ─ Modern Front-End Workflow with Webpack
 
Phantom js简介
Phantom js简介Phantom js简介
Phantom js简介
 

Similar to MakerBoard: MT7688 Emulator

軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維 軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維 National Cheng Kung University
 
COSCUP promoting in HP7
COSCUP promoting in HP7COSCUP promoting in HP7
COSCUP promoting in HP7Bob Chao
 
人多嘴雜乎?眾志成城乎?開放源碼軟體的使用體驗 by Bob Chao
人多嘴雜乎?眾志成城乎?開放源碼軟體的使用體驗 by Bob Chao人多嘴雜乎?眾志成城乎?開放源碼軟體的使用體驗 by Bob Chao
人多嘴雜乎?眾志成城乎?開放源碼軟體的使用體驗 by Bob Chao悠識學院
 
151107 物聯網教學應用發表會-開場
151107   物聯網教學應用發表會-開場151107   物聯網教學應用發表會-開場
151107 物聯網教學應用發表會-開場CAVEDU Education
 
大话处理器
大话处理器大话处理器
大话处理器mosolili
 
Computer Programming For Everyone
Computer Programming For EveryoneComputer Programming For Everyone
Computer Programming For EveryoneTsungWei Hu
 
Os Overview 、Open Solaris Install&Tech Demo
Os Overview 、Open Solaris Install&Tech DemoOs Overview 、Open Solaris Install&Tech Demo
Os Overview 、Open Solaris Install&Tech Demoshan.wang33
 
20200905_tcn_python_opencv_part1_omnixri
20200905_tcn_python_opencv_part1_omnixri20200905_tcn_python_opencv_part1_omnixri
20200905_tcn_python_opencv_part1_omnixriOmniXRI Studio
 
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)National Cheng Kung University
 
《Linux运维趋势》2012年5月号 总第19期
《Linux运维趋势》2012年5月号 总第19期《Linux运维趋势》2012年5月号 总第19期
《Linux运维趋势》2012年5月号 总第19期51CTO
 
叽歪网产品技术介绍 - CSDN CTO俱乐部活动
叽歪网产品技术介绍 - CSDN CTO俱乐部活动叽歪网产品技术介绍 - CSDN CTO俱乐部活动
叽歪网产品技术介绍 - CSDN CTO俱乐部活动LI Zhuohuan
 
Docker技术介绍
Docker技术介绍Docker技术介绍
Docker技术介绍LI jeanphorn
 
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例Justin Lee
 
GDC Taipei Summit review 2012
GDC Taipei Summit review 2012GDC Taipei Summit review 2012
GDC Taipei Summit review 2012Victor Lee
 
軟體組裝心得分享
軟體組裝心得分享軟體組裝心得分享
軟體組裝心得分享Wen Liao
 
Layer 8 - Open source communities and your product
Layer 8  - Open source communities and your productLayer 8  - Open source communities and your product
Layer 8 - Open source communities and your productRex Tsai
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructurekyhpudding
 

Similar to MakerBoard: MT7688 Emulator (20)

42qu thrift1
42qu thrift142qu thrift1
42qu thrift1
 
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維 軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
 
COSCUP promoting in HP7
COSCUP promoting in HP7COSCUP promoting in HP7
COSCUP promoting in HP7
 
人多嘴雜乎?眾志成城乎?開放源碼軟體的使用體驗 by Bob Chao
人多嘴雜乎?眾志成城乎?開放源碼軟體的使用體驗 by Bob Chao人多嘴雜乎?眾志成城乎?開放源碼軟體的使用體驗 by Bob Chao
人多嘴雜乎?眾志成城乎?開放源碼軟體的使用體驗 by Bob Chao
 
151107 物聯網教學應用發表會-開場
151107   物聯網教學應用發表會-開場151107   物聯網教學應用發表會-開場
151107 物聯網教學應用發表會-開場
 
大话处理器
大话处理器大话处理器
大话处理器
 
Computer Programming For Everyone
Computer Programming For EveryoneComputer Programming For Everyone
Computer Programming For Everyone
 
Training@HCI(tools)
Training@HCI(tools)Training@HCI(tools)
Training@HCI(tools)
 
Os Overview 、Open Solaris Install&Tech Demo
Os Overview 、Open Solaris Install&Tech DemoOs Overview 、Open Solaris Install&Tech Demo
Os Overview 、Open Solaris Install&Tech Demo
 
20200905_tcn_python_opencv_part1_omnixri
20200905_tcn_python_opencv_part1_omnixri20200905_tcn_python_opencv_part1_omnixri
20200905_tcn_python_opencv_part1_omnixri
 
The way
The wayThe way
The way
 
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
 
《Linux运维趋势》2012年5月号 总第19期
《Linux运维趋势》2012年5月号 总第19期《Linux运维趋势》2012年5月号 总第19期
《Linux运维趋势》2012年5月号 总第19期
 
叽歪网产品技术介绍 - CSDN CTO俱乐部活动
叽歪网产品技术介绍 - CSDN CTO俱乐部活动叽歪网产品技术介绍 - CSDN CTO俱乐部活动
叽歪网产品技术介绍 - CSDN CTO俱乐部活动
 
Docker技术介绍
Docker技术介绍Docker技术介绍
Docker技术介绍
 
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
 
GDC Taipei Summit review 2012
GDC Taipei Summit review 2012GDC Taipei Summit review 2012
GDC Taipei Summit review 2012
 
軟體組裝心得分享
軟體組裝心得分享軟體組裝心得分享
軟體組裝心得分享
 
Layer 8 - Open source communities and your product
Layer 8  - Open source communities and your productLayer 8  - Open source communities and your product
Layer 8 - Open source communities and your product
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructure
 

More from Fred Chien

Brig:Node.js + QML 華麗大冒險
Brig:Node.js + QML 華麗大冒險Brig:Node.js + QML 華麗大冒險
Brig:Node.js + QML 華麗大冒險Fred Chien
 
Stem OS Proposal
Stem OS ProposalStem OS Proposal
Stem OS ProposalFred Chien
 
Stem is JavaScript OS
Stem is JavaScript OSStem is JavaScript OS
Stem is JavaScript OSFred Chien
 
我編譯故我在:誰說 Node.js 程式不能編成 binary
我編譯故我在:誰說 Node.js 程式不能編成 binary我編譯故我在:誰說 Node.js 程式不能編成 binary
我編譯故我在:誰說 Node.js 程式不能編成 binaryFred Chien
 
Enjoy Writing Modern Desktop Application in JavaScript
Enjoy Writing Modern Desktop Application in JavaScriptEnjoy Writing Modern Desktop Application in JavaScript
Enjoy Writing Modern Desktop Application in JavaScriptFred Chien
 
Let s Enjoy Node.js
Let s Enjoy Node.jsLet s Enjoy Node.js
Let s Enjoy Node.jsFred Chien
 
How to Write Node.js Module
How to Write Node.js ModuleHow to Write Node.js Module
How to Write Node.js ModuleFred Chien
 

More from Fred Chien (9)

Brig:Node.js + QML 華麗大冒險
Brig:Node.js + QML 華麗大冒險Brig:Node.js + QML 華麗大冒險
Brig:Node.js + QML 華麗大冒險
 
OwaNEXT
OwaNEXTOwaNEXT
OwaNEXT
 
QML + Node.js
QML + Node.jsQML + Node.js
QML + Node.js
 
Stem OS Proposal
Stem OS ProposalStem OS Proposal
Stem OS Proposal
 
Stem is JavaScript OS
Stem is JavaScript OSStem is JavaScript OS
Stem is JavaScript OS
 
我編譯故我在:誰說 Node.js 程式不能編成 binary
我編譯故我在:誰說 Node.js 程式不能編成 binary我編譯故我在:誰說 Node.js 程式不能編成 binary
我編譯故我在:誰說 Node.js 程式不能編成 binary
 
Enjoy Writing Modern Desktop Application in JavaScript
Enjoy Writing Modern Desktop Application in JavaScriptEnjoy Writing Modern Desktop Application in JavaScript
Enjoy Writing Modern Desktop Application in JavaScript
 
Let s Enjoy Node.js
Let s Enjoy Node.jsLet s Enjoy Node.js
Let s Enjoy Node.js
 
How to Write Node.js Module
How to Write Node.js ModuleHow to Write Node.js Module
How to Write Node.js Module
 

MakerBoard: MT7688 Emulator