AVX2指令集:AVX指令集的加强版

  对于指令集和AVX指令集不了解的朋友可以先看看《AVX是什么?AVX指令集技术与应用解析》。当年AVX在SE4指令集的基础上加入了256位矢量宽度、增强的数据排序、3/4个操作数、不对齐内存存取以及VEX编码方式,最直接的收益就是浮点性能最大提升了2倍。

  AVX2的新内容

  在2011年发布的AVX2则在此基础上加入了以下新内容:

  -整数SIMD指令扩展至256位

  -2个新FMA单元及浮点FMA指令

  -离散数据加载指令“gather”、新的位移和广播指令

  理论性能:整数和浮点性能翻倍

  其中最为重要的是对256位的整数SIMD的支持,并新增60条256位浮点SIMD指令,完善从AVX开始的256位扩展,理论上可再次提升整数和浮点运算速度。

  FMA指令集是AVX的扩展指令集,即熔合乘法累积,一种三元运算指令,允许建立新的指令并有效率地执行各种复杂的运算。熔合乘法累积可结合乘法与加法运算,通过单一指令执行多次重复计算,从而简化程序,从而使系统能快速执行绘图、渲染、相片着色、立体音效,及复杂向量运算等计算量大的工作。

  FMA则关系到浮点运算能力。Haswell架构中拥有2个新的FMA单元(Intel的FMA3指令),每个FMA单元支持8个单精度或4个双精度浮点数,每周期单/双精度FLOPs都要比AVX高1倍。

  FMA拥有20种指令形式,与3种操作数次序组合,形成60种新指令,为选择内存操作数或目的操作数提供了极大的灵活性。另外融合乘加还会自动选择多项式的计算过程,降低了延迟。

  AVX两个128位通道独立,AVX2实现互通

  在AVX中,Intel定义了两个128位通道,分别是高通道和低通道,不同通道不能互取数据;到AVX2中,跨通道数据排列操作则实现了高低通道数据互通,效率更高。

  新的离散数据加载指令是一种访问非连续内存的基本操作,可以加载8个双字节或者4个四字节到一个目的寄存器中,提供了一种新的矢量化途径。

  另外AVX2还加入了一些移位指令和广播指令,其中移位指令包括任意到任意SIMD数据置换与矢量移位,使矢量化更高效、可靠。

  实际应用:加强视频处理、游戏和专业计算性能

  理论可以说得很美好,但能不能投入到日常使用,能给性能带来多大的提升,才是用户最为关注的。

  AVX2加强了音频、视频处理、游戏以及专业计算性能,音频算法优化,视频算法优化,直播算法优化

  (1)目前大部分程序(包括操作系统以及游戏)的代码靠的主要是整数运算。AVX2指令集引入了对256位整数矢量指令的支持,让Haswell处理器的整数运算比上代架构有了更大提升,软件响应速度更快,运行更流畅。另外,较多使用整数运算的图像、视频处理也将受益。

  (2)新的 FMA单元加强了处理器浮点运算性能。对普通用户来说,游戏效果、3D动画以及视频播放是接触浮点运算最多的应用领域;浮点运算还是通用计算的主力。 AVX2指令集帮助Haswell处理器提升浮点运算性能,也就是说,Haswell处理器将能比Sandy Bridge和Ivy Bridge展现出更强的3D性能和更快更准的通用计算能力。

发表在 算法优化 | 留下评论

宏碁E5-471G拆机更换内存或固态硬盘

 

今天准备给宏基E5-471升级内存,结果翻过来一看,居然整个背板是一块,根本就没有升级的小窗口,这是为了少开模,省钱吗?只好上网搜开机教程,省得撬坏了。在zol论坛找到一篇,下面是从zol坛友发的帖子那拷过来的:

1E5-471G这款机器,后盖没有预留方便更换内存硬盘的后盖,更换硬盘内存要将机器后盖打开。将后盖所有背后螺丝拧开,延C面(后盖)缝隙慢慢打开即可。


宏碁E5-471G拆机更换固态硬盘,(老本也可参考升级扩容)
 2E5-471G这款机器官方介绍为没有光驱,其实商家是预留了光驱位置的,光驱位内填充的是一块塑料托架,拆开光驱固定螺丝就可以取出,购买此机器的朋友后期可以根据自己需要加装光驱或者加装硬盘,加装固态硬盘就需要使用这个预留光驱位置。
宏碁E5-471G拆机更换固态硬盘,(老本也可参考升级扩容)

宏碁E5-471G拆机更换固态硬盘,(老本也可参考升级扩容)

3、拆开机器C(后盖)。大家看到机器里面硬盘及内存位置,硬盘向右侧慢慢推动即可拿下来。


宏碁E5-471G拆机更换固态硬盘,(老本也可参考升级扩容)

4、将原机硬盘固定托架拆下,换到即将更换的固态硬盘上面,然后将固态硬盘放回到原机硬盘位置。


宏碁E5-471G拆机更换固态硬盘,(老本也可参考升级扩容)

5E5-471G预留了光驱接口,这个接口并不是只能装光驱用,也可以利用光驱硬盘托架将替换下的原机硬盘安装的此处,光驱硬盘托架在网上到处都有卖的。


宏碁E5-471G拆机更换固态硬盘,(老本也可参考升级扩容)

宏碁E5-471G拆机更换固态硬盘,(老本也可参考升级扩容)
 6、将安装好托架的硬盘装到光驱位置。原机带的光驱面板可以拆下来装到硬盘光驱托架上,这样对外观没有任何影响。


宏碁E5-471G拆机更换固态硬盘,(老本也可参考升级扩容)
 7、接下来就直接装系统就可以了。一下是装完系统后的图片。这样既提升了笔记本整体性能又增加了整体存储容量,如果有容量不够的笔记本也可以利用这种方法不用拆机更换原硬盘就可以加装硬盘进行扩容。
宏碁E5-471G拆机更换固态硬盘,(老本也可参考升级扩容)

宏碁E5-471G拆机更换固态硬盘,(老本也可参考升级扩容)
 создание контекстной рекламыоперация ушейwedding trainsанализатор wifi сетей для windows 10

发表在 Linux驱动开发 | 标签为 , , , , | 留下评论

如何解决编译linux内核(解决声卡问题),遭遇fatal error: linux/limits.h: 没有那个文件或目录

最近帮一位上海的朋友搞一块小板,在ubuntu15.04 vivid上已经加载了对应了.ko驱动包

但关键是系统根本就枚举不到该声卡ALC5640,试了OpenSUSE也是一样的结果,看来是内核漏加载了什么模块。

所以准备重新编译Linux内核3.19.3,结果运行:

make menuconfig

得到错误提示:

        local_lim.h:38:26: fatal error: linux/limits.h

 

应该是在linux目录下找不到limits.h文件。有诸多兄弟碰到过:http://blog.csdn.net/u014655590/article/details/38854555

安装 linux-libc-dev:amd64

        apt-get install  linux-libc-dev:amd64

如果还是解决不了,进入上面链接看下。

都安装好后再 make menuconfig,成功!!!

 

发表在 Linux驱动开发 | 标签为 , | 留下评论

linux硬件设备的表示方法及查看工具

最近有个案子是关于Linux上的声卡驱动,遂了解了下Linux下查看硬件支持的方法。

本文主要解说在Linux中,硬件设备的表示方法及查看工具等;最主要的目的是当我们遇到硬件问题时,懂得如何根据硬件信息来解决问题;

一、在Linux 系统中,对硬件判别的标识的依据;

在 LinuxSir.Org 讨论区,我们经常看到有些弟兄这样来描述自己的硬件“我的显示卡是XXX牌子的,Linux 不支持怎么办?”。其实这样描述是最差的,大家也根本没有办法提供帮助;因为Linux对硬件的识别是以为芯片组的厂商为依据的,而非硬件的品牌;因为现在硬件厂商大多是OEM的,也就是说硬件的主芯片是他们生产不了的,但他们会从硬件主芯片厂商拿来,焊接在自己的电路板上,这就是OEM 的过程;

无论什么硬件都是以芯片组的厂商为标识的,而不是什么市场看到的这个品牌,那个品牌的;举个例子,我们在市场上看到有各种各样的显卡,其实看一下他们的芯片,大多是ATI和 NVIDIA的,所有的ATI和NVIDIA的驱动都是ATI和NVIDIA开发出来的。所以我们提问的时候,要把硬件的芯片说出来,芯片是驱动的唯一标识,而不是品牌!!!

所以我们要找硬件的驱动时,我们一定要根据硬件主芯片的信息来找相关的驱动;


二、在Linux中查看硬件信息的工具;

在Linux 中,并不是没有工具可以查看硬件的芯片信息,应该说Linux的工具能把硬件信息查看的更清楚;下面介绍几个常用的工具;我们最常用的工具还是lspci ;其它的工具只是了解一下;


1、lspci 列出所有PCI 设备;

lspci – list all PCI devices ,主要是有来列出机器中的PCI 设备,比如声卡、显卡、猫、网卡等,主板集成设备也能列出来;lspci 是读取 hwdata 数据库,hwdata 由软件包 hwdata 提供;大约有如下文件;

[beinan@localhost ~]# rpm -ql hwdata-0.158-1
/etc/hotplug/blacklist
/etc/pcmcia
/etc/pcmcia/config
/usr/X11R6/lib/X11/Cards
/usr/share/doc/hwdata-0.158
/usr/share/doc/hwdata-0.158/COPYING
/usr/share/doc/hwdata-0.158/LICENSE
/usr/share/hwdata
/usr/share/hwdata/CardMonitorCombos
/usr/share/hwdata/Cards
/usr/share/hwdata/MonitorsDB
/usr/share/hwdata/pci.ids
/usr/share/hwdata/pcitable
/usr/share/hwdata/upgradelist
/usr/share/hwdata/usb.ids

lspci 有两个参数是我们常用的,-b 和-v ,lspci 也会把usb接口列出来;

举例:

[root@localhost beinan]# lspci -b
00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)
00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)
00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)
00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)
00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 83)
00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 03)
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03)
00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
02:09.0 CardBus bridge: Texas Instruments Texas Instruments PCIxx21/x515 Cardbus Controller
02:09.2 FireWire (IEEE 1394): Texas Instruments Texas Instruments OHCI Compliant IEEE 1394 Host Controller
02:09.3 Unknown mass storage controller: Texas Instruments Texas Instruments PCIxx21 Integrated FlashMedia Controller
02:09.4 Class 0805: Texas Instruments Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD)

分析一下这台机器中有什么设备,看主要的就行,与我们应用相关的;

00:02.0 VGA compatible controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02)
00:02.1 Display controller: Intel Corporation 82852/855GM Integrated Graphics Device (rev 02) 注:这是显示卡;
USB Controller 表示的是USB 接口;我们看到有三个这样的设备;我的笔记本上正好有三个USB 接口;
Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03) 注:这是声卡;
Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03) 注:这是猫;
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 注:这是网卡,芯片是8139的;
FireWire (IEEE 1394): Texas Instruments Texas Instruments OHCI Compliant IEEE 1394 Host Controller 注:这是1394接口的信息;事实上我的笔记本也有这样的接口;

那得到这些信息有什么用处呢?如果机器中有些设备支持的不好,我们就可以根据这些信息在Google 上搜索,比如我感觉我的声卡有问题,就可以根据声卡信息相关的来搜索找解决问题的办法;根据这些信息,我们也可以到硬件芯片组的官方去找答案或者驱动;

如果想知道硬件更为详细的内容,我们可以用 lspci -v 来查看;

[root@localhost beinan]# lspci -v

比如我们可以通过 lspci -v 来查看硬件的irq中断什么的;比如网卡不好用,是不是irq 存在冲突了?如果您不知道怎么解决硬件驱动不了的情况,就要把 lspci -v 相应硬件的信息整段贴出来,这才是解决问题的唯一办法;所以学会提问也是极为重要的;

有的系统发行版本,还有lsusb 的工具,自己尝试一下吧;


2、存储设备查看和操作工具;

我们查看存储设备的工具主要有 fdisk ;parted ;cfdisk 等;最常用也是最方便的就是fdisk ;parted 就当一个补充吧,这个工具目前看来并不是太成熟;

请参考:

《Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍》
《实例解说 fdisk 使用方法》


3、通过查看/proc 目录的相应文件获取一些硬件信息;

我们在查看 /etc/fstab 时,会注意到这样一行;

/dev/proc /proc proc defaults 0 0

proc 看起来象是一个文件系统,其实他并不是一个真正的文件系统 , 它是“proc – process information pseudo-filesystem”,译成中文大概的意思是“进程信息伪装文件系统”呵呵,这是我翻译的,有可能不对,请多多指正;
“The proc filesystem is a pseudo-filesystem which is used as an interface to kernel data
structures. It is commonly mounted at /proc. Most of it is read-only, but some files allow
kernel variables to be changed.”

我再来乱译一下然后再根据/proc 的内容自己理解理解。proc 文件系统做为内核kernel 数据结构的接口,把kernel 的一些信息(比如硬件信息,包括CPU 、网卡、显示卡、内存、文件系统、SCSI 设备 ….)写到 proc 文件系统中,proc被mont 到 /proc 目录;/proc 目录中有大数据大多文件是只读的,但一些数据是根据内核的变化而变化的;/proc 目录中的数据是经常变动的,对于系统中的每个进程都有一个PID;都可以在/proc 中找到;我们也可以通过 ps -aux |more 来查看进程;

我们可以通过 cat 命令来读取/proc 目录下的文件,比如cpu的信息;

[root@localhost beinan]# cat /proc/cpuinfo

详细的内容还得需要您来慢慢查看;对于 /proc 的了解也是有必要的;


4、dmesg

dmesg 是一个显示内核缓冲区系统控制信息的工具;比如系统在启动时的信息会写到/var/log/

注:dmesg 工具并不是专门用来查看硬件芯片组标识的工具,但通过这个工具能让我们知道机器中的硬件的一些参数;因为系统在启动的时候,会写一些硬件相关的日志到 /var/log/message* 或 /var/log/boot* 文件中;

如果我们用这个工具来查看一些硬件的信息;这个工具信息量太大,的确需要耐心;

[root@localhost beinan]# dmesg
[root@localhost beinan]# dmesg -c 注:清理掉缓冲区,下次开机的时候还会自动生成;


5、 hwbrowser

hwbrowser 是 您当前硬件配置的图形化浏览器 ,这个工具是图形的。可能系统在默认的情况下没有安装。需要您安装才行。在Fedora 4.0 中,如果能用yum 或apt 应该是通过如下的命令来安装;

[root@localhost beinan]# yum install hwbrowser

[root@localhost beinan]# apt install hwbrowser
[root@localhost beinan]# hwbrowser

当然您也可以通过rpmfind.net 或者freshrpms.net 上寻找rpm 包来安装

[root@localhost beinan]# rpm -ivh hwbrowser*.rpm

我建议您最好是通过软件包更新工具yum 和apt来安装,这样能自动解决依赖关系;


6、lshal 和 hal-device-manager

通过 lshal 和hal-device-manager 也能知道硬件相关信息,不过这个工具对新手操作起来是有点麻烦,但我还是得介绍一下;

[root@localhost beinan]# lshal

hwbrowser 是 lshal 的图形化界;可能系统在默认的情况下没有安装,这个工具包是Fedora 扩展包,需要您安装才行。在Fedora 4.0 中,如果能用yum 或apt 应该是通过如下的命令来安装;

[root@localhost beinan]# yum install hal-device-manager

[root@localhost beinan]# apt install hal-device-manager
[root@localhost beinan]# hal-device-manager

当然您也可以通过rpmfind.net 或者freshrpms.net 上寻找rpm 包来安装

[root@localhost beinan]# rpm -ivh hal-device-manager*.rpm

我建议您最好是通过软件包更新工具yum 和apt来安装,这样能自动解决依赖关系;


三、不同的硬件有不同的配置工具和与之相应的配置文件;

不同的硬件有不同的配置工具,也有与之相应的配置文件;比如关于显示器和显示卡的配置文件是/etc/X11/xorg.conf ,对于老的Linux版本应该是/etc/X11/X86Config 或 X86Config-4 ,xorg 或 X86的配置文件还包括鼠标、键盘等在X桌面环境下的配置和控制等;

声卡的配置文件是/etc/modprobe.conf 或 /etc/modules.conf ;

文件系统的配置文件是 /etc/fstab ;

声卡的配置工具,一般情况下是alsaconf

当然不同的发行版也有相应的硬件配置或管理 工具,比如Fedora Core 4.0 有如下的硬件配置或管理工具;

[root@localhost beinan]# system-config-mouse
[root@localhost beinan]# system-config-network-tui
[root@localhost beinan]# gnome-system-monitor
[root@localhost beinan]# system-config-network
[root@localhost beinan]# system-config-printer-gui
[root@localhost beinan]# system-config-soundcard
[root@localhost beinan]# setup

当然这些图形化的工具并不是万能的,他们的功能还是有极大的局限性;所以在硬件配置上,大多还是通过文本模式来操作的;


四、硬件驱动是由内核支持的,但驱动都存放在哪里?

硬件驱动是必须由内核支持的,无论是我们自己安装驱动,还是内核自带的驱动都是如此。硬件驱动如果是以内核模块支持的,驱动目录位于: /lib/modules/内核版本/kernel/目录 或 /lib/modules/内核版本/kernel/drivers 目录中;

[root@localhost beinan]# uname -r
2.6.11-1.1369_FC4
[root@localhost beinan]# ls /lib/modules/2.6.11-1.1369_FC4/kernel
arch crypto drivers fs lib net sound

注:只有驱动在内核中以模块的方法支持的,或者我们自己安装的驱动,驱动才位于 /lib/modules/相应的目录;如果是直接置入内核的,不会出现在/lib/modules驱动相关的目录;


五、硬件不被系统支持怎么办?

如果一个Linux 系统不支持您的硬件,解决的办法无非是有两种,一种是下载驱动自己安装,Linux的驱动大多是开源社区开发的,厂商提供的比较少;有时也可能要重编内核,主要看驱动内部的说明文件怎么说了。因为驱动本来是要内核支持的,编译内核也极为正常;

值得注意的是:如果我们要重新编译内核,最好把硬件情况摸清楚了,比如鼠标、光驱、软驱、USB 设备;硬盘、文件系统… … 都要仔细的查看;

请参考:


后记:

Linux 对硬件的支持目前的情况来看是要比前几年好多了,比如声卡、网卡、显示卡(非3D加速,如果是3D加速的,要下载厂商驱动,如果厂商不提供,那大多是没有办法了,因为厂商不公开硬件的相关参数,开源社区也没有办法开发,对不对?);对于有些硬件还是需要我们来自己安装驱动或编译内核来解决;

Linux对硬件的驱动的开发,开源社区是相当积极的,但厂商很少提供非Windows的驱动,大多数的Linux的驱动都是开源社区奉献的;有人可能会说Windows的硬件驱动最容易,但我不是这么认为,我有一声ISA接口的声卡,在windows 98 和winme 中发出怪声,在windows 2000更是没有驱动。但在Linux中却支持的非常好。 呵。。。

Linux 对硬件并不是大家原来所说的,越老越旧的硬件跑起来最好,Linux对新设备的支持,可能厂家刚放出来产品,开源社区就有人研究了。解决办法也会在开源社区可以找到;但有些硬件厂商不会提供驱动的开发参数、信息之类的,所以开源社区有时对这样的硬件也是无奈,但这样的设备目前看来是比较少;大多硬件都支持 Linux ;

如果您遇到硬件相关的问题,不妨通过我上面所说的来找线索解决,就目前来看也没有太多的问题。只要仔细一点,细点心,学会用Google 搜索,大多问题还是能解决的。

作者:北南南北

发表在 Linux驱动开发 | 标签为 , , , , , , | 留下评论

如何解决文章格式化编辑器win7 64位下找不到Comctl32.ocx

最近原来的系统很慢,重装win7。

今天跑文章格式化编辑器,结果提示找不到Comctl32.ocx。

1. 上网搜索下载Comctl32.ocx,直接拷贝到c:\windows\system32不行,

还要注册到系统里,手动注册参照:https://support.microsoft.com/zh-cn/kb/146219/zh-cn

Regsvr32 /s c:\windows\system32\Comctl32.ocx

2. 提示:“模块 “C:\windows\system32\comctl32.ocx”已加载,但对dllregisterserver的调用失败”

继续搜,找到答案:

“产生此错误的原因是因为程序没有以管理员身份运行,

在win7系统里,命令和程序你都可以右键用管理员身份运行即可解决!“

3. 重新运行文章格式化编辑器,成功运行。

 

发表在 程序应用 | 标签为 , | 留下评论

安装nodejs时需要用到lib32stdc++6:apt-get找不到

安装chrome-apk在Linux,windows下跑apk,需要用到nodejs

nodejs编译需要用到lib32stdc++6,但在ubuntu 12.04 x86-64下

sudo apt-get install lib32stdc++6

找不到该deb包。

在oschina.net看到有人碰到同样的问题:http://www.oschina.net/question/1470892_151825

解决方案:

  • 比如64位Ubuntu安装32位的WPS的时候就需要安装32位的libc6
    sudo apt-get install libc6:i386

发表在 Linux驱动开发 | 标签为 , , | 留下评论

如何获取小米note root权限

同事做安卓安全,需要多台安卓机器的root权限,今天拿小米note 开刀。

温馨提示:

如果你对安全不敏感,不建议进行root解锁,root后,你的手机将无安全性可言。因为你已经把钥匙拱手送给不知名的幕后黑手,你的手机随时有可能受到不可预知的侵入,root软件已经在背后做了手脚。

开始老是安装不上驱动,我的红米1s都没问题。

后来经同事提醒,也许USB线太长或插在USB 3.0端口上会有问题。

于是把usb线从延长线拔下,直接插在usb 2.0口上,小米助手安装驱动成功。

用Root大师,先在手机界面出现调试确认信息(需先打开USB调试功能,该项是隐藏功能,),

提醒这厮先安装了一个清理助手,然后开始root。

Root大师版本:V1.8.2 ,机型库:150213

 

附:

小米note打开usb调试方法/步骤:

1、首先打开【设置】;

2、然后打开【全部设置】;

3、然后最下面【关于手机】;

4、然后找到【Android版本】,连续点击【Android版本】5次,手机会有提示还剩下几次打开开发模式。

注意:这里还是没有开启【USB调试模式】,这个时候返回到设置页面首页最下面你会看到【开发者选项】,选项

 

发表在 Linux驱动开发 | 留下评论

解决本地主机访问genymotion 安卓虚拟机实现web服务

最近同事需要通过安卓虚拟机实现通讯中转,之前玩过genymotion安卓虚拟机,基于virtualbox,性能不错,速度挺快的。

Genymotion virtualbox配置了两个网卡,一个网卡用于和宿主机器通讯IP:192.168.56.101

另一个网卡用于虚拟机内的wifi模拟IP:10.0.3.15

 

现在的问题是:宿主机器192.168.56.1无法访问该web服务,如:http://192.168.56.101:8080。

可以ping通,初步怀疑安卓指定端口8080没有开放,

但直接安装在真实手机上访问是没有问题的,基本可以排除该原因。

在网上搜索发现端口转发,尝试成功。

事后分析,没有转发的话,两张网卡是独立的,

宿主机器看不到10.0.3.15网卡,web服务似乎是绑定在该ip上。

具体步骤:

网卡1默认设置即可(图1),网卡2设置为网络地址转换(NAT)(图2),设置端口转发(图3)

图1

genymotion  

图2

genymotion virtualbox 网络设置

图3

图4

 

 

发表在 Linux驱动开发 | 标签为 , , , | 留下评论

5年旧笔记本上Windows 8完胜XP,IE浏览网页速度至少快2倍

Microsoft Windows XP 一直被视为性能最好,占用资源最少的 32 位 Windows 操作系统,从2002年推出至今已 11 年仍有不少用户使用。

今天我把老婆的5年前旧买的HP笔记本4421s拿去维修,准备拿来做备用本,键盘有几个键可能是因为氧化,导致失效。

系统装了xp,感觉好慢,i3的cpu,2G内存。

拿去金桥电脑城,换键盘,找不到原配,问了加笔记本维修的,说要55元。

然后我自己去找了一圈,专卖键盘的柜台只有裸键盘(55元,不包安装,需要点焊),需把原配的框取下来装上。

我又找到原来的那家,他去转了一圈,实际也是去了那家。+10安装费,我一想差不多,就让他给换了。

换了键盘,又加了2G内存条。

然后拿回去重装系统,装64位Windows 8,这样才能认全4G内存。

装好后,感觉比起 Windows XP 有几乎快两倍的表现,IE 浏览器浏览网页的速度更快上 3 倍,绝对值得升级。

在网上找了相关的资料,也表明同样配置win8快过xp。

一名 Microsoft MVP Troy Hunt 日前在其 Blog 上发布一段影片,以 2006 年推出的 Lenovo T60 笔记本电脑去测试 Windows 8 与 Windows XP 的差别。这台笔记本电脑只有 1GB 内存,采用 1.83GHz Core Duo 处理器及 7200 转硬盘,确实安装 Windows 7 也会有点吃力,但换著是 Windows 8,又会相差多少呢?大家可以看看以下的简单比较。

7年旧电脑上,Windows 8 和 XP 各项常用操作对比测试结果

在各项的比较见到,所有测试均是 Windows 8 完胜 Windows XP,其中还对 IE 浏览器打开网页的速度进行了测试。

Windows XP 系统中安装的为 IE8 版本,Windows 8 系统中为默认内置的 IE10。首先将两个 IE 浏览器的临时文件夹清空,然后在打开同一个网站 troyhunt.com。

IE8 完全打开网站的时间为 7.9s,而 IE10 仅为 2.9s,速度几乎要快上 3 倍。

IE10 和 IE8 打开网站速度测试结果

同样在其他测试中,Windows 8 所采用的是 Office 2013,Windows XP 则是 Office 2003,版本方面也略有不同,另外还有相同的 Adobe Reader 及 Photoshop CS3。此看来,Win8 对硬件的要求真心不高噢!使用旧电脑的朋友们,是不是该考虑升级系统了!

发表在 Linux驱动开发 | 标签为 , , , | 留下评论

解决win2008+PHP连接 SQL SERVER 2008无法加载对应php_sqlsrv_55_ts.dll

公司后台数据库从mysql切换到mssql 2008,同事一直加载不成功mssql扩展组件。

IIS日志也没有相关的提示。

一直用php+mysql ,没有办法,从网上找了些资料,搞了半天,按下面流程撸了一遍,还是不行。

64bits环境: 

– IIS 6.0

– PHP 5.5.6

– SQL Server 2008

– Windows 2008 server

步骤:

1. 首先按通常做法配置好PHP5.5连接MS SQL Server 2008

2. 下载正确版本的 ntwdblib.dll (2000.80.2039),注意这个版本号,需根据mssql版本找对应的dll版本,切记。。。

   这个地址可以下载到该版本: http://download.csdn.net/detail/siweitang/3381423 

3. 覆盖 windows\system32\ntwdblib.dll 

4. 覆盖 php5.5.6\ntwdblib.dll 

 

但是做了以上动作,还是加载失败,phpinfo.php没有相关的sqlsrv的信息。

继续搜索,在浏览http://robsphp.blogspot.co.uk/2012/06/unofficial-microsoft-sql-server-driver.html(需翻墙才能看)

突然想起php环境用的64位的,怀疑是否是x86,还是64bits的?从该页面下载了64bits的extension dll替换,重启IIS,成功加载。

https://onedrive.live.com/?cid=669ee24817961774&id=669EE24817961774%21720 上面页面有该地址

发表在 Linux驱动开发 | 标签为 , , | 留下评论