diff --git a/articles/20221129-elfs-riscv-linux-env.md b/articles/20221129-elfs-riscv-linux-env.md
new file mode 100644
index 0000000000000000000000000000000000000000..5e0d84e4edcda714b9b2bd311bc4248a789be688
--- /dev/null
+++ b/articles/20221129-elfs-riscv-linux-env.md
@@ -0,0 +1,934 @@
+# 从零开始学习RISCV-Lab和 LINUX-Lab基础
+> 作者: 周子棠
+> 日期: 2022.11.29
+## 简介
+这系列文章是学习RISCV-Lab 和 LINUX 基础
+
+RISCV-Lab主要是学习应用开发的
+
+LINUX-Lab主要是学习linux内核的
+
+首先,我们要运行操作系统
+## 实验准备
+准备一个泰晓科技的实验盘(在淘宝搜索泰晓科技就可以查询到)
+## RISCV-Lab操作系统的运行
+# 下载RISCV-Lab
+```
+$ git clone https://gitee.com/tinylab/cloud-lab.git
+
+$ cd cloud-lab
+```
+# 运行RISCV-Lab
+```
+$ tools/docker/run riscv-lab
+LOG: Init docker environment ...
+INFO: Resume the stopped riscv-lab
+INFO: Run host side init for riscv-lab
+INFO: Start riscv-lab-25651-4a9553
+riscv-lab-25651-4a9553
+INFO: Wait for lab launching
+INFO: Wait for lab resuming...
+INFO: Please choose one of the login methods:
+
+ 1 bash
+ 2 vnc
+ 3 ssh
+ 4 webssh
+ 5 webvnc
+
+```
+# 选择登录方式
+```
+INFO: Choose the login method: 1
+
+ 1 bash
+
+INFO: Available login methods:
+
+ bash vnc ssh webssh webvnc
+
+INFO: Switch to another method:
+
+ tools/docker/login LOGIN_METHOD
+
+INFO: Running '/home/ubuntu/Develop/cloud-lab/tools/docker/bash'
+```
+# 在里面输入命令
+```
+
+ubuntu@riscv-lab:/labs/riscv-lab$ ls
+COPYING README.en.md README.md
+ubuntu@riscv-lab:/labs/riscv-lab$ uname -a
+Linux riscv-lab 5.15.0-27-generic #28-Ubuntu SMP Thu Apr 14 04:55:28 UTC 2022 riscv64 riscv64 riscv64 GNU/Linux
+ubuntu@riscv-lab:/labs/riscv-lab$ man uname
+This system has been minimized by removing packages and content that are
+not required on a system that users do not log into.
+
+To restore this content, including manpages, you can run the 'unminimize'
+command. You will still need to ensure the 'man-db' package is installed.
+```
+这样我们就成功运行了riscv-lab操作系统了
+## linux-Lab操作系统的运行
+# 首先是要运行
+```
+$ tools/docker/run linux-lab
+LOG: Init docker environment ...
+INFO: Open the running linux-lab
+INFO: Please choose one of the login methods:
+
+ 1 bash
+ 2 vnc
+ 3 ssh
+ 4 webssh
+ 5 webvnc
+
+
+
+```
+# 选择登录方式
+```
+INFO: Choose the login method: 1
+
+ 1 bash
+
+INFO: Available login methods:
+
+ bash vnc ssh webssh webvnc
+
+INFO: Switch to another method:
+
+ tools/docker/login LOGIN_METHOD
+
+INFO: Running '/home/ubuntu/Develop/cloud-lab/tools/docker/bash'
+```
+# 在里面输入命令
+**make list**
+```
+ubuntu@linux-lab:/labs/linux-lab$ make list
+[ aarch64/raspi3 ]:
+ ARCH := arm64
+ XARCH := aarch64
+ CPU ?= cortex-a53
+ SMP ?= 4
+ MEM ?= 1024M
+ UART ?= 0
+ ifeq ($(UART), 1)
+ XOPTS += -serial null -serial mon:stdio
+ XKCLI ?= earlycon=uart8250,mmio32,0x3f215040
+ SERIAL ?= ttyS1,115200
+ else
+ XOPTS += -serial mon:stdio
+ XKCLI ?= earlycon=pl011,0x3f201000
+ SERIAL ?= ttyAMA0,115200
+ endif
+ QEMU ?= v2.12.0
+ QEMU_US ?= 0
+ LINUX ?= v5.1
+ BUILDROOT?= 2019.02.2
+ NET ?=
+ TEST_RD ?= /dev/mmcblk0
+ ROOTDEV_LIST := /dev/mmcblk0 /dev/ram0
+ ROOTDEV ?= /dev/mmcblk0
+ FSTYPE ?= ext2
+ ORIIMG ?= arch/$(ARCH)/boot/Image
+ ORIDTB ?= arch/$(ARCH)/boot/dts/broadcom/bcm2710-rpi-3-b.dtb
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/Image
+ DTB ?= $(BSP_KERNEL)/$(LINUX)/bcm2710-rpi-3-b.dtb
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ QTOOL[OS_trusty] ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ CCORI ?= internal
+[ aarch64/virt ]:
+ ARCH := arm64
+ XARCH := aarch64
+ CPU ?= cortex-a57
+ SMP ?= 2
+ MEM ?= 256M
+ XOPTS ?= -serial mon:stdio -machine virt,gic_version=3 -machine type=virt,virtualization=true -d guest_errors -nodefaults
+ QEMU ?= v4.0.0
+ QEMU_US ?= 0
+ UBOOT ?= v2019.10
+ CCORI[UBOOT_v2019.10,OS_trusty]:= linaro
+ CCORI[UBOOT_v2019.10,OS_focal] := internal
+ LINUX ?= v5.13
+ BUILDROOT?= 2019.11.1
+ KERNEL_GIT[KERNEL_FORK_openeuler] := https://gitee.com/openeuler/kernel.git
+ LINUX[KERNEL_FORK_openeuler] ?= 5.10.0-5.10.0
+ NETDEV_LIST := virtio
+ NETDEV ?= virtio
+ SERIAL ?= ttyAMA0
+ NET9PDEV ?= virtio-9p-device
+ ROOTDEV_LIST := /dev/sda /dev/vda /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/vda
+ FSTYPE ?= ext2
+ ORIIMG ?= arch/$(ARCH)/boot/Image
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/Image
+ KRN_ADDR?= 0x45000000
+ KRN_SIZE?= 10
+ RDK_ADDR?= 0x42000000
+ RDK_SIZE?= 6
+ DTB_ADDR?= 0x44000000
+ DTB_SIZE?= 2
+ UCONFIG ?= qemu-arm.h
+ BOOTDEV_LIST := tftp flash pflash ram
+ BOOTDEV ?= flash
+ PFLASH_SIZE ?= 64
+ PFLASH_BS ?= 512
+ ENV_OFFSET ?= 0
+ ENV_SIZE ?= 1
+ ENVDEV ?= flash
+ ifeq ($(ENV_DEV), flash)
+ ENV_ADDR ?= 0x4000000
+ else
+ ENV_ADDR ?= 0x49000000
+ endif
+ UBOOT_BIOS ?= 1
+ BIMAGE ?= $(BSP_UBOOT)/$(UBOOT)/$(LINUX)/u-boot.bin
+ DTS ?= $(BSP_KERNEL)/$(LINUX)/virt-gicv3.dts
+ DTB ?= $(BSP_KERNEL)/$(LINUX)/virt-gicv3.dtb
+ UKIMAGE ?= $(BSP_KERNEL)/$(LINUX)/Image
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ UROOTFS := $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.uboot
+ XKCLI ?= earlycon
+ QTOOL[OS_trusty] ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ QTOOL[OS_focal] ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ CCORI ?= internal
+[ arm/mcimx6ul-evk ]:
+ ARCH := arm
+ XARCH := $(ARCH)
+ CPU ?= cortex-a9
+ MEM ?= 512M
+ QEMU ?= v4.1.1
+ QEMU_US ?= 0
+ LINUX ?= v5.4
+ BUILDROOT?= 2020.02
+ NETDEV_LIST ?= smc91c111 lan9118
+ NETDEV ?= smc91c111
+ SERIAL ?= ttymxc0
+ ROOTDEV_LIST := /dev/mmcblk0 /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/mmcblk0
+ FSTYPE ?= ext4
+ ORIIMG ?= arch/$(ARCH)/boot/zImage
+ ORIDTB ?= arch/$(ARCH)/boot/dts/imx6ul-liteboard.dtb
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/zImage
+ DTB ?= $(BSP_KERNEL)/$(LINUX)/imx6ul-liteboard.dtb
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ UROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.uboot
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ QTOOL[OS_trusty] ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ CCORI ?= internal
+[ arm/versatilepb ]:
+ ARCH := arm
+ XARCH := $(ARCH)
+ CPU ?= arm926
+ MEM ?= 128M
+ UBOOT ?= v2015.07
+ GCC[UBOOT_v2015.07] := 4.3
+ BUILDROOT?= 2021.08.2
+ LINUX ?= v5.1
+ GCC[LINUX_v2.6.36] := 4.3
+ GCC[LINUX_v4.6.7] := 4.7
+ PFLASH_SIZE ?= 64
+ PFLASH_BS ?= 256
+ ENV_OFFSET ?= 63
+ KRN_ADDR?= 0x007fc0
+ KRN_SIZE?= 5
+ RDK_ADDR?= 0x900000
+ RDK_SIZE?= 4
+ DTB_ADDR?= 0xe07fc0
+ DTB_SIZE?= 1
+ BOOTDEV_LIST := tftp flash pflash
+ BOOTDEV ?= flash
+ UCONFIG ?= versatile.h
+ NETDEV_LIST := smc91c111 rtl8139
+ NETDEV ?= smc91c111
+ SERIAL ?= ttyAMA0
+ ROOTDEV_LIST := /dev/sda /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/ram0
+ FSTYPE ?= ext2
+ ORIIMG ?= arch/$(ARCH)/boot/zImage
+ UORIIMG ?= arch/$(ARCH)/boot/uImage
+ HAS_DTS[LINUX_v2.6.36] := 0
+ HAS_DTS[LINUX_v2.6.14.7] := 0
+ ifeq ($(HAS_DTS), 1)
+ ORIDTB ?= arch/$(ARCH)/boot/dts/versatile-pb.dtb
+ BIMAGE ?= $(BSP_UBOOT)/$(UBOOT)/u-boot
+ else
+ BIMAGE ?= $(BSP_UBOOT)/$(UBOOT)/nodtb/u-boot
+ endif
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/zImage
+ DTB ?= $(BSP_KERNEL)/$(LINUX)/versatile-pb.dtb
+ UKIMAGE ?= $(BSP_KERNEL)/$(LINUX)/uImage
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ UROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.uboot
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ CCORI ?= internal
+[ arm/vexpress-a9 ]:
+ ARCH := arm
+ XARCH := $(ARCH)
+ CPU ?= cortex-a9
+ MEM ?= 128M
+ QEMU ?= v4.1.1
+ QEMU_US ?= 0
+ UBOOT ?= v2020.04
+ LINUX ?= v5.17
+ UBOOT[SHARE_1] := disabled
+ GCC[LINUX_v3.18.39] := 4.7
+ GCC[LINUX_v3.16.80] := 4.7
+ GCC[LINUX_v4.0.9] := 4.7
+ GCC[LINUX_v4.12] := 4.7
+ GCC[OS_focal] := 9
+ CCORI[UBOOT_v2020.04,OS_trusty] := linaro
+ CCORI[UBOOT_v2020.04,OS_focal] := internal
+ BUILDROOT?= 2021.08.2
+ KRN_ADDR?= 0x60003000
+ KRN_SIZE?= 5
+ RDK_ADDR?= 0x60900000
+ RDK_SIZE?= 4
+ DTB_ADDR?= 0x60500000
+ DTB_SIZE?= 1
+ UCONFIG ?= vexpress_common.h
+ BOOTDEV_LIST := tftp sdcard sd mmc flash pflash
+ BOOTDEV ?= flash
+ PFLASH_SIZE ?= 64
+ PFLASH_BS ?= 512
+ ENV_OFFSET ?= 63
+ NET9PDEV ?= virtio-9p-device
+ NETDEV_LIST := lan9118
+ NETDEV ?= lan9118
+ SERIAL ?= ttyAMA0
+ ROOTDEV_LIST := /dev/mmcblk0 /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/ram0
+ FSTYPE ?= ext2
+ ORIIMG ?= arch/$(ARCH)/boot/zImage
+ UORIIMG ?= arch/$(ARCH)/boot/uImage
+ ORIDTB ?= arch/$(ARCH)/boot/dts/vexpress-v2p-ca9.dtb
+ BIMAGE ?= $(BSP_UBOOT)/$(UBOOT)/u-boot
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/zImage
+ DTB ?= $(BSP_KERNEL)/$(LINUX)/vexpress-v2p-ca9.dtb
+ UKIMAGE ?= $(BSP_KERNEL)/$(LINUX)/uImage
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ UROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.uboot
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ QTOOL[OS_trusty] ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ CCORI ?= internal
+[ i386/pc ]:
+ ARCH := x86
+ XARCH := i386
+ CPU ?= qemu32
+ MEM ?= 128M
+ QEMU ?= v0.10.6
+ ifeq ($(QEMU),v0.10.6)
+ QEMU_SDL := 0
+ QEMU_CURSES := 0
+ QEMU_VIRTFS := 0
+ QEMU_VNC :=
+ GCC[QEMU_v0.10.6] := 4.4
+ endif
+ SMP ?= 4
+ LINUX ?= v5.13
+ BUILDROOT?= 2019.02.2
+ NETDEV_LIST ?= ne2k_pci e1000 rtl8139 pcnet
+ NETDEV ?= e1000
+ ROOTDEV_LIST ?= /dev/hda /dev/ram0 /dev/nfs
+ ROOTDEV_LIST[LINUX_v2.6.34.9] ?= /dev/sda /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/ram0
+ SERIAL ?= ttyS0
+ ORIIMG ?= arch/$(ARCH)/boot/bzImage
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/bzImage
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.ext2
+ XKCLI ?= noapic
+[ mips64el/ls2k ]:
+ ARCH := mips
+ XARCH := mips64el
+ CPU ?= loongson2k
+ BUILDROOT?= 2021.08.2
+ MEM ?= 1024M
+ SERIAL ?= ttyS0
+ NETDEV_LIST ?= synopgmac rtl8139 e1000
+ NETDEV ?= synopgmac
+ LINUX ?= loongnix-release-1903
+ LINUX[LINUX_loongnix-release-1903] := 04b98684
+ KERNEL_GIT := http://cgit.loongnix.org/cgit/linux-3.10
+ KERNEL_SRC := loongnix-linux-3.10
+ ORIIMG ?= vmlinuz
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/vmlinuz
+ DTS ?= $(KERNEL_SRC)/arch/$(ARCH)/loongson2/dts/2k1000_board.dts
+ DTB ?= $(BSP_KERNEL)/$(LINUX)/2k1000_board.dtb
+ ROOTDEV_LIST := /dev/sda /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/ram0
+ FSTYPE ?= ext2
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ QEMU_GIT:= https://gitee.com/loongsonlab/qemu
+ QEMU_SRC:= loongsonlab-qemu
+ QEMU ?= loongson-v1.0
+ QTOOL ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ XOPTS ?= -device usb-mouse -device usb-kbd -show-cursor
+ XKCLI += maxcpus=1
+ CCORI ?= internal
+[ mips64el/ls3a7a ]:
+ ARCH := mips
+ XARCH := mips64el
+ CPU ?= godson3
+ BUILDROOT?= 2020.08
+ MEM ?= 1024M
+ SERIAL ?= ttyS0
+ NETDEV_LIST ?= synopgmac rtl8139
+ NETDEV ?= synopgmac
+ LINUX ?= loongnix-release-1903
+ LINUX[LINUX_loongnix-release-1903] := 04b98684
+ HOST_GCC := 9
+ KERNEL_GIT[LINUX_loongnix-release-1903] := http://cgit.loongnix.org/cgit/linux-3.10
+ KERNEL_SRC[LINUX_loongnix-release-1903] := loongnix-linux-3.10
+ ORIIMG ?= vmlinuz
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/vmlinuz
+ DTS[LINUX_loongnix-release-1903] ?= $(KERNEL_SRC)/arch/$(ARCH)/loongson/loongson-3/dts/loongson3_ls7a.dts
+ DTB[LINUX_loongnix-release-1903] ?= $(BSP_KERNEL)/$(LINUX)/loongson3_ls7a.dtb
+ ROOTDEV_LIST ?= /dev/sda /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/ram0
+ FSTYPE ?= ext2
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ QEMU_GIT:= https://gitee.com/loongsonlab/qemu
+ QEMU_SRC:= loongsonlab-qemu
+ QEMU[OS_trusty] ?= loongson-v1.0
+ QEMU[OS_focal] ?= loongson-v1.1-rc1
+ XOPTS ?= -device usb-mouse -device usb-kbd -show-cursor
+ XENVS ?= INITRD_OFFSET=0x04000000
+ XKCLI += maxcpus=1 nomsi nmsix
+ CCORI ?= internal
+[ mipsel/ls1b ]:
+ ARCH := mips
+ XARCH := mipsel
+ CPU ?=
+ MEM ?= 128M
+ BUILDROOT?= 2021.08.2
+ LINUX ?= v5.2
+ NETDEV_LIST ?= synopgmac
+ NETDEV ?= synopgmac
+ SERIAL ?= ttyS0
+ ORIIMG ?= vmlinuz
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/vmlinuz
+ ROOTDEV_LIST ?= /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/ram0
+ FSTYPE ?= ext2
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ QEMU_GIT:= https://gitee.com/loongsonlab/qemu
+ QEMU_SRC:= loongsonlab-qemu
+ QEMU ?= loongson-v1.0
+ QTOOL ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ CCORI ?= internal
+[ mipsel/ls232 ]:
+ ARCH := mips
+ XARCH := mipsel
+ CPU ?= LS232_1
+ BUILDROOT?= 2021.08.2
+ MEM ?= 256M
+ SERIAL ?= ttyS0
+ LINUX ?= v2.6.32-r190726
+ KERNEL_GIT := https://gitee.com/loongsonlab/linux-2.6.32.git
+ KERNEL_SRC := loongsonlab-linux-2.6.32
+ ORIIMG ?= vmlinux
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/vmlinux
+ NETDEV_LIST ?= synopgmac
+ NETDEV ?= synopgmac
+ ROOTDEV_LIST := /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/ram0
+ FSTYPE ?= ext2
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ QEMU_GIT:= https://gitee.com/loongsonlab/qemu
+ QEMU_SRC:= loongsonlab-qemu
+ QEMU ?= loongson-v1.0
+ QTOOL ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ XOPTS ?=
+ CCORI ?= loongnix
+[ mipsel/malta ]:
+ ARCH := mips
+ XARCH := mipsel
+ CPU ?=
+ LINUX ?= v5.13
+ GCC[LINUX_v2.6.36] := 4.3
+ BUILDROOT?= 2021.08.2
+ MEM ?= 128M
+ NETDEV_LIST := pcnet
+ NETDEV ?= pcnet
+ SERIAL ?= ttyS0
+ FSTYPE ?= ext2
+ ORIIMG ?= vmlinuz
+ ROOTDEV_LIST := /dev/hda /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/ram0
+ ROOTDEV_LIST[LINUX_v2.6.36] := /dev/hda /dev/nfs
+ ROOTDEV[LINUX_v2.6.36] := /dev/hda
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/vmlinuz
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ CCORI ?= internal
+[ ppc/g3beige ]:
+ ARCH := powerpc
+ XARCH := ppc
+ CPU ?=
+ LINUX ?= v5.13
+ GCC[LINUX_v2.6.36] := 4.3
+ BUILDROOT?= 2021.08.2
+ MEM ?= 128M
+ NETDEV_LIST := pcnet ne2k_pci rtl8139
+ NETDEV ?= pcnet
+ SERIAL ?= ttyS0
+ ORIIMG ?= vmlinux
+ ROOTDEV_LIST := /dev/hda /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/ram0
+ BIOS ?= $(BSP_QEMU)/v4.0.0/share/qemu/openbios-ppc
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/vmlinux
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.ext2
+ CCORI ?= internal
+[ riscv32/virt ]:
+ ARCH := riscv
+ XARCH := riscv32
+ CPU ?=
+ SMP ?= 4
+ MEM ?= 128M
+ QEMU ?= v6.0.0
+ HOST_GCC[QEMU_v4.0.0] := 4.8
+ QEMU_US ?= 0
+ LINUX ?= v5.17
+ BUILDROOT[LINUX_v5.0.13] ?= 2019.05
+ BUILDROOT ?= 2021.08
+ NETDEV_LIST := virtio
+ NETDEV ?= virtio
+ SERIAL ?= ttyS0
+ NET9PDEV ?= virtio-9p-device
+ ROOTDEV_LIST := /dev/vda /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/vda
+ FSTYPE ?= ext2
+ BIOS[LINUX_v5.0.13] ?= $(BSP_KERNEL)/$(LINUX)/fw_jump.elf
+ BIOS ?= $(BSP_BIOS)/opensbi/generic/fw_jump.elf
+ KRN_ADDR ?= 0x80400000
+ ORIIMG ?= arch/$(ARCH)/boot/Image
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/Image
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ QTOOL[OS_trusty] ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ QTOOL[OS_focal] ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ CCORI[OS_trusty] ?= gnu-mcu-eclipse
+ CCORI[OS_focal] ?= internal
+ TOOLCHAIN ?= $(PREBUILT_TOOLCHAINS)/riscv64
+[ riscv64/virt ]:
+ ARCH := riscv
+ XARCH := riscv64
+ CPU ?=
+ SMP ?= 4
+ MEM ?= 128M
+ QEMU ?= v6.0.0
+ QEMU_US ?= 1
+ LINUX ?= v5.17
+ BUILDROOT?= 2019.05
+ NETDEV_LIST := virtio
+ NETDEV ?= virtio
+ SERIAL ?= ttyS0
+ NET9PDEV ?= virtio-9p-device
+ ROOTDEV_LIST := /dev/vda /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/vda
+ FSTYPE ?= ext2
+ BIOS ?= $(BSP_BIOS)/opensbi/generic/fw_jump.elf
+ KRN_ADDR ?= 0x80200000
+ ORIIMG ?= arch/$(ARCH)/boot/Image
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/Image
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ QTOOL[OS_trusty] ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ QTOOL[OS_focal] ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ CCORI[OS_trusty] ?= gnu-mcu-eclipse
+ CCORI[OS_focal] ?= internal
+[ x86_64/pc ]:
+ ARCH := x86
+ XARCH := x86_64
+ CPU ?= qemu64
+ MEM ?= 128M
+ SMP ?= 4
+ LINUX ?= v5.13
+ KERNEL_GIT[KERNEL_FORK_openeuler] := https://gitee.com/openeuler/kernel.git
+ LINUX[KERNEL_FORK_openeuler] ?= 5.10.0-5.10.0
+ KERNEL_GIT[KERNEL_FORK_wsl2] := https://gitee.com/mirrors/WSL2-Linux-Kernel.git
+ BUILDROOT?= 2019.02.2
+ NETDEV_LIST := ne2k_pci e1000 rtl8139 pcnet
+ NETDEV ?= ne2k_pci
+ SERIAL ?= ttyS0
+ ORIIMG ?= arch/$(ARCH)/boot/bzImage
+ ROOTDEV_LIST := /dev/hda /dev/ram0 /dev/nfs
+ ROOTDEV_LIST[LINUX_v3.2] := /dev/sda /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/ram0
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/bzImage
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ ROOTFS[LINUX_v2.6.12.6] ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs32.cpio.gz
+ XKCLI := lpj=246205838 raid=noautodetect
+[ arm/ebf-imx6ull ]:
+ ARCH := arm
+ XARCH := $(ARCH)
+ CPU ?= cortex-a9
+ MEM ?= 512M
+ QEMU ?= v4.1.1
+ QEMU_US ?= 0
+ LINUX ?= v4.19.35
+ BUILDROOT?= 2020.02
+ NETDEV_LIST ?= smc91c111 lan9118
+ NETDEV ?= smc91c111
+ SERIAL ?= ttymxc0
+ ROOTDEV_LIST := /dev/mmcblk0 /dev/ram0 /dev/nfs
+ ROOTDEV ?= /dev/mmcblk0
+ FSTYPE ?= ext4
+ ORIIMG ?= arch/$(ARCH)/boot/zImage
+ DIMAGE ?= imx6ull-nand-npi.dtb
+ ORIDTB ?= arch/$(ARCH)/boot/dts/$(DIMAGE)
+ KIMAGE ?= $(BSP_KERNEL)/$(LINUX)/zImage
+ KRELEASE?= $(BSP_KERNEL)/$(LINUX)/kernel.release
+ DTB ?= $(BSP_KERNEL)/$(LINUX)/$(DIMAGE)
+ ROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.gz
+ UROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.cpio.uboot
+ HROOTFS ?= $(BSP_ROOT)/$(BUILDROOT)/rootfs.$(FSTYPE)
+ QTOOL[OS_trusty] ?= $(BSP_QEMU)/$(QEMU)/bin/qemu-system-$(XARCH)
+ CCORI ?= internal
+```
+**make boot**
+```
+ubuntu@linux-lab:/labs/linux-lab$ make boot
+LOG: Generating rootfs image for uboot ...
+Image Name:
+Created: Tue Nov 29 23:27:23 2022
+Image Type: ARM Linux RAMDisk Image (uncompressed)
+Data Size: 767409 Bytes = 749.42 KiB = 0.73 MiB
+Load Address: 00000000
+Entry Point: 00000000
+sudo qemu-system-arm -M vexpress-a9 -cpu cortex-a9 -m 128M -net nic,model=lan9118 -net tap -smp 1 -kernel /labs/linux-lab/boards/arm/vexpress-a9/bsp/uboot/v2020.04/u-boot -no-reboot -drive if=pflash,file=tftpboot/pflash.img,format=raw -nographic
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+audio: Failed to create voice `lm4549.out'
+
+
+U-Boot 2020.04-dirty (May 06 2020 - 16:17:30 +0800)
+
+DRAM: 128 MiB
+WARNING: Caches not enabled
+Flash: 128 MiB
+MMC: MMC: 0
+*** Warning - bad CRC, using default environment
+
+In: serial
+Out: serial
+Err: serial
+Net: smc911x-0
+Hit any key to stop autoboot: 0
+## Warning: defaulting to text format
+## Booting kernel from Legacy Image at 60003000 ...
+ Image Name: Linux-5.17.0
+ Image Type: ARM Linux Kernel Image (uncompressed)
+ Data Size: 5137000 Bytes = 4.9 MiB
+ Load Address: 60003000
+ Entry Point: 60003000
+ Verifying Checksum ... OK
+## Loading init Ramdisk from Legacy Image at 60900000 ...
+ Image Name:
+ Image Type: ARM Linux RAMDisk Image (uncompressed)
+ Data Size: 767409 Bytes = 749.4 KiB
+ Load Address: 00000000
+ Entry Point: 00000000
+ Verifying Checksum ... OK
+## Flattened Device Tree blob at 60500000
+ Booting using the fdt blob at 0x60500000
+ Loading Kernel Image
+ Loading Ramdisk to 67dba000, end 67e755b1 ... OK
+ Loading Device Tree to 67db3000, end 67db9700 ... OK
+
+Starting kernel ...
+
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+audio: Failed to create voice `lm4549.out'
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+audio: Failed to create voice `lm4549.out'
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+audio: Failed to create voice `lm4549.out'
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+audio: Failed to create voice `lm4549.out'
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+audio: Failed to create voice `lm4549.out'
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+audio: Failed to create voice `lm4549.out'
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+audio: Failed to create voice `lm4549.out'
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+audio: Failed to create voice `lm4549.out'
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Access denied
+
+alsa: Could not initialize DAC
+alsa: Failed to open `default':
+alsa: Reason: Connection refused
+audio: Failed to create voice `lm4549.out'
+Booting Linux on physical CPU 0x0
+Linux version 5.17.0 (ubuntu@linux-lab) (arm-linux-gnueabi-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1 SMP Tue Mar 22 20:40:19 CST 2022
+CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c5387d
+CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
+OF: fdt: Machine model: V2P-CA9
+OF: fdt: Ignoring memory block 0x80000000 - 0x80000004
+Memory policy: Data cache writeback
+Reserved memory: created DMA memory pool at 0x4c000000, size 8 MiB
+OF: reserved mem: initialized node vram@4c000000, compatible id shared-dma-pool
+Zone ranges:
+ Normal [mem 0x0000000060000000-0x0000000067ffffff]
+Movable zone start for each node
+Early memory node ranges
+ node 0: [mem 0x0000000060000000-0x0000000067ffffff]
+Initmem setup node 0 [mem 0x0000000060000000-0x0000000067ffffff]
+CPU: All CPU(s) started in SVC mode.
+percpu: Embedded 15 pages/cpu s30028 r8192 d23220 u61440
+Built 1 zonelists, mobility grouping on. Total pages: 32512
+Kernel command line: route=172.20.67.86 iface=eth0 root=/dev/ram0 console=ttyAMA0
+Unknown kernel command line parameters "route=172.20.67.86 iface=eth0", will be passed to user space.
+printk: log_buf_len individual max cpu contribution: 4096 bytes
+printk: log_buf_len total cpu_extra contributions: 12288 bytes
+printk: log_buf_len min size: 16384 bytes
+printk: log_buf_len: 32768 bytes
+printk: early log buf free: 14816(90%)
+Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
+Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
+mem auto-init: stack:off, heap alloc:off, heap free:off
+Memory: 116616K/131072K available (8192K kernel code, 695K rwdata, 1748K rodata, 1024K init, 151K bss, 14456K reserved, 0K cma-reserved)
+SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
+ftrace: allocating 27708 entries in 82 pages
+ftrace: allocated 82 pages with 3 groups
+trace event string verifier disabled
+rcu: Hierarchical RCU implementation.
+rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
+ Rude variant of Tasks RCU enabled.
+rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
+rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
+NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
+GIC CPU mask not found - kernel will fail to boot.
+GIC CPU mask not found - kernel will fail to boot.
+L2C: platform modifies aux control register: 0x02020000 -> 0x02420000
+L2C: DT/platform modifies aux control register: 0x02020000 -> 0x02420000
+L2C-310 enabling early BRESP for Cortex-A9
+L2C-310 full line of zeros enabled for Cortex-A9
+L2C-310 dynamic clock gating disabled, standby mode disabled
+L2C-310 cache controller enabled, 8 ways, 128 kB
+L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x46420001
+random: get_random_bytes called from start_kernel+0x52c/0x6dc with crng_init=0
+sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
+clocksource: arm,sp804: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns
+Failed to initialize '/bus@40000000/motherboard-bus@40000000/iofpga@7,00000000/timer@12000': -22
+smp_twd: clock not found -2
+Console: colour dummy device 80x30
+Calibrating local timer... 91.67MHz.
+Calibrating delay loop... 1265.66 BogoMIPS (lpj=6328320)
+pid_max: default: 32768 minimum: 301
+Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
+Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
+CPU: Testing write buffer coherency: ok
+CPU0: Spectre v2: using BPIALL workaround
+CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
+cblist_init_generic: Setting adjustable number of callback queues.
+cblist_init_generic: Setting shift to 2 and lim to 1.
+Setting up static identity map for 0x60100000 - 0x60100060
+rcu: Hierarchical SRCU implementation.
+smp: Bringing up secondary CPUs ...
+smp: Brought up 1 node, 1 CPU
+SMP: Total of 1 processors activated (1265.66 BogoMIPS).
+CPU: All CPU(s) started in SVC mode.
+devtmpfs: initialized
+VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 0
+clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
+futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
+NET: Registered PF_NETLINK/PF_ROUTE protocol family
+DMA: preallocated 256 KiB pool for atomic coherent allocations
+cpuidle: using governor ladder
+hw-breakpoint: debug architecture 0x4 unsupported.
+Serial: AMBA PL011 UART driver
+vgaarb: loaded
+SCSI subsystem initialized
+usbcore: registered new interface driver usbfs
+usbcore: registered new interface driver hub
+usbcore: registered new device driver usb
+pps_core: LinuxPPS API ver. 1 registered
+pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti
+PTP clock support registered
+Advanced Linux Sound Architecture Driver Initialized.
+clocksource: Switched to clocksource arm,sp804
+NET: Registered PF_INET protocol family
+IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
+tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
+TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
+TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
+TCP: Hash tables configured (established 1024 bind 1024)
+UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
+UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
+NET: Registered PF_UNIX/PF_LOCAL protocol family
+RPC: Registered named UNIX socket transport module.
+RPC: Registered udp transport module.
+RPC: Registered tcp transport module.
+RPC: Registered tcp NFSv4.1 backchannel transport module.
+PCI: CLS 0 bytes, default 64
+Unpacking initramfs...
+hw perfevents: enabled with armv7_cortex_a9 PMU driver, 5 counters available
+workingset: timestamp_bits=30 max_order=15 bucket_order=0
+squashfs: version 4.0 (2009/01/31) Phillip Lougher
+jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
+9p: Installing v9fs 9p2000 file system support
+io scheduler mq-deadline registered
+io scheduler kyber registered
+Freeing initrd memory: 752K
+physmap-flash 40000000.flash: physmap platform flash device: [mem 0x40000000-0x43ffffff]
+40000000.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000
+Intel/Sharp Extended Query Table at 0x0031
+Using buffer write method
+physmap-flash 40000000.flash: physmap platform flash device: [mem 0x44000000-0x47ffffff]
+40000000.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000
+Intel/Sharp Extended Query Table at 0x0031
+Using buffer write method
+Concatenating MTD devices:
+(0): "40000000.flash"
+(1): "40000000.flash"
+into device "40000000.flash"
+physmap-flash 48000000.psram: physmap platform flash device: [mem 0x48000000-0x49ffffff]
+smsc911x 4e000000.ethernet eth0: MAC Address: 52:54:00:12:34:56
+isp1760 4f000000.usb: isp1760 bus width: 32, oc: digital
+isp1760 4f000000.usb: NXP ISP1760 USB Host Controller
+isp1760 4f000000.usb: new USB bus registered, assigned bus number 1
+isp1760 4f000000.usb: Scratch test failed. 0x00000000
+isp1760 4f000000.usb: can't setup: -19
+isp1760 4f000000.usb: USB bus 1 deregistered
+usbcore: registered new interface driver usb-storage
+ledtrig-cpu: registered to indicate activity on CPUs
+usbcore: registered new interface driver usbhid
+usbhid: USB HID core driver
+NET: Registered PF_PACKET protocol family
+9pnet: Installing 9P2000 support
+Registering SWP/SWPB emulation handler
+aaci-pl041 10004000.aaci: ARM AC'97 Interface PL041 rev0 at 0x10004000, irq 34
+aaci-pl041 10004000.aaci: FIFO 512 entries
+mmci-pl18x 10005000.mmci: Got CD GPIO
+mmci-pl18x 10005000.mmci: Got WP GPIO
+mmci-pl18x 10005000.mmci: mmc0: PL181 manf 41 rev0 at 0x10005000 irq 35,36 (pio)
+10009000.uart: ttyAMA0 at MMIO 0x10009000 (irq = 39, base_baud = 0) is a PL011 rev1
+printk: console [ttyAMA0] enabled
+1000a000.uart: ttyAMA1 at MMIO 0x1000a000 (irq = 40, base_baud = 0) is a PL011 rev1
+1000b000.uart: ttyAMA2 at MMIO 0x1000b000 (irq = 41, base_baud = 0) is a PL011 rev1
+1000c000.uart: ttyAMA3 at MMIO 0x1000c000 (irq = 42, base_baud = 0) is a PL011 rev1
+rtc-pl031 10017000.rtc: registered as rtc0
+rtc-pl031 10017000.rtc: setting system clock to 2022-11-29T15:27:28 UTC (1669735648)
+amba 10020000.clcd: Fixing up cyclic dependency with 0-0039
+clcd-pl11x 10020000.clcd: PL111 designer 41 rev2 at 0x10020000
+clcd-pl11x: probe of 10020000.clcd failed with error -2
+ALSA device list:
+ #0: ARM AC'97 Interface PL041 rev0 at 0x10004000, irq 34
+Freeing unused kernel image (initmem) memory: 1024K
+input: AT Raw Set 2 keyboard as /devices/platform/bus@40000000/bus@40000000:motherboard-bus@40000000/bus@40000000:motherboard-bus@40000000:iofpga@7,00000000/10006000.kmi/serio0/input/input0
+Run /init as init process
+Starting syslogd: input: ImExPS/2 Generic Explorer Mouse as /devices/platform/bus@40000000/bus@40000000:motherboard-bus@40000000/bus@40000000:motherboard-bus@40000000:iofpga@7,00000000/10007000.kmi/serio1/input/input2
+OK
+Starting klogd: OK
+Running sysctl: OK
+Saving random seed: random: dd: uninitialized urandom read (512 bytes read)
+OK
+Starting network: Generic PHY 4e000000.ethernet-ffffffff:01: attached PHY driver (mii_bus:phy_addr=4e000000.ethernet-ffffffff:01, irq=POLL)
+smsc911x 4e000000.ethernet eth0: SMSC911x/921x identified at 0x8c910000, IRQ: 26
+eth: eth0, ip: 172.20.67.68, gw: 172.20.67.86
+OK
+
+Welcome to Linux Lab
+
+```
+## 注意事项
+riscv-lab第一次下载是要下载镜像,所以等待的时间久一些
+## 参考资料
+
+1. https://gitee.com/tinylab/linux-lab
+2. https://gitee.com/tinylab/riscv-lab