[Automated-testing] [RFC] Linux Lab: lightweight board farm for daily kernel development and testing
Wu Zhangjin
wuzhangjin at gmail.com
Sat Dec 9 10:26:56 PST 2017
+Steven
Recorded session of automated kernel feature testing with Linux Lab, for
example:
1. Ftrace
$ make test FEATURE=ftrace LINUX=v2.6.36 BOARD=malta TEST=prepare
http://showterm.io/346ea62996736d1716458
2. KFT (old Kernel Function Tracing)
$ make test FEATURE=kft LINUX=v2.6.36 BOARD=malta TEST=prepare
http://showterm.io/50d1a5f2c7dd27877d3d1
Thanks & BR,
Falcon
On Wed, Dec 6, 2017 at 5:22 AM, Wu Zhangjin <wuzhangjin at gmail.com> wrote:
> Hi all,
>
> I'm pleasure to share my latest open source work, it is "Linux Lab" (
> https://github.com/tinyclub/linux-lab): a docker and qemu based "board
> farm" for instant Linux kernel development and testing.
>
> It has following features:
>
> 1. Docker based, available for Linux, Windows and MacOSX, with Docker CE
> or Docker Toolbox
> 2. Docker image, with pre-installed (cross) compilers, debuggers,
> emulators (qemu-system-xxx) for 4 main architectures (X86, PowerPC, MIPS
> and ARM)
> 3. Qemu based, hundreds of virtual boards available
> 4. Qemu boot script abstracted, with options configurable via command line
> or config file
> 5. Instant boot, with prebuilt images, including kernel/dtb/uboot/qemu and
> minimal rootfs
> 6. Actions abstracted, such as download, checkout, patch, defconfig,
> menuconfig, build, save, boot, debug and test
> 7. Highly Reproducible, with pre-install toolchains, prebuilt images and
> tested configurations
> 8. Highly Scalable, 6 virtual boards have been added for 4 main
> architectures, new boards can be added as builtin boards or standalone git
> submodules
> 9. already Supported packages, kernel (linux-stable), root (buildroot),
> uboot and emulator(qemu)
> 10. noVNC and Gateone integrated, available from anywhere if network
> reachable from local or remote
>
> Let's introduce some basic usage:
>
> * Take a look at the default board (vexpress-a9)
>
> $ make
> [ vexpress-a9 ]:
> ARCH = arm
> XARCH = $(ARCH)
> CPU ?= cortex-a9
> MEM ?= 128M
> UBOOT ?= v2015.07
> LINUX ?= v4.6.7
> BUILDROOT?= 2016.05
> ...
> BOOTDEV ?= flash
> PFLASH_SIZE ?= 64
> PFLASH_BS ?= 512
> NETDEV ?= lan9118
> SERIAL ?= ttyAMA0
> ROOTDEV ?= /dev/ram0
> FSTYPE ?= ext2
> ...
>
>
> * Fast boot the default board with prebuilt images
>
> $ make boot
> ...
> Welcome to Linux Lab
> linux-lab login: root
> # uname -r
> 4.6.7+
> # uname -a
> Linux linux-lab 4.6.7+ #1 SMP Sun Dec 3 18:47:31 UTC 2017 armv7l
> GNU/Linux
>
> * List all boards
>
> $ make list
> [ g3beige ]:
> ARCH = powerpc
> CPU ?= generic
> LINUX ?= v4.6.7
> ROOTDEV ?= /dev/ram0
> [ malta ]:
> ARCH = mips
> CPU ?= mips32r2
> LINUX ?= v2.6.36
> ROOTDEV ?= /dev/ram0
> [ pc ]:
> ARCH = x86
> CPU ?= i686
> LINUX ?= v4.6.7
> ROOTDEV ?= /dev/ram0
> [ versatilepb ]:
> ARCH = arm
> CPU ?= arm926t
> LINUX ?= v4.6.7
> ROOTDEV ?= /dev/ram0
> [ vexpress-a9 ]:
> ARCH = arm
> CPU ?= cortex-a9
> LINUX ?= v4.6.7
> ROOTDEV ?= /dev/ram0
> [ virt ]:
> ARCH = arm64
> CPU ?= cortex-a57
> LINUX ?= v4.5.5
> ROOTDE ?= /dev/ram0
>
> * Choose a board and boot, e.g. malta
>
> $ make BOARD=malta
> $ make boot
>
> * Boot with nfsroot
>
> $ make boot ROOTDEV=/dev/nfs
>
> * Boot with/without Uboot (only for versatilepb and vexpress-a9 currently)
>
> By default, it is enabled if uboot supported in boards Makefile:
> boards/<BOARD>/Makefile.
>
> $ make boot U=0
>
> * Boot uboot with tftp, flash, or sdcard
>
> $ make boot BOOTDEV=tftp
>
> * Boot with graphic
>
> By default, no graphic:
>
> $ make BOARD=pc
> $ make boot G=1
>
> * Test kernel, include download, checkout, patch, defconfig, menuconfig
> and build
>
> $ make test TEST=kernel-full
>
> It equals:
>
> $ make kernel-download
> $ make kernel-checkout
> $ make kernel-patch
> $ make kernel-defconfig
> $ make kernel-build
> $ make boot
>
> * Test kernel and root
>
> root is supported by buildroot, it also support the above actions.
>
> $ make test TEST=kernel-full,root-full
>
> * Test a kernel feature in a specified kernel version on a specified board
>
> $ make test FEATURE=kft LINUX=v2.6.36 BOARD=malta TEST=prepare
>
> * Test kernel modules
>
> $ make test modules=ldt
>
> * Debug kernel (start qemu with gdbstub and running gdb with default
> .gdbinit)
>
> $ make debug
>
> More usage please refer to the README.md of this project:
>
> https://github.com/tinyclub/linux-lab/blob/master/README.md
>
> Let's take a look at the demonstration:
>
> * Showterm demonstration
> http://showterm.io/6fb264246580281d372c6
>
> * Showdesk demonstration
> http://showdesk.io/7977891c1d24e38dffbea1b8550ffbb8/?f=1
>
> * Try it online (only one account, update in 30 minutes)
> http://tinylab.cloud:6080/labs/
>
> This project is still in development stage, it is not yet for product
> level.
>
> Enjoy and Welcome your feedback.
>
> Thanks & BR,
> Falcon
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/automated-testing/attachments/20171209/739c0333/attachment-0001.html>
More information about the automated-testing
mailing list