SlideShare a Scribd company logo
1 of 28
Download to read offline
Adding a Third party
board to LAVA
Senthil Kumaran, Tyler Baker
& Fu Wei
LCE13 - Dublin, July 2013
LAVA Workshop III
● Board Requirements
● Master image creation
● Trapping Console Output
Case Studies
● BeagleBone Black
● ARMv6
● CubieBoard
● Physical and emulated devices
Overview
Board Requirements
○ Power cycle
○ Storage device support in bootloader and kernel
○ Persistent serial connection during power cycle
○ Ethernet connection to download stuff
○ Bootloader - u-boot or UEFI support
Boards with serial and ethernet
○ Power cycle
○ Force bootloader to fastboot externally
○ Images for LAVA - boot.img: kernel + ramdisk,
system.img, userdata.img
○ Storage device support in bootloader and kernel
○ Fastboot support in bootloader
○ ADB support in Kernel
○ Serial console support in bootloader and kernel
Boards with Fastboot and ADB
Master Image
○ rootfs is the root filesystem tree specific to an OS
○ rootfs provided by Linaro could be used to inject
your own kernel
○ Linaro ROOTFS
■ NANO
■ DEVELOPER
■ ALIP
■ UBUNTU DESKTOP
ROOTFS
○ hwpack is the list of packages that is required for a
particular board
○ linaro-hwpack-install from linaro-image-tools
○ linaro-media-create takes the --hwpack switch
○ linaro-hwpack-create from linaro-image-tools
■ linaro-hwpack-create hwpacks/omap3 1
○ Latest hwpack configuration file format is in YAML
HWPACK
○ linaro-media-create is used to create master image
○ rootfs and hwpack are needed to create a master
image
○ plan your partition layout in the memory device
○ Example
linaro-media-create --rootfs ext3 --mmc /dev/mmcblk0 --dev mx51evk --hwpack
hwpack_linaro-imx51_20110407-0_armel_unsupported.tar.gz --binary linaro-natty-
nano-tar-20110412-0.tar.gz
○ http://images.validation.linaro.org/
Creating master image
Trapping Console Output
○ interrupt_boot_command
■ 'r'
○ interrupt_boot_prompt
■ Hit any key to stop autoboot:
○ bootloader_prompt
■ U-Boot#
○ image_boot_msg
■ Uncompressing Linux...
○ master_str
■ root@master
Console Output
U-Boot 2013.04-rc1-14237-g90639fe-dirty (Apr 13 2013 - 13:57:11)
I2C: ready
DRAM: 512 MiB
WARNING: Caches not enabled
NAND: No NAND device found!!!
0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - readenv() failed, using default environment
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Peripheral mode controller at 47401000 using PIO, IRQ 0
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Host mode controller at 47401800 using PIO, IRQ 0
Net: <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot: - interrupt_boot_prompt
r - interrupt_boot_command
U-Boot# - bootloader_prompt
Console Output
Uncompressing Linux... done, booting the kernel. - image_boot_msg
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.8.13.0-1-linaro-am335x (buildd@dryad) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) )
#1ubuntu1~ci+130523073008-Ubuntu SMP Thu May 23 09:24:35 UTC 201
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=50c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x BeagleBone
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] AM335X ES1.0 (neon )
[ 0.000000] PERCPU: Embedded 8 pages/cpu @c0ae5000 s9408 r8192 d15168 u32768
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129792
[ 0.000000] Kernel command line: console=ttyO0,115200n8 root=LABEL=testrootfs rootwait ro
...
Last login: Tue Jun 25 08:19:38 UTC 2013 on tty1
Welcome to Linaro 13.03 (GNU/Linux 3.8.13.0-1-linaro-am335x armv7l)
* Documentation: https://wiki.linaro.org/
root@master: - master_str
Console Output
● Why is this not a robust string to expect?
○ image_boot_msg
■ Uncompressing Linux...
● What would be a better string?
● Hopefully now you can see why trapping console output
is critical to understand when adding third party boards
to LAVA.
Console Output
Add a Board to LAVA
BeagleBone Black
○ eMMC + SD card
■ SYSBOOT pins strapped to boot from eMMC first
and SD card second.
■ U-Boot present on the eMMC defaulted to using
eMMC partitions for booting.
○ Booting to into the Master Image
■ LAVA assumes that when the board is powered
on, it requires no intervention to boot master
image.
○ No HWPACK existed for the AM335x
BeagleBone Black Challenges
○ U-Boot
■ Hijack the bootloader using uEnv.txt
● uEnv.txt will be read from the SD partition
● This is used to setup booting off the SD card instead of
eMMC.
● This allowed a clean boot into the Master Image present on
the SD card without replacing the original bootloader in the
eMMC.
○ Master Image
■ B&B team provided a HWPACK for the AM335x
■ Beaglebone target added to Master Image
scripts.
BeagleBone Black Solutions
Add a Board to LAVA
ARMv6
○ ARMv6 is unsupported
○ All packages must be recompiled for ARMv6 support
○ All major distributions support armhf rather than
armel
○ ARMv6 is bound to armel which is unsupported
○ Depend on third parties for packages or compile
each package for a distribution
○ Raspberry Pi is an example for this
Challenges
Add a Board to LAVA
○ Luckily, Compare with Beaglebone, we have not the
problem to boot the master image
■ Cubie boot from SD card first and NAND second.
■ Boot procedure defaulted to be controlled by uEn
v.txt
○ No Standard HWPACK existed for the
Allwinner A10
CubieBoard Challenges
○ Master Image
■ lava-create-master make a master image in two steps:
● Preparing vanilla Linaro image
● Converting vanilla image to LAVA master image
■ linux-sunxi.org provided a nonstandard HWPACK and scripts
for making a bootable image, so we can make a vanilla image.
■ create a new config file "cubie.conf"
■ using pre-build vanilla image to make a master image by
lava-create-master
CubieBoard Solutions
○ make a cubie.conf file including the info below:
■ image_boot_msg = Starting kernel
● Cubie kernel has no "Uncompressing Linux" output
■ bootloader_prompt = #
● We also can deploy a CubieBoard 2 (Dual-
core A7) into LAVA by the same way.
Cubie lava-dispatcher config file
General Considerations
Physical and Emulated
devices
○ Needs a master image
○ Serial connection and network is mandatory
○ Adhere to board requirements as mentioned earlier
○ lp:lava-dispatcher
■ lava_dispatcher/device/master.py
■ lava_dispatcher/device/target.py
■ lava_dispatcher/device/boot_options.py
■ lava_dispatcher/client/targetdevice.py
Physical devices
○ Does not need a master image
○ Command to create an emulated device
○ Device configs should be populated properly in lava-
dispatcher
○ lp:lava-dispatcher
■ lava_dispatcher/device/target.py
■ lava_dispatcher/device/boot_options.py
■ lava_dispatcher/client/targetdevice.py
■ lava_dispatcher/default-config/lava-dispatcher/device-defaults.
conf
■ lava_dispatcher/default-config/lava-dispatcher/device-types
Emulated devices
Open Discussion
LCE13: LAVA Workshop II - Adding 3rd Party boards to LAVA

More Related Content

More from Linaro

Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaLinaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopLinaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allLinaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorLinaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMULinaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MLinaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootLinaro
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...Linaro
 
HKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramHKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramLinaro
 
HKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNHKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNLinaro
 

More from Linaro (20)

Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
HKG18-500K1 - Keynote: Dileep Bhandarkar - Emerging Computing Trends in the D...
 
HKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready ProgramHKG18-317 - Arm Server Ready Program
HKG18-317 - Arm Server Ready Program
 
HKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNHKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NN
 

Recently uploaded

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

LCE13: LAVA Workshop II - Adding 3rd Party boards to LAVA

  • 1. Adding a Third party board to LAVA Senthil Kumaran, Tyler Baker & Fu Wei LCE13 - Dublin, July 2013 LAVA Workshop III
  • 2. ● Board Requirements ● Master image creation ● Trapping Console Output Case Studies ● BeagleBone Black ● ARMv6 ● CubieBoard ● Physical and emulated devices Overview
  • 4. ○ Power cycle ○ Storage device support in bootloader and kernel ○ Persistent serial connection during power cycle ○ Ethernet connection to download stuff ○ Bootloader - u-boot or UEFI support Boards with serial and ethernet
  • 5. ○ Power cycle ○ Force bootloader to fastboot externally ○ Images for LAVA - boot.img: kernel + ramdisk, system.img, userdata.img ○ Storage device support in bootloader and kernel ○ Fastboot support in bootloader ○ ADB support in Kernel ○ Serial console support in bootloader and kernel Boards with Fastboot and ADB
  • 7. ○ rootfs is the root filesystem tree specific to an OS ○ rootfs provided by Linaro could be used to inject your own kernel ○ Linaro ROOTFS ■ NANO ■ DEVELOPER ■ ALIP ■ UBUNTU DESKTOP ROOTFS
  • 8. ○ hwpack is the list of packages that is required for a particular board ○ linaro-hwpack-install from linaro-image-tools ○ linaro-media-create takes the --hwpack switch ○ linaro-hwpack-create from linaro-image-tools ■ linaro-hwpack-create hwpacks/omap3 1 ○ Latest hwpack configuration file format is in YAML HWPACK
  • 9. ○ linaro-media-create is used to create master image ○ rootfs and hwpack are needed to create a master image ○ plan your partition layout in the memory device ○ Example linaro-media-create --rootfs ext3 --mmc /dev/mmcblk0 --dev mx51evk --hwpack hwpack_linaro-imx51_20110407-0_armel_unsupported.tar.gz --binary linaro-natty- nano-tar-20110412-0.tar.gz ○ http://images.validation.linaro.org/ Creating master image
  • 11. ○ interrupt_boot_command ■ 'r' ○ interrupt_boot_prompt ■ Hit any key to stop autoboot: ○ bootloader_prompt ■ U-Boot# ○ image_boot_msg ■ Uncompressing Linux... ○ master_str ■ root@master Console Output
  • 12. U-Boot 2013.04-rc1-14237-g90639fe-dirty (Apr 13 2013 - 13:57:11) I2C: ready DRAM: 512 MiB WARNING: Caches not enabled NAND: No NAND device found!!! 0 MiB MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1 *** Warning - readenv() failed, using default environment musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn) musb-hdrc: MHDRC RTL version 2.0 musb-hdrc: setup fifo_mode 4 musb-hdrc: 28/31 max ep, 16384/16384 memory USB Peripheral mode controller at 47401000 using PIO, IRQ 0 musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, HB-ISO Rx, HB-ISO Tx, SoftConn) musb-hdrc: MHDRC RTL version 2.0 musb-hdrc: setup fifo_mode 4 musb-hdrc: 28/31 max ep, 16384/16384 memory USB Host mode controller at 47401800 using PIO, IRQ 0 Net: <ethaddr> not set. Validating first E-fuse MAC cpsw, usb_ether Hit any key to stop autoboot: - interrupt_boot_prompt r - interrupt_boot_command U-Boot# - bootloader_prompt Console Output
  • 13. Uncompressing Linux... done, booting the kernel. - image_boot_msg [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 3.8.13.0-1-linaro-am335x (buildd@dryad) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) ) #1ubuntu1~ci+130523073008-Ubuntu SMP Thu May 23 09:24:35 UTC 201 [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=50c5387d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x BeagleBone [ 0.000000] Memory policy: ECC disabled, Data cache writeback [ 0.000000] AM335X ES1.0 (neon ) [ 0.000000] PERCPU: Embedded 8 pages/cpu @c0ae5000 s9408 r8192 d15168 u32768 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129792 [ 0.000000] Kernel command line: console=ttyO0,115200n8 root=LABEL=testrootfs rootwait ro ... Last login: Tue Jun 25 08:19:38 UTC 2013 on tty1 Welcome to Linaro 13.03 (GNU/Linux 3.8.13.0-1-linaro-am335x armv7l) * Documentation: https://wiki.linaro.org/ root@master: - master_str Console Output
  • 14. ● Why is this not a robust string to expect? ○ image_boot_msg ■ Uncompressing Linux... ● What would be a better string? ● Hopefully now you can see why trapping console output is critical to understand when adding third party boards to LAVA. Console Output
  • 15. Add a Board to LAVA BeagleBone Black
  • 16. ○ eMMC + SD card ■ SYSBOOT pins strapped to boot from eMMC first and SD card second. ■ U-Boot present on the eMMC defaulted to using eMMC partitions for booting. ○ Booting to into the Master Image ■ LAVA assumes that when the board is powered on, it requires no intervention to boot master image. ○ No HWPACK existed for the AM335x BeagleBone Black Challenges
  • 17. ○ U-Boot ■ Hijack the bootloader using uEnv.txt ● uEnv.txt will be read from the SD partition ● This is used to setup booting off the SD card instead of eMMC. ● This allowed a clean boot into the Master Image present on the SD card without replacing the original bootloader in the eMMC. ○ Master Image ■ B&B team provided a HWPACK for the AM335x ■ Beaglebone target added to Master Image scripts. BeagleBone Black Solutions
  • 18. Add a Board to LAVA ARMv6
  • 19. ○ ARMv6 is unsupported ○ All packages must be recompiled for ARMv6 support ○ All major distributions support armhf rather than armel ○ ARMv6 is bound to armel which is unsupported ○ Depend on third parties for packages or compile each package for a distribution ○ Raspberry Pi is an example for this Challenges
  • 20. Add a Board to LAVA
  • 21. ○ Luckily, Compare with Beaglebone, we have not the problem to boot the master image ■ Cubie boot from SD card first and NAND second. ■ Boot procedure defaulted to be controlled by uEn v.txt ○ No Standard HWPACK existed for the Allwinner A10 CubieBoard Challenges
  • 22. ○ Master Image ■ lava-create-master make a master image in two steps: ● Preparing vanilla Linaro image ● Converting vanilla image to LAVA master image ■ linux-sunxi.org provided a nonstandard HWPACK and scripts for making a bootable image, so we can make a vanilla image. ■ create a new config file "cubie.conf" ■ using pre-build vanilla image to make a master image by lava-create-master CubieBoard Solutions
  • 23. ○ make a cubie.conf file including the info below: ■ image_boot_msg = Starting kernel ● Cubie kernel has no "Uncompressing Linux" output ■ bootloader_prompt = # ● We also can deploy a CubieBoard 2 (Dual- core A7) into LAVA by the same way. Cubie lava-dispatcher config file
  • 25. ○ Needs a master image ○ Serial connection and network is mandatory ○ Adhere to board requirements as mentioned earlier ○ lp:lava-dispatcher ■ lava_dispatcher/device/master.py ■ lava_dispatcher/device/target.py ■ lava_dispatcher/device/boot_options.py ■ lava_dispatcher/client/targetdevice.py Physical devices
  • 26. ○ Does not need a master image ○ Command to create an emulated device ○ Device configs should be populated properly in lava- dispatcher ○ lp:lava-dispatcher ■ lava_dispatcher/device/target.py ■ lava_dispatcher/device/boot_options.py ■ lava_dispatcher/client/targetdevice.py ■ lava_dispatcher/default-config/lava-dispatcher/device-defaults. conf ■ lava_dispatcher/default-config/lava-dispatcher/device-types Emulated devices