0%

MTU 即最大传输单元(英语:Maximum Transmission Unit),在路由设备上可以设置这个值,选择合适的MTU大小可以优化网络传输速度。

因特网协议允许IP分片,这样就可以将数据报包分成足够小的片段以通过那些最大传输单元小于该数据报原始大小的链路了。这一分片过程发生在 IP 层(OSI模型的第三层,即网络层),它使用的是将分组发送到链路上的网络接口的最大传输单元的值。原始分组的分片都被加上了标记,这样目的主机的 IP 层就能将分组重组成原始的数据报了。
在因特网协议中,一条因特网传输路径的“路径最大传输单元”被定义为从源地址到目的地址所经过“路径”上的所有IP的最大传输单元的最小值。或者从另外一个角度来看,就是无需进一步分片就能穿过这条“路径”的最大传输单元的最大值。
— 摘自维基百科

我写了一个shell脚本,可自动找到你所在网络的最佳MTU大小。

阅读全文 »

买了一个高漫 1060PRO 数位绘图板。包含:绘图板、USB线、手绘笔及笔架、备用笔尖若干、备用贴膜若干、平板和手机USB转接头2个。

在Arch Linux中试用了一下,在没有安装任何驱动的情况下,手绘和压感功能在GIMP和Krita中都可以使用,流畅且没有延时,快捷键暂不起作用。

驱动和配置以后再研究,快捷键暂时还是使用键盘吧。

SSH服务器的安装配置请参阅SSH服务器

SSH的一般使用请参阅SSH使用指南

本文内容是总结SSH的端口转发功能的一些使用经验。

一些用到的ssh参数的说明:

  • -4 强制使用IPv4
  • -f 在后台背景执行命令
  • -N 不执行远程命令
  • -L 绑定本地端口
  • -R 绑定远程端口
  • -D 绑定动态端口
阅读全文 »

soundfont-fluid和timidity

在Arch Linux中播放midi需要安装音色库(例如soundfont-fluid)和播放软件(例如timidity)

1
2
sudo pacman -Syyu
sudo pacman -S soundfont-fluid timidity++

将用户添加到audio组

1
sudo gpasswd -a $USER audio

为timidity设置音色库,并为用户开启timidity.service服务

1
2
sudo echo 'soundfont /usr/share/soundfonts/FluidR3_GM.sf2' >> /etc/timidity++/timidity.cfg
systemctl --user enable --now timidity.service

现在就可以播放midi文件了

1
timidity example.midi

使用vlc播放midi

如果想使用vlc播放midi,需要卸载vlc安装vlc-git,或者手动安装vlc的vlc-plugin-fluidsynth插件

1
2
3
git clone https://aur.archlinux.org/vlc-plugin-fluidsynth.git
cd vlc-plugin-fluidsynth
makepkg -sri

然后,在vlc的工具->偏好设置中找到”输入/编解码器->显示设置.全部->输入/编解码器->FluidSynth”,设置SoundFont文件为/usr/share/soundfonts/FluidR3_GM.sf2

一个虚拟midi键盘

安装 Virtual MIDI Piano Keyboard

1
sudo pacman -S vmpk

在dosbox中感受midi

如果想在dosbox中运行游戏时享受midi的魅力,请在dosbox.conf中加入如下设置

dosbox.conf
1
2
3
4
[midi]
mpu401=intelligent
mididevice=default
midiconfig=128:0

当使用pacman -Syyu升级系统时,看见如下警告:

1
2
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: wd719x

解决办法是安装以下两个AUR库中的包 aic94xx 和 wd719x:

1
2
3
4
$ git clone https://aur.archlinux.org/aic94xx-firmware.git
$ cd aic94xx-firmware && makepkg -sri && cd .. && rm -rf aic94xx-firmware
$ git clone https://aur.archlinux.org/wd719x-firmware.git
$ cd wd719x-firmware && makepkg -sri && cd .. && rm -rf wd719x-firmware

然后执行:

1
$ sudo mkinitcpio -p linux

使用 rsync

安装 rsync
1
sudo pacman -S rsync
备份
1
2
3
4
5
6
sudo rsync -aAXv --delete \
--exclude={/dev,/mnt,/proc,/run,/sys,/tmp,/var/tmp,/var/log}/* \
--exclude={Downloads,.cache,.Cache,cache,Cache,CachedData,GPUCache,ScriptCache,ShaderCache,'Code Cache',CachedExtensions,Backups,logs}/* \
--exclude={.log,Trash,lost+found,'Crash Reports',VirtualBox,swapfile,__pycache__,.venv,.DS_Store,_cacache,*_history,workspaceStorage} \
--exclude=*.{old,bak,tmp,backup} \
/ /path/to/backup
恢复
1
sudo rsync -aAXv /path/to/backup /

使用 tar

安装 tar
1
sudo pacman -S tar
备份
1
2
3
4
5
sudo tar -cvpzf /path/to/backup.tar.gz \
--exclude={/dev,/mnt,/proc,/run,/sys,/tmp,/var/tmp,/var/log}/* \
--exclude={Downloads,.cache,.Cache,cache,Cache,CachedData,GPUCache,ScriptCache,ShaderCache,'Code Cache',CachedExtensions,Backups,logs}/* \
--exclude={.log,Trash,lost+found,'Crash Reports',VirtualBox,swapfile,__pycache__,.venv,.DS_Store,_cacache,*_history,workspaceStorage} \
--exclude=*.{old,bak,tmp,backup} /
恢复
1
sudo tar --numeric-owner -xvpzf /path/to/backup.tar.gz -C /

使用 timeshift

安装 timeshift
1
sudo pacman -S timeshift rsync

timeshift 是图形界面的备份工具,简单易用,可以方便地把整个系统备份到移动硬盘上。

fail2ban发现异常的网络连接请求时,会将事件信息记录下,当次数频率等超过了设置值后,会使用iptables屏蔽访问者的IP。在设定的屏蔽时长以后,还会自动释放对该IP的屏蔽。

安装并创建sshd监狱的配置文件
1
2
sudo pacman -S fail2ban
sudo vim /etc/fail2ban/jail.d/sshd.local
阅读全文 »

SSH服务器的安装配置请参阅SSH服务器,这篇文章是ssh主要应用的经验和总结。

目前openssh是Linux界主流的开源ssh软件,它包含了服务器端程序sshd和客户端程序ssh, scp等。

1
# pacman -S openssh
阅读全文 »

Secure Shell,简称SSH,是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。虽然任何网络服务都可以通过SSH实现安全传输,SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。

目前openssh是Linux界主流的开源ssh软件,它包含了服务器端程序sshd和客户端程序ssh, scp等。

1
# pacman -S openssh
阅读全文 »

Arduino UNO Rev3

  • 安装IDE sudo pacman -S arduino
  • 将用户添加到附加组 sudo usermod -aG uucp,lock USERNAME
  • 加载cdc_acm模块 sudo modprobe cdc_acm
  • 启动时加载cdc_acm模块 sudo echo cdc_acm > /etc/modules-load.d/cdc_acm.conf
  • 用USB连接Arduino UNO开发板
  • 打开arduino软件
    • 工具->开发板->开发板管理器->安装Arduino AVR Boards by Arduino
    • 工具->开发板->选择Arduino/Genuino Uno
    • 工具->端口->选择/dev/ttyACM0
    • 新建Blink项目
      Blink.ino
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      void setup() {
      // 设定板载LED所在的Pin 13为输出口
      pinMode(LED_BUILTIN, OUTPUT);
      }

      // 主循环
      void loop() {
      digitalWrite(LED_BUILTIN, HIGH); // 开灯
      delay(500); // 延迟0.5秒
      digitalWrite(LED_BUILTIN, LOW); // 关灯
      delay(500); // 延迟0.5秒
      }
    • 项目->上传
    • 观察Arduino UNO板载LED闪烁

Blink - Arduino UNO