刘世伟 的blog

不支持trim的文件系统在ssd怎么进行预擦除

--lvm,raid5,kvm虚拟机不支持的trim预先擦除操作

ssd的trim要解决的是,ssd硬盘的一个问题, 就是flash在写入时, 需要先对flash进行擦除操作, 而擦除操作特别慢,trim功能 就是预先擦除空闲的存储空间, 来提高写入速度。trim功能需要文件系统能够通知硬盘,哪些块不再用, 可以进行擦除, 这就是说,不但硬件要支持trim, 操作系统也要支持,支持trim的文件系统有ext4,btrfs(包括raid5格式),raid0,raid1, 明确不支持的有  raid5, lvm虚拟卷。目前lvm所谓的支持trim,只是指把虚拟卷lv删除时整体进行trim,而不能感知文件系统的文件删除操作

这些天一直在考虑一个问题, 就是一个支持trim的ext4分区,的预先擦除操作,对其他不支持trim的分区(raid5 or kvm-raw设备or lvm) 是不是有帮助,

我考虑的结果是有帮助, 因为,ssd内部的空闲空间是全局共享的,因为要进行均衡写入的需要。

所以,其它这些空闲空间会首先用于整体磁盘的写入, 然后写入的原位置数据, 会被事后擦除,放入空闲区。

 

 

debian9 的nagios 插件check_nrpe不能链接老版本的nrpe-server的解决

用nagios的nrpe插件监视一堆的远程服务器, 是很方便的,但是在升级到debian9,debian10后,遇到问题, 不能连接 debian6,debian7,debian8的服务器上的nrpe-server服务。 会报这个错误:

openwrt的ipv6补丁

如果大家发现在openwrt下,局域网能够拿到ipv6的公网ip(240e::,2408::之类),但是ping不过网关(ping6 www.baidu.com)

8成是因为openwrt一个路由错误。

现在的运营商拨号给的ipv6, 是用FE80::的ipV6内部地址(相当与192.168.x.x) 把一段公网地址(2408::/64)下发下来。

openwrt应该把2408::/64的地址路由到内网(br-lan),但是却错误的把它路由到了 外网网络,

ip -6 route list 可以看到2408::被映射到了 pppoe-wan,

附件这个脚本放到 /etc/odhcp6c.user .并chmod 755  修改属性, 就行了,它会自动执行,修正这个错误。

脚本目前只对联通和电信的240x开头的ip有效,可以自行修改。

LAN口-DHCP设置-IPV6

webdav有关信息

webdav走的是http协议,

nginx和apache都可以作为webdav服务器,

win可以直接映射网络盘,支持文件读写和锁定。

linux下装davfs2软件包后, 可以直接mount -t davfs https://xxxxxx.com/upload /mnt 这样进行mount

apache2下的配置文件在目录内增加:

来看看天才高中生春节期间是怎么玩龙芯的

传说中的天才高中生flygoat,在春节前拿到了龙芯3A4000的机器,看看他都完成了那些工作, 一个人顶一个10人团队!

在3A4000上发现了一个1Ghz的未公开的单发射32位GS132小核,

并把RTT嵌入式操作系统在这个小核上跑起来,目标代码200k,

 让小核去控制cpu的频率和电压,

把28ns工艺的龙芯3A4000安全超频到2.2Ghz.

废话不多说, 看他写的blog吧:

https://blog.flygoat.com/archives/118

 

 

龙芯电脑配套远程控制卡

最近debian的负责mips的dd们, 募集到7块龙芯主板,有3A1000,3B1500,3A2000(这个是我捐的), 要组建mips架构的编译集群,替换下原来用了几年的3A1000编译机,为此,我专门为他们设计制造了pc远程控制卡prc,用于集群的控制。

自我感觉东西做的还可以, 我已经把家里的龙芯2F-nas,还有公司的服务器都加上了这个远程控制卡,很方便。

不一定只用于龙芯电脑, 也可以用于x86,并且带5-30V/20A的直流输出开关可控。

通过telnet 登录,可以控制复位键,关机键,和控制直流输出,可以通过telnet链接目标服务器的串口,控制pmon,grub和登录shell

项目目录在这里 https://github.com/lshw/prc

剩余的一些prc挂在淘宝上了,有成品,有散件:

https://item.taobao.com/item.htm?id=611681003797

 

安装程序更新

我们以前的快速安装程序, 近期进行了更新, 并且把源码和打包脚本放到了github上,

https://github.com/lshw/bjlx_installer

http://mirrors.cloud.tencent.com/loongson/install/loongson64_debian10_20... 支持3A1000,3B1500,3A2000,3A3000和2K-1000的cpu的主板

debian11 的龙芯3开发环境

我们bjlx的龙芯补充源, 增加了debian11的龙芯llsc补丁, 这么增加bjlx的龙芯补充源:

建立 /etc/apt/sources.list.d/bjlx.list:

deb http://mirrors.tuna.tsinghua.edu.cn/bjlx bullseye main
deb-src http://mirrors.tuna.tsinghua.edu.cn/bjlx bullseye main

然后把bjlx的key 导入debian的apt系统:

wget https://mirrors.tuna.tsinghua.edu.cn/bjlx/bjlx.key

apt-key add bjlx.key
 

然后就是常规的debian操作就行了:

apt  update

apt upgrade

 

注:镜像同步正在进行,晚些时候, 才可以使用

fdisk用脚本自动分区

fdisk利用脚本自动分区,可以用于快速部署系统, 或者需要复制一个硬盘的分区格式到另外的硬盘。

在sfdisk有个很好用的-d参数,以前十多年以来,我们一直这么干:

sfdisk -d /dev/sdx |sfdisk /dev/sdy

把分区从x盘复制到y盘

但sfdisk有2个弊端, 由于sfdisk不是核心工具,在debian的各版本中,它会时有时无,并且sfdisk不支持GPT

最近发现linux的核心工具fdisk从sfdisk吸收了这个思路,可以用O命令输出类似于sfdisk的分区表文本备份文件,并且可以用I命令导入,并且支持GPT

虽然fdisk不能用命令行来做分区表的自动导入导出。我们可以用重定向功能来实现脚本自动。这可以用在自动快速安装linux系统上

详细如下(红字为键盘输入内容,灰底是需要注意部分):

龙芯itx主板对应 pmon 文件

智龙V3的扩展引脚勘误

有几个引脚跟标注的是错误的
标注,腿号,功能
P40,88,ADC-YP
P06,78,GPIO6 ADC-XN(正确)
P42,81,ADC-REXT
P43,82,ADC-VERF
P44,83,ADC-VADDA
P45,80,CORE-VSS
D0,85,ADC-D0(正确)
D1,86,ADC-D1(正确)

在linux命令行,操作mips寄存器的一组工具,进行gpio复用,串口控制等等

源码:

https://github.com/lshw/regs_tools

这里是static编译的bin文件 32/64位系统都可以用 https://www.anheng.com.cn/loongson/loongson1c_bsp/tools/regs_tools.tgz

gpio_func loongson1C的gpio功能复用设置程序,2个参数, 功能号(0-5),gpio号

cbus_dump 列出loongson1C的所有gpio复用

regs_read 读取寄存器, 一个参数 比如0x1fd00420 ,外设控制寄存器, 如果地址是32位对齐的,会显示出32位数据

修复智龙主板V3的uart9不能用的问题

补丁在这里

https://github.com/lshw/loongson1-kernel3.18/commit/e5fab956e15b376f12b7...

原因是uart8的全功能控制器(uart8_full_func)跟uart9的串口寄存器MCR地址重叠,

造成在操作uart9的DTR信号时, 把uart8切换到了全功能模式。此时,UART9-11会无效,

补丁屏蔽了uart9对DTR信号的控制, 本来UART9就只有TX/RX线, 没有DTR线,所以这也不影响啥。

感谢南京大学,对本站的目录进行镜像

至此,有三家大学的开源镜像服务器对我们的目录进行了镜像 一并感谢:

中科大: 

http://mirrors.ustc.edu.cn/bjlx

http://mirrors.ustc.edu.cn/loongson

 

清华: 

http://mirrors.tuna.tsinghua.edu.cn/bjlx

http://mirrors.tuna.tsinghua.edu.cn/loongson

 

南京大学:

https://mirrors.nju.edu.cn/bjlx

https://mirrors.nju.edu.cn/loongson

 

主站在安恒集团(带宽较小,并限速,不建议直接使用):

https://www.anheng.com.cn/bjlx

https://www.anheng.com.cn/loongson

 

 

从运行中的龙芯中得到pmon文件

在一个3B1500中,pmon版本是1.1.0,以前只拿到了1.0.8的版本,见这里:

https://www.anheng.com.cn/loongson/pmon/updates.lemote.com/files/upload/...

 

根据已有版本的bin 得到它们共同的起始特征都是00 60 80 40  00 68 80 40

结束都是8F  09 00 00 00  06 00 00 00

然后,我们去搜/dev/mem找到这2个特征的位置:

0xF80000 - 0xF86E79C

然后就可以把它dd出来:

dd if=/dev/mem of=/home/pmon-A1310-1.1.0.bin bs=1 skip=260046848 count=452508

其中 260046848=0xF800000,  452508=(0xF86E79C-0xF800000)

 

聚合内容