在 linux 系统通过修改 DSDT 修复 S3 睡眠

解决方案参考 https://dev.to/epassaro/fix-suspend-issues-on-dell-7405-2-in-1-3l1b 与原文不同的是,他的设备是 Dell 7405 2-in-1 而我的是 Thinkbook 14P, 所以 DSDT 修改略有不同。 反编译出 dsl 之后,找到如下位置: 1 2 3 4 5 6 7 Name (NOS3, Package (0x04) { 0x03, 0x03, 0x00, 0x00 }) 替换为 1 2 3 4 5 6 7 Name (_S3, Package (0x04) { 0x03, 0x03, 0x00, 0x00 }) 同时将 DefinitionBlock ("", "DSDT", 1, "LENOVO", "AMD", 0x00001000) 替换为 DefinitionBlock ("", "DSDT", 1, "LENOVO", "AMD", 0x00001001),这里是加了个版本号,让内核可以识别到。

<span title='2022-04-24 01:10:23 +0800 +0800'>April 24, 2022</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;moonheart

在 aspnet core 中使用类似 javaagent 的方式注入程序集

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/platform-specific-configuration?view=aspnetcore-6.0#activation 通过这种方式, 可以实现不对原有项目做任何更改, 可以直接对已发布好的程序文件进行自定义程序集注入. 可以使用在 k8s 的 init-container 中注入统一的日志, 配置, 健康检查, 服务注册, 等等. 需要配置三个关键的环境变量: 使用 ASPNETCORE_HOSTINGSTARTUPASSEMBLIES 指定要使用的程序集 使用 DOTNET_ADDITIONAL_DEPS 指定要添加的依赖 使用 DOTNET_SHARED_STORE 来指定依赖查找的目录 另一个额外注意点是, 我们注入的程序集需要支持主程序的版本.

<span title='2022-02-14 10:31:23 +0800 +0800'>February 14, 2022</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;moonheart

esxi 中的 CentOS lvm扩容磁盘

首先在 vCenter 控制面板中增加磁盘容量并重启系统 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 root@server ~]# fdisk /dev/sda Command (m for help): p Disk /dev/sda: 171.8 GB, 171798691840 bytes, 335544320 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000dbca9 Device Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 167772159 82836480 83 Linux Command (m for help): d Partition number (1,2, default 2): 2 Partition 2 is deleted Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (2-4, default 2): First sector (2099200-335544319, default 2099200): Using default value 2099200 Last sector, +sectors or +size{K,M,G} (2099200-335544319, default 335544319): Using default value 335544319 Partition 2 of type Linux and of size 159 GiB is set Command (m for help): p Disk /dev/sda: 171....

<span title='2020-01-13 21:21:00 +0800 +0800'>January 13, 2020</span>&nbsp;·&nbsp;3 min&nbsp;·&nbsp;moonheart

MIUI10 刷入 opengapps

MIUI系统中没有带谷歌服务,而手动安装的非系统应用会有一些权限问题,导致奇怪的Bug,于是我考虑刷入opengapps。 这里我选择的是micro版本。 注意 刷入opengapps后已经修改了system分区,这时候不能直接开机。因为内核有验证system分区完整性,直接开机会卡米。这时需要再刷入Magisk或者SuperSU对内核进行patch,才能正常开机。 开机向导FC 开机后,此时开机向导已经被替换成了Google了的,这时遇到的第一个问题是开机向导过不去,因为MIUI系统对Android做了一些修改,导致Google的开机向导在在调用一些方法的时候FC。 需要禁用开机向导才能继续。 重启进入Recovery,在/system/build.prop 中加入如下代码后重启继续。 1 ro.setupwizard.mode=DISABLED 或者使用 这个Zip包 刷入禁用开机向导。 Webview丢失 开机后,很多应用FC,查看日志后发现没有检测到Webview,在开发者选项中查看Webview实现,发现是空的,怎么回事呢?因为opengapps替换了MIUI系统自带的WebviewGoogle,导致系统检测不到Webview。 这时打开opengapps安装包中的 gapps-remove.txt 文件,找到 /system/app/WebViewGoogle 这一行,把它删掉或者在前面加一个#注释掉这一行就行了。 App被覆盖 opengapps会移除一些系统应用,即使它不是stock版本的。这时我们需要使用配置文件。在配置文件中加入不想被覆盖的应用就好了。 比如日历被移除了,因为micro版本安装了Google日历,需要在配置文件中加入 CalendarGoogle 来防止MIUI日历被移除。 权限问题 如果遇到权限问题,并且无法在系统中给予权限的话,可以参考这篇官方Wiki进行设置。

<span title='2019-01-28 17:20:23 +0800 +0800'>January 28, 2019</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;moonheart

MIUI 系统修复音频延迟

在MIUI系统中,在玩某些音游(Arcaea)的时候,需要将延迟调的很高(200~300ms),才能使音画同步,而在原生系统中延迟却非常低(10~30ms)。 这一现象在我的小米6和小米平板4 plus中都遇到了。 之后我在Android官方文档中看到关于音频延迟时间的说明,其中提到: 当前没有 API 可以在运行时确定 Android 设备上通过任何路径的音频延迟时间。 不过,您可以使用下列硬件功能标记了解设备是否能为延迟时间提供任何保证: android.hardware.audio.low_latency 指示 45 毫秒或更短的持续输出延迟时间。 android.hardware.audio.pro 指示 20 毫秒或更短的持续往返延迟时间。 随后通过搜索,在MIUI论坛中发现了这篇帖子【利用android新特性 减低声音延迟】。 通过对比发现,原生系统中的/vendor/etc/permissions/下有android.hardware.audio.low_latency.xml、android.hardware.audio.pro.xml这两个文件,猜测是这两个文件标记了设备是否支持这两个特性,而这也与上文提到的文档中的描述一致。 手动将这两个文件复制到MIUI系统的/system/vendor/etc/permissions/中后,音频延迟问题解决了。 猜测:一些应用为了降低音频延迟,会检查设备是否支持高性能音频,如果不支持的话会采用传统的延迟更大的方式进行音频输出。 我制作了一个Magisk模块可以按照文中提供的方式对MIUI的音频延迟进行修复。 副作用:如果设备运行内存不足,可能会导致这些支持高性能音频的应用的声音卡顿爆音,这也是我在使用原生系统的时候经常遇到的,清理一下后台程序并重启应用就能解决。

<span title='2019-01-25 23:19:23 +0800 +0800'>January 25, 2019</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;moonheart