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

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
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
 
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 mainline
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 mainline
Linaro
 
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
Linaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
Linaro
 
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 boot
Linaro
 
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 Program
Linaro
 
HKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NNHKG18-312 - CMSIS-NN
HKG18-312 - CMSIS-NN
Linaro
 

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

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

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