linaro@bm1684:~$ cat /etc/network/interfaces.d/eth0
auto eth0
iface eth0 inet dhcp
iface eth0 inet static
address 192.168.4.168
netmask 255.255.254.0
linaro@bm1684:~$ cat /etc/network/interfaces.d/eth1
auto eth1
iface eth1 inet static
address 192.168.4.169
netmask 255.255.254.0
gateway 192.168.4.1 这个可能会干扰上网
dns-nameservers 192.168.4.1
作者归档:xinlu
CLion2019.3.x远程调试
因为调试比特大陆的盒子,故玩一波远程调试。
1.在Toolchains新增一个工具链。
2.在Deployment找到上图上添加的RemoteHost的配置。
3.在CMake的选项,Toolchain的选项中,选择之前的Remotehost配置。
在构建选项中,选择se5的选项,至此完成远程调试的全部配置。
$~ export DISPLAY=unix:0.0
$~ export DISPLAY=unix:0.0
Ubuntu连接外网的方法
安装一个win7的虚拟机,把win7中的所有防火墙关闭。
在ubuntu端上ping虚拟机。
Ubuntu关闭休眠模式
查看休眠模式的情况。
systemctl status sleep.target
如果显示sleep的状态为loaded,表示休眠是处于开启状态。
systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
关闭休眠模式。
systemctl status sleep.target查看是否休眠
安装lightdm后,无法快捷键锁屏问题
因为向日葵必须是lightdm环境,故自安装lightdm后,发现无法快捷健锁屏,可有以两种方法解决。
1.切换回gdm3的桌面环境。
sudo dpkg-reconfigure gdm3
2.在系统中增加自定义快捷键。
Name: dm-tool lock
Command: dm-tool lock
ShortCut: Window+L
Qt连接远程数据库的优化方案
Qt内部提供的MySQL连接方案是内部插件QMYSQL的,如果在连接配置不当时长时间空闲时,会导致线程琐死,主要原因mysql_stmt_prepare这个函数阻塞了线程,导致一直不返回.
默认的情况下,以下参数都是0,我们需要设置一个时间,让其超时返回.
MYSQL_OPT_RECONNECT=1;
MYSQL_OPT_CONNECT_TIMEOUT=10;
MYSQL_OPT_READ_TIMEOUT=10;
MYSQL_OPT_WRITE_TIMEOUT=10
此外,我们还需要增加一个定时轮循的健康检查函数,避免长时间空闲而自动断开,从而导致访问超时重连的异常处理.
健康检查的SQL语句是: select 1 as result;这个SQL不涉及表操作,性能很高,能正确返回1即可.
db = QSqlDatabase::addDatabase(driver, connectionName);
QString hostName = QKgSettings::value("Mysql/hostName", "127.0.0.1").toString();
int port = QKgSettings::value("Mysql/port", 3306).toInt();
QString userName = QKgSettings::value("Mysql/userName", "test").toString();
QString password = QKgSettings::value("Mysql/password", "123").toString();
QString database = QKgSettings::value("Mysql/database", "woall").toString();
db.setConnectOptions("MYSQL_OPT_RECONNECT=1;MYSQL_OPT_CONNECT_TIMEOUT=10;MYSQL_OPT_READ_TIMEOUT=10;MYSQL_OPT_WRITE_TIMEOUT=10");
db.setHostName(hostName);
db.setPort(port);
db.setUserName(userName);
db.setPassword(password);
db.setDatabaseName(database);
if(!db.open()) {
return db;
}
GoLang的配置
GoLang-2019.3.4的版本
export GOROOT=/go-1.19.12
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
export GOPATH=/home/working/goapp
export GOPROXY=https://goproxy.cn,https://goproxy.io,direct
export PATH=$PATH:/node-v14.18.2/bin:/cmake-3.24.2/bin
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
修改高版本SDK适配
直接使用SSH实现网站代理
ssh -N -D 0.0.0.0:1080 root@remoteserver
本地浏览器直接设置SOCKS5代理.
Ubuntu下的MySql组件不能被加载的解决办法
其组件是:libmysqlclient.so.18
必须采用ldd指令确认libmysqlclient.so.18组件是不依赖openssl那些加密组件的,正常情况下,文件大小约9M。
在Qt5.11.2中,不知道为什么LD_LIBRARY_PATH及QCoreApplication::addLibraryPath均无法调用文件,故仅有如下方法可解决。指定文件主动加载,才可能解决。
QLibrary my(QCoreApplication::applicationDirPath() + "/libmysqlclient.so.18");
if(my.load()) {
qDebug() << "success to load mysql.";
}