分类 计算机 下的文章

【笔记】在联想小新潮7000-15ARR+Manjaro Linux使用pyopencl和amd开源显卡驱动的安装配置

个人笔记,如有转载,请注明出处。
——by realasking


众所周知,amdgpu开源驱动的opengl硬件加速性能比amdgpu-pro闭源显卡更好,但其通过mesa实现的opencl只能支持到1.1版,而且并不总能正常的工作。如果能在开源显卡驱动的基础上安装闭源驱动中的opencl支持,显然是非常好的事情。好在AUR中就提供有这样的方案。

安装

yaourt -S opencl-amd ocl-icd opencl-headers clinfo pyopencl-headers python-pyopencl

检查


[realasking@zh-pc ~]$ clinfo 
Number of platforms                               2
  Platform Name                                   AMD Accelerated Parallel Processing
  Platform Vendor                                 Advanced Micro Devices, Inc.
  Platform Version                                OpenCL 2.1 AMD-APP (2906.7)
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd cl_amd_event_callback cl_amd_offline_devices 
  Platform Host timer resolution                  1ns
  Platform Extensions function suffix             AMD

Platform Name                                   AMD Accelerated Parallel Processing
  Platform Vendor                                 Advanced Micro Devices, Inc.
  Platform Version                                OpenCL 2.1 AMD-APP (2906.7)
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd cl_amd_event_callback cl_amd_offline_devices 
  Platform Host timer resolution                  1ns
  Platform Extensions function suffix             AMD

Platform Name                                   AMD Accelerated Parallel Processing
Number of devices                                 1
  Device Name                                     gfx804
  Device Vendor                                   Advanced Micro Devices, Inc.
  Device Vendor ID                                0x1002
  Device Version                                  OpenCL 1.2 AMD-APP (2906.7)
  Driver Version                                  2906.7
  Device OpenCL C Version                         OpenCL C 1.2 
  Device Type                                     GPU
  Device Board Name (AMD)                         Radeon 500 Series
  Device Topology (AMD)                           PCI-E, 01:00.0
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Linker Available                                Yes
  Max compute units                               8
  SIMD per compute unit (AMD)                     4
  SIMD width (AMD)                                16
  SIMD instruction width (AMD)                    1
  Max clock frequency                             1124MHz
  Graphics IP (AMD)                               8.0
  Device Partition                                (core)
    Max number of sub-devices                     8
    Supported partition types                     None
    Supported affinity domains                    (n/a)
  Max work item dimensions                        3
  Max work item sizes                             1024x1024x1024
  Max work group size                             256
  Preferred work group size (AMD)                 256
  Max work group size (AMD)                       1024
  Preferred work group size multiple              64
  Wavefront width (AMD)                           64
  Preferred / native vector sizes
char 4 / 4
short 2 / 2
int 1 / 1
long 1 / 1
half 1 / 1 (cl_khr_fp16) float 1 / 1
double 1 / 1 (cl_khr_fp64) Half-precision Floating-point support (cl_khr_fp16) Denormals No Infinity and NANs No Round to nearest No Round to zero No Round to infinity No IEEE754-2008 fused multiply-add No Support is emulated in software No Single-precision Floating-point support (core) Denormals No Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Correctly-rounded divide and sqrt operations Yes Double-precision Floating-point support (cl_khr_fp64) Denormals Yes Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Address bits 64, Little-Endian Global memory size 2141634560 (1.995GiB) Global free memory (AMD) 2071608 (1.976GiB) Global memory channels (AMD) 2 Global memory banks per channel (AMD) 16 Global memory bank width (AMD) 256 bytes Error Correction support No Max memory allocation 1596849766 (1.487GiB) Unified memory for Host and Device No Minimum alignment for any data type 128 bytes Alignment of base address 2048 bits (256 bytes) Global Memory cache type Read/Write Global Memory cache size 16384 (16KiB) Global Memory cache line size 64 bytes Image support Yes Max number of samplers per kernel 16 Max size for 1D images from buffer 134217728 pixels Max 1D or 2D image array size 2048 images Base address alignment for 2D image buffers 256 bytes Pitch alignment for 2D image buffers 256 pixels Max 2D image size 16384x16384 pixels Max 3D image size 2048x2048x2048 pixels Max number of read image args 128 Max number of write image args 8 Local memory type Local Local memory size 32768 (32KiB) Local memory syze per CU (AMD) 65536 (64KiB) Local memory banks (AMD) 32 Max number of constant args 8 Max constant buffer size 1596849766 (1.487GiB) Preferred constant buffer size (AMD) 16384 (16KiB) Max size of kernel argument 1024 Queue properties
Out-of-order execution No Profiling Yes Prefer user sync for interop Yes Profiling timer resolution 1ns Profiling timer offset since Epoch (AMD) 1580776646713521172ns (Tue Feb 4 08:37:26 2020) Execution capabilities
Run OpenCL kernels Yes Run native kernels No Thread trace supported (AMD) Yes Number of async queues (AMD) 2 Max real-time compute queues (AMD) 0 Max real-time compute units (AMD) 0 SPIR versions 1.2 printf() buffer size 4194304 (4MiB) Built-in kernels (n/a) Device Extensions cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_gl_sharing cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_image2d_from_buffer cl_amd_bus_addressable_memory cl_khr_spir cl_khr_gl_event Platform Name AMD Accelerated Parallel Processing Number of devices 1 Device Name gfx902 Device Vendor Advanced Micro Devices, Inc. Device Vendor ID 0x1002 Device Version OpenCL 2.0 AMD-APP (2906.7) Driver Version 2906.7 (PAL,HSAIL) Device OpenCL C Version OpenCL C 2.0 Device Type GPU Device Board Name (AMD) Unknown AMD GPU Device Topology (AMD) PCI-E, 05:00.0 Device Profile FULL_PROFILE Device Available Yes Compiler Available Yes Linker Available Yes Max compute units 8 SIMD per compute unit (AMD) 4 SIMD width (AMD) 16 SIMD instruction width (AMD) 1 Max clock frequency 1100MHz Graphics IP (AMD) 9.2 Device Partition (core) Max number of sub-devices 8 Supported partition types None Supported affinity domains (n/a) Max work item dimensions 3 Max work item sizes 1024x1024x1024 Max work group size 256 Preferred work group size (AMD) 256 Max work group size (AMD) 1024 Preferred work group size multiple 64 Wavefront width (AMD) 64 Preferred / native vector sizes
char 4 / 4
short 2 / 2
int 1 / 1
long 1 / 1
half 1 / 1 (cl_khr_fp16) float 1 / 1
double 1 / 1 (cl_khr_fp64) Half-precision Floating-point support (cl_khr_fp16) Denormals No Infinity and NANs No Round to nearest No Round to zero No Round to infinity No IEEE754-2008 fused multiply-add No Support is emulated in software No Single-precision Floating-point support (core) Denormals No Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Correctly-rounded divide and sqrt operations Yes Double-precision Floating-point support (cl_khr_fp64) Denormals Yes Infinity and NANs Yes Round to nearest Yes Round to zero Yes Round to infinity Yes IEEE754-2008 fused multiply-add Yes Support is emulated in software No Address bits 64, Little-Endian Global memory size 2684354560 (2.5GiB) Global free memory (AMD) 2553760 (2.435GiB) Global memory channels (AMD) 4 Global memory banks per channel (AMD) 4 Global memory bank width (AMD) 256 bytes Error Correction support No Max memory allocation 912680550 (870.4MiB) Unified memory for Host and Device Yes Shared Virtual Memory (SVM) capabilities (core) Coarse-grained buffer sharing Yes Fine-grained buffer sharing Yes Fine-grained system sharing No Atomics No Minimum alignment for any data type 128 bytes Alignment of base address 2048 bits (256 bytes) Preferred alignment for atomics
SVM 0 bytes Global 0 bytes Local 0 bytes Max size for global variable 821412352 (783.4MiB) Preferred total size of global vars 2684354560 (2.5GiB) Global Memory cache type Read/Write Global Memory cache size 16384 (16KiB) Global Memory cache line size 64 bytes Image support Yes Max number of samplers per kernel 16 Max size for 1D images from buffer 134217728 pixels Max 1D or 2D image array size 2048 images Base address alignment for 2D image buffers 256 bytes Pitch alignment for 2D image buffers 256 pixels Max 2D image size 16384x16384 pixels Max 3D image size 2048x2048x2048 pixels Max number of read image args 128 Max number of write image args 64 Max number of read/write image args 64 Max number of pipe args 16 Max active pipe reservations 16 Max pipe packet size 912680550 (870.4MiB) Local memory type Local Local memory size 65536 (64KiB) Local memory syze per CU (AMD) 65536 (64KiB) Local memory banks (AMD) 32 Max number of constant args 8 Max constant buffer size 912680550 (870.4MiB) Preferred constant buffer size (AMD) 16384 (16KiB) Max size of kernel argument 1024 Queue properties (on host)
Out-of-order execution No Profiling Yes Queue properties (on device)
Out-of-order execution Yes Profiling Yes Preferred size 262144 (256KiB) Max size 8388608 (8MiB) Max queues on device 1 Max events on device 1024 Prefer user sync for interop Yes Number of P2P devices (AMD) 0 P2P devices (AMD) (n/a) Profiling timer resolution 1ns Profiling timer offset since Epoch (AMD) 1580776646713519545ns (Tue Feb 4 08:37:26 2020) Execution capabilities
Run OpenCL kernels Yes Run native kernels No Thread trace supported (AMD) Yes Number of async queues (AMD) 4 Max real-time compute queues (AMD) 0 Max real-time compute units (AMD) 0 SPIR versions 1.2 printf() buffer size 4194304 (4MiB) Built-in kernels (n/a) Device Extensions cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_gl_sharing cl_khr_gl_depth_images cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_image2d_from_buffer cl_khr_spir cl_khr_subgroups cl_khr_gl_event cl_khr_depth_images cl_khr_mipmap_image cl_khr_mipmap_image_writes cl_amd_copy_buffer_p2p NULL platform behavior clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) AMD Accelerated Parallel Processing clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) Success [AMD] clCreateContext(NULL, ...) [default] Success [AMD] clCreateContext(NULL, ...) [other] Success [AMD] clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) Success (1) Platform Name AMD Accelerated Parallel Processing Device Name gfx804 clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) Success (1) Platform Name AMD Accelerated Parallel Processing Device Name gfx804 clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) Success (1) Platform Name AMD Accelerated Parallel Processing Device Name gfx804 ICD loader properties ICD loader Name OpenCL ICD Loader ICD loader Vendor OCL Icd free software ICD loader Version 2.2.12 ICD loader Profile OpenCL 2.2

切换显卡

使用环境变量PYOPENCL_CTX='0''1'

【笔记】使用refind引导的Manjaro和Win10双启动的Secure Boot配置

个人操作笔记,转载请注明出处。

——by realasking

最近,不知什么原因,导致更新系统后grub-fedora这个能支持中文的grub引导器不能正常工作了,只要使用更新的内核,就提示UUID错误,无论是休眠还是根的都找不到,无论用USB Live启动重装grub还是直接在系统中通过重装grub-fedora这个包,都如此。而将其更换为标准的grub则会在启动时提示找不到一个中文的组件,仔细检查也未能找到原因。为了节约时间,决定更换一个启动器。

refind的安装

pacman -S refind-efi refind-drivers refind-theme-maia
refind-install

配置文件

位置在:/boot/efi/EFI/refind/refind.conf

内容为:

timeout 20
resolution 1920 1080
use_graphics_for linux,windows
#确保使用自定义的,才能保证内核参数的传递
scanfor manual,external
#禁止扫描一些多余、重复的内容
dont_scan_dirs boot,EFI/Manjaro,EFI/Boot
menuentry "Manjaro Linux" {
    #manjaro图片是从maia主题中拷贝过去的
    icon EFI/refind/icons/os_manjaro.png
    #volume后面跟的是part guid
    volume 0b6e08ea-62b7-4ba1-9c41-4ba41a6ec29f
    loader /boot/vmlinuz-4.19-x86_64
    initrd /boot/initramfs-4.19-x86_64.img
    #preload的initrd,如amd-ucode等,需要添加在options的最后,空格要用\转义
    options "ro root=UUID=根分区的UUID rw  quiet apparmor=1 security=apparmor resume=UUID=SWAP的UUID udev.log_priority=3 audit=0 acpi_osi=Windows\ 2015 reboot=kbd ivrs_ioapic[32]=00:14.0 amd_iommu=on idle=nomwait bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash initrd=/boot/amd-ucode.img"
}
menuentry "Windows 10" {
    loader \EFI\Microsoft\Boot\bootmgfw.efi
}
include refind-theme-dark/theme.conf

更换主题

git clone https://github.com/samuelmeuli/refind-theme-dark.git
sudo su
cp refind-theme-dark /boot/efi/EFI/refind

然后编辑refind-theme-dark/theme.conf文件,删去其中的所有themes/

再编辑/boot/efi/EFI/refind/refind.conf文件,将最后一行改为:

include refind-theme-dark/theme.conf

再将背景图片用gimp修改为全黑,以保证windowslinux启动时的效果

BIOS设置

重启电脑,按F2进入BIOS设置,在Secure中关闭安全启动、重置Key、进入自定义设置模式,然后按F10保存退出

自定义安全启动

各种安全文件的建立

参考如何在 Linux 系统启用 UEFI 的 Secure Boot

mkdir mok2
cd mok2
echo $(uuidgen) >guid
cat guid 
echo  77fa9abd-0359-4d32-bd60-28f4e78f784b >ms-guid
openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Platform Key/" -keyout PK.key -out PK.crt -days 3650 -nodes -sha256
openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Key Exchange Key/" -keyout KEK.key -out KEK.crt -days 3650 -nodes -sha256
openssl req -new -x509 -newkey rsa:2048 -subj "/CN=Database/" -keyout db.key -out db.crt -days 3650 -nodes -sha256
cert-to-efi-sig-list -g $(cat guid) PK.crt PK.esl
cert-to-efi-sig-list -g $(cat guid) KEK.crt KEK.esl
cert-to-efi-sig-list -g $(cat guid) db.crt db.esl
curl -L http://go.microsoft.com/fwlink/?LinkID=321185 -o MSKEK.der
curl -L http://go.microsoft.com/fwlink/?LinkID=321192 -o MSdbWPCA.der
curl -L http://go.microsoft.com/fwlink/?LinkID=321194 -o MSdbUDSCA.der
openssl x509 -in MSKEK.der -inform DER -out MSKEK.crt
openssl x509 -in MSdbWPCA.der -inform DER -out MSdbWPCA.crt
openssl x509 -in MSdbUDSCA.der -inform DER -out MSdbUDSCA.crt
cert-to-efi-sig-list -g $(cat ms-guid) MSKEK.crt MSKEK.esl
cert-to-efi-sig-list -g $(cat ms-guid) MSdbWPCA.crt MSdbWPCA.esl
cert-to-efi-sig-list -g $(cat ms-guid) MSdbUDSCA.crt MSdbUDSCA.esl
cat KEK.esl MSKEK.esl >realKEK.esl
cat db.esl MSdbWPCA.esl MSdbUDSCA.esl >realDB.esl
sign-efi-sig-list -k PK.key -c PK.crt PK PK.esl PK.esl.signed
sign-efi-sig-list -k PK.key -c PK.crt KEK realKEK.esl realKEK.esl.signed
sign-efi-sig-list -k KEK.key -c KEK.crt db realDB.esl realDB.esl.signed
#manjaro默认挂载了efivarfs分区的
efi-updatevar -f PK.esl.signed PK
efi-updatevar -f realKEK.esl.signed KEK
efi-updatevar -f realDB.esl.signed db

签名过程

与前面参考过程的文章不同,使用refind实现secure boot时需要对多个文件签名,而不是使用grub时那样仅对一个文件签名

cp /boot/efi/EFI/refind/refind_x64.efi refind_x64.efi.origin
sbsign --key db.key --cert db.crt --output refind_x64.efi.signed refind_x64.efi.origin
cp refind_x64.efi.signed /boot/efi/EFI/refind/refind_x64.efi
cp refind_x64.efi.signed /boot/efi/EFI/Boot/bootx64.efi
cp /boot/efi/EFI/refind/drivers_x64/ext4_x64.efi ext4_x64.efi.origin
sbsign --key db.key --cert db.crt --output ext4_x64.efi.signed ext4_x64.efi.origin
cp ext4_x64.efi.signed /boot/efi/EFI/refind/drivers_x64/ext4_x64.efi
cp /boot/vmlinuz-4.19-x86_64 vmlinuz-4.19-x86_64.origin
sbsign --key db.key --cert db.crt --output vmlinuz-4.19-x86_64.signed vmlinuz-4.19-x86_64.origin
cp vmlinuz-4.19-x86_64.signed /boot/vmlinuz-4.19-x86_64

后续

重启,进入BIOS,打开Secure Boot,然后就一切正常了。
这个方法也存在一个缺点,即每次更新内核后,都必须对内核再次签名,不如使用grub时方便,不过refindgrub好看一点,而且我的机器上grub出现问题时它能正常使用,暂且如此罢。

【原创】Emacs在Manjaro Linux KDE版上启动服务导致关机卡住的解决办法

个人原创,如有转载,请注明出处。
——by realasking

问题:在Manjaro Linux上,使用KDE桌面的情况下,将Emacs服务启动会导致关机卡住

表现:

  1. 若用systemd设置服务:
    systemctl enable --user emacs
    systemctl start --user emacs

    则重启后关机时长时间无法关机,按Esc能看到关机过程卡在:

    A stop job is running for User Manager for UID 1000
  2. 若不用systemd设置服务,而是在.xprofile中添加:
    /usr/bin/emacs --daemon&

    则重启后关机时也长时间无法关机,关机过程卡在:

    A stop job is running for Session2 of user ...

    诊断:


    日志都正常,关机时导出dmesg信息也未见异常,但是执行以下语句后关机卡住的问题消失:

    pkill -9 emacs
    shutdown -r now

    解决方法:


    第一种方法是安装使用lucid而不使用gtkEmacs版本


    yaourt -S emacs-lucid

    然后可以用在.xprofile中启动Emacs服务。


    第二种方法是仍然使用普通Emacs版本,但系统中需要安装几个包:


    yaourt -S xorg-sessreg gnome-session gnome-keyring

    然后无论用systemd启动服务,还是在.xprofile中设置均可正常工作。


    补充第三种办法:


    第三种方法是仍然使用普通Emacs版本,但配置文件中关闭desktop-save-modesessionauto-save,然后用systemd启动服务即可。

【原创】Windows10下Emacs安装与配置中遇到问题的解决

个人原创,如有转载,请注明出处。

——by realasking

最近需要使用python做一个规模较大的脚本,之前那种采用某种编辑器写完脚本后再执行看结果的做法已经不再合适,我需要一个自由度较高的python的ide。在考察了若干ide后,最后我选择了Emacs,不过,Linux下的配置比较成功,而Windows下则遇到了一些问题,这里对解决过程做了一点记录。

如何右键打开文件

GNU组织提供了一个官方解决方案: MsWindowsGlobalContextMenu

操作如下:

  1. 根据实际情况,我建立了注册表文件rightclick.reg,内容如下:
Windows Registry Editor Version 5.00
;; Be sure to set the correct path to Emacs on your system!
[HKEY_CURRENT_USER\Software\Classes\*\shell]

;; Open file in existing frame
[HKEY_CURRENT_USER\Software\Classes\*\shell\emacsopencurrentframe]
@=&Emacs: Open File
icon=D:\\Program Files\\Emacs\\emacs-26.2-x86_64\\bin\\emacsclientw.exe
[HKEY_CURRENT_USER\Software\Classes\*\shell\emacsopencurrentframe\command]
@=D:\\Program Files\\Emacs\\emacs-26.2-x86_64\\bin\\emacsclientw.exe -n --alternate-editor=\D:\\Program Files\\Emacs\\emacs-26.2-x86_64\\bin\\runemacs.exe\ \%1\

;; Open file in new frame
[HKEY_CURRENT_USER\Software\Classes\*\shell\emacsopennewframe]
@=&Emacs: Open in new Window
icon=D:\\Program Files\\Emacs\\emacs-26.2-x86_64\\bin\\emacsclientw.exe
[HKEY_CURRENT_USER\Software\Classes\*\shell\emacsopennewframe\command]
@=D:\\Program Files\\Emacs\\emacs-26.2-x86_64\\bin\\emacsclientw.exe -n --alternate-editor=\D:\\Program Files\\Emacs\\emacs-26.2-x86_64\\bin\\runemacs.exe\ -c \%1\
  1. D:\Program Files\Emacs\emacs-26.2-x86_64\bin下建立runemacs.exe的快捷方式,然后拷贝到shell:startup
  2. 重启电脑

显示字体太小

解决方法:

Options->Set Default font,选择微软雅黑,字号设置为14,然后Save Options

Emacs启动窗口太小

如果直接运行runemacs.exe启动Emacs,有很多方法设置启动窗口大小和位置,但是在Windows下通过emacsclientw.exe来启动,这些方法基本都无效,唯一有效的方法是将Emacs启动窗口设为最大化,做法是将如下语句添加到init.el中:

(add-hook 'window-setup-hook 'toggle-frame-fullscreen t)
(add-to-list 'default-frame-alist '(fullscreen . maximized))

之所以一定要使用服务器-客户端的模式启动Emacs,是因为Windows下Emacs启动实在太慢了。

打开英文和希腊字母混合的文档乱码

解决办法:

1.下载unicad

2.拷贝到.emacs.d/lisp文件夹下

3.将如下语句添加到init.el中:

(push (expand-file-name ~/.emacs.d/lisp) load-path)
(require 'unicad)

【原创】Microsoft Edge Dev安装后无法启动的解决办法

个人原创,如有转载,请注明出处。
——by realasking

最近将系统中的UC等浏览器卸载了,但google-chrome因为一些众说周知的原因使用上有些许不便,之前就听闻微软的edge开发版使用了chromium内核,于是就想试一试。

上周,到Microsoft Edge Dev官网下载并安装了该版本,但是除了第一次正常弹出,始终无法启动。后来发现,若是打开cmd,然后进入到浏览器安装目录,用命令执行就能启动。昨天微软更新了新版本,于是进行了重装,但是还是无法使用,在网上反复搜索无果后,就检查了一下日志。

用事件查看器发现,Windows日志-系统中有如下错误:

应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 LAP-REALASKING\realasking SID (S-1-5-21-2267091188-1510826362-859863117-1001)授予针对 CLSID 为  {2593F8B9-4EAF-457C-B68A-50F6B8EA6B54} 、APPID 为  {15C20B67-12E7-4BB6-92BB-7AFF07997402}  的 COM 服务器应用程序的 本地 激活 权限。此安全权限可以使用组件服务管理工具进行修改。

于是就打开注册表,找到:

计算机\HKEY_CLASSES_ROOT\AppID\{15c20b67-12e7-4bb6-92bb-7aff07997402}

单击右键,点击权限-高级,更改所有者为本地当前用户,然后重启计算机,一切就都正常了。

最新文章

最近回复

  • realasking: 哪里的话,还要非常感...
  • cnfczn: 发送留言报错:in_...
  • cnfczn: 大狮兄666,以前经...
  • realasking: 最近还行啊,就是上网...
  • cnfczn: 大狮兄,好久不见啊....
  • realasking: 您好。有什么问题就在...
  • Eric Chen: 作者你好!最近折腾中...

分类

归档

其它