SlideShare a Scribd company logo
1 of 12
Download to read offline
Perl on embedded Devices
Jens Rehsack
Niederrhein Perl Mongers
German Perl Workshop 2018
Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 1 / 16
Login on Build Server
Login on Build Server
$ ssh -Y gpw_acc_${VLAN_GRP}@10 .0.${VLAN_GRP }0.1
# e.g. ssh -Y gpc_acc_4@10 .0.40.1
Your password is identical to your login name.
Attach your device (to your Laptop)
$ ls -l /dev | grep -i usb
$ screen /dev/tty.usbserial 115200
On Windows use putty, for example.
Optionally power on your device and watch the boot process
Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 3 / 16
Setup Build-Tree
Prepare Build-Tree (Build Server)
$ mkdir -p ~/gpw -community -bsp/sources
$ cd ~/gpw -community -bsp/
$ git clone -b master https :// github.com/rehsack/gpw -yocto -platform.git
$ cd sources
$ git clone -b master https :// github.com/rehsack/poky.git
$ git clone -b master https :// github.com/rehsack/meta - openembedded.git
$ git clone -b master https :// github.com/meta -cpan/meta -cpan.git
$ git clone -b master https :// github.com/rehsack/meta -jens.git
$ git clone -b master https :// github.com/rehsack/meta -gpw.git
Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 4 / 16
Setup Environment
Prepare Environment (Build Server)
# gpw_acc_5 does , gpw_acc_8 uses 8
$ echo "export VLAN_GRP =5
export LANG=en_US.UTF -8
source ~/gpw -community -bsp/sources/poky/scripts/oe -init -bashrc" >> ~/. bashrc
Please use your VLAN group from your name plate on the desk.
Restart and prepare your shell (Build Server)
$ exec bash
$ oe_builddir use ~/gpw -community -bsp/gpw -yocto -platform
Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 5 / 16
Setup Cache
Prepare Cache (Build Server)
Add the following lines to $BUILDDIR/conf/local.conf
BB_GENERATE_MIRROR_TARBALLS = "1"
INHERIT += "own -mirrors"
SOURCE_MIRROR_URL = "file :/// home/gpw2018/downloads"
SSTATE_MIRRORS ?= "
file ://.* file :/// home/gpw2018/sstate -cache/PATH"
Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 6 / 16
Enter Buildmode (Build Server)
Enter Buildmode
# create new screen session named bitbake
$ screen -S bitbake
$ oe_builddir use ~/gpw -community -bsp/gpw -yocto -platform
$ WANTED_ROOT_DEV =emmc mkimgs updatable -app -image
Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 8 / 16
Enter Flash (Build Server)
Enter Flash (Build Server)
# re -connect to screen session named bitbake
$ screen -r bitbake
$ WANTED_ROOT_DEV =emmc gpw_deploy flash
Reset your device (Your Laptop)
Reset your device and stop automatic booting by pressing space on the terminal
attached to the device serial console.
Flash device (Your Laptop, Device Screen)
run netboot
Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 9 / 16
Add packages (Build Server)
Add rakudo*
$ cd ${BSPDIR }/ sources/meta -gpw
$ vim recipes -images/images/updatable -app -image.bbappend
IMAGE_INSTALL_append = "
rakudo -star 
"
Add Dancer2 (Build Server)
$ cd ${BSPDIR }/ sources/meta -gpw
$ vim recipes -images/images/updatable -app -image.bbappend
IMAGE_INSTALL_append = "
dancer2 -perl 
"
Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 11 / 16
Update image
Update from Upstream (Build Server)
$ cd ${BSPDIR }/ sources/poky
$ git remote add upstream git :// git.yoctoproject.org/poky
$ git fetch upstream
$ git rebase upstream/master
Repeat this for all cloned repositories . . .
Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 13 / 16
Own software
Add self written software (Build Server)
$ cd ${BSPDIR }/ sources/meta -gpw
$ mkdir recipes -service/myservice
$ vim recipes -service/myservice/ myservice_git .bb
DESCRIPTION = "My:: Service provides backend for cool stuff"
LICENSE = "MIT"
MAINTAINER = "my.name@my.company"
HOMEPAGE = "https :// myservice.my.company/"
LIC_FILES_CHKSUM = "file ://${ COMMON_LICENSE_DIR }/ MIT;md5 =..."
SRC_REV = " abcdef0123456789abcdef0123456789abcdef01 "
SRC_URI = "
git :// scm.my.company/path/repo.git;rev=${SRC_REV} 
file :// run 
file ://my -service.json 
..."
RDEPENDS_${PN} += " daemontools "
RDEPENDS_${PN} += "dancer2"
RDEPENDS_${PN} += "moox -configfromfile -perl"
do_install_appends () {
install -d -m ${D}${ sysconfdir}
install -m 0644 ${WORKDIR }/my -service.json ${D}${sysconfdir}
install -m 0755 ${WORKDIR }/run ${D}${sysconfdir }/ daemontools /service/run
}
Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 14 / 16
Prepare Packger::Utils
Prepare Packger::Utils (Build Server)
# checkout and prepare Packager :: Utils
$ mkdir ~/ Projects
$ cd ~/ Projects
$ git clone https :// github.com/rehsack/Packager -Utils.git
$ cd Packager -Utils
$ perl Makefile.PM
$ cpanm installdeps .
Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 15 / 16
Recipes for CPAN modules
Recipes for CPAN modules (Build Server)
# create list of available perl/cpan packages
$ make && env BBPATH=$BUILDDIR perl -Mblib bin/pkg_util 
check up2date --packages_pattern "*-perl_ *.bb" --packages_pat
$ make && env BBPATH=$BUILDDIR perl -Mblib bin/pkg_util 
create package --categories www --modules Mojolicious
Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 16 / 16

More Related Content

What's hot

Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructureSergiy Kukunin
 
Café com Arquitetura - Hello Docker Captain
Café com Arquitetura - Hello Docker CaptainCafé com Arquitetura - Hello Docker Captain
Café com Arquitetura - Hello Docker CaptainMurilo Beltrame
 
Ops for everyone - John Britton
Ops for everyone - John BrittonOps for everyone - John Britton
Ops for everyone - John BrittonDevopsdays
 
Lessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containersLessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containersBen Hall
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Ben Hall
 
NAS Botnet Revealed - Mining Bitcoin
NAS Botnet Revealed - Mining Bitcoin NAS Botnet Revealed - Mining Bitcoin
NAS Botnet Revealed - Mining Bitcoin Davide Cioccia
 
Карманный PaaS с Dokku (Александр Белецкий)
Карманный PaaS с Dokku (Александр Белецкий)Карманный PaaS с Dokku (Александр Белецкий)
Карманный PaaS с Dokku (Александр Белецкий)GeeksLab Odessa
 
Lessons from running potentially malicious code inside containers
Lessons from running potentially malicious code inside containersLessons from running potentially malicious code inside containers
Lessons from running potentially malicious code inside containersBen Hall
 
Embedded Linux Odp
Embedded Linux OdpEmbedded Linux Odp
Embedded Linux Odpghessler
 
Productivity tips for developers
Productivity tips for developersProductivity tips for developers
Productivity tips for developersSebastian Witowski
 
Adventures in infrastructure as code
Adventures in infrastructure as codeAdventures in infrastructure as code
Adventures in infrastructure as codeJulian Simpson
 
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQDocker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQErica Windisch
 
A brand new documentation infrastructure for the GStreamer framework (GStream...
A brand new documentation infrastructure for the GStreamer framework (GStream...A brand new documentation infrastructure for the GStreamer framework (GStream...
A brand new documentation infrastructure for the GStreamer framework (GStream...Igalia
 

What's hot (18)

Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructure
 
Café com Arquitetura - Hello Docker Captain
Café com Arquitetura - Hello Docker CaptainCafé com Arquitetura - Hello Docker Captain
Café com Arquitetura - Hello Docker Captain
 
Ops for everyone - John Britton
Ops for everyone - John BrittonOps for everyone - John Britton
Ops for everyone - John Britton
 
Lessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containersLessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containers
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
 
Puppet and Openshift
Puppet and OpenshiftPuppet and Openshift
Puppet and Openshift
 
Docker in practice
Docker in practiceDocker in practice
Docker in practice
 
NAS Botnet Revealed - Mining Bitcoin
NAS Botnet Revealed - Mining Bitcoin NAS Botnet Revealed - Mining Bitcoin
NAS Botnet Revealed - Mining Bitcoin
 
Карманный PaaS с Dokku (Александр Белецкий)
Карманный PaaS с Dokku (Александр Белецкий)Карманный PaaS с Dokku (Александр Белецкий)
Карманный PaaS с Dokku (Александр Белецкий)
 
Lessons from running potentially malicious code inside containers
Lessons from running potentially malicious code inside containersLessons from running potentially malicious code inside containers
Lessons from running potentially malicious code inside containers
 
Embedded Linux Odp
Embedded Linux OdpEmbedded Linux Odp
Embedded Linux Odp
 
Productivity tips for developers
Productivity tips for developersProductivity tips for developers
Productivity tips for developers
 
Adventures in infrastructure as code
Adventures in infrastructure as codeAdventures in infrastructure as code
Adventures in infrastructure as code
 
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQDocker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
 
Ferrara Linux Day 2011
Ferrara Linux Day 2011Ferrara Linux Day 2011
Ferrara Linux Day 2011
 
Puppet Data Mining
Puppet Data MiningPuppet Data Mining
Puppet Data Mining
 
A brand new documentation infrastructure for the GStreamer framework (GStream...
A brand new documentation infrastructure for the GStreamer framework (GStream...A brand new documentation infrastructure for the GStreamer framework (GStream...
A brand new documentation infrastructure for the GStreamer framework (GStream...
 
Docker / Ansible
Docker / AnsibleDocker / Ansible
Docker / Ansible
 

Similar to Perl on-embedded-devices

Lightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with GradleLightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with GradleQAware GmbH
 
Lightweight Developer Provisioning with Gradle and SEU-as-code
Lightweight Developer Provisioning with Gradle and SEU-as-codeLightweight Developer Provisioning with Gradle and SEU-as-code
Lightweight Developer Provisioning with Gradle and SEU-as-codeMario-Leander Reimer
 
Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6LetsConnect
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014biicode
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis OverviewLeo Lorieri
 
MeaNstack on Docker
MeaNstack on DockerMeaNstack on Docker
MeaNstack on DockerDaniel Ku
 
Web development automatisation for fun and profit (Artem Daniliants)
Web development automatisation for fun and profit (Artem Daniliants)Web development automatisation for fun and profit (Artem Daniliants)
Web development automatisation for fun and profit (Artem Daniliants)LumoSpark
 
What makes me "Grunt"?
What makes me "Grunt"? What makes me "Grunt"?
What makes me "Grunt"? Fabien Doiron
 
Zero Downtime Deployment with Ansible
Zero Downtime Deployment with AnsibleZero Downtime Deployment with Ansible
Zero Downtime Deployment with AnsibleStein Inge Morisbak
 
nix-processmgmt: An experimental Nix-based process manager-agnostic framework
nix-processmgmt: An experimental Nix-based process manager-agnostic frameworknix-processmgmt: An experimental Nix-based process manager-agnostic framework
nix-processmgmt: An experimental Nix-based process manager-agnostic frameworkSander van der Burg
 
Ansible new paradigms for orchestration
Ansible new paradigms for orchestrationAnsible new paradigms for orchestration
Ansible new paradigms for orchestrationPaolo Tonin
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php PresentationAlan Pinstein
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Cosimo Streppone
 
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOpsОмские ИТ-субботники
 
Kubernetes laravel and kubernetes
Kubernetes   laravel and kubernetesKubernetes   laravel and kubernetes
Kubernetes laravel and kubernetesWilliam Stewart
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_trainingvideos
 

Similar to Perl on-embedded-devices (20)

Lightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with GradleLightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with Gradle
 
Lightweight Developer Provisioning with Gradle and SEU-as-code
Lightweight Developer Provisioning with Gradle and SEU-as-codeLightweight Developer Provisioning with Gradle and SEU-as-code
Lightweight Developer Provisioning with Gradle and SEU-as-code
 
Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
R sharing 101
R sharing 101R sharing 101
R sharing 101
 
Introduction to CMake
Introduction to CMakeIntroduction to CMake
Introduction to CMake
 
MeaNstack on Docker
MeaNstack on DockerMeaNstack on Docker
MeaNstack on Docker
 
Web development automatisation for fun and profit (Artem Daniliants)
Web development automatisation for fun and profit (Artem Daniliants)Web development automatisation for fun and profit (Artem Daniliants)
Web development automatisation for fun and profit (Artem Daniliants)
 
What makes me "Grunt"?
What makes me "Grunt"? What makes me "Grunt"?
What makes me "Grunt"?
 
Zero Downtime Deployment with Ansible
Zero Downtime Deployment with AnsibleZero Downtime Deployment with Ansible
Zero Downtime Deployment with Ansible
 
nix-processmgmt: An experimental Nix-based process manager-agnostic framework
nix-processmgmt: An experimental Nix-based process manager-agnostic frameworknix-processmgmt: An experimental Nix-based process manager-agnostic framework
nix-processmgmt: An experimental Nix-based process manager-agnostic framework
 
Ansible new paradigms for orchestration
Ansible new paradigms for orchestrationAnsible new paradigms for orchestration
Ansible new paradigms for orchestration
 
Dev ops
Dev opsDev ops
Dev ops
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013
 
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
 
Kubernetes laravel and kubernetes
Kubernetes   laravel and kubernetesKubernetes   laravel and kubernetes
Kubernetes laravel and kubernetes
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training
 
Book
BookBook
Book
 

More from Jens Rehsack

Perl6 for-beginners
Perl6 for-beginnersPerl6 for-beginners
Perl6 for-beginnersJens Rehsack
 
Moo at System::Image::Update
Moo at System::Image::UpdateMoo at System::Image::Update
Moo at System::Image::UpdateJens Rehsack
 
A CMDB Driven by Perl
A CMDB Driven by PerlA CMDB Driven by Perl
A CMDB Driven by PerlJens Rehsack
 
PkgSrc in Five Minutes
PkgSrc in Five MinutesPkgSrc in Five Minutes
PkgSrc in Five MinutesJens Rehsack
 
Moo at App::Math::Trainer
Moo at App::Math::TrainerMoo at App::Math::Trainer
Moo at App::Math::TrainerJens Rehsack
 
Cross Compiling for Perl Hackers
Cross Compiling for Perl HackersCross Compiling for Perl Hackers
Cross Compiling for Perl HackersJens Rehsack
 

More from Jens Rehsack (7)

Perl6 for-beginners
Perl6 for-beginnersPerl6 for-beginners
Perl6 for-beginners
 
Unix::Statgrab
Unix::StatgrabUnix::Statgrab
Unix::Statgrab
 
Moo at System::Image::Update
Moo at System::Image::UpdateMoo at System::Image::Update
Moo at System::Image::Update
 
A CMDB Driven by Perl
A CMDB Driven by PerlA CMDB Driven by Perl
A CMDB Driven by Perl
 
PkgSrc in Five Minutes
PkgSrc in Five MinutesPkgSrc in Five Minutes
PkgSrc in Five Minutes
 
Moo at App::Math::Trainer
Moo at App::Math::TrainerMoo at App::Math::Trainer
Moo at App::Math::Trainer
 
Cross Compiling for Perl Hackers
Cross Compiling for Perl HackersCross Compiling for Perl Hackers
Cross Compiling for Perl Hackers
 

Recently uploaded

Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 

Recently uploaded (20)

Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

Perl on-embedded-devices

  • 1. Perl on embedded Devices Jens Rehsack Niederrhein Perl Mongers German Perl Workshop 2018 Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 1 / 16
  • 2. Login on Build Server Login on Build Server $ ssh -Y gpw_acc_${VLAN_GRP}@10 .0.${VLAN_GRP }0.1 # e.g. ssh -Y gpc_acc_4@10 .0.40.1 Your password is identical to your login name. Attach your device (to your Laptop) $ ls -l /dev | grep -i usb $ screen /dev/tty.usbserial 115200 On Windows use putty, for example. Optionally power on your device and watch the boot process Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 3 / 16
  • 3. Setup Build-Tree Prepare Build-Tree (Build Server) $ mkdir -p ~/gpw -community -bsp/sources $ cd ~/gpw -community -bsp/ $ git clone -b master https :// github.com/rehsack/gpw -yocto -platform.git $ cd sources $ git clone -b master https :// github.com/rehsack/poky.git $ git clone -b master https :// github.com/rehsack/meta - openembedded.git $ git clone -b master https :// github.com/meta -cpan/meta -cpan.git $ git clone -b master https :// github.com/rehsack/meta -jens.git $ git clone -b master https :// github.com/rehsack/meta -gpw.git Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 4 / 16
  • 4. Setup Environment Prepare Environment (Build Server) # gpw_acc_5 does , gpw_acc_8 uses 8 $ echo "export VLAN_GRP =5 export LANG=en_US.UTF -8 source ~/gpw -community -bsp/sources/poky/scripts/oe -init -bashrc" >> ~/. bashrc Please use your VLAN group from your name plate on the desk. Restart and prepare your shell (Build Server) $ exec bash $ oe_builddir use ~/gpw -community -bsp/gpw -yocto -platform Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 5 / 16
  • 5. Setup Cache Prepare Cache (Build Server) Add the following lines to $BUILDDIR/conf/local.conf BB_GENERATE_MIRROR_TARBALLS = "1" INHERIT += "own -mirrors" SOURCE_MIRROR_URL = "file :/// home/gpw2018/downloads" SSTATE_MIRRORS ?= " file ://.* file :/// home/gpw2018/sstate -cache/PATH" Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 6 / 16
  • 6. Enter Buildmode (Build Server) Enter Buildmode # create new screen session named bitbake $ screen -S bitbake $ oe_builddir use ~/gpw -community -bsp/gpw -yocto -platform $ WANTED_ROOT_DEV =emmc mkimgs updatable -app -image Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 8 / 16
  • 7. Enter Flash (Build Server) Enter Flash (Build Server) # re -connect to screen session named bitbake $ screen -r bitbake $ WANTED_ROOT_DEV =emmc gpw_deploy flash Reset your device (Your Laptop) Reset your device and stop automatic booting by pressing space on the terminal attached to the device serial console. Flash device (Your Laptop, Device Screen) run netboot Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 9 / 16
  • 8. Add packages (Build Server) Add rakudo* $ cd ${BSPDIR }/ sources/meta -gpw $ vim recipes -images/images/updatable -app -image.bbappend IMAGE_INSTALL_append = " rakudo -star " Add Dancer2 (Build Server) $ cd ${BSPDIR }/ sources/meta -gpw $ vim recipes -images/images/updatable -app -image.bbappend IMAGE_INSTALL_append = " dancer2 -perl " Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 11 / 16
  • 9. Update image Update from Upstream (Build Server) $ cd ${BSPDIR }/ sources/poky $ git remote add upstream git :// git.yoctoproject.org/poky $ git fetch upstream $ git rebase upstream/master Repeat this for all cloned repositories . . . Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 13 / 16
  • 10. Own software Add self written software (Build Server) $ cd ${BSPDIR }/ sources/meta -gpw $ mkdir recipes -service/myservice $ vim recipes -service/myservice/ myservice_git .bb DESCRIPTION = "My:: Service provides backend for cool stuff" LICENSE = "MIT" MAINTAINER = "my.name@my.company" HOMEPAGE = "https :// myservice.my.company/" LIC_FILES_CHKSUM = "file ://${ COMMON_LICENSE_DIR }/ MIT;md5 =..." SRC_REV = " abcdef0123456789abcdef0123456789abcdef01 " SRC_URI = " git :// scm.my.company/path/repo.git;rev=${SRC_REV} file :// run file ://my -service.json ..." RDEPENDS_${PN} += " daemontools " RDEPENDS_${PN} += "dancer2" RDEPENDS_${PN} += "moox -configfromfile -perl" do_install_appends () { install -d -m ${D}${ sysconfdir} install -m 0644 ${WORKDIR }/my -service.json ${D}${sysconfdir} install -m 0755 ${WORKDIR }/run ${D}${sysconfdir }/ daemontools /service/run } Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 14 / 16
  • 11. Prepare Packger::Utils Prepare Packger::Utils (Build Server) # checkout and prepare Packager :: Utils $ mkdir ~/ Projects $ cd ~/ Projects $ git clone https :// github.com/rehsack/Packager -Utils.git $ cd Packager -Utils $ perl Makefile.PM $ cpanm installdeps . Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 15 / 16
  • 12. Recipes for CPAN modules Recipes for CPAN modules (Build Server) # create list of available perl/cpan packages $ make && env BBPATH=$BUILDDIR perl -Mblib bin/pkg_util check up2date --packages_pattern "*-perl_ *.bb" --packages_pat $ make && env BBPATH=$BUILDDIR perl -Mblib bin/pkg_util create package --categories www --modules Mojolicious Jens Rehsack (Niederrhein.PM) Perl on embedded Devices German Perl Workshop 2018 16 / 16