写点什么

Linux Lab 进阶: Rootfs 文件系统 &Linux 与 Uboot 调试

用户头像
贾献华
关注
发布于: 2021 年 02 月 07 日

Rootfs 文件系统

内置的 rootfs 很小,不足以应付复杂的应用开发,如果需要涉及高级的应用开发,需要使用现代的 Linux 发布包。

环境提供了针对 arm32v7 的 Ubuntu 18.04 的根文件系统,该文件系统已经制作成 Docker 镜像,以后有机会再提供更多更好的文件系统。

可以通过 Docker 直接使用:

docker run -it tinylab/arm32v7-ubuntu
复制代码

可以将文件系统提取出来在 Linux Lab 中使用:

(host)$ sudo apt-get install -y qemu-user-static
复制代码

ARM32/vexpress-a9 (用户名和密码均为 root):

(host)$ tools/root/docker/extract.sh tinylab/arm32v7-ubuntu arm(lab )$ make boot B=vexpress-a9 U=0 V=1 MEM=1024M ROOTDEV=/dev/nfs ROOTFS=$PWD/prebuilt/fullroot/tmp/tinylab-arm32v7-ubuntu
复制代码

ARM64/raspi3 (用户名和密码均为 root):

(host)$ tools/root/docker/extract.sh tinylab/arm64v8-ubuntu arm(lab )$ make boot B=raspi3 V=1 ROOTDEV=/dev/mmcblk0 ROOTFS=$PWD/prebuilt/fullroot/tmp/tinylab-arm64v8-ubuntu
复制代码

其他 Docker 中更多的根文件系统:

$ docker search arm64 | egrep "ubuntu|debian"arm64v8/ubuntu   Ubuntu is a Debian-based Linux operating system  25arm64v8/debian   Debian is a Linux distribution that's composed  20
复制代码

Linux 与 Uboot 调试

调试 Linux

使用调试选项编译内核:

make feature f=debugmake kernel-olddefconfigmake kernel
复制代码

编译时使用一个线程:

make kernel JOBS=1
复制代码

如果是通过 vnc 或者 webvnc 登陆的,可运行如下命令直接调试:

make debug
复制代码

将打开一个新的终端窗口,从 .gdb/kernel.default 加载脚本,自动运行 gdb。

但是,如果是通过 bashssh 或者 webssh 登陆的,请通过相应方式再登陆一次 Linux Lab,再次运行如下命令即可:

make debug
复制代码

主要原因是,控制台不支持多窗口,需要手动开多个窗口,方便一边运行,一边调试。

如果想修改调试脚本,可以拷贝一份到 .gdb/kernel.user,这样就可以无缝升级:

cp .gdb/kernel.default .gdb/kernel.user
复制代码

以上命令等价于运行如下命令:

make debug linux# 或make boot DEBUG=linux
复制代码

自动测试调试可以运行如下命令:

make test-debug linux# 或make test DEBUG=linux4.6.2 
复制代码

找出内核崩溃出错地址所在的代码行:

make kernel-calltrace func+offset/length
复制代码

调试 Uboot

如果想调试 Uboot(采用 .gdb/uboot.default 调试脚本):

make debug uboot# 或make debug DEBUG=uboot
复制代码

如果是通过控制台登陆的 Linux Lab,不会自动拉起窗口,请按提示再次执行如下命令即可开启调试:

make debug uboot
复制代码

同样可以自动测试调试:

make test-debug uboot# 或make test DEBUG=uboot
复制代码

同样地,如果想修改调试脚本,可以拷贝一份到 .gdb/uboot.user,这样就可以无缝升级:

cp .gdb/uboot.default .gdb/uboot.user
复制代码

Linux Lab v0.7 真盘开发

今天已经收到 Linux Lab v0.7 真盘,先给大家展示一下运行效果。


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

贾献华

关注

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

https://2020.iosdevlog.com

评论

发布
暂无评论
Linux Lab 进阶: Rootfs 文件系统 &Linux 与 Uboot 调试