Linux之通过udev规则指定设备文件名 2017-08-01

Linux之通过udev规则指定设备文件名


需求:有三个/dev/video0-3设备,但是每次重启设备的文件名称会改变, 想固定这个设备文件名

当前 /dev/video0 是 PCI 采集卡,1-2是USB摄像头 …

// 通过 udevinfo (ubuntu:udevadm) 查看设备信息
// udevadm (udev管理工具)

Nginx反向代理之端口转发 2017-07-23

Nginx反向代理之端口转发

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器

// 格式检查 /etc/nginx/nginx.conf 
nginx -t -c /etc/nginx/nginx.conf
# /etc/nginx/nginx.conf 

http {
    // 当通过 face.danoolive.com:80 端口访问这个服务器时
    // 该请求会被转发到 127.0.0.1:9992
    server {
        listen 80; 
        server_name face.danoolive.com; 
        // 通过访问的路径来处理转发 ...
        location / { 
            // 也不一定是内网 127.0.0.1 ,也可以是另外一个服务器的某个端口等 ...
            proxy_pass http://127.0.0.1:9992;
        }
    }

Ubuntu之 portmapper is not running 解决方案 2017-07-20

Not starting: portmapper is not running

以前叫portmap现在叫rpcbind, portmap的主要功能是把RPC程序号转化为Internet的端口号

  • Stopping NFS kernel daemon [ OK ]
  • Unexporting directories for NFS kernel daemon… [ OK ]
  • Exporting directories for NFS kernel daemon… [ OK ]
  • Starting NFS kernel daemon
  • Not starting: portmapper is not running
$ sudo apt-get purge rpcbind  
$ sudo apt-get install nfs-kernel-server  

Ubuntu下使用Hostapd搭建热点 2017-07-17

Ubuntu下使用Hostapd搭建热点

// 二选一(1):准备工作: 安装 hostap 
wget http://hostap.epitest.fi/releases/hostapd-2.2.tar.gz
tar -zxf hostapd-2.2.tar.gz
cd hostapd-2.2
cd hostapd
make

// 二选一(2):安装 hostap
apt-get install hostapd

// 打补丁
git clone https://github.com/OpenSecurityResearch/hostapd-wpe
patch -p1 < ../hostapd-wpe/hostapd-wpe.patch

在Linux中使用lsusb查看USB设备 2017-07-16

在Linux中使用lsusb查看USB设备

Bus 008 : 指明设备连接到哪(哪条总线)
Device 002 : 表明这是连接到总线上的第二台设备
ID : 设备的ID
Broadcom Corp. Bluetooth Controller :生产商名字和设备名
$ lsusb
Bus 002 Device 002: ID 05e3:0612 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 05e3:0612 Genesys Logic, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Golang之在Ubuntu系统上安装部署 2017-07-13

Golang之在Ubuntu系统上安装部署

旧版本的安装

sudo apt-get install golang-go

export GOROOT=$HOME/go
export PATH=$GOROOT/bin:$PATH

从1.4版本以后go需要编译安装, 不想编译又想使用新版本的go怎么办

OpenCV之图片相关方法使用 2017-07-11

旋转图片

// 中心点
Point center = Point(src.cols/2, src.rows/2);
double angle = 90.0; // 角度
double scale = 1; // 缩放
Mat matrix(2, 3, CV_32FC1);
matrix = getRotationMatrix2D(center, angle, scale);
Mat dst = Mat::zeros(src.rows, src.cols, src.type());
warpAffine(src, dst, matrix, dst.size());
cv::imwrite("a.jpg", src);
cv::imwrite("b.jpg", dst);

使用CMake配置Qt项目时使用OpenMP 2017-07-10

OpenMP

// CMakeLists.txt
FIND_PACKAGE( OpenMP REQUIRED)
if(OPENMP_FOUND)
    message("OPENMP FOUND")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
// 测试
#include <omp.h>
#pragma omp parallel
    {
    printf("hello world! ThreadID = %d\n", omp_get_thread_num());
    }
    cout << endl;

Dialog QML Type 2017-07-10

Dialog QML Type


import QtQuick.Dialogs 1.2

// 基本的 Dialog
Rectangle {
    color: "red"
    anchors.fill: parent
    MouseArea {
        anchors.fill: parent
        onClicked: {
            dialog.visible = true
        }
    }
}

QmlBook 2017-07-08

https://cwc1987.gitbooks.io/qmlbook-in-chinese/

Qt Quick QML Types
http://doc.qt.io/qt-5/qtquick-qmlmodule.html

Qt Quick Controls QML Types
http://doc.qt.io/qt-5/qtquick-controls-qmlmodule.html

快速入门(Quick Starter)