
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
转:https://bbs.kanxue.com/thread-271967.htmVT虚拟化技术笔记(part 4)最近在学习VT技术,想把学习过程中记录的笔记分享出来。技术不精,有不对的地方还望指正。代码会发到https://github.com/smallzhong/myvt这个仓库中,目前还在施工中,还没写完。欢迎star,预计4月份完工(最近有点事,有个小测验要准备,可能得拖更一段时间)

vm-entry control用来控制进入虚拟机时候的操作。并不算复杂。具体填充代码如下。

一、背景概述上节说到platform_device加载,触发mt76xx_i2s_driver、soc_driver、mt76xx_pcm_driver驱动程序的probe,这里面做了哪些工作,如下图二、snd_soc_component与snd_soc_dai的关系1、mt76xx_i2s_drv_probe的实现在mt76xx_i2s_driver的probe函数里,执行了snd_soc_re
一、模块化管理alsa音频驱动模块化管理,是linux驱动比较典型的代码架构,app调用snd_pcm_open、snd_pcm_writei、snd_pcm_readi等接口到alsa_lib后,也根据一系列的操作(具体详细调用以及设备节点的操作下节会详细解释)后,调用到alsa_soc,这也是alsa驱动架构的核心,一般情况下,这个alsa_soc基本不会变,从而调用到soc_pcm_open
call指令会将当前指令寄存器中的内容(即这条call指令下一条指令的地址,也就是函数执行完的返回地址)入栈,然后跳到函数对应的地址开始执行。ret指令用于从子函数中返回,ret指令会先弹出当前栈顶的数据,这个数据就是先前调用这个函数的call指令压入的“下一条指令的地址”,然后跳转到这个地址执行。ret指令用于从子函数中返回,ret指令会先弹出当前栈顶的数据,这个数据就是先前调用这个函数的cal

100% packet loss告诉我们 ping 命令没有响应,但是,我们同时也注意到在用户空间程序的日志中,打印出了我们接收到的数据包,说明至少数据包经过路由匹配后被发送到tap0设备,进而转发到连接tap0设备的用户空间程序,按照正常思路,只要我们接收到数据包并且按照规范处理,那 ping 命令收到响应只是迟早的事情。所以,逻辑上来说,TUN/TAP 设备类似一块真实的物理网卡,而绑定 TU

这种设计带来的好处是使得 governor 和 CPU 相关的变频驱动程序的开发可以相互独立进行,并在{BANNED}最佳大限度上实现代码重用,内核开发人员在编写和试验新的 governor 时不会再陷入到某款特定 CPU 的变频技术的硬件实现细节中去,而 CPU 生产厂商在向 Linux 内核中添加支持其特定的 CPU 变频技术的代码时只需提供一个相对来说简单了很多的驱动程序,而不必考虑在各种不

每个 hrtimer_cpu_base 结构体中有一个 hrtimer_clock_base 类型的数组变量 clock_base,目前数组元素是8个,分别用来存放8种到期时间类型的高分辨率定时器。如果不需要迁移,则返回的 hrtimer_clock_base 结构体和调用参数是一样的,否则会返回一个新的要迁移到的 hrtimer_clock_base 结构体。随着系统的运行,高分辨率定时器不停地

linux cvt命令添加分辨率,在Linux中使用xrandr调整分辨率宛琬2021-05-11 00:47:34...
在 ALSA 数据传输中,最容易出现的错误是 underrun 和 overrun。pcm 播放的时候,接口 snd_pcm_writei 返回 -EPIPE,为 underrun(不足)录制音频的时候, 接口 snd_pcm_readi 返回 -EPIPE, 为 overrun(超载)使用 ALSA 架构的驱动程,在实际开发使用过程中,比较常见的错误有 -EPIPE,为什么会出现呢?肯定是系统内







