写点什么

Linux-Lab 入门:使用开发板

用户头像
贾献华
关注
发布于: 2021 年 02 月 02 日
Linux-Lab 入门:使用开发板

列出支持的开发板

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
复制代码


如果只想查看特定的架构,插件或者模糊匹配,可以使用 ARCHFILTER:


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 local-edit
复制代码

建议不要一次性做太大的调整,通常只建议修改内核版本,这样可直接用如下命令达到:


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
复制代码

下面的命令则删掉所有内核目标的时间戳:


$ make cleanstamp kernel
复制代码

该功能同样适用于 root, uboot 和 qemu。

总结

通过一条命令即可启动默认 arm/vexpress-a9 虚拟开发板,


这里提供运行的效果演示,感兴趣的小伙伴们快去看看吧。

http://showterm.io/95482da9875d9e2aba5a7

明天为大家带来 《Linux-Lab 入门:详细步骤分解》。


发布于: 2021 年 02 月 02 日阅读数: 22
用户头像

贾献华

关注

及时当勉励 岁月不待人 2018.06.04 加入

https://2020.iosdevlog.com

评论

发布
暂无评论
Linux-Lab 入门:使用开发板