将ARM DDT在windows下使用ssh key免密登录的方式做调试

一直使用arm ddt调试linux下的程序,每次连接调试机都要输入一次密码,比较麻烦,翻看了多次DDT的说明书,没有找到设置ssh key的地方,
找了DDT的安装目录下,发现有putty的执行文件,想来他应该是通过putty连接到远程调试机。
打开DDT客户端,做调试机的链接测试,发现窗口有如下

CMD.EXE /Q /C " "C:\Program Files\Arm Forge Client\libexec\remote-exec.cmd"  xxx@xxx /home/xxx/arm/forge/libexec/ddt-remoted "

的命令提示,用记事本打开本机 C:\Program Files\Arm Forge Client\libexec\remote-exec.cmd 发现有如下内容

  "%basedir%plink.exe"  %*

哈,是通过plink连接远程机器,开一个cmd命令行,运行plink,发现有 -i 参数可以传入ssh 私钥文件参数

按照通常putty利用sshkey无密连接远程机器的方法,
先用puttygen生成公钥复制到远程调试机的authoried_keys文件的最后,
同时保存私钥文件到磁盘 c:\myputykey.ppk ,并在

 "%basedir%plink.exe"  %* 

这句末尾的 %* 前添加上 -i c:\myputtykey.ppk 的参数

 "%basedir%plink.exe" -i c:\myputtykey.ppk %* 

做保存

再次打开arm ddt连接调试机器,果然没有再要输入密码。

Popularity: 1% [?]

Random Posts

修改重置MySQL5.7得root登录密码

一台测试服务器,很久没有登录使用,忘记了mysql得root密码,经过搜索引擎一番查找,发现需要进行如下步骤做root密码重置

1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:
skip-grant-tables=1
这一行配置让 mysqld 启动时不对密码进行验证
2、重启 mysqld 服务:
systemctl restart mysql.server
3、新开一个终端,使用 root 用户登录到 mysql:
mysql -u root
4、切换到mysql数据库,更新 user 表:
use mysql;
update user set authentication_string = password(‘newrootpassword’), password_expired = ‘N’, password_last_changed = now() where user = ‘root’;

在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string

5、退出 mysql,编辑 /etc/my.cnf 文件,删除前面添加得 skip-grant-tables=1 这一行内容
6、重启 mysqld 服务,
systemctl restart mysql.server
7. 再用新密码登录即可

Popularity: 2% [?]

Random Posts

给ESXI 6.7直通Nvidia显卡并安装显卡驱动

新整了一台电脑,因为经常使用虚拟机工作,便直接安装了ESXI 6.7版本,不需要宿主系统了。
整理了一下将机器上nvidia显卡直通到虚拟机中使用碰到的一些问题以及解决方法:
1. 首先在ESXI管理界面中选择 主机=》管理=》硬件=>PCI设备 将要直通的显卡选上直通,然后重新启动ESXI提供使直通可以起作用
2. 新建虚拟机,添加直通设备 虚拟硬件=》添加其他设备 选择PCI设备,然后下拉选择在步骤1中直通的显卡设备
3. 在虚拟机的选项 虚拟机选项=>高级=》配置参数 编辑配置 按钮中添加一个配置 hypervisor.cpuid.v0=FALSE
4. 开始在新建的虚拟中安装系统
5. 对Win系统,安装好系统后,进入系统下载安装nvidia的驱动程序,重启后可以看到显卡是一个惊叹号,禁用掉esxi自带的svga,然后重启系统,显卡驱动正常。
但是使用 GPU-Z 检查,发现 CUDA 等功能没有,不知道如何解决
6. 对ubuntu 系统,安装好系统后,先将驱动下载下来
进入控制台 sudo vi /etc/modprobe.d/blacklist.conf
添加如下一行内容 blacklist nouveau
重新启动系统,使用命令 /sbin/lsmod | grep nouveau 应该看不到东西
使用 ctrl+alt+f1 进入控制台,sudo ./NVIDIA-Linux-x86_64-….run 进行安装,安装过程中不要选择安装 opengl 相关文件,否则重启后登录,会在登录界面死循环。 尚未找到解决方法
网上找到的一些其他使用 sudo apt install nvidia-384-dev nvidia-modprobe 等之类安装方式,安装重启后都会发生在登录界面死循环的问题,所以一定要下载官方的run安装文件进行安装
安装完成后可以使用 nvidia-smi 命令查看显卡状态

7. 安装完后发现不能像vmware那样方便拷贝一些文字,搜索后发现vmare官方认为拷贝剪切板内容是不安全的,默认给关闭了
打开方法,编辑虚拟机,虚拟机选项=>高级=》配置参数 编辑配置 按钮中添加两个配置
isolation.tools.paste.disable=FALSE
isolation.tools.copy.disable=FALSE
这样重启虚拟机后,就可以方便拷贝复制简短文本文字了
为了获取更多拷贝黏贴支持,还是使用rdp,vnc之类的远程桌面为好了。

Popularity: 2% [?]

Random Posts

cygwin下gcc编译碰到的两个编译出错问题解决

使用 cygwin 下gcc编译一个项目,出现如下问题:
1. 某个文件编译出错提示

/tmp/ccgeynfy.s: 致命错误:can’t write 1284 bytes to section .text of out/CSMgrBase.o because: ‘文件过大’

解决方法,给gcc编译命令添加参数 -Wa,-mbig-obj 解决问题

2. 前一个问题解决后,继续编译出现错误提示

…. string table overflow at offset 10000033

这里 找到解决方法, 给gcc编译命令添加 -O2 或 -O1 优化指令解决问题

Popularity: 3% [?]

Random Posts

给阿里云linux服务器安装php 5.6

1. 首先使用yum安装依赖包

  yum install -y bzip2 libxml2-devel openssl-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel gd-devel zlib-devel

2. 下载 mcrypt 库编译安装

wget https://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2
tar -xjvf libmcrypt-2.5.8.tar.bz2
cd libmcrypt-2.5.8
./configure
make && make install
cd ..

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar -xzvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install

3.下载php安装包,并编译安装


./configure --prefix=/usr/local/php5637 --with-config-file-path=/usr/local/php5637/etc \
  --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=www \
  --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
  --enable-opcache --enable-mbstring --enable-soap --enable-zip --enable-bcmath --with-openssl \
  --with-zlib --with-curl --with-gd --with-zlib-dir=/usr/lib --with-png-dir=/usr/lib --with-jpeg-dir=/usr/lib \
  --with-mhash --with-freetype-dir --with-mcrypt --enable-gd-native-ttf \
  --with-xmlrpc --with-iconv-dir=/usr/local/libiconv

3.添加运行需要的账号和组

groupadd www
useradd php-fpm -M -s /sbin/nologin -g www

4. 复制一个配置文件,默认php fcgi 端口为 9000, 可以修改php-fpm.conf设置为其他值

cp php.ini-production /usr/local/php5637/lib/php.ini
cd /usr/local/php5637/etc
cp php-fpm.conf.default php-fpm.conf

5.启动php

/usr/local/php5637/sbin/php-fpm

6.查看php-fpm运行情况

netstat -ltunp | grep 9000
#或者
lsof -i :9000
#或者
ps -fe |grep php-fpm

7. 将php-fpm 启动命令添加到 /etc/rc.local 中,开机就运行

Popularity: 4% [?]

Random Posts

一起Linux防火墙造成的服务端口不能访问小故障的解决方法

在Linux服务器上新开了一个tomcat服务,端口设置为 8081, 结果远程机器打开不了,在本机通过 curl 127.0.0.1:8081 可以正常输出页面内容。
检查机器防火墙没有开启,iptables没有开启,不知道是什么问题
最后执行如下命令解决(也就是将防火墙服务状态复位一下)
systemctl stop firewalld
systemctl start firewalld
systemctl stop firewalld

可能是系统的一个bug吧

Popularity: 5% [?]

Random Posts

网站部署https遇到的一些坑

由于被运营商时不时的劫持篡改页面内容导致客户投诉,下定决心部署https彻底解决数据被劫持问题,
部署https过程中刚碰到了如下一些坑,逐个解决
1. ssl证书问题,部署后部分浏览器打开会提示证书链不完整,请求不会发送到服务端
解决方法:证书商那里签发的有两张证书,一个是我们网站的证书,一个是他们的中间证书,需要将两个证书的内容拷贝合并到一起(自己的要放在前面)
2. 部分页面打开后,浏览器上还是http协议头, 但是在公司测试服务器上同样配置确没有这个问题
因为使用的阿里SLB将443端口反向到后端80端口上,在nginx服务器上有配置一些rewrite跳转,自动适配请求的 $schema, 需要强制设置为 https
3. 部分页面js/css资源地址还是引用的http地址
原因同2,部分代码中是使用请求来的协议决定输出http还是https的,修改强制地址https问题解决

– 前面问题 2和3 都是配置 SLB 将443端口透传到后端80端口造成的,如果配置 443 到 443 则没有上面的问题

Popularity: 5% [?]

Random Posts

cygwin下strptime函数找不到的解决方法

一段代码使用到了 strptime 这个函数,之前在cygwin下gcc 4.9.3 可以编译通过,重装cygwin后,新的gcc 6.3.0 编译不通过,strptime是不可识别的,
在cygwin的include目录下执行

 find . -name "*.h" |xargs grep strptime

发现定义在 /usr/include/time.h 中,需要先定义 __XSI_VISIBLE 才会有,查看了一下__XSI_VISBLE定义出现的地方
在Make文件中添加 -D_XOPEN_SOURCE=700 重新编译,问题解决

Popularity: 5% [?]

Random Posts

关于PKCS5Padding与PKCS7Padding对齐方式的区别

近日使用C++写一DES加密算法和对方java写的接口做加解密的通信处理,碰到加密后的数据对方界面不了的问题,发现两边对齐方式不一致,对方使用PKCS5对齐,我这边使用了PKCS7做数据对齐。修改为PKCS5方式对齐后问题解决。
借此重新温习了一下两个对齐方式的处理过程。
以8个字节为一组,如果数据不足8位,则以8位做对齐,末尾填充缺少的字节数量。
比如有数据 FF FF,
缺少6个字节,则需要补充6个字节的06,达到8位长度
补充对齐后 FF FF 06 06 06 06 06 06

PKCS5 对齐 和 PKCS7 对齐的区别在于
PKCS7 末尾的值区间为 1,2,3,4,5,6,7 也就是最多补充7个字节
PKCS5 末尾的值区间为 1,2,3,4,5,6,7,8 也就是最多补充8个字节,
也就是PKCS5在数据长度刚好能为8整除时,后面继续补充8个字节的08,而此时PKCS7是不做字节补充的
想比较PKCS7而言PKCS5能更好的还原实际加密数据的长度,
比如有8字节长度数据 FF FF FF FF 04 04 04 04,
在PKCS7时是不做字节补充的,当解密完成后就不知道是否需要移除尾部的4个字节的04
而PKCS5时,则需要再补充8个字节的08,得到 FF FF FF FF 04 04 04 04 08 08 08 08 08 08 08 08 解密后可以正确还原得到 FF FF FF FF 04 04 04 04

Popularity: 5% [?]

Random Posts

VS2015下CUDA代码编译异常的一点小问题解决方法

安装了 VS2015后,下载了CUDA 8.0安装,试了一个.cu文件编译正常通过,
继续安装了一个Intel parallel_studio_xe_2016, 然后使用 Intel 的C++编译器进行编译,结果nvcc编译.cu文件时候报错,一些c++库的头文件解析不通过,
网上搜索了一下,没有找到解决方法。

自己对比了一下使用VS 的C++编译器和 Intel 的C++编译器时,在控制台输出的nvcc命令,发现 –cl-version 参数值不同

使用VS2015的C++编译器时,出现的参数是 –cl-version 2015
而使用Intel的C++编译器时,出现的参数是 –cl-version 2010

进一步查找CUDA的自定义编译配置,在 Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations\ 目录下的 CUDA 8.0.props 中对编译器做了检查,

...
<CudaClVerson Condition="'$(PlatformToolset)' == 'v140'">2015</CudaClVersion>
<CudaClVersion Condition="'$(CudaClVersion)' == ''">2010</CudaClVersion>
...

CUDA的自定义编译配置中没有对Intel C++编译器做判断处理,自己修改下面那个为空时默认为2010的行,
将2010修改为2015,保存后重新编译,两个编译器都可以编译通过,问题解决。

Popularity: 5% [?]

Random Posts

Next Page →