cat ~/.zhiliao.history

无聊就该多读书。

微软提供的windows系统虚拟机文件下载

据说在虚拟机中使用这个, 流畅度比安装的版本快很多
可以免费使用
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/


下面这个是有win10开发环境的虚拟机, 比较大20G
https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/

openSUSE coredump文件

openSUSE Leap 15.2 默认是不开启coredump的.

开启方法
  1. 查看ulimit -H -aulimit -S -a core files是否均显示unlimited. 如果不是则修改
  2. sudo zypper in systemd-coredump
  3. reboot
使用方法
  1. sudo coredumpctl list 列出当前corefile 文件
  2. /var/lib/systemd/coredump/ 这是corefile 默认保存位置
  3. man systemd-coredump; man core 查看手册

dpkg安装软件包禁用dialog对话框

之前写了个脚本, 在后台自动安装某些dpkg软件包. 但是安装过程会卡住 (即使crontab运行的后台程序也会卡住). 分析原因发现是因为后台出了dialog的对话框, 没有被选择导致一直卡住.

于是想到在非tty下面, dialog应该不会出现了.

首先测试 yes | dpkg -i * 对话框还是会出现. (yes | dpkg -i 印象里面看别人这么写过. yes | tty 显示 not a tty)

于是测试 ssh -T 链接本机, 安装果然没有对话框. 能够成功安装,但是有一行报错 debconf: unable to initialize frontend: Dialog

顺着这个报错, 终于搜到了 如何dpkg安装软件不出现dialog对话框.

设置环境变量, 然后在 dpkg安装就可以
DEBIAN_FRONTEND=noninteractive dpkg -i *

openSUSE zypper

  1. zypper 安装软件时候版本选择
查看仓库中有firefox的哪些版本
sudo zypper se -s firefox

安装指定版本
sudo zypper in --oldpackage MozillaFirefox=78.0.1-lp152.2.5.1
  1. zypper 和 其他包管理器 使用对比

    Pacman/Rosetta

在chromebook上安装archlinux

  1. 把安装到U盘的教程中的 /dev/sda 替换成 mmcblk0 即可把archlinux安装进入系统盘.

  2. 编辑 /etc/pacman.conf 文件, 添加 IgnorePkg = linux-armv7 linux-armv7-chromebook linux-firmware

  3. 参考https://calvin.me/arch-linux-samsung-arm-chromebook 修改亮度控制 绑定按键 取消静音 设置休眠

alsamixer

Go across the page (arrow keys) and press M to unmute
    Left Speaker Mixer Left DAC1
    Left Speaker Mixer Mono DAC2
    Left Speaker Mixer Mono …

openSUSE Leap 系统升级

# 首先启用 repo-update 软件源
zypper modifyrepo --enable repo-update

# 然后更到最新
zypper refresh
zypper update

# 下面的命令建议在tty中执行.  Ctrl + Alt + F2

# 如果 /etc/zypp/repos.d/中定义的Leap 仓库已经使用$releasever变量时, 则使用:
zypper --releasever=15.2 ref


# 或者仓库地址使用特定的Leap版本号对它们进行硬编码,则需要首先对其进行修改:
sudo sed -i 's/15.1/$releasever/g' /etc/zypp/repos.d/*.repo
# 然后执行:
zypper --releasever=15.2 …

openSUSE Leap & Tumbleweed 安装解码器

添加全部packman仓库

sudo zypper ar -fc 'https://mirrors.tuna.tsinghua.edu.cn/packman/suse/openSUSE_Leap_$releasever'            packman

# 将系统软件包切换到packman中的软件包(两者混用会导致各种问题)
zypper dup --from packman --allow-vendor-change

或者仅仅添加packman中的Essentials(解码器)仓库

sudo zypper ar -fc 'https://mirrors.tuna.tsinghua.edu.cn/packman/suse/openSUSE_Leap_$releasever/Essentials' packman-essentials

# 将系统软件包切换到packman中的软件包(两者混用会导致各种问题)
zypper dup --from packman-essentials --allow-vendor-change

openSUSE_Additional_package_repositories …

斐讯N1刷机过程记录

刷机

去年买的N1盒子, 一直没时间折腾, 最近刚好需要作下载机用, 于是刷机, 顺便整理下步骤.

首先说下N1配置. 处理器Amlogic S905, 内存 2G, emmc 8G, 千兆网口, 2个USB 2.0, 1个HDMI接口, 双频WIFI(支持 802.11 ac), 支持蓝牙.

价格目前不到100元. 和raspberry 4 相比性能差不多, 重要的是能用Android系统, 便宜, 自带外壳.

目前用的人多的N1系统, 大致为 (不分先后)

  • Openwrt做主路由
  • 小钢炮做下载机Docker里做旁路由 (恩山无线论坛 荒野无灯 所开发的专注于下载的系统, 基于linux)
  • Armbian玩Docker
  • Android (电视盒子)
  • 游戏机 (EmuELEC)

刷机第一步系统降级

不管是N1什么版本,首先必须要降级到能线刷的版本,并且能够使用,便于后期emmc能恢复。

准备环境 …

inotify-tools

inotify-tools 可以用来监控文件系统的事件。inotify-tools提供两种工具,一是 inotifywait,它是用来监控文件或目录的变化,二是inotifywatch,它是用来统计文件系统访问的次数。

常用inotifywait -qcrm $dir

inotifywait
参数:
@
排除不需要监视的文件,可以是相对路径,也可以是绝对路径。
–fromfile 
从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头。
-m, –monitor
接收到一个事情而不退出,无限期地执行。默认的行为是接收到一个事情后立即退出。
-d, –daemon
跟–monitor一样,除了是在后台运行,需要指定–outfile把事情输出到一个文件。也意味着使用了–syslog。
-o, –outfile 
输出事情到一个文件而不是标准输出。
-s, –syslog
输出错误信息到系统日志
-r, –recursive
监视一个目录下的所有子目录。
-q, –quiet
指定一次,不会输出详细信息,指定二次 …

笔记本把无线网络连接分享给网线

笔记本把无线网络连接分享给网线.

首先如果笔记本开了NetworkManager服务, 建议在NetworkManager的配置中取消托管有线网络接口 eth0. (可选, 如果修改了配置, 要重启NetworkManager)

cat /etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=true

[keyfile]
unmanaged-devices=interface-name:eth0

确定笔记本已经连接好了WIFI

然后在笔记本上面设置 eth0 ip sudo ifconfig eth0 192.168.9.1

开启DHCP sudo dnsmasq --dhcp-range=192.168.9.10,192.168.9.20,999m --interface=eth0

开启转发 …

openSUSE Tumbleweed server 安装cinnamon桌面

zypper refresh
zypper install cinnamon
zypper install lightdm
zypper install xorg-x11-server
zypper install xorg-x11-server-wayland
update-alternatives --list default-displaymanager
update-alternatives --config default-displaymanager 选择lightdm
systemctl disable default.target  # 或者删除 /etc/systemd/system/default.target
ln -s /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target

zypper install wqy-microhei-fonts

# 然后安装输入法
zypper install …

openSUSE Leap & Tumbleweed 添加软件源

经测试, aliyun的软件源并不稳定, 更新慢. 经常只更新一部分, 不和官方完全同步. tsinghuau源, 稳定, 好用.

首先禁用全部仓库: sudo zypper mr -da

如果是Tumbleweed

sudo zypper ar -fc https://mirrors.tuna.tsinghua.edu.cn/opensuse/tumbleweed/repo/oss        Tumbleweed-Oss-tuna
sudo zypper ar -fc https://mirrors.tuna.tsinghua.edu.cn/opensuse/tumbleweed/repo/non-oss    Tumbleweed-Non-Oss-tuna
sudo zypper ar -fc https://mirrors …

ext4断电丢失数据(零长文件)

ext4断电丢失数据(零长文件).

嵌入式设备, 经常拔掉电源, 以前/data分区有挂载选项 sync.

后来发现sync方式挂载写入数据速度太慢了(100KB/S), 正常为10MB/S.

去掉sync断电又会丢数据.

ext4 man-pages 上说 fd = open("foo", O_TRUNC)/write(fd,...)/close(fd) 或者好一点的 fd = open("foo.new")/write(fd,...)/close(fd)/ rename("foo.new", "foo") 这种用法突然断电容易产生零长文件, 在close之前调用fsync好一点. 实际上 auto_da_alloc 挂载选项就是为了解决上面的一些情况的, man-pages上说auto_da_alloc 相对及时把数据写进硬盘. 但是自己测试断电依然会丢数据, 产生零长文件(zero-length) .

尝试新的挂载选项为 defaults,noatime …