刘世伟 的blog

用gcc12编译pmon

一直用gcc4.9编译pmon, 这几天尝试在新版本的gcc编译pmon, 到gcc7都是没有问题的, 到gcc8开始, 默认使用硬浮点,编译出来的pmon 不能启动, 估计是因为硬浮点没有进行初始化, 在CFLAGS增加一项 -msoft-float解决,

新版本的gcc默认不再合并重复定义的变量, 比如在某个.h中定义了一个变量,  然后有几个.c, include包含了这个.h, 于是就出现了重复变量,在合并这些.o的时候, 早期的gcc是会自动合并这些变量, 新版本的gcc会报变量重复错误,停止编译, 在CFLAGS增加一项   -fcommon, 让它跟以前一样合并重复定义的变量,就ok了。

到gcc11的,出现编译成功, 但是不能启动,对gcc10与gcc13之间的8000个patch, 用2分法进行定位,17次编译测试后, 找到了问出在commit 5879ab5fafedc

以本地时区, 显示iso格式的git修改日志

git log -10 HEAD --date=iso-local \
|grep -v -e "^$" -e "^Author" -e "^commit" \
|sed "s/^Date:   /================================================\n/g" > git_ver.txt

 

显示如下:

mysql mariadb for debian12

mariadb 在debian12的版本是10.11.4, 有一些变化, 比如某些字段变成了关键词,  比如 over, value, 需要用反引号围起来。 `over`,`value`

比如 insert into table1  (over) value ('完成');

在老版本mariadb10.1中不会有错, 但是新版本10.11会出错

需要改成 insert into table1  (`over`) value ('完成')

如果项目中使用了over和value作为字段或者表名, 就比较麻烦,需要搜索源代码, 检查修改。

mediawiki debian相关参考

文件附件目录在 /var/lib/mediawiki/images,可以用符号连接引用其他的位置。

换名/etc/mediawiki/LocalSetting.php,midiawiki的程序,会引导你去安装新的系统, 或者对老系统进行升级,升级完成后,会重新生成配置文件,然后可以比较2个配置文件,进行修改, 比如去掉新版本不存在的插件, 因为插件就在LocalSeting.php里进行添加设置

debian9:mediawiki 1.27.7 backport:1.31.2
debian10: mediawiki1.31.16
debian11: mediawiki1.35.11
debian12: mediawiki1.39.4

redmine相关参考

记录一些关于debian和redmine的经验。

redmine 在debian12中安装比较顺利。 只是需要注意几个目录的权限就行了,

apache2通过 Passenger  插件去运行ruby程序。

需要安装几个软件

bjlx补充源,开始支持loongarch

debian ports已经开始编译loong64的包, 所以,我们的源,也开始支持loongarch 从debian13(trixie)开始

目前只增加了2个软件包 binutils2.41 和linux-image-6.5.4

debian ports:
deb http://ftp.ports.debian.org/debian-ports unstable main non-free non-free-firmware contrib
deb http://ftp.ports.debian.org/debian-ports unreleased main non-free non-free-firmware contrib

 

bjlx:

deb http://www.anheng.com.cn/bjlx trixie main

debian13的loong64架构最小系统包, 已经上传:

https://mirrors.cloud.tencent.com/loongson/install/loongarch64_debian13_...

debian开始编译loongarch的包了,可以开始搞搞loongarch了

从淘宝找到一块1000元的3A5000_7A2000, 虽然ram座有点破损, 但是不影响使用。

先用arch的安装光盘启动, 错误提示如下: cannot allocate memory for memory map

到telegram群里去问了一下,flygoat说,固件不支持新世界时,就是这个样子的,

然后到 https://github.com/loongson/Firmware 找到了对应的新固件。

flashrom -p ch341a_spi -w UDK2018_3A5000-7A2000_Desktop_EVB_V4.0.05429-stable202302_rel.fd

提示Error: Failed to read complete file. Got 4128768 bytes, wanted 8388608!

3A5000-7A2000-EVB.jpg

debian12下 ffmpeg使用libsvtav1编码输出webm

vp9被浏览器支持的挺好, 但是硬件加速编码器,只有vaapi支持, 并且很难用, 比如debian12的va包, 就不带vp9的硬件加速。

nvidia家的更是不支持vp9,  今天偶尔发现libsvtav1这个软件编码器,速度飞快, 在我的电脑上可以达到1倍的速度进行编码。而其他的编码器速度只有0.0x的倍率,当然cpu的占用也是空前的,

av1是vp9和h265的下一代编码格式, 体积比vp9缩小30%

检查ffmpeg支持的av1编码器:

ffmpeg -codecs |grep -e av1 -e 265 -e vp9

geda-schem电路图软件找不到了,从debian中被取消了

一直使用geda的电路图软件 geda-schem 和pcb, 但是2018年以后, 这2个软件都停止更新,在debian11开始更是把geda-schem电路图编辑软件给去掉了,自己打deb包, 可以继续使用,到了debian12, 已经没有python2, geda-schem就没办法运行了,搜索了一下邮件列表, 发现geda-gaf在2018年被分叉出来一个lepton-eda,lepton-eda 目前在debian11和debian12里是存在的,并且兼容geda-schem的数据文件和配置文件,而pcb也有个分叉出来的pcb-rnd(PCB_RND), 也兼容pcb的数据文件, 只要把封装库的目录重新设置一下就行了

这2个软件,切换到lepton-eda 和 PCB-RND后,一些热键, 跟它们的前辈有不同, 习惯一下,就可以了。

lepton-eda跟geda-schem兼容性很好,

打扫机房, 发现一台52口全千兆交换机

型号linksys srw2048,

是坏的, 接上串口, minicom 用38400速率, 上电时提示固件错, 提示用xmodem方式上传一个正确的firmware,

在minicom里ctrl-f 用38400的速率上传,4k/秒  大约要半小时才可以上传完成。

固件版本太老了,只支持ie浏览器, 好在串口和telnet还有ssh可以登录

关于《税控发票开票软件发票信息数据接口 V5.0》的slsm_3 字段的补充说明

在税务局下载的V5接口说明,对于新增的Slsm_3字段, 只解释了2,3的情况, 对于一般开票没有说这个值应该填啥,打了一圈的税务局热线, 都没有得到帮助, 仔细检查下载的压缩包, 里面有个文件~WRL2271.tmp  是个临时文件, 被打包进了zip,

把这个文件更名为1.doc, 可以打开, 里面关于slsm_3字段有更详细的说明,如下,

openwrt的自动漫游

打开wifi日志
uci set wireless.radio0.log_level=1;uci set wireless.radio1.log_level=1;uci commit wireless;wifi down;wifi up
 
等一段时间后,
检查漫游成功信息:
logread |grep 'already complete'
 
liushiwei@bak1:/tmp$ ssh root@192.168.2.42 "logread |grep 'already completed'"
Thu Dec 29 15

在龙芯mips电脑,使用lto磁带机

闲鱼二手 lto5内置磁带机,带卡带线800左右,lto5磁带1.5T 30元一盘, 用来做离线备份不错,

可以用fuse跑ltfs文件系统,在bjlx的软件源,刚刚增加了ltfs的包, 包括debian9/10/11版本,  mips64el/amd64 2种cpu架构,其它架构应该可以直接编译成deb包, 不会啥问题。

编译过程解决了2个问题,提交到ltfs官方,居然被接受了。

https://github.com/LinearTapeFileSystem/ltfs/commit/d8d72a7954551bc40515...

https://github.com/LinearTapeFileSystem/ltfs/commit/2db929b5fc641fbeccb0...

首先添加bjlx软件源:

 wget https://mirrors.tuna.tsinghua.edu.cn/bjlx/bjlx.key -O - |apt-key add

好用的linux远程桌面

vnc,rdp,等等, 都不尽如人意,前几天发现了一个好用的开源的远程桌面,

x2go , x2go基于nx协议,通过ssh进行远程桌面登录,在debian下使用很简单,

在远程系统装server

apt install x2goserver  x2goserver-xsession

然后装一个x2go支持的桌面, 比如kde, xfce

apt install xfce4

远程系统开用户帐号:

useradd liushiwei

在手边的机器装client

apt install x2goclient

然后执行x2goclient,建立链接, 选择远程桌面xfce,也可以只读方式或着共享控制方式打开远程桌面

硬盘解锁

硬盘有个功能可以整盘锁定, 用hdparm -I /dev/sda 可以看到 Security 段有提示 locked,

这里可以使用硬盘的master密码进行解锁:

hdparm --user-master m --security-unlock ***** /dev/sda

hdparm --user-master m --security-disable ****** /dev/sda


master密码清单:

聚合内容