QEMU 下 SecureBoot 和 EFI 签名的测试

本文将介绍如何在 QEMU 上实验 Secure Boot 的功能,以及如何对一个 EFI Application 进行签名。

首先,需要编写一个能在QEMU 上运行的,打开 Secure Boot 功能的 BIOS。编译命令如下:

build -a X64 -p OvmfPkg\OvmfPkgx64.dsc -D SECURE_BOOT_ENABLE=TRUE

即可(在 EDK202008 的版本上测试,打开这个功能后需要用到 OpenSSL 提供的函数,因此需要在 EDK2中加入 OpenSSL 的代码)。接下来,根据【参考1】,我们需要生成下面这些文件用于签名。

[......]

阅读全文

ESP32 作为蓝牙音频接收端

具体方法:

1. https://github.com/tierneytim/btAudio 下载并且安装

2.使用UDA1334A I2S 立体声 解码器 I2S Stereo Decoder, 注意:这个是解码器,并不能直接推动喇叭,所以如果在没有音响的情况下只能使用耳机,

如果你想做一个直接带喇叭的播放器,那么还需要一个功放。

原作使用的是“Adafruit I2S Stereo Decoder - UDA1334A” https://learn.adafruit.com/adafr ... er-uda1334a/pinouts

[......]

阅读全文

sizeof(int)=?

很长一段时间以来,我理所当然的认为 sizeof(int) 是根据编译目标变化的,比如: x86 下应该为 4 Bytes (32-bits),x64 模式下应该为 8 Bytes(64 bits)。但是近日有朋友遇到了问题,我随手实验,用 printf 输出 sizeof(int) 和 sizeof(int *) 结果令我大吃一惊:

x86 下 sizeof(int) ==4 , sizeof(int *)==4

x64 下 sizeof(int) ==4 , sizeof(int *)==8

就是说, x64 下内存指针变成了8Bytes, 但是 int 仍然是[......]

阅读全文

嘉立创 SMT 指南

相信大多数和我一样的非专业玩家在制作自己的作品时经常会受到焊接方面的困扰。比如,经常因为焊接失误导致芯片报废。曾经有哲人说过:“一个人遇到的99%的问题都可以用钱解决,剩下的1%,需要用更多的钱。”同样的,焊接的问题也可以用钱来解决。这次以设计一块CH558芯片的开发板为例,介绍一下如何在嘉立创直接 SMT。

选择嘉立创的主要原因是:他们有PCB 绘制软件,PCB 制作,SMT焊接和元件商城 。这样涵盖了电子制作的全部过程,可以一站式满足需求,这样在最大程度上避免了生产过程不匹配的问题,尽可能节省了设计者的时间。比如,我曾经碰到做主板时贴片二极管符号和实物方向不匹配的问题,第一次遇到问题[......]

阅读全文

Vs2015 Source Level Debug WinHost

前面提到过,EDK2 后面更换了模拟器,每次编译的结果是 WinHost.exe。最近偶然发现,之前给出来的调试方法无效【参考1和2】。具体现象是运行之后遇到 DebugBreak会自动退出不会出现VS2015调试界面。经过研究,可以用下面的方法来实现源码调试:

  1. 编译 EmulatorPkg ,然后运行起来 WinHost.exe
  2. 打开 VS2015(需要管理员权限运行),选择 Debug -> Attach to Process

 3.在出现的界面中选择 WinHost.exe

4.在WinHost 模拟器中发出 Break ,比如,使用【参考[......]

阅读全文

推荐一个三极管仿真软件

在使用 Arduino 驱动一些元件工作的时候需要特别留意元件的功耗,如果元件需要的电流超过了 Arduino 引脚的共给能力就需要想办法进行“扩流”。最简单的方法就是使用三极管。但是三极管工作状态计算是一个麻烦的事情,在我上学的时候老师就曾经讲过“数字电路的搞不赢模拟电路”,时至今日,我的模拟电路知识更是早已归还给了老师。好在近日找到一个好用的在线计算工具在 https://www.falstad.com/circuit/e-pnp.html 这对于设计一个三极管驱动电路是最合适不过的:

首先,放置一个我们需要的三极管(PNP,NPN)。然后设定它工作的放大参数。

例如,Im[......]

阅读全文

UEFI下的 NTFS 驱动

最近研究了一下rufus,这是一款Windows 下的启动 U盘制作工具【参考1】。更难能可贵的是该项目是开源的。同时它提供了UEFI 的 NTFS 和 exFat32 分区的驱动。这次我测试了前者。

1.首先检查一下,系统中有2个 Shell 下可见的分区:U盘的一个和硬盘上的启动分区

2.加载 NTFS 驱动

3. map -r 之后可以看到能识别更多的分区

4. fs1 应该是系统的 recovery 分区

5.这是安装 Windows的分区

本文提到的ntfs 和 exFat32 驱动[......]

阅读全文

Virtualbox 安装 Windows 声卡的方法

 VirtualBox 默认情况下 Window 10 安装之后是没有声卡驱动的。经过搜索,可以用下面的方法解决:

1.确定虚拟机设定如下

2.在这个链接下载驱动程序 https://realtek-download.com/wp-content/uploads/2014/07/6305_vista_win7_pg537.zip

3.安装之后如下,测试可以正常发声

参考:

1. https://superuser.com/questions/1106839/audio-not-working-in-win-10-in-virtualbox-v[......]

阅读全文

招聘信息(新增 AMD 职位,202101)

1.AMD BIOS 的一个职位,具体要求在以下页面:

http://www.lab-z.com/amd-bios/

2.Ampere Computing 的一个职位 ,要求在以下页面可以看到:

http://www.lab-z.com/ac202101/

3. GRL 的一个职位

硬件测试工程师

Position Description:

1. Singal Integrety Test on High/Low-Speed data signals using Oscilloscope, Networking Analyzer, BERT

2[......]

阅读全文