分类 Ubuntu 下的文章

“Ubuntu是以桌面应用为主的Linux发行版,基于Debian。Ubuntu有三个正式版本,包括桌面版、服务器版及用于物联网设备和机器人的Core版。从17.10版本开始,Ubuntu以GNOME为默认桌面环境。 Ubuntu是著名的Linux发行版之一,也是目前最多用户的Linux版本。 ”

gocv介绍
gocv是OpenCV4在Go中的绑定,使用它可以在Go里做图像处理。
Github: https:/​/github.com/hybridgroup/gocv
opencv介绍
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行。

Ubuntu/Linux安装步骤

go get -u -d gocv.io/x/gocv
cd ~/go/pkg/mod/gocv.io/x/gocv@v0.27.0

编译动态库

sudo make install

编译静态库

sudo make install BUILD_SHARED_LIBS=OFF

验证安装

go run ./cmd/version/main.go

运行结果:

gocv version: 0.27.0
opencv lib version: 4.5.2

ubuntu 命令 cd - 功能

cd - 进入上一次的目录

Ubuntu/Linux File & Directory Commands

To navigate into the root directory, use "cd /"
To navigate to your home directory, use "cd" or "cd ~"
To navigate up one directory level, use "cd .."
To navigate to the previous directory (or back), use "cd -"

在系统层面,linux 设置了 receive buffer 可以配置的最大值,可以在下面的文件中查看,一般是 linux 在启动的时候会根据内存大小设置一个初始值。

/proc/sys/net/core/rmem_max:允许设置的 receive buffer 最大值
/proc/sys/net/core/rmem_default:默认使用的 receive buffer 值
/proc/sys/net/core/wmem_max:允许设置的 send buffer 最大值
/proc/sys/net/core/wmem_dafault:默认使用的 send buffer 最大值

但是这些初始值并不是为了应对大流量的 UDP 报文,如果应用程序接收和发送 UDP 报文非常多,需要讲这个值调大。可以使用 sysctl 命令让它立即生效:

sysctl -w net.core.rmem_max=26214400 # 设置为 25M

也可以修改 /etc/sysctl.conf 中对应的参数在下次启动时让参数保持生效。

如果报文报文过大,可以在发送方对数据进行分割,保证每个报文的大小在 MTU 内。

另外一个可以配置的参数是 netdev_max_backlog,它表示 linux 内核从网卡驱动中读取报文后可以缓存的报文数量,默认是 1000,可以调大这个值,比如设置成 2000:

sudo sysctl -w net.core.netdev_max_backlog=2000

Referenced from:https://cizixs.com/2018/01/13/linux-udp-packet-drop-debug/

关键字:
apache2 max url length

使用apache2的时候出现下面提示:

Request-URI Too Long
The requested URL's length exceeds the capacity limit for this server.
Apache/2.4.41 (Ubuntu) Server at const.net.cn Port 443

解决办法:
只需编辑/etc/apache/apache2.conf文件
并添加以下行:

LimitRequestLine 1024000

重新启动apache,一切都很好。

官方文档地址:https://gpsd.gitlab.io/gpsd/ntpshmmon.html

主要功能:ntpshmmon - capture samples from gpsd or other ntpd refclock sources

说明:
该程序监视由 gpsd 更新的共享内存,可能还有其他 refclock 源,作为与 ntpd(网络时间协议守护程序)通信的一种方式。它以 ntpd 实例的方式读取这些内容。可以和ntpd同时运行,不会干扰ntpd的正常运行。

运行示例:

ntpshmmon version 1
#      Name   Seen@                Clock                Real               L Prec
sample NTP0 1627115420.671328194 1627115420.657344572 1627115420.599999904 0  -1
sample NTP0 1627115421.172376906 1627115421.158492951 1627115421.099999904 0  -1
sample NTP0 1627115421.673299286 1627115421.657205338 1627115421.599999904 0  -1
sample NTP0 1627115422.174359331 1627115422.159059047 1627115422.099999904 0  -1
sample NTP0 1627115422.674614713 1627115422.659179096 1627115422.599999904 0  -1
sample NTP0 1627115423.175694092 1627115423.158721480 1627115423.099999904 0  -1
sample NTP0 1627115423.676354472 1627115423.658370531 1627115423.599999904 0  -1
sample NTP0 1627115424.176879187 1627115424.157629915 1627115424.099999904 0  -1
sample NTP0 1627115424.676888574 1627115424.656837305 1627115424.599999904 0  -1
sample NTP0 1627115425.177168301 1627115425.157127699 1627115425.099999904 0  -1
sample NTP0 1627115425.677752027 1627115425.658393755 1627115425.599999904 0  -1