Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753311AbdLHNIQ (ORCPT ); Fri, 8 Dec 2017 08:08:16 -0500 Received: from mail-it0-f67.google.com ([209.85.214.67]:37987 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753107AbdLHNIP (ORCPT ); Fri, 8 Dec 2017 08:08:15 -0500 X-Google-Smtp-Source: AGs4zMZT7c5FEGEXvPirkeoFv3vT4tc+OoPL/6ZGXYD6SwH670zA2g0AedoxZ3OP7RozI6L3QvT4PNhBtWp054V2xyM= MIME-Version: 1.0 From: cee1 Date: Fri, 8 Dec 2017 21:07:53 +0800 Message-ID: Subject: Re: [RFC] Linux Lab: lightweight board farm for daily kernel development and testing To: automated-testing@yoctoproject.org Cc: Wu Zhangjin , LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5119 Lines: 201 Hi Zhangjin, Cool~ With Docker all necessary bits are encapsulated in images, which saves lots of time of setting up a development environment. The online "web console", http://tinylab.cloud:6080/labs/, makes it further more convenient. 2017-12-08 20:29 GMT+08:00 Wu Zhangjin : > > 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//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 > -- Regards, - cee1