本文简要介绍了 Linux SCSI UFS(Universal Flash Storage) 的初始化。契机是解一个 kernel boot 阶段 mount rootfs 失败的的问题: “VFS: Unable to mount root fs on unknown-block(8,6)”。所以,本文最后也介绍了这个问题的原因和解法。
The Linux kernel can act as a watchdog to detect both soft and hard lockups.
建议首先阅读内核文档来了解学习 Linux soft lockup,上面这句话就来自这篇文档,该文档是 soft lockup 的第一手资料。记得著名程序员左耳朵耗子有个访谈,说到学习看第一手资料的重要性!
我这篇文章纯属记录下学习的过程,供以后查询。
本文为 “工欲善其事,必先利其器!” 系列之 tmux。
地球人都知道,tmux 是终端神器,面对网上巨量的使用指南有点懵。
在 github 上面找到 tmux 项目的主页,发现其还在不停的开发迭代。
tmux is part of the OpenBSD base system, tmux currently sees a new release approximately every six months - the same schedule as OpenBSD, around May and October.
By default, three printlevel of DEBUG function in edk2\QcomModulePkg\Library\avb\VerifiedBoot.c get printed, they are EFI_D_WARN, DEBUG_INFO and EFI_D_ERROR, this picece of paper will tell us how to let EFI_D_VERBOSE get printed too at startup.
AVBVersion = GetAVBVersion ();
DEBUG ((EFI_D_VERBOSE, "[EFI_D_VERBOSE]:AVB version %d\n", AVBVersion));
about EDK2 https://www.tianocore.org/
“工欲善其事,必先利其器!”
话说上次将 code-server 打造成了集 C/C++/Python 编辑,编译和 GDB debug 于一身的利器,最近却有近两个月没得用,还真有些不习惯。
现在服务器不支持启动 Docker,在订购的个人 workstation 到货,安装好统一的 Ubuntu 系统之后,俺就马上安装 Docker, 启动了 code-server,没错,还是熟悉的味道~
保存在 docker.io/jgsun/coder-server 的 image 还可以使用,但是有一段时间没有更新了,而且还想安装几个有用的 extension, 比如 GitLens — Git supercharged
等,所以就开动 docker build “机器”,构建新的 docker image。在这过程中,遇到和解决了一些新的问题,借此机会优化了 Dockerfile. 点我查看新版Dockerfile
下图来自文章 Linux kernel GPIO user space interface ,可概括这篇文章的内容。本文介绍 Linux GPIO driver的初始化,用户态访问 GPIO 和内核态访问 GPIO。