列出支持的开发板
ubuntu@linux-lab:/labs/linux-lab$ make list
[ aarch64/raspi3 ]:
ARCH = arm64
CPU ?= cortex-a53
LINUX ?= v5.1
ROOTDEV_LIST := /dev/mmcblk0 /dev/ram0
ROOTDEV ?= /dev/mmcblk0
[ aarch64/virt ]:
ARCH = arm64
CPU ?= cortex-a57
LINUX ?= v5.1
ROOTDEV_LIST := /dev/sda /dev/vda /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/vda
[ arm/mcimx6ul-evk ]:
ARCH = arm
CPU ?= cortex-a9
LINUX ?= v5.4
ROOTDEV_LIST := /dev/mmcblk0 /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/mmcblk0
[ arm/versatilepb ]:
ARCH = arm
CPU ?= arm926t
LINUX ?= v5.1
ROOTDEV_LIST := /dev/sda /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/ram0
[ arm/vexpress-a9 ]:
ARCH = arm
CPU ?= cortex-a9
LINUX ?= v5.1
ROOTDEV_LIST := /dev/mmcblk0 /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/ram0
[ i386/pc ]:
ARCH = x86
CPU ?= qemu32
LINUX ?= v5.1
ROOTDEV_LIST ?= /dev/hda /dev/ram0 /dev/nfs
ROOTDEV_LIST[LINUX_v2.6.34.9] ?= /dev/sda /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/hda
[ mips64el/ls2k ]:
ARCH = mips
CPU ?= mips64r2
LINUX ?= loongnix-release-1903
LINUX[LINUX_loongnix-release-1903] := 04b98684
ROOTDEV_LIST := /dev/sda /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/ram0
[ mips64el/ls3a7a ]:
ARCH = mips
CPU ?= mips64r2
LINUX ?= loongnix-release-1903
LINUX[LINUX_loongnix-release-1903] := 04b98684
ROOTDEV_LIST ?= /dev/sda /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/ram0
[ mipsel/ls1b ]:
ARCH = mips
CPU ?= mips32r2
LINUX ?= v5.2
ROOTDEV_LIST ?= /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/ram0
[ mipsel/ls232 ]:
ARCH = mips
CPU ?= mips32r2
LINUX ?= v2.6.32-r190726
ROOTDEV_LIST := /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/ram0
[ mipsel/malta ]:
ARCH = mips
CPU ?= mips32r2
LINUX ?= v5.1
ROOTDEV_LIST := /dev/hda /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/ram0
[ ppc/g3beige ]:
ARCH = powerpc
CPU ?= generic
LINUX ?= v5.1
ROOTDEV_LIST := /dev/hda /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/ram0
[ riscv32/virt ]:
ARCH = riscv
CPU ?= any
LINUX ?= v5.0.13
ROOTDEV_LIST := /dev/vda /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/vda
[ riscv64/virt ]:
ARCH = riscv
CPU ?= any
LINUX ?= v5.1
ROOTDEV_LIST := /dev/vda /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/vda
[ x86_64/pc ]:
ARCH = x86
CPU ?= qemu64
LINUX ?= v5.1
ROOTDEV_LIST := /dev/hda /dev/ram0 /dev/nfs
ROOTDEV_LIST[LINUX_v3.2] := /dev/sda /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/ram0
[ arm/ebf-imx6ull ]:
ARCH = arm
CPU ?= cortex-a9
LINUX ?= v4.19.35
ROOTDEV_LIST := /dev/mmcblk0 /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/mmcblk0
复制代码
如果只想查看特定的架构,插件或者模糊匹配,可以使用 ARCH
,FILTER
:
make list ARCH=arm
# next 分支还可以查看真板
make list FILTER=imx6ull
复制代码
更多用法:
make list-board # 仅显示 ARCH
make list-short # ARCH 和 LINUX
make list-base # 不包含插件
make list-plugin # 仅包含插件
make list-full # 所有板子信息
make list-real # 仅真实硬件
make list-virt # 仅虚拟开发板
复制代码
真实开发板
从 v0.6 版以后,为了方便进一步开展外围设备驱动等实验,Linux Lab 开始支持真实的硬件开发板,选择这类开发板时请务必确保有购买开发板并正确连接到开发主机。
这类开发板可以用 make list-real
单独列出来:
$ make list-real
[ arm/ebf-imx6ull ]:
ARCH = arm
CPU ?= cortex-a9
LINUX ?= v4.19.35
ROOTDEV_LIST := /dev/mmcblk0 /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/mmcblk0
复制代码
由于不同的真实硬件开发板差异较大,所以在板级目录有提供专门的开发文档,例如:boards/arm/ebf-imx6ull/README.md
。
所有适配过的开发板会统一放置在如下网店供大家选购,选购完毕后可以加微信号 tinylab
申请进入相应的 Linux Lab 开发板群组。
虚拟开发板
系统缺省使用的虚拟开发板型号为 vexpress-a9
,我们也可以自己配置,制作和使用其他的虚拟开发板,具体使用 BOARD
选项,举例如下:
make make BOARD=arm/vexpress-a9
make boot
复制代码
检查开发板特定的配置:
cat boards/arm/vexpress-a9/Makefile
复制代码
配置开发板
每块开发板都有特定的配置,部分配置是可以根据需要进行修改的,比如说内存大小、内核版本、文件系统版本、QEMU 版本,以及其他外设配置,比如串口、网络等。
配置方法很简单,参考现有的板级配置(boards/<BOARD>/Makefile
)修改即可,以下命令会通过 vim 调出当前开发板的本地配置文件(boards/<BOARD>/.labconfig
):
建议不要一次性做太大的调整,通常只建议修改内核版本,这样可直接用如下命令达到:
make list-linux
# v4.12 v4.5.5 v5.0.10 [v5.1]
make local-config LINUX=v5.0.10
make list-linux
# v4.12 v4.5.5 [v5.0.10] v5.1
复制代码
如果想把相关改动提交进上游代码仓库,请使用 board-edit
和 board-config
,否则,建议使用 local-edit
和 local-config
,这样可以方便同步上游的改动而不产生任何冲突。
一键自动编译
v0.3 以及之后的版本默认增加了目标依赖支持,所以,如果想编译内核,直接:
make kernel-build
# 或者
make build kernel
复制代码
它将自动完成所有需要的工作,当然,依然可以跟以前一样手动指定某个目标运行。
更进一步地,通过给每个目标完成情况打上时间戳,完成的目标就不会再运行,从而可以节省时间。如果还想再次执行某个历史目标,可以删掉时间戳文件再运行:
make cleanstamp kernel-build
make kernel-build
# 或者
make force-kernel-build
复制代码
下面的命令则删掉所有内核目标的时间戳:
该功能同样适用于 root, uboot 和 qemu。
总结
通过一条命令即可启动默认 arm/vexpress-a9
虚拟开发板,
这里提供运行的效果演示,感兴趣的小伙伴们快去看看吧。
http://showterm.io/95482da9875d9e2aba5a7
明天为大家带来 《Linux-Lab 入门:详细步骤分解》。
评论