列出支持的开发板
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 # 仅显示 ARCHmake list-short # ARCH 和 LINUXmake 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-a9make 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.10make 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-buildmake kernel-build# 或者make force-kernel-build
复制代码
下面的命令则删掉所有内核目标的时间戳:
该功能同样适用于 root, uboot 和 qemu。
总结
通过一条命令即可启动默认 arm/vexpress-a9 虚拟开发板,
这里提供运行的效果演示,感兴趣的小伙伴们快去看看吧。
http://showterm.io/95482da9875d9e2aba5a7
明天为大家带来 《Linux-Lab 入门:详细步骤分解》。
评论