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 <wuzhang...@gmail.com>: > > 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 > -- Regards, - cee1