SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
Agenda 
● What is Edison? 
● Play with Edison 
● Yocto 101 
● Connect Hardware
What is Edison?
Overview 
● Tiny computer to make IoT/Wearable device 
● Dual x86 core SoC (Atom Z34XX + Quark) 
● WiFi/BT combo (BCM43340) 
– W/ chip antenna 
● No graphics at all 
– GPU has been disabled 
● Linux kernel is available 
– Forked from 3.10 yocto kernel
What you can do 
● Run Linux kernel 
– W/ WiFi+BT functions 
● Run Arduino sketch (top on Linux)
What you cannot do (So far...) 
● No BSP other than Linux 
● Play with Quark 
● Unleash GPU power 
● Hardware video enc/dec acceleration
Edison Alternatives? 
Application Processor 
based Microcontroller based
Edison Alternatives? 
Linux Video/Graphics Low-power Making your own device 
(Custom PCB) 
Arduino No No Yes Very Easy 
(AT Mega) 
mbed No No Yes Easy 
(Cortex-M devices) 
Raspberry Pi Yes Yes No 
(C) 
Almost Impossible 
(BCM2835) 
Beagle Bone Yes Yes No Difcult 
(AM335x) 
Edison Yes No Reasonable Easy
Edison is something diferent 
● Yes it's x86. 
● No Video/Graphics, but full featured Linux. 
● Not low-power as uCs, but still reasonable 
power consumption. 
– Approx. 200mA without connectivity 
– You can sleep device easily 
● Tiny integrated module, not a “dev board”
Current Buying Options 
+ + + 
For wimps 
Decent choice 
For rich people 
For 
true enthusiasts
Current Buying Options 
SparkFun Amazon Mouser Fry's Sunnyvale 
Edison 49.95 49.99 53.40@10 49.99 
Edison + Mini 
breakout 
74.95 67.84 69.00 59.99 
Edison + 
Arduino board 
99.95 N/A 99.00 84.99 
Edison + 
Sparkfun boards 
(Pre-Order) 
79.90 – 200 or 
more 
N/A N/A N/A 
GO FRY'S NOW
Why you should not buy 
“Arduino board” 
● You want “Arduino-compatible-pin-header”? 
Really? 
● Price is expensive 
– Too much components to make it “compatible” 
with Arduino shields* 
● Though Intel recommend beginners to buy this 
board, documents are crap. 
*Edison logic level is 1.8Vc
Play with Edison
Powering up
Booting 
****************************** 
PSH KERNEL VERSION: b0182727 
WR: 20104000 
****************************** 
SCU IPC: 0x800000d0 0xfffce92c 
PSH miaHOB version: TNG.B0.VVBD.0000000c 
microkernel built 23:15:13 Apr 24 2014 
******* PSH loader ******* 
PCM page cache size = 192 KB 
Cache Constraint = 0 Pages 
Arming IPC driver .. 
Adding page store pool .. 
PagestoreAddr(IMR Start Address) = 0x04899000 
pageStoreSize(IMR Size) = 0x00080000 
*** Ready to receive application *** 
U-Boot 2014.04 (Nov 01 2014 - 02:50:55) 
Watchdog enabled 
DRAM: 980.6 MiB 
MMC: tangier_sdhci: 0 
In: serial 
Out: serial 
Err: serial 
Hit any key to stop autoboot: 0
Powering up 
(Mini Breakout) 
USB Micro B 
(For Console) 
USB Micro AB 
(For OTG) 
Ext. Power 7-17V 
Li-Po 
Battery 
● 3 Methods 
– 5V via OTG 
– External DC-in 
– Li-Po Battery 
● OTG host will only 
works with DC-in 
● Li-Po will charged at 
190mA 
– i.e. Connect 190mAh 
or higher 
Edison 
Recommend external DC-In 
BE CAREFUL WITH POLARITY
Powering up 
(Bare Module) 
Edison 
VSYS 
Where VSYS is: 3.15-4.5V i.e. VBAT voltage 
Do NOT connect 5V
Booting 
****************************** 
PSH KERNEL VERSION: b0182727 
WR: 20104000 
****************************** 
SCU IPC: 0x800000d0 0xfffce92c 
PSH miaHOB version: TNG.B0.VVBD.0000000c 
microkernel built 23:15:13 Apr 24 2014 
******* PSH loader ******* 
PCM page cache size = 192 KB 
Cache Constraint = 0 Pages 
Arming IPC driver .. 
Adding page store pool .. 
PagestoreAddr(IMR Start Address) = 0x04899000 
pageStoreSize(IMR Size) = 0x00080000 
*** Ready to receive application *** 
U-Boot 2014.04 (Nov 01 2014 - 02:50:55) 
Watchdog enabled 
DRAM: 980.6 MiB 
MMC: tangier_sdhci: 0 
In: serial 
Out: serial 
Err: serial 
Hit any key to stop autoboot: 0
Boot process 
Trusted Boot ROM U-Boot Kernel
Working with WiFi 
● Intel ofers “quick setup” script called 
“confgure_edison” 
– Many people use this script. 
● Intel also ofers connection manager daemon 
called “ConnMan” 
– Many people think it is more difficult to handle, 
which is not. 
– Easy to use, and scalable.
Quick Start ConnMan 
~# systemctl start connman 
~# systemctl start wpa_supplicant 
~# connmanctl 
connmanctl> enable wifi 
connmanctl> scan wifi 
connmanctl> agent on 
connmanctl> connect wifi_xxxxxxxxxxxx_xxx_xxx
Quick Start ConnMan 
● Make sure connman and wpa_supplicant is 
working 
● connmanctl is a tiny CLI to full access 
connman API
ConnMan Overview 
● Connection manager developed by Intel 
● It was a part of Moblin/MeeGo project 
● Fully modular system 
● Lightweight 
● Designed to be running on embedded device, 
tablet, phone.
ConnMan API 
● All APIs are D-Bus interface 
● Manager API 
● Technology API 
● Service API 
● Session API 
● Agent API 
● VPN
Technology API 
● Enable 
● Disable 
– rfkill 
● Settings 
● Scan 
– AP Scan 
● Tethering 
– Edison supports 
tethering!
Service API 
● Connect 
● Disconnect 
● Get details 
– SSID 
– Strength
Session API 
WiFi 
Service 
WiFi 
Service 
LTE 
Service 
LTE 
Service 
Ether 
Service 
Keep one Session while 
using many Services
Agent API 
● API layer for UI 
● ConnMan requests 
passphrase input via 
Agent API 
Example: 
Requesting a passphrase for WPA2 network 
RequestInput("/service1", 
{ "Passphrase" : { "Type" : "psk", 
"Requirement" : "mandatory" 
} 
} ==> { "Passphrase" : "secret123" }
Quick Start SSH 
vi /lib/systemd/system/sshd.socket 
[Unit] 
Conflicts=sshd.service 
[Socket] 
ExecStartPre=/bin/mkdir -p /var/run/sshd 
ListenStream=22 
# restrict access to wired access for security reasons 
# comment this line to remove restriction 
BindToDevice=usb0 <-- Comment here 
Accept=yes 
[Install] 
WantedBy=sockets.target
Yocto 101 
It's not an embedded Linux distribution 
– it creates a custom one for you
Overview 
● Build tool to create your own distribution 
– Build your Toolchain 
– Build your Bootloader/Kernel 
– Build your RootFS 
● Merged with OpenEmbedded 
– OE-Core/Yocto 
● Using BitBake 
– Embedded-target version of Portage(Gentoo)
Architecture
Workfow - Recipes 
Recipe 
● Source codes? 
● Config files? 
● Patches? 
● Compile options? 
● Target(s)? 
Build Package
Workfow - Packages 
Meta Layer 
Packages 
Meta Layer 
Meta Layer Your Repository
Workfow - Deploy 
Packages 
Kernel 
zImage 
U-Boot 
u-boot.bin 
RootFS 
(chroot-ed) 
Cross 
Toolchain 
Deploy 
Deploy 
rootfs 
tar.gz 
Deploy 
Here also use a recipe 
called “image recipe”
Workfow - Cross build 
Packages 
(for Host) 
Recipes 
(for Host) 
Cross 
Toolchain 
Packages 
(for Target) 
Recipes 
(for Target) 
Target 
Images
What is Poky? 
● Poky is the “reference distribution” of Yocto 
– You may fork poky to create your own 
● Basic recipes 
– Yocto reference kernel 
– OE-Core 
– Basic image recipes 
● Reference setup 
– Determine preferred version for each recipes 
– Determine preferred init 
● sysvinit
Quick Start Yocto - Prerequisite 
● Host Linux build machine 
– I use Ubuntu 14.04 LTS 
– Actually “Intel-flavored-poky” supports other 
build machine. (i.e. Windows and Mac) But I 
would not recommend. 
● “Edison Linux source fles” from ofcial site 
● $ sudo apt-get install build-essential git diffstat gawk chrpath 
texinfo libtool gcc-multilib
Quick Start Yocto 
Extract Edison Linux source fles then, 
$ cd edison-src 
$ ./device-software/setup.sh 
$ source poky/oe-init-build-env 
$ bitbake edison-image
Quick Start Yocto 
3-4 hours later.... 
edison-src$ ls build/tmp/deploy/images/edison/ 
bzImage modules-edison.tgz 
bzImage--3.10.17+git0+6ad20f049a_c03195ed6e-r0-edison-20141101085834.bin README_- 
_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt 
bzImage-edison.bin u-boot.bin 
edison-image-edison-20141101085834.hddimg u-boot-edison-2014.04-1- 
r0.bin 
edison-image-edison-20141101085834.rootfs.ext4 u-boot-edison-2014.04-1- 
r0.img 
edison-image-edison-20141101085834.rootfs.manifest u-boot-edison.bin 
edison-image-edison.ext4 u-boot-edison.img 
edison-image-edison.hddimg u-boot-envs 
edison-image-edison.manifest u-boot.img 
modules--3.10.17+git0+6ad20f049a_c03195ed6e-r0-edison-20141101085834.tgz 
Hooray!
Quick Start Yocto 
To fash image to Edison 
Connect Edison (via OTG) then, 
$ device-software/utils/flash/postBuild.sh 
$ build/toFlash/flashall.sh
Poky-Edison? 
● Intel-forked version of poky 
● Using systemd (Yes seriously) instead of 
sysvinit
Connect Hardware
Basic Interfaces 
● GPIO 
– Digital I/O, PWM 
● I2C 
– Edison has 2 I2C port. 
● SPI 
● UART 
– Edison has 2 UART port, but 1 for debugging 
normally. 
REMEMBER: Edison logic level is 1.8V!!
Additional Interfaces 
● I2S 
– For ADC/DAC (audio codecs) 
● SD 
– You need level shifter :( 
● USB 
REMEMBER: Edison logic level is 1.8V!!
How to use them? 
● Linux standard methods 
– User space 
– Kernel module 
● MRAA(+UPM) (for basic interfaces) 
– A part of Intel iot-devkit project (Galileo) 
● Arduino Library (for basic interfaces) 
– Need to hack around to use other than Arduino 
board. 
● Quark bare metal 
– Not available so far
Using GPIO 
● sysfs 
– Standard method 
– Used by MRAA and Arduino lib 
● PCI device 
– Fast path to read/write 
– Example included in Intel-Arduino source 
● Kernel 
– True interrupt
Quick Start MRAA (C) 
#include "mraa.h" 
void main() { 
mraa_gpio_context gpio; 
mraa_init(); 
gpio = mraa_gpio_init(8); 
mraa_gpio_dir(gpio, MRAA_GPIO_OUT); 
mraa_gpio_write(gpio, 1); 
mraa_gpio_close(gpio); 
}
Quick Start MRAA (JS) 
var m = require('mraa'); 
var myLed = new m.Gpio(13); 
myLed.dir(m.DIR_OUT); 
myLed.write(1);

Mais conteúdo relacionado

Mais procurados

Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...codebits
 
Esp8266 NodeMCU
Esp8266 NodeMCUEsp8266 NodeMCU
Esp8266 NodeMCUroadster43
 
A Quick Introduction to Programmable Logic
A Quick Introduction to Programmable LogicA Quick Introduction to Programmable Logic
A Quick Introduction to Programmable LogicOmer Kilic
 
Programming esp8266
Programming esp8266Programming esp8266
Programming esp8266Baoshi Zhu
 
Arduino i rremote 1112
Arduino i rremote 1112Arduino i rremote 1112
Arduino i rremote 1112馬 萬圳
 
Rdl esp32 development board trainer kit
Rdl esp32 development board trainer kitRdl esp32 development board trainer kit
Rdl esp32 development board trainer kitResearch Design Lab
 
Introduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon TechnologyIntroduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon TechnologyOmer Kilic
 
Interacting with Intel Edison
Interacting with Intel EdisonInteracting with Intel Edison
Interacting with Intel EdisonFITC
 
IoT: Internet of Things with Python
IoT: Internet of Things with PythonIoT: Internet of Things with Python
IoT: Internet of Things with PythonLelio Campanile
 
Introduction to beagle board
Introduction to beagle boardIntroduction to beagle board
Introduction to beagle boardAmit Karpe
 
lesson1 - Getting Started with ESP8266
lesson1 -  Getting Started with ESP8266lesson1 -  Getting Started with ESP8266
lesson1 - Getting Started with ESP8266Elaf A.Saeed
 
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...Raul Chong
 
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-ioHome automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-ioTran Minh Nhut
 
lesson2 - Nodemcu course - NodeMCU dev Board
 lesson2 - Nodemcu course - NodeMCU dev Board lesson2 - Nodemcu course - NodeMCU dev Board
lesson2 - Nodemcu course - NodeMCU dev BoardElaf A.Saeed
 

Mais procurados (20)

Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to s...
 
Esp8266 NodeMCU
Esp8266 NodeMCUEsp8266 NodeMCU
Esp8266 NodeMCU
 
A Quick Introduction to Programmable Logic
A Quick Introduction to Programmable LogicA Quick Introduction to Programmable Logic
A Quick Introduction to Programmable Logic
 
Programming esp8266
Programming esp8266Programming esp8266
Programming esp8266
 
Thotcon2013
Thotcon2013Thotcon2013
Thotcon2013
 
Arduino i rremote 1112
Arduino i rremote 1112Arduino i rremote 1112
Arduino i rremote 1112
 
Arduino & NodeMcu
Arduino & NodeMcuArduino & NodeMcu
Arduino & NodeMcu
 
Rdl esp32 development board trainer kit
Rdl esp32 development board trainer kitRdl esp32 development board trainer kit
Rdl esp32 development board trainer kit
 
Introduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon TechnologyIntroduction to XMOS Software Defined Silicon Technology
Introduction to XMOS Software Defined Silicon Technology
 
Interacting with Intel Edison
Interacting with Intel EdisonInteracting with Intel Edison
Interacting with Intel Edison
 
IoT: Internet of Things with Python
IoT: Internet of Things with PythonIoT: Internet of Things with Python
IoT: Internet of Things with Python
 
Introduction to beagle board
Introduction to beagle boardIntroduction to beagle board
Introduction to beagle board
 
lesson1 - Getting Started with ESP8266
lesson1 -  Getting Started with ESP8266lesson1 -  Getting Started with ESP8266
lesson1 - Getting Started with ESP8266
 
Asterisk, IM and Presence: how?
Asterisk, IM and Presence: how?Asterisk, IM and Presence: how?
Asterisk, IM and Presence: how?
 
Beagle board
Beagle boardBeagle board
Beagle board
 
Beagle board101 esc-boston-2009b
Beagle board101 esc-boston-2009bBeagle board101 esc-boston-2009b
Beagle board101 esc-boston-2009b
 
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...
Rapidly developing IoT (Internet of Things) applications - Part 2: Arduino, B...
 
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-ioHome automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-io
 
lesson2 - Nodemcu course - NodeMCU dev Board
 lesson2 - Nodemcu course - NodeMCU dev Board lesson2 - Nodemcu course - NodeMCU dev Board
lesson2 - Nodemcu course - NodeMCU dev Board
 
Asterisk Xenified
Asterisk XenifiedAsterisk Xenified
Asterisk Xenified
 

Semelhante a How to Hack Edison

Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitSulamita Garcia
 
IoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitIoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitVasily Ryzhonkov
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Codemotion
 
Innovation with pcDuino
Innovation with pcDuinoInnovation with pcDuino
Innovation with pcDuinoJingfeng Liu
 
Starting Raspberry Pi
Starting Raspberry PiStarting Raspberry Pi
Starting Raspberry PiLloydMoore
 
Tac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PITac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PICliff Samuels Jr.
 
pcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunpcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunJingfeng Liu
 
ChromePad - Chromium OS for ThinkPad
ChromePad - Chromium OS for ThinkPadChromePad - Chromium OS for ThinkPad
ChromePad - Chromium OS for ThinkPadAndrewWright224
 
ChromePad - Chromium OS ThinkPad X220
ChromePad - Chromium OS ThinkPad X220ChromePad - Chromium OS ThinkPad X220
ChromePad - Chromium OS ThinkPad X220AndrewWright224
 
Raspberry pi on java 20121110
Raspberry pi on java 20121110Raspberry pi on java 20121110
Raspberry pi on java 20121110Masafumi Ohta
 
Intel Edison: Beyond the Breadboard
Intel Edison: Beyond the BreadboardIntel Edison: Beyond the Breadboard
Intel Edison: Beyond the Breadboardyeokm1
 
Embedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hood
Embedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hoodEmbedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hood
Embedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hoodEmbeddedFest
 
Embedded application development
Embedded application developmentEmbedded application development
Embedded application developmentAakash Raj
 

Semelhante a How to Hack Edison (20)

Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer Kit
 
Начало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev KitНачало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev Kit
 
IoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT DevkitIoT Getting Started with Intel® IoT Devkit
IoT Getting Started with Intel® IoT Devkit
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
Innovation with pcDuino
Innovation with pcDuinoInnovation with pcDuino
Innovation with pcDuino
 
Starting Raspberry Pi
Starting Raspberry PiStarting Raspberry Pi
Starting Raspberry Pi
 
Let's begin io t with $10
Let's begin io t with $10Let's begin io t with $10
Let's begin io t with $10
 
Tac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PITac Presentation October 72014- Raspberry PI
Tac Presentation October 72014- Raspberry PI
 
pcDuino Presentation at SparkFun
pcDuino Presentation at SparkFunpcDuino Presentation at SparkFun
pcDuino Presentation at SparkFun
 
Hardware hacking
Hardware hackingHardware hacking
Hardware hacking
 
ChromePad - Chromium OS for ThinkPad
ChromePad - Chromium OS for ThinkPadChromePad - Chromium OS for ThinkPad
ChromePad - Chromium OS for ThinkPad
 
ChromePad - Chromium OS ThinkPad X220
ChromePad - Chromium OS ThinkPad X220ChromePad - Chromium OS ThinkPad X220
ChromePad - Chromium OS ThinkPad X220
 
Raspberry pi on java 20121110
Raspberry pi on java 20121110Raspberry pi on java 20121110
Raspberry pi on java 20121110
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Arduino
ArduinoArduino
Arduino
 
Intel Edison: Beyond the Breadboard
Intel Edison: Beyond the BreadboardIntel Edison: Beyond the Breadboard
Intel Edison: Beyond the Breadboard
 
Embedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hood
Embedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hoodEmbedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hood
Embedded Fest 2019. Игорь Опанюк. Das U-boot v2019: a look under the hood
 
Embedded application development
Embedded application developmentEmbedded application development
Embedded application development
 
An introduction to Arduino
An introduction to ArduinoAn introduction to Arduino
An introduction to Arduino
 
arduino.pdf
arduino.pdfarduino.pdf
arduino.pdf
 

Último

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Último (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

How to Hack Edison

  • 1. Agenda ● What is Edison? ● Play with Edison ● Yocto 101 ● Connect Hardware
  • 3. Overview ● Tiny computer to make IoT/Wearable device ● Dual x86 core SoC (Atom Z34XX + Quark) ● WiFi/BT combo (BCM43340) – W/ chip antenna ● No graphics at all – GPU has been disabled ● Linux kernel is available – Forked from 3.10 yocto kernel
  • 4. What you can do ● Run Linux kernel – W/ WiFi+BT functions ● Run Arduino sketch (top on Linux)
  • 5. What you cannot do (So far...) ● No BSP other than Linux ● Play with Quark ● Unleash GPU power ● Hardware video enc/dec acceleration
  • 6. Edison Alternatives? Application Processor based Microcontroller based
  • 7. Edison Alternatives? Linux Video/Graphics Low-power Making your own device (Custom PCB) Arduino No No Yes Very Easy (AT Mega) mbed No No Yes Easy (Cortex-M devices) Raspberry Pi Yes Yes No (C) Almost Impossible (BCM2835) Beagle Bone Yes Yes No Difcult (AM335x) Edison Yes No Reasonable Easy
  • 8. Edison is something diferent ● Yes it's x86. ● No Video/Graphics, but full featured Linux. ● Not low-power as uCs, but still reasonable power consumption. – Approx. 200mA without connectivity – You can sleep device easily ● Tiny integrated module, not a “dev board”
  • 9. Current Buying Options + + + For wimps Decent choice For rich people For true enthusiasts
  • 10. Current Buying Options SparkFun Amazon Mouser Fry's Sunnyvale Edison 49.95 49.99 53.40@10 49.99 Edison + Mini breakout 74.95 67.84 69.00 59.99 Edison + Arduino board 99.95 N/A 99.00 84.99 Edison + Sparkfun boards (Pre-Order) 79.90 – 200 or more N/A N/A N/A GO FRY'S NOW
  • 11. Why you should not buy “Arduino board” ● You want “Arduino-compatible-pin-header”? Really? ● Price is expensive – Too much components to make it “compatible” with Arduino shields* ● Though Intel recommend beginners to buy this board, documents are crap. *Edison logic level is 1.8Vc
  • 14. Booting ****************************** PSH KERNEL VERSION: b0182727 WR: 20104000 ****************************** SCU IPC: 0x800000d0 0xfffce92c PSH miaHOB version: TNG.B0.VVBD.0000000c microkernel built 23:15:13 Apr 24 2014 ******* PSH loader ******* PCM page cache size = 192 KB Cache Constraint = 0 Pages Arming IPC driver .. Adding page store pool .. PagestoreAddr(IMR Start Address) = 0x04899000 pageStoreSize(IMR Size) = 0x00080000 *** Ready to receive application *** U-Boot 2014.04 (Nov 01 2014 - 02:50:55) Watchdog enabled DRAM: 980.6 MiB MMC: tangier_sdhci: 0 In: serial Out: serial Err: serial Hit any key to stop autoboot: 0
  • 15. Powering up (Mini Breakout) USB Micro B (For Console) USB Micro AB (For OTG) Ext. Power 7-17V Li-Po Battery ● 3 Methods – 5V via OTG – External DC-in – Li-Po Battery ● OTG host will only works with DC-in ● Li-Po will charged at 190mA – i.e. Connect 190mAh or higher Edison Recommend external DC-In BE CAREFUL WITH POLARITY
  • 16. Powering up (Bare Module) Edison VSYS Where VSYS is: 3.15-4.5V i.e. VBAT voltage Do NOT connect 5V
  • 17. Booting ****************************** PSH KERNEL VERSION: b0182727 WR: 20104000 ****************************** SCU IPC: 0x800000d0 0xfffce92c PSH miaHOB version: TNG.B0.VVBD.0000000c microkernel built 23:15:13 Apr 24 2014 ******* PSH loader ******* PCM page cache size = 192 KB Cache Constraint = 0 Pages Arming IPC driver .. Adding page store pool .. PagestoreAddr(IMR Start Address) = 0x04899000 pageStoreSize(IMR Size) = 0x00080000 *** Ready to receive application *** U-Boot 2014.04 (Nov 01 2014 - 02:50:55) Watchdog enabled DRAM: 980.6 MiB MMC: tangier_sdhci: 0 In: serial Out: serial Err: serial Hit any key to stop autoboot: 0
  • 18. Boot process Trusted Boot ROM U-Boot Kernel
  • 19. Working with WiFi ● Intel ofers “quick setup” script called “confgure_edison” – Many people use this script. ● Intel also ofers connection manager daemon called “ConnMan” – Many people think it is more difficult to handle, which is not. – Easy to use, and scalable.
  • 20. Quick Start ConnMan ~# systemctl start connman ~# systemctl start wpa_supplicant ~# connmanctl connmanctl> enable wifi connmanctl> scan wifi connmanctl> agent on connmanctl> connect wifi_xxxxxxxxxxxx_xxx_xxx
  • 21. Quick Start ConnMan ● Make sure connman and wpa_supplicant is working ● connmanctl is a tiny CLI to full access connman API
  • 22. ConnMan Overview ● Connection manager developed by Intel ● It was a part of Moblin/MeeGo project ● Fully modular system ● Lightweight ● Designed to be running on embedded device, tablet, phone.
  • 23. ConnMan API ● All APIs are D-Bus interface ● Manager API ● Technology API ● Service API ● Session API ● Agent API ● VPN
  • 24. Technology API ● Enable ● Disable – rfkill ● Settings ● Scan – AP Scan ● Tethering – Edison supports tethering!
  • 25. Service API ● Connect ● Disconnect ● Get details – SSID – Strength
  • 26. Session API WiFi Service WiFi Service LTE Service LTE Service Ether Service Keep one Session while using many Services
  • 27. Agent API ● API layer for UI ● ConnMan requests passphrase input via Agent API Example: Requesting a passphrase for WPA2 network RequestInput("/service1", { "Passphrase" : { "Type" : "psk", "Requirement" : "mandatory" } } ==> { "Passphrase" : "secret123" }
  • 28. Quick Start SSH vi /lib/systemd/system/sshd.socket [Unit] Conflicts=sshd.service [Socket] ExecStartPre=/bin/mkdir -p /var/run/sshd ListenStream=22 # restrict access to wired access for security reasons # comment this line to remove restriction BindToDevice=usb0 <-- Comment here Accept=yes [Install] WantedBy=sockets.target
  • 29. Yocto 101 It's not an embedded Linux distribution – it creates a custom one for you
  • 30. Overview ● Build tool to create your own distribution – Build your Toolchain – Build your Bootloader/Kernel – Build your RootFS ● Merged with OpenEmbedded – OE-Core/Yocto ● Using BitBake – Embedded-target version of Portage(Gentoo)
  • 32. Workfow - Recipes Recipe ● Source codes? ● Config files? ● Patches? ● Compile options? ● Target(s)? Build Package
  • 33. Workfow - Packages Meta Layer Packages Meta Layer Meta Layer Your Repository
  • 34. Workfow - Deploy Packages Kernel zImage U-Boot u-boot.bin RootFS (chroot-ed) Cross Toolchain Deploy Deploy rootfs tar.gz Deploy Here also use a recipe called “image recipe”
  • 35. Workfow - Cross build Packages (for Host) Recipes (for Host) Cross Toolchain Packages (for Target) Recipes (for Target) Target Images
  • 36. What is Poky? ● Poky is the “reference distribution” of Yocto – You may fork poky to create your own ● Basic recipes – Yocto reference kernel – OE-Core – Basic image recipes ● Reference setup – Determine preferred version for each recipes – Determine preferred init ● sysvinit
  • 37. Quick Start Yocto - Prerequisite ● Host Linux build machine – I use Ubuntu 14.04 LTS – Actually “Intel-flavored-poky” supports other build machine. (i.e. Windows and Mac) But I would not recommend. ● “Edison Linux source fles” from ofcial site ● $ sudo apt-get install build-essential git diffstat gawk chrpath texinfo libtool gcc-multilib
  • 38. Quick Start Yocto Extract Edison Linux source fles then, $ cd edison-src $ ./device-software/setup.sh $ source poky/oe-init-build-env $ bitbake edison-image
  • 39. Quick Start Yocto 3-4 hours later.... edison-src$ ls build/tmp/deploy/images/edison/ bzImage modules-edison.tgz bzImage--3.10.17+git0+6ad20f049a_c03195ed6e-r0-edison-20141101085834.bin README_- _DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt bzImage-edison.bin u-boot.bin edison-image-edison-20141101085834.hddimg u-boot-edison-2014.04-1- r0.bin edison-image-edison-20141101085834.rootfs.ext4 u-boot-edison-2014.04-1- r0.img edison-image-edison-20141101085834.rootfs.manifest u-boot-edison.bin edison-image-edison.ext4 u-boot-edison.img edison-image-edison.hddimg u-boot-envs edison-image-edison.manifest u-boot.img modules--3.10.17+git0+6ad20f049a_c03195ed6e-r0-edison-20141101085834.tgz Hooray!
  • 40. Quick Start Yocto To fash image to Edison Connect Edison (via OTG) then, $ device-software/utils/flash/postBuild.sh $ build/toFlash/flashall.sh
  • 41. Poky-Edison? ● Intel-forked version of poky ● Using systemd (Yes seriously) instead of sysvinit
  • 43. Basic Interfaces ● GPIO – Digital I/O, PWM ● I2C – Edison has 2 I2C port. ● SPI ● UART – Edison has 2 UART port, but 1 for debugging normally. REMEMBER: Edison logic level is 1.8V!!
  • 44. Additional Interfaces ● I2S – For ADC/DAC (audio codecs) ● SD – You need level shifter :( ● USB REMEMBER: Edison logic level is 1.8V!!
  • 45. How to use them? ● Linux standard methods – User space – Kernel module ● MRAA(+UPM) (for basic interfaces) – A part of Intel iot-devkit project (Galileo) ● Arduino Library (for basic interfaces) – Need to hack around to use other than Arduino board. ● Quark bare metal – Not available so far
  • 46. Using GPIO ● sysfs – Standard method – Used by MRAA and Arduino lib ● PCI device – Fast path to read/write – Example included in Intel-Arduino source ● Kernel – True interrupt
  • 47. Quick Start MRAA (C) #include "mraa.h" void main() { mraa_gpio_context gpio; mraa_init(); gpio = mraa_gpio_init(8); mraa_gpio_dir(gpio, MRAA_GPIO_OUT); mraa_gpio_write(gpio, 1); mraa_gpio_close(gpio); }
  • 48. Quick Start MRAA (JS) var m = require('mraa'); var myLed = new m.Gpio(13); myLed.dir(m.DIR_OUT); myLed.write(1);