2022年5月

[备忘]关于网站和AUR的一些笔记

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

最近对自己的博客和AUR的几个包做了点维护,因为有些操作长期不做,用的时候就忘了,现在做个记录,备忘。

AUR包维护

  1. AUR更新客户端的ssh公钥

登录aur.archlinux.org,进入My ACCOUNT,在ssh 公钥处添加或替换即可。

ssh公钥的生成:

在客户端执行:

ssh-keygen -t rsa

然后.ssh/id_rsa.pub的内容就是所要的。中间有一步可以自己命名。

  1. essential-pathway-git为例,展示维护过程

2.1 准备

mkdir myAURSupport
cd myAURSupport
git clone ssh://[email protected]/essential-pathway-git.git
cd essential-pathway-git

2.2 修改包

2.3 更新包

makepkg  --printsrcinfo > .SRCINFO
git add PKGBUILD .SRCINFO
git config --global user.email "我的电邮"
git config --global user.name "我的用户名"
git commit -m "更改”
git push

2.4 更新自己系统中的包

yay -Syua

更新博客系统的ssl签名

  1. cloudflare上自己个人网站的所有记录的DNS某状态全部设置为仅DNS,保存
  2. ssh登录网站服务器并切换到root帐号
  3. 移动所有/etc/nginx/conf.d/*.conf到一个备用目录
  4. 删除/etc/letsencrypt/live,renewal,archive下除了README之外的所有文件
  5. yum install python2-certbot-dns-cloudflare.noarch python2-certbot.noarch python2-certbot-nginx.noarch certbot.noarch
  6. certbot certonly,然后选nginx
  7. 修改移动出来的nginx的所有.conf文件中的ssl签名文件路径
  8. conf文件拷贝回/etc/nginx/conf.d/
  9. 重启nginx检查是否正常
  10. 重启服务器
  11. cloudflare上某状态全部重新打开

[原创]Intel数学库引起Manjaro上Quantum Espresso段错误问题的解决

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

最近在联想Legion R7000P 2021款机器上的Manjaro Linux中安装了Quantum Espresso 7.0,希望在平时用作计算脚本测试的平台。结果,将以前的计算脚本拷贝过来,测试时报段错误。错误提示是:

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

pw.x的错误提示中看不到任何有用的信息。难道是新版QE语法有变更?经过在其官网仔细核对,没有看到任何语法错误。那是stackmemlock的设置不对?在/etc/security/limits.conf中都设为unlimited仍然如此。还是说我的编译设置有问题?对照configure和官网的内容检查了PKGBUILD文件中的参数,没有问题。

在彷徨无计之际,就想到在HP的星13Air上试试,万一是显卡原因呢?结果相同的PKGBUILD编译出来的QE在HP这机器上很顺利的跑起来了。于是我又在联想这机器上修改PKGBUILD以关闭显卡支持后再编译,但运行时仍然报段错误。不过这个时候,我有了两个可以对比的对象。在两台电脑上分别用ldd检查链接库,发现联想机器上QE用的数学库链接到了intel-mklOneAPI,但系统的scalapack链接到的是lapackblas,而在HP的机器上,他们都链接到的lapackblas

问题找到了就好办了,在联想机器上先卸载intel的数学库,以及与之相关的程序,然后编译安装QE,再将那些程序装回去即可。在这个过程中,需要下载openmpiPKGBUILD和源代码,稍作修改后重新编译一个不含cuda支持的版本,或者编译使用mpich的包来提供mpi

之所以会遇到这个问题,是因为联想的机器有nvidia RTX-3050Ti显卡,安装tensorflow的时候,会将cudaIntel OneAPI相关的东西都装上,但是Manjaro Linux提供的OneAPI包并未提供Intel版的scalapack,导致QE编译时安装的scalapack又是原始版本的,在数学库调用时就产生了冲突。

[原创]在Manjaro Linux上安装brother-t420w打印机

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

最近到了一个大学工作,为了方便,自己买了一个Brother DCP-T420W打印机。这个打印机是墨仓式彩色打印和扫描复印一体机,并且支持无线打印功能.根据它的说明,在Windows 11、Realme GT Neo和Ubuntu 20.04上安装使用都非常方便。但是,我还有两台机器使用的是Manjaro Linux,官方没有提供相应的解决方案。这两天是五一假期,就试着折腾了一下,解决了这个问题。以下就是处理办法。

1.打印机设置

a. 在浏览器中输入打印机地址:192.168.0.105,然后输入管理密码完成登录。

192.168.0.105是我的打印机的地址,如果网友不知道自己打印机的地址的话,登录到你的路由器或Wifi的管理页面,查看连接设备即可。

b. 点击网络-服务,记录下服务名称

c. 点击网络-协议,点击LPD后的高级设置,勾选启用LPD标志,然后提交

2.驱动准备

a.从AUR上下载brother-dcpt520w的PKGBUILD和相关附加文件,并将brother-dcpt520w文件夹改名为brother-dcpt420w

b.将以下文件替换brother-dcpt420w中的文件:

PKGBUILD文件:

# Maintainer: none <[email protected]>
# Modified by realasking from brother-dcpt520w maintained by Chiwan Park 

pkgname=brother-dcpt420w
pkgver=3.5.0
pkgrel=1
pkgdesc="Driver for the Brother DCP-T420W wifi multifuncional printer"
url="http://solutions.brother.com/linux/en_us/index.html"
license=('custom:brother')
install="brother-dcpt420w.install"
arch=('i686' 'x86_64')
optdepends=('sane: scanning support'
            'brscan4: making dcpt420w available to sane'
            'brscan-skey: scankey support if connected via usb')

if [[ "$CARCH" == "x86_64" ]] ; then
  depends=('a2ps' 'cups' 'lib32-glibc')
elif [[ "$CARCH" == "i686" ]] ; then
  depends=('a2ps' 'cups')
fi

source=(
  "https://download.brother.com/welcome/dlf105168/dcpt420wpdrv-3.5.0-1.i386.deb" \
  "fix_lp.patch"
)
sha256sums=(
  '3ede819a65aec379ec7676f7ac0cacabd70879fbaaf2c7978eeae406c0e1c1f2' \
  'ddb53ba14356b1fb98f19e3b32f124e878f06819a2cb6cb40a719d2250fababf'
)

build() {
    cd "$srcdir"
    tar -xf data.tar.gz -C .
    tar -xf control.tar.gz -C .
  patch -Np0 < fix_lp.patch
}

post_install() {
  /opt/brother/Printers/dcpt420w/cupswrapper/cupswrapperdcpt420w
}

package() {
  install -d $pkgdir/usr/bin
  install -d $pkgdir/var/spool/lpd
  cp -R $srcdir/opt $pkgdir/opt
}

brother-dcpt420w.install文件:

post_install() {
  # lpr
  /opt/brother/Printers/dcpt420w/inf/setupPrintcapij dcpt420w -i
  
  # cupswrapper
  /opt/brother/Printers/dcpt420w/cupswrapper/cupswrapperdcpt420w
  
  systemctl restart org.cups.cups.service
}

post_upgrade() {
  /bin/true
}

pre_remove() {
  # lpr
  /opt/brother/Printers/dcpt420w/inf/setupPrintcapij dcpt420w -e
  
  # cupswrapper
  /opt/brother/Printers/dcpt420w/cupswrapper/cupswrapperdcpt420w -e
}

op=$1
shift

$op "$@"

fix_lp.patch文件:

--- opt/brother/Printers/dcpt420w/inf/setupPrintcapij.old       2008-09-15 22:01:07.000000000 +0200
+++ opt/brother/Printers/dcpt420w/inf/setupPrintcapij   2008-09-15 22:01:26.000000000 +0200
@@ -34,7 +34,7 @@
        if [ ! -d $SPOOLER_NAME ]; then
                mkdir $SPOOLER_NAME
        fi
-       chown lp $SPOOLER_NAME
+       chown root $SPOOLER_NAME
        chgrp lp $SPOOLER_NAME
        chmod 700 $SPOOLER_NAME

c.打包和安装

makepkg
sudo pacman -U brother-dcpt420w-3.5.0-1-x86_64.pkg.tar.zst

2023年8月23日注 ------------------------------------------------------------------------

现在安装brother-dcpt420w后,org.cups.cups服务已经不再存在,
需要手动启动cups服务,但不必启动cups-browsed服务:

sudo systemctl enable --now cups

------------------------------------------------------------------------

d.安装其它相关文件

yay -S brother-cups-wrapper-common brother-lpr-drivers-common system-config-printer xsane xsane-gimp sane colord-sane 

2023年8月23日注 ------------------------------------------------------------------------

Arch上还要做如下设置:

  • 安装:
yay -S nss-mdns mdns-scan qmdnsengine python-zeroconf
  • 配置

vi打开/etc/nsswitch.conf
将如下行:

hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns

替换为:

hosts: mymachines mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] files myhostname dns

然后保存

  • 重启电脑

------------------------------------------------------------------------

3.扫描功能设置

sudo brsaneconfig4 -a name=Brother model=DCP-T420W ip=192.168.0.105

4.打印功能设置

a. sudo system-config-printer

b. 在Brother-DCP-T420W图标上单击右键,点击属性

c. 点击设备URI后的按钮

d. 点击网络打印机-查找打印机

e. 点击以Brother-DCP-T420W开头、以1-b中记录下来的服务名称加.local结尾的打印机,在连接中选择通过DNS-SD的IPP网络打印机,然后点击应用

f. 点击生产和型号后的按钮,选择从数据库中选择打印机,点击Brother,然后点击转发,点击DCP-T420W(推荐),点击转发

g. 打印测试页和确定。

然后打印机就可以正常使用了。

2024年1月6日注 ------------------------------------------------------------------------

要让mdns生效,需要让avahi-daemon服务启动,最近发现新装的archlinux连这个服务都是默认关闭的。无语。

最新文章

最近回复

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

分类

归档

其它