刘世伟 的blog

ltfs for debian12/debian13

ltfs磁带机程序最新版本已经放到 https://mirrors.cstcloud.cn/bjlx/pool/main/l/ltfs/

 

debian12下的dahdi驱动的patch

voip的E1/T1专线电话卡的驱动在debian12下编译出错, 整理了4个补丁, 解决这个问题:

一些linux的api的修改, 以及gcc更严格的类型转换检查


已经包含到了https://www.anheng.com.cn/bjlx/pool/main/d/dahdi-linux/

直接使用m-a或者dkms既可完成编译,

给ltfs磁带机固定一个设备名, 以及udev调试

ltfs磁带机, 在使用时, 一般这样指定设备:
ltfs -o devname=/dev/sgX /mnt/ltfs
硬盘数量不同,这个sgX,老是变化 可以建立一个 udev的rules, 给它做个固定的别名
我们需要匹配一些特征, 写一个rules文件:

vi /etc/udev/rules.d/99-ltfs.rules

SUBSYSTEM=="scsi_generic", KERNEL=="sg*", ATTRS{model}=="Ultrium 5-SCSI", SYMLINK+="ltfs0"
 
后面挂载, 格式化都可以用/dev/ltfs0,来进行了:
mkltfs -d /dev/ltfs0
ltfs -o devname=/dev/ltfs0 /mnt/ltfs

 

debian13的source.list 以及签名公钥

source.list的格式变了,一行的设置,变成多行了, 可以在conf文件中指定签名公钥文件位置了。

debian的签名公钥, 以前是放在/etc/apt/trusted.gpg 的二进制文件, 用apt-key 来管理,

后来变成 /etc/apt/trusted.gpg.d/文本文件,

现在可以在/etc/apt/sources.list.d/*.source里, 可以指定公钥asc文件位置。

下载公钥文件:
gpg --keyserver keyserver.ubuntu.com --recv-key C4277F1B7991F53ABE697995EDF8358B1BE20DCA

导出公钥文件到指定位置:
gpg --armor --export C4277F1B7991F53ABE697995EDF8358B1BE20DCA >/etc/apt/trusted.gpg.d/bjlx2025.asc

使用hdparm命令进行硬盘数据清理

hdparm 中的 security-erasesecurity-erase-enhanced 都是用来对硬盘进行 ATA 安全擦除(Secure Erase) 的命令,常用于:

  • 安全删除所有数据(包括不可见的扇区、分区信息、HPA/DCO 等)

  • 恢复全盘出厂状态

chrome常用的proxy切换软件SwitchyOmega不能用了

因为chrome强制要求扩展软件都升级到manifest V3,  原作者说没有时间升级,Proxy Switchy Omega 不能用了, 
发现一个新项目进行了fork, https://github.com/zero-peak/ZeroOmega

在chrome的扩展商店搜索 ZeroOmega, 即可找到, 界面完全一致, 配置文件可以导出导入。

https://chromewebstore.google.com/detail/proxy-switchyomega-3-zero/pfned...
 

 

ollama有个命令行参数, 可以让模型常驻显卡内存

ollama run huihui_ai/deepseek-r1-abliterated:32b --keepalive 14400m 
常驻10天 14400分钟。

 

如果是用systemd启动的ollama serv, 那么需要用环境变量来传递这些设置:
修改  /etc/systemd/system/ollama.service.d/environment.conf :

openwrt24.10的dnsmasq配置文件目录/tmp/dnsmasq.d失效

一般大家会在这个目录下放一些dnsmasq的个性化配置文件,

这个目录被换成了别的名字,改到/tmp/dnsmasq.cfg01411c.d目录,

 
ssh进去,执行这2条命令, /tmp/dnsmasq.d就恢复了​
 uci set dhcp.@dnsmasq[0].confdir='/tmp/dnsmasq.d'
 uci commit dhcp
 

支持wifi6的qihoo 360T7 刷机openwrt

360T7,是支持wifi6的比较便宜的openwrt之一, 256M ram的咸鱼价格40-50元, 升级512M的价格100元左右。

openwrt通过香蕉派推出的第一款硬件 openwrt one , 也是使用同一款cpu:MediaTek MT7981B

这里记录一下刷机过程,

360t7.png

把debian系统从mbr启动改成efi启动的步骤

1.首先准备一个fat32分区, 大小100-200M,

2.然后挂载到 /boot/efi, 并修改 /etc/fstab

3.安装 grub-efi

apt install grub-efi-amd64

4.手动安装efi启动,当前不是efi方式,所以会有个错误:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck

5. 重启系统, 进bios打开efi启动, 重启F8选择从debian启动,
 
6.启动完成后, 再执行一次4, 此次应该没有错误提示了。
 
7.update-grub
 

SSD硬盘,整盘trim擦除命令:blkdiscard

采购了一块512G的2手ssd硬盘,到手先整盘写入测试一下, 写道160G的时候,硬盘出错了,硬盘直接就下线了,热插拔后,可以识别出硬盘, 但是任何写入,都会造成下线,因为这是个虚标的硬盘,实际存储只有160G, 内部的可分配均衡存储已经用完了,无法写入任何东西了,重新格式化也是不可以的, 因为格式化时, trim之前, 会有一些写入操作。

但是硬盘退货之前, 必须要把160G的数据清理掉,这就需要首先使用trim来给ssd固件腾出一些可分配空间。

用hdparm的hdparm --please-destroy-my-drive --trim-sector-ranges 命令试了一下, 没找到正确的 lba:count参数应该怎么写。

后来问了一下chatgpt, 它推荐了一个很老的2012年就进入基础命令的linux命令 blkdiscard , 可以对块设备进行trim,于是, 可以安全的退货了。

3A4000的昆仑固件使用

昆仑固件很难用,先记录一下吧。

它会启动startup.nsh 但是startup.nsh不能使用initrd指令


据说固件会自己找 EFI/boot/BOOTMIPS.EFI文件

启动efi的脚本

grub-mkimage -p /boot/EFI/BOOT/  -d  mips64el-efi/  -c grub.cfg  -o grub.efi-config-3  -O mips64el-efi
 
search.file /boot/EFI/BOOT/grub.cfg root
set prefix=($root)/boot/
configfile ($root)/boot/EFI/BOOT/grub.cfg
 

debian的源码包的使用

以grub为例

源码包的下载:
apt-get source grub2

源码一般包括一个orig的上游压缩包,和一个debian的压缩包,和一个grub2_*.dsc包

展开:
apt-get source grub2

 或者

dpkg-source -x grub2_xxxx.dsc

源码会被展开到 grub2-2.02

里面会有个debian的目录。这个目录下有3个最重要的文件, 当然其他文件也很重要,具体作用看debian的“开发者之路"文档

1.debian/changelog

debian包的版本号,来自这个文件, 用dch 进行修改

openwrt打包过程分析

首先下载对应的imagebuilder

以newifiD2为例, 是 https://mirrors.aliyun.com/openwrt/releases/23.05.4/targets/ramips/mt762...

展开后, 在top目录下.targetinfo文件里, 可以找到 profile名字叫DEVICE_d-team_newifi-d2

然后 make image PROFILE="DEVICE_d-team_newifi-d2" 就可以了,

要修改ipk列表,

make image PROFILE="DEVICE_d-team_newifi-d2" \
PACKAGES=“-wpad-basic-mbedtl wpad dnsmasq_route"

如果要包含一些自己配置文件,

聚合内容