分类 Windows10 下的文章

[笔记]自己笔记本上最快的python补全方案设置

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

——by realasking

2020-03-26 增加关于(jedi:setup)的说明

2020-03-21 最初版本

最近一两年,因为使用python比较多,而其它ide总有让人不满意的地方,以及一些其它原因,就将主要使用的编辑器从原先使用的Linux下的vimWindows下的notepad++统一替换为了Emacs。经过较长时间的磨合和多次重构配置文件,Emacs环境已经基本符合自己的习惯。然而,python补全始终是个比较大的问题:在Linux下使用elpycompany虽然有可以感知的延迟,但是还能忍受,在Windows 10下延迟就很大了,特别是补全np.array之类的内容的时候,能等待数秒,甚至十几秒。

这一两年来,翻遍了网页也没有找到解决办法,于是就开始尝试其它方案,最近两天终于折腾出一个反应明显更快的配置。我使用了Emacs-jediauto-completeformat-all,以及Emacs自带的python-mode,在LinuxWindows下虽然仍然有延迟,但比起elpylsp来说,补全还是快了不少,经过简化的配置如下:

(defvar myPackages
  '(format-all
    jedi
   ))
(mapc #'(lambda (package)
      (unless (package-installed-p package)
        (package-install package)))
      myPackages)
(setq python-shell-interpreter "ipython"
      python-shell-interpreter-args "--simple-prompt -i")
(global-set-key [f6] 'run-python)
(defun python-mode-modify()
  (hs-minor-mode t)
  )
(add-hook 'python-mode-hook (lambda ()
                  (jedi:ac-setup)
                  (setq ac-use-quick-help nil)
                  (setq jedi:tooltip-method nil)
                  (setq jedi:complete-on-dot t)
                  (auto-complete-mode 1)))
(add-hook 'python-mode-hook 'python-mode-modify)

补充:有人问我为什么不写(jedi:setup),这个在jedi的官网上是有说明的,如果只需要补全,用(jedi:ac-setup)就够了,如果还需要签名文档提示、函数参数表之类的,就用(jedi:setup)。用(jedi:ac-setup)的时候的确不需要设置(setq jedi:tooltip-method nil)这一句,这一句的意思是在minibuffer中显示签名文档提示,简化配置贴上来的时候我忘了删了。

[笔记]中国移动光宽带用户下载Github项目中releases压缩包的办法

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

——by realasking

我家用的中国移动送的移动光宽带,以前在家干活儿时间少,没有觉得有啥不便,最近因为疫情问题,没有出家门,终于觉得移动光宽带上某些站点实在难以忍受了。

最近一段时间,用移动光宽带下载Github上的项目的releases包和更新AUR里的很多包,速度都慢到令人发指。上午8点到10点,下午2点到4点稍快,能达到50KiB/s,其它时候都在7~8KiB/s,而且关键是,如果挂在那里不管,下载一段时间后就会中断。Github的东西又不能续传,更新几次VTKLAMMPS等等简直要了老命了。百度网盘的离线下载就是废物,技术水平可能太水了,尽管买了超级会员,离线下载的时候总是资源不存在。

好在经过一番搜索,找到了解决的办法,直接用微软账号登录offcloud.com,然后把链接拷贝到页面上的对话框,什么都不用再改,直接回车,就能开始顺利下载了,下载速度基本上保持在120KiB/s~2MiB/s,也没中断,很好了。只是AUR的更新就得手动完成,不过这也不算麻烦,可以将就用着了。

[原创]无光线传感器笔记本上自动调整亮度的设置

2020-03-03:补充和clight作者交流后得知的扩充功能的方法

2020-02-21:创建文章

本文章中的操作为原创内容,适用于Manjaro Linux和Microsoft Windows 10,其余环境未作尝试,软件从网上获得。本文如有转载,请注明出处。
——by realasking

最近一直写东西,眼睛有些受不了,但是自己的电脑都没有光线传感器,亮度得不断调整,为了解决这个问题,就在网上搜索了一下,在Manjaro和Win10上分别找到了实现办法,记录如下:

使用Manjaro Linux的联想小新潮7000笔记本实现应用摄像头测光的屏幕亮度自动调整

安装clight和clightd

yaourt -S clight-git clightd-git

clight的配置

该软件安装之后,重启计算机服务就会自动打开,但是默认调光是线性的,没有考虑到两个问题:
1.人的视觉感受不是线性的
2.光线强到一定程度发生溢出之后的所有量化值都一样了
所以需要我们重新配置
该软件配置文件位置在:

/etc/default/clight.conf

根据说明,我调整了这几项:

#调光步长
backlight_trans_step = 0.05;
#图片亮度取值为[0,1],然后分成11个刻度,每个刻度对应屏幕约化亮度
ac_backlight_regression_points = [ 0.0, 0.082, 0.133, 0.2046, 0.2758, 0.33, 0.385, 0.408, 0.52, 0.69, 1.0 ];
batt_backlight_regression_points = [ 0.0, 0.08, 0.128, 0.19, 0.25, 0.297, 0.338, 0.35, 0.44, 0.57, 0.80 ];
#用5帧的结果调光
captures = 5;
#北京的经纬度
latitude = 39.9;
longitude = 116.5;

两组对应亮度的参数我均以最近白天靠阳台房间窗口背光处笔记本云很少的时候的笔记本适合我的感观的亮度作为基准,对应于第7,8个数字,其余部分尽量平滑的变化到最大值和最小值,然后再根据自己的感受做了一定调整。高亮度部分不如低亮度部分可靠,对应的点太少。
使用中感觉要好了不少,但是在夜间,有时测光后亮度会非常亮,这种感觉不好,尚不知原因。

创建clight个人模块,增加夜间停用自动调光功能

夜间有时自动调光亮度过亮,不知道原因,但win下没有这问题,经过和作者交流(夜间停用调光),得知可以通过创建个人模块的办法来解决,做法是:

创建一个c语言模块文件

比如叫a.c。
我所用的模块是将作者回复我的内容稍作修改实现的。我加上夜间先调光的内容,将夜间的亮度先设置为0.16,然后再关闭。

编译为模块

gcc -shared -fPIC a.c -o NightOFF -Wno-unused

然后拷贝到:

a="~/.local/share/clight/modules.d"
mkdir "$a" && cp NightOFF "$a"

详情见自定义模块

然后重启就好了。
该软件作者非常热情,回复很积极,很开心。

Windows 10下用摄像头测光并调整亮度的办法

软件的选择

Windows下曾经有多个软件可以实现这样的功能,然而,现在已经不容易找到了,经过反复搜索,找到了BLUntrl和SoftonEyes这两个还能下载使用的软件。然而,这两个软件均不能自己设定调光频率而且摄像头持续开启,其中BLUntrl还需要结合nircmd才能使用,会导致不断弹窗。
不过摄像头的开闭可以通过打开关闭程序来实现,所以最终选择使用SoftonEyes。

软件安装

解压SoftonEyes到D:\Tools\SoftonEyes,用choco安装AutoHotKeys和AutoHotKeys compiler

软件配置

建立AdjustBrightness.ahk,内容如下:

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
Loop
{
   Run, D:\Tools\SoftonEyes.exe
     Sleep, 10000
   Run, taskkill /im SoftonEyes* /F,,Hide
     Sleep, 1800000
}
Return

编译该文件,然后把快捷方式加入开机运行即可。

【笔记】使用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出现问题时它能正常使用,暂且如此罢。

使用AMD Ryzen 2500U CPU的联想小新潮7000-15ARR笔记本安装Manjaro Linux+Win10双系统记录

本文系个人折腾笔记,如有转载,请注明出处。
——by realasking

2019-12-30:增加tpm、hdaudio、atheros无线网卡设置和读卡器错误的忽略和修正办法

2019-08-11:创建文章

软硬件环境

硬件配置

设备 型号
CPU AMD RyzenTM 5 PRO 2500U
GPU AMD RadeonTM Vega8
AMD RadeonTM RX540
Disks Acer VT500M M.2 NVMe SSD 256GB
Seagate ST2000LM007 SATA 2TB
RAM 20GB

软件环境

在SSD中已经预装有Win10系统,SSD和SATA硬盘均已采用GPT格式分区,除开efi和恢复分区外,两盘均只划分了一个分区,系统分区和efi分区在SSD上,efi分区大小为260MB

为了安装manjaro,将SSD系统分区压缩了50GB,分别分为8GB的Swap和42GB的/,然后将SATA压缩了80GB,分为/home。

BIOS设置中已经关闭了安全启动。

安装中遇到的问题和解决

用manjaro安装U盘或移动硬盘无法启动系统

现象:使用USB3.0的U盘或移动硬盘做的安装盘,开机时已经按了F12调出启动菜单并选择了对应选项,结果继续启动Windows

解决:换成USB2.0的U盘制作安装盘,然后插到右侧USB2.0的接口启动电脑进行安装

点击安装选项后黑屏失去响应

现象:点击manjaro安装盘启动时的grub菜单中的安装选项后黑屏失去响应

解决:光标移动到grub菜单的安装选项,按e键,然后在linux开头的行的末尾输入iommu=soft,再按Ctrl-x

安装时的分区设置

做法:

将efi分区挂载点设置为/boot/efi,分区设置为保留
将SSD上划分出的42GB空间挂载点设置为/,分区格式化ext4
将SATA上划分出的80GB空间挂载点设置为/home,分区格式化ext4

安装后启动黑屏无法进入系统

现象:安装好后,从grub启动,发生黑屏,无法进入系统

解决:在grub菜单的manjaro选项,按e键,然后在linux开头行的末尾输入ivrs_ioapic[32]=00:14.0,再按Ctrl-x。启动系统后,以root编辑/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT的变量的末尾添加ivrs_ioapic[32]=00:14.0,保存后执行:

sudo update-grub

安装后开机启动报acpi的背光错误

现象:启动时报如下错误:

[FAILED] Failed to start Load/Save Screen Backlight Brightness of backlight:acpi_video0
See 'systemctl status systemd-backlight@backlight:acpi_video0.service' for details.

解决:执行以下命令:

sudo systemctl mask systemd-backlight@backlight:acpi_video0.service

进入系统后重启电脑黑屏

现象:从linux中执行重启命令,黑屏,无响应

解决:以root编辑/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT的变量末尾添加reboot=efi,保存后执行:

sudo update-grub

解决办法更新:

之前的解决办法有时有效,有时又无效,有时还对影响Win10重启,经过折腾发现这个机器开启Secure Boot时重启才能正常。

双系统开启Secure Boot的操作可参考:https://blog.csdn.net/adebies/article/details/77783509
该文是一个完整的解决方案,只需要注意一下自己的系统中的文件路径的区别。

除此之外,目前尝试过能顺利重启动的几组GRUB_CMDLINE_LINUX_DEFAULT参数是:

#第一组
acpi_osi=Linux reboot=efi
#第二组
acpi_osi="Windows 2015" reboot=acpi
#第三组
acpi_osi="Windows 2015" reboot=efi

三组参数的区别不知道。

我的相关的软件版本是:
grub-fedora 2.03
BIOS 7WCN35WW
这可能对结果也有影响,未进一步测试。

运行一段时间后黑屏,xorg无响应

现象:电脑运行一段时间的需要3D渲染的程序后,黑屏,xorg无响应,但能切换到tty下,计算机响应速度仍然很慢,重启后在Xorg.0.log.old中提示Cannot allocate memory

解决:
安装linux 5.3内核:
单击启动器-系统设置-内核
找到linux5.3对应的行,点击安装,重启电脑
再执行

sudo pacman -S linux53-headers

amd可信平台模块不起作用

现象:
执行sudo dmesg -lerr中出现如下错误:

tpm_crb MSFT0101:00: can't request region for resource [mem 0x7e501000-0x7e504fff]

这是amd可信平台模块的firmware尚有问题,无法支持Linux系统,解决办法是屏蔽相关内核模块。
解决办法:
编辑/etc/modprobe.d/blacklist.conf,在其中添加:

blacklist tpm_crb

保存后重启。

amd高清音频播放模块无效

现象:
执行sudo dmesg -lerr中出现如下错误:

ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.GPP0.HDAU], AE_NOT_FOUND (20190816/dswload2-159)
snd_pci_acp3x 0000:05:00.5: Invalid ACP audio mode : 1

这不知道是联想还是AMDBIOS问题,还是Linux对相关功能的支持问题,目前也只能屏蔽相关内核模块,这样可以消除第二条错误信息。
解决办法:
编辑/etc/modprobe.d/blacklist.conf,在其中添加:

blacklist snd_pci_acp3x

保存后重启。

一些场合下无线网卡断网

现象:
有些情况下,机器内置的atheros无线网卡虽然显示仍连接,但没有网速,也打不开网页,需要手工重连才能使用,而其它电脑却一直正常。

解决办法:
编辑/etc/modprobe.d/atheros.conf,在其中添加:

options ath10k_pci swenc=1 msi=1 ips=0 fwlps=0 swlps=0

保存后重启。

还有另一种解决办法(未验证):
编辑/etc/modprobe.d/blacklist.conf,在其中添加:

blacklist ideapad_laptop

保存后重启。

后一种办法可能影响键盘或触摸板,具有一定风险性。

BIOS的bug导致读卡器无法卸载

现象:
读卡器插入SD卡后能自动挂载,但点击安全删除后又被自动挂载,从而无法卸载
这个问题有人认为和ivrs表错误有关,属于固件bug,也有人声称在thinkpad的电脑上遇到了类似问题,并且用类似前面修复黑屏故障的办法修复,但我在这台电脑上用设置ivrs表参数的办法没有能解决这个问题,不过改变KDE的设置能一定程度上避开它。
具体做法是:
系统设置-可移动存储-移动设备下去除勾选启动移动媒体的自动挂载
这样操作后,插入移动硬盘将不会再自动挂载,不过在托盘指示器和dolphin中仍然可以直接点击移动硬盘进行挂载和安全删除操作,并不会带来太多的不便。

运行ovito渲染时卡死/需要使用opencl 2.0

现象:

  1. 电脑运行ovito 2.9渲染视频文件时,系统卡死,重启后Xorg.0.log.old中没有报错或仍然提示Cannot allocate memory
  2. 需要使用opencl 2.0的一些功能

解决:
安装闭源驱动:

yaourt -S amdgpu-pro-core-meta

然后重启计算机
注意,本机型不需要在/etc/mkinitcpio.conf中添加更多的关于显卡的模块。

下载ovito错误

现象: 用chromium下载ovito,提示完成,但解压总是报如下错误:

tar: Child returned status 2
tar: Error is not recoverable: exiting now

解决:使用firefox下载就好了

用ovito 3.0.0渲染视频文件报错

现象:用新版ovito渲染视频文件直接报错

解决:从aur安装ovito-opt,这是2.9.0的版本,需要修改一下PKGBUID,自己先将ovito 2.9的软件包下载好。

没有bootsplash

现象:manjaro开机没有bootsplash

解决:

  1. 安装相关包
    sudo pacman -S bootsplash-systemd bootsplash-theme-amd
  2. 配置grub
    /etc/default/grub文件的GRUB_CMDLINE_LINUX_DEFAULT变量末尾添加bootsplash.bootfile=bootsplash-themes/amd/bootsplash
    并修改如下行:
    GRUB_GFXMODE=1400x900,1280x960,1368x768,1280x1024,1024x768,auto

    为:
    GRUB_GFXMODE=1920x1080

    然后执行:
    sudo update-bash
  3. 配置内核hook
    编辑/etc/mkinitcpip.conf,修改:
    HOOKS="base udev autodetect modconf block keyboard keymap resume filesystems"

    为:
    HOOKS="base udev autodetect modconf bootsplash-amd block keyboard keymap resume filesystems"

    然后执行:
    sudo mkinitcpio -p linux53

鼠标中键粘贴用不了

现象:选中文字后按鼠标中键无反应;执行xev,发现按中键没有响应,并没有出现button 2的键值。

解决:

  1. 启用模拟三键设置
    建立~/bin/mouseset.sh,并加执行权限,内容如下:
    #!/bin/bash
    #Enable Middle Emulation
    # by realasking
    idm=`xinput |grep "Telink 2.4G Mouse"|grep -v "Control"|head -n 1|cut -d"=" -f2|awk '{print $1}'`
    xinput set-prop ${idm} "libinput Middle Emulation Enabled" 1
  2. 加入开机启动
    系统设置-开机和关机-自动启动中添加脚本文件,选择刚才那个文件,运行于启动即可
  3. 剪切板内容上单击右键,点击配置剪切板,点选同步剪切板和选中内容,然后确定
  4. 注销后重新登录

Emacs启动为服务

执行:

systemctl enable --user emacs
systemctl start --user emacs

最新文章

最近回复

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

分类

归档

其它