做host文件域名切换到不一样的Ip时,本以为切换到自己的内网IP,不小心粘贴错了,搞到我自己的这个个人博客的IP上去了,于是一访问出出了下面这个博主的问题,于是我得出结论这个回显Apache is functioning normally,肯定是一个什么框架打出的还是怎么回事,有待进一步的了解,说白了就是指向时的index.html的输出的内容给人的感觉是apache配置问题,其实是html内容写的是这样,造成了误解。
------
同时要注意到有可能是这样配置产生的:你的Apache配置文件(conf/httpd.conf)里面的Group后面是不是设置有问题。出现这个问题一般是因为在配置文件里面Group指令的参数值为负数(如“Group #-1”)。不要通过组标识来指定Apache将要以什么组的身份支持,反之应该指定正确的组名。 一般来说Apache配置文件Group指令的值会设置为“nobody”,而User指令的值则设置为“nobody”,即要求Apache以nobody.nobody的身份运行。
阅读全文
------
同时要注意到有可能是这样配置产生的:你的Apache配置文件(conf/httpd.conf)里面的Group后面是不是设置有问题。出现这个问题一般是因为在配置文件里面Group指令的参数值为负数(如“Group #-1”)。不要通过组标识来指定Apache将要以什么组的身份支持,反之应该指定正确的组名。 一般来说Apache配置文件Group指令的值会设置为“nobody”,而User指令的值则设置为“nobody”,即要求Apache以nobody.nobody的身份运行。
阅读全文
[实践OK]Linux关机重启动命令在 Read-only file system时用init和shutdow时的区别,shutdown -h now 关不了提示Bus error,用init 0就能关掉。
Unix/LinuxC技术 jackxiang 2013-2-2 21:50
Linux关机重启动命令在 Read-only file system时用init和shutdow时的区别,shutdown -h now 关不了提示Bus error,用init 0就能关掉:
1)终端关闭:linux - shutdown -h now 立即关机:shutdown -h now halt poweroff
shutdown -r 18:23:52 #定时重启在18点23分52秒关闭,-r 是restart的意思,即重启含义。
shutdown -h now #即h是halt的意思,poweroff就是立即关机的含义,不再重新启动。
Broadcast message from root@raspberrypi (pts/0) (Sat Feb 2 13:51:35 2013):
The system is going down for system halt NOW!
[ 8458.116208] Power down.
该命令的一般格式 shutdown [选项] [时间] [警告信息] 命令中各选项的含义为: - k 并不真正关机而只是发出警告信息给所有用户 - r 关机后立即重新启动 - h 关机后不重新启动 - f 快速关机重启动时跳过fsck - n 快速关机不经过init 程序 - c 取消一个已经运行的shutdown 需要特别说明的是该命令只能由超级用户使用。 例1,系统在十分钟后关机并且马上重新启动 # shutdown –r +10 例2,系统马上关机并且不重新启动 # shutdown –h now
2)init 0 立即关机,init 6 重启。
3)reboot 重启
QA:
Init 6是重新启动机器。
reboot也是重新启动机器。
那么这两个命令到底有什么区别呢?
对这两个操作使用man命令看到的内容如下:
"init 6" 基于一系列/etc/inittab文件,并且每个应用都会有一个相应shutdown脚本。
'init 6' 调用一系列shutdown脚本(/etc/rc0.d/K*)来使系统优雅关机;
'reboot'并不执行这些过程,reboot更是一个kernel级别的命令,不对应用使用shutdown脚本。 .
我们应该在通常情况下使用 init 6.
reboot - reboot performs a sync(1M) operation on the disks, and then a
multi- user reboot is initiated. See init(1M) for details.
init 6 Stop the operating system and reboot to the
state defined by the initdefault entry in
/etc/inittab.
在出问题的状况下或强制重启时使用reboot.
更多参考:http://www.cnblogs.com/summergarden/archive/2013/01/12/2857754.html
1)终端关闭:linux - shutdown -h now 立即关机:shutdown -h now halt poweroff
shutdown -r 18:23:52 #定时重启在18点23分52秒关闭,-r 是restart的意思,即重启含义。
shutdown -h now #即h是halt的意思,poweroff就是立即关机的含义,不再重新启动。
Broadcast message from root@raspberrypi (pts/0) (Sat Feb 2 13:51:35 2013):
The system is going down for system halt NOW!
[ 8458.116208] Power down.
该命令的一般格式 shutdown [选项] [时间] [警告信息] 命令中各选项的含义为: - k 并不真正关机而只是发出警告信息给所有用户 - r 关机后立即重新启动 - h 关机后不重新启动 - f 快速关机重启动时跳过fsck - n 快速关机不经过init 程序 - c 取消一个已经运行的shutdown 需要特别说明的是该命令只能由超级用户使用。 例1,系统在十分钟后关机并且马上重新启动 # shutdown –r +10 例2,系统马上关机并且不重新启动 # shutdown –h now
2)init 0 立即关机,init 6 重启。
3)reboot 重启
QA:
Init 6是重新启动机器。
reboot也是重新启动机器。
那么这两个命令到底有什么区别呢?
对这两个操作使用man命令看到的内容如下:
"init 6" 基于一系列/etc/inittab文件,并且每个应用都会有一个相应shutdown脚本。
'init 6' 调用一系列shutdown脚本(/etc/rc0.d/K*)来使系统优雅关机;
'reboot'并不执行这些过程,reboot更是一个kernel级别的命令,不对应用使用shutdown脚本。 .
我们应该在通常情况下使用 init 6.
reboot - reboot performs a sync(1M) operation on the disks, and then a
multi- user reboot is initiated. See init(1M) for details.
init 6 Stop the operating system and reboot to the
state defined by the initdefault entry in
/etc/inittab.
在出问题的状况下或强制重启时使用reboot.
更多参考:http://www.cnblogs.com/summergarden/archive/2013/01/12/2857754.html
通过什么样的方式才能保证我们的类在内存中只能创建出一个实例对象? 单例。
Php/Js/Shell/Go jackxiang 2013-1-31 11:49
单例模式,也叫单态模式
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。
还有, singleton能够被状态化; 这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否保持住这个计数,并且能synchronize的安全自动加1,如果你要把这个数字永久保存到数据库,你可以在不修改单态接口的情况
下方便的做到。
另外方面,Singleton也能够被无状态化。提供工具性质的功能,
Singleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。
我们常常看到工厂模式中类装入器(class loader)中也用Singleton模式实现的,因为被装入的类实际也属于资源。
一般Singleton模式通常有几种形式:
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
if (instance==null)
instance=new Singleton();
return instance; }
}
使用Singleton.getInstance()可以访问单态类。
上面第二中形式是lazy initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。
注意到lazy initialization形式中的synchronized,这个synchronized很重要,如果没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。关于lazy initialization的Singleton有很多涉及double-checked locking (DCL)的讨论,有兴趣者进一步研究。
一般认为第一种形式要更加安全些。
使用Singleton注意事项:
有时在某些情况下,使用Singleton并不能达到Singleton的目的,如有多个Singleton对象同时被不同的类装入器装载;在EJB这样的分布式系统中使用也要注意这种情况,因为EJB是跨服务器,跨JVM的。
我们以SUN公司的宠物店源码(Pet Store 1.3.1)的ServiceLocator为例稍微分析一下:
在Pet Store中ServiceLocator有两种,一个是EJB目录下;一个是WEB目录下,我们检查这两个ServiceLocator会发现内容差不多,都是提供EJB的查询定位服务,可是为什么要分开呢?仔细研究对这两种ServiceLocator才发现区别:在WEB中的ServiceLocator的采取Singleton模式,ServiceLocator属于资源定位,理所当然应该使用Singleton模式。但是在EJB中,Singleton模式已经失去作用,所以ServiceLocator才分成两种,一种面向WEB服务的,一种是面向EJB服务的。
Singleton模式看起来简单,使用方法也很方便,但是真正用好,是非常不容易,需要对Java的类 线程 内存等概念有相当的了解。
总之:如果你的应用基于容器,那么Singleton模式少用或者不用,可以使用相关替代技术。
来自:http://www.dowhile.net/forum.php?mod=viewthread&tid=497
百度有一篇文章,使用单例模式内存中保存数据可提高数据处理速度,Url:http://wenku.baidu.com/view/c0d6f78cb9d528ea81c779a0.html
PHP的单例模式:
http://blog.sina.com.cn/s/blog_6dbbafe001018w7r.html
http://blog.csdn.net/jungsagacity/article/details/7618587
http://www.cnblogs.com/mo-beifeng/archive/2012/02/21/2362332.html
PHP的单例实现如下:
Run Result:
This is a Constructed method;调用方法成功
( ! ) Fatal error: Clone is not allow! in D:\wamp\www\aaa\danli.php on line 27
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。
还有, singleton能够被状态化; 这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否保持住这个计数,并且能synchronize的安全自动加1,如果你要把这个数字永久保存到数据库,你可以在不修改单态接口的情况
下方便的做到。
另外方面,Singleton也能够被无状态化。提供工具性质的功能,
Singleton模式就为我们提供了这样实现的可能。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收(garbage collection)。
我们常常看到工厂模式中类装入器(class loader)中也用Singleton模式实现的,因为被装入的类实际也属于资源。
一般Singleton模式通常有几种形式:
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
if (instance==null)
instance=new Singleton();
return instance; }
}
使用Singleton.getInstance()可以访问单态类。
上面第二中形式是lazy initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。
注意到lazy initialization形式中的synchronized,这个synchronized很重要,如果没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。关于lazy initialization的Singleton有很多涉及double-checked locking (DCL)的讨论,有兴趣者进一步研究。
一般认为第一种形式要更加安全些。
使用Singleton注意事项:
有时在某些情况下,使用Singleton并不能达到Singleton的目的,如有多个Singleton对象同时被不同的类装入器装载;在EJB这样的分布式系统中使用也要注意这种情况,因为EJB是跨服务器,跨JVM的。
我们以SUN公司的宠物店源码(Pet Store 1.3.1)的ServiceLocator为例稍微分析一下:
在Pet Store中ServiceLocator有两种,一个是EJB目录下;一个是WEB目录下,我们检查这两个ServiceLocator会发现内容差不多,都是提供EJB的查询定位服务,可是为什么要分开呢?仔细研究对这两种ServiceLocator才发现区别:在WEB中的ServiceLocator的采取Singleton模式,ServiceLocator属于资源定位,理所当然应该使用Singleton模式。但是在EJB中,Singleton模式已经失去作用,所以ServiceLocator才分成两种,一种面向WEB服务的,一种是面向EJB服务的。
Singleton模式看起来简单,使用方法也很方便,但是真正用好,是非常不容易,需要对Java的类 线程 内存等概念有相当的了解。
总之:如果你的应用基于容器,那么Singleton模式少用或者不用,可以使用相关替代技术。
来自:http://www.dowhile.net/forum.php?mod=viewthread&tid=497
百度有一篇文章,使用单例模式内存中保存数据可提高数据处理速度,Url:http://wenku.baidu.com/view/c0d6f78cb9d528ea81c779a0.html
PHP的单例模式:
http://blog.sina.com.cn/s/blog_6dbbafe001018w7r.html
http://blog.csdn.net/jungsagacity/article/details/7618587
http://www.cnblogs.com/mo-beifeng/archive/2012/02/21/2362332.html
PHP的单例实现如下:
Run Result:
This is a Constructed method;调用方法成功
( ! ) Fatal error: Clone is not allow! in D:\wamp\www\aaa\danli.php on line 27
问题:
问题讨论:
一:[北京]PHPMAN 14:52:14
有没有一个比sprintf稍微强大点的替换函数?
sprintf('select * from %s where %s=%s',这里是数组);
----------------------------------------------------------------------------------------
1)实现这个功能用到正则,这个函数可能是这样,数组长度不定怎么办?:
学习正则并可以回调的函数preg_replace_callback:
PHP的多个参数args,结合create_function生成一个函数来实现,
再学习这个create_function:
最后,结合上面两个函数成型如下新的函数,该问题得到解决:
中庸就是春江 16:33:04
在preg_replace_callback 中使用匿名函数,不知道怎么把变量$arr带过去,无奈使用$GLOBALS
尽管可以有多方法,但这样写也是对新函数的了解,有说用数组函数,不用正则的:
莫莫<happy.yin@qq.com> 16:34:34
用正则 还不如 implode array_keys array_value 组合 划算呢
问题讨论:
一:[北京]PHPMAN 14:52:14
有没有一个比sprintf稍微强大点的替换函数?
sprintf('select * from %s where %s=%s',这里是数组);
----------------------------------------------------------------------------------------
1)实现这个功能用到正则,这个函数可能是这样,数组长度不定怎么办?:
学习正则并可以回调的函数preg_replace_callback:
PHP的多个参数args,结合create_function生成一个函数来实现,
再学习这个create_function:
最后,结合上面两个函数成型如下新的函数,该问题得到解决:
中庸就是春江 16:33:04
在preg_replace_callback 中使用匿名函数,不知道怎么把变量$arr带过去,无奈使用$GLOBALS
尽管可以有多方法,但这样写也是对新函数的了解,有说用数组函数,不用正则的:
莫莫<happy.yin@qq.com> 16:34:34
用正则 还不如 implode array_keys array_value 组合 划算呢
Smarty里生成随机变量的方法备案,巧用math函数在smarty模板中给变量动态赋值。
Php/Js/Shell/Go jackxiang 2013-1-30 16:32
[实践OK]再生龙实现整盘拷贝包括MBR size is 440 bytes@clone the boot loader(exectable code area,the first 446 bytes) to:sdc,Linux下还有其它备份神器--Partimage分区数据备份,类Ghost,可惜不支持Ext4,而有一个台湾人写的再生龙支持Ext4格式的硬盘备份值得实践。
Unix/LinuxC技术 jackxiang 2013-1-30 13:36
Linux下的备份神器--Partimage分区数据备份,类Ghost,可惜不支持Ext4,而有一个台湾人写的再生龙支持Ext4格式的硬盘备份值得实践:
http://blog.51cto.com/storysky/291587
Download:http://clonezilla.nchc.org.tw/clonezilla-live/download/
实践发现:选那个默认的会出现错误,重新选那个KDE的就没有问题。
但是进去后发现还能选简体中文呢,我的目的就是想克隆一整块硬盘,
作为备份路由的CentOS7.4和爱快@KVM虚拟,只有一块盘/etc/sda,
后来把那个外接的硬盘给上电就识别为/etc/sdc ,/etc/sdb是我那个USB做的UltraISO,
用U盘装上再生龙的LiveCD开机启动的,http://jackxiang.com/post/6986/ ,
台湾人做事情就是仔细会很耐心的提示你生怕你搞错了,/etc/sda是源,/etc/sdc是目标:
1)询问进行拷贝整个盘到别一块盘是否要检查下源盘并修复,这个不用按默认就可以了。
2)拷贝完后是重启还是关机,这个我选关机。(因为我得把那U盘和目标盘拔下来再开机。)
3)/etc/sdc没有标签,两次提醒会OVERWRITE,于是就让它OverWrite得了。
4)Do you want to clone the boot loader(exectable code area,the first 446 bytes) to:sdc? (这个太关键了,我就是想整盘拷贝,这张盘坏了直接上到这台机器硬盘位换下那块坏盘的备份盘,当然要拷贝。)
再生龙也是用的dd,经过询问,给你把参数加进去了,如下:
I remembered reading one question how would you back up the MBR of a disk.
Two of the choices are
dd if=/dev/sda of=/dev/sdb bs=512 count=1
dd if=/dev/sda of=/dev/sdb bs=440 count=1
and the correct answer is
dd if=/dev/sda of=/dev/sdb bs=440 count=1
I am confused. Is the MBR size 440B or 512B ?
dd是
down vote
accepted
The MBR IS 512 bytes. So the first example is how you would back it up. The partition table is at the end, in the area after 440 bytes in - so, if you wanted to back it up WITHOUT the partition table, then you could use the second example (why you'd want that, I don't know).
From:https://unix.stackexchange.com/questions/254657/mbr-size-is-440-bytes-or-512-bytes
_____________________________________________________
里面说道,这个是以实际文件来备份的,如果一个盘符有20G,而文件只有10M,那就备份10M,有点像Ghost。
可以通过它备份到一个自己创建的盘符里。
你是否一直在寻找在Linux下可以替代dd命令,类似Ghost的工具了,恭喜你不需要再寻找了,因为它就在你的面前--Partimage。
我使用的是Ubuntu12.04,想要安装Partimage第一步:
在终端输入,
sudo aptitude update
sudo aptitude install partimage
现在开始使用:
在终端输入,sudo partimage ,现在使用partimage的备份功能
用Tab移动选项,选择你需要备份的区域,在“Image file to crate/use”中填写你将备份的文件存放到哪个目录,在“Action to be done”选项中选择"Save partition into a new image file",这是说保存分区到新的备份文件,其他选项我就不介绍了,我的洋文不好,介绍起来心虚。用Tab键将光标移动到“<Next (F5)>”处进行下一步操作,当然你可以直接按“F5”,如图
开始备份时partimage会提示是否进行压缩备份,有点类似Ghost备份时提示你“不压缩,压缩,高级压缩”的选项,我在这里选择的是第二个“压缩”,其余的选项是默认的,等待你自己去发掘:
同样用Tab选中“<Continue (F5)>”或直接按“F5”进行下一步操作。进行备份前partimage会提示需要你填写备注,填写备注后按“OK”partimage会提示你备份的分区的一些信息,比如分区大小,已使用空间,剩余空间等等:
上图就是partimage提示你填写一些备注,当然你也可以不填写
partimage提示你分区的信息。选中“OK”后就开始备份了:
备份中
备份完后直接按“Enter”(回车键)退出partimage,到此我们就备份了我想要备份的分区,现在我想还原怎么样操作了?
现在使用partimage进行还原的操作:
在终端输入,sudo partimage
如图,我们还是选择第三个分区,在在“Image file to crate/use”中填写你的备份文件,当然partimage会自动在你备份的文件名中加上类似“.000”的后缀,
在“Action to be done”选项中选择“Restore partion from an image file”从一个备份文件中还原,然后按“F5”进行下步操作。
我使用的默认的值进行操作,直接按“F5”,在还原前会提示你备份时填写的备注信息,如图
按“Enter”进行下一步操作,partimage会提示你分区的信息,如图:
选中“OK”进行还原:
还原成功后,直接按“ok”就可以退出软件。
参考:http://www.linuxcast.net/public/cast_show/32 //centos需要修改yum的源
来自:http://www.ilovexinji.com/xinji-home/106-linux-ghost-partimage
视频:http://www.linuxcast.net/public/cast_show/32
http://blog.51cto.com/storysky/291587
Download:http://clonezilla.nchc.org.tw/clonezilla-live/download/
实践发现:选那个默认的会出现错误,重新选那个KDE的就没有问题。
但是进去后发现还能选简体中文呢,我的目的就是想克隆一整块硬盘,
作为备份路由的CentOS7.4和爱快@KVM虚拟,只有一块盘/etc/sda,
后来把那个外接的硬盘给上电就识别为/etc/sdc ,/etc/sdb是我那个USB做的UltraISO,
用U盘装上再生龙的LiveCD开机启动的,http://jackxiang.com/post/6986/ ,
台湾人做事情就是仔细会很耐心的提示你生怕你搞错了,/etc/sda是源,/etc/sdc是目标:
1)询问进行拷贝整个盘到别一块盘是否要检查下源盘并修复,这个不用按默认就可以了。
2)拷贝完后是重启还是关机,这个我选关机。(因为我得把那U盘和目标盘拔下来再开机。)
3)/etc/sdc没有标签,两次提醒会OVERWRITE,于是就让它OverWrite得了。
4)Do you want to clone the boot loader(exectable code area,the first 446 bytes) to:sdc? (这个太关键了,我就是想整盘拷贝,这张盘坏了直接上到这台机器硬盘位换下那块坏盘的备份盘,当然要拷贝。)
再生龙也是用的dd,经过询问,给你把参数加进去了,如下:
I remembered reading one question how would you back up the MBR of a disk.
Two of the choices are
dd if=/dev/sda of=/dev/sdb bs=512 count=1
dd if=/dev/sda of=/dev/sdb bs=440 count=1
and the correct answer is
dd if=/dev/sda of=/dev/sdb bs=440 count=1
I am confused. Is the MBR size 440B or 512B ?
dd是
down vote
accepted
The MBR IS 512 bytes. So the first example is how you would back it up. The partition table is at the end, in the area after 440 bytes in - so, if you wanted to back it up WITHOUT the partition table, then you could use the second example (why you'd want that, I don't know).
From:https://unix.stackexchange.com/questions/254657/mbr-size-is-440-bytes-or-512-bytes
_____________________________________________________
里面说道,这个是以实际文件来备份的,如果一个盘符有20G,而文件只有10M,那就备份10M,有点像Ghost。
可以通过它备份到一个自己创建的盘符里。
你是否一直在寻找在Linux下可以替代dd命令,类似Ghost的工具了,恭喜你不需要再寻找了,因为它就在你的面前--Partimage。
我使用的是Ubuntu12.04,想要安装Partimage第一步:
在终端输入,
sudo aptitude update
sudo aptitude install partimage
现在开始使用:
在终端输入,sudo partimage ,现在使用partimage的备份功能
用Tab移动选项,选择你需要备份的区域,在“Image file to crate/use”中填写你将备份的文件存放到哪个目录,在“Action to be done”选项中选择"Save partition into a new image file",这是说保存分区到新的备份文件,其他选项我就不介绍了,我的洋文不好,介绍起来心虚。用Tab键将光标移动到“<Next (F5)>”处进行下一步操作,当然你可以直接按“F5”,如图
开始备份时partimage会提示是否进行压缩备份,有点类似Ghost备份时提示你“不压缩,压缩,高级压缩”的选项,我在这里选择的是第二个“压缩”,其余的选项是默认的,等待你自己去发掘:
同样用Tab选中“<Continue (F5)>”或直接按“F5”进行下一步操作。进行备份前partimage会提示需要你填写备注,填写备注后按“OK”partimage会提示你备份的分区的一些信息,比如分区大小,已使用空间,剩余空间等等:
上图就是partimage提示你填写一些备注,当然你也可以不填写
partimage提示你分区的信息。选中“OK”后就开始备份了:
备份中
备份完后直接按“Enter”(回车键)退出partimage,到此我们就备份了我想要备份的分区,现在我想还原怎么样操作了?
现在使用partimage进行还原的操作:
在终端输入,sudo partimage
如图,我们还是选择第三个分区,在在“Image file to crate/use”中填写你的备份文件,当然partimage会自动在你备份的文件名中加上类似“.000”的后缀,
在“Action to be done”选项中选择“Restore partion from an image file”从一个备份文件中还原,然后按“F5”进行下步操作。
我使用的默认的值进行操作,直接按“F5”,在还原前会提示你备份时填写的备注信息,如图
按“Enter”进行下一步操作,partimage会提示你分区的信息,如图:
选中“OK”进行还原:
还原成功后,直接按“ok”就可以退出软件。
参考:http://www.linuxcast.net/public/cast_show/32 //centos需要修改yum的源
来自:http://www.ilovexinji.com/xinji-home/106-linux-ghost-partimage
视频:http://www.linuxcast.net/public/cast_show/32
php获取memcache内所有键值对
Cache与Store jackxiang 2013-1-30 10:53
背景:
Memcache这个存起来的数据,有时要看全面点,有时php代码里可以看到key,然后,通过telnet去查,
http://www.jackxiang.com/post/2484/
但有一个可以遍历的程序也算是方便不少。
来源:http://www.cnblogs.com/sunli/archive/2008/11/01/1324153.html
Memcache这个存起来的数据,有时要看全面点,有时php代码里可以看到key,然后,通过telnet去查,
http://www.jackxiang.com/post/2484/
但有一个可以遍历的程序也算是方便不少。
来源:http://www.cnblogs.com/sunli/archive/2008/11/01/1324153.html
[Js运用]点击获取验证码60秒记时的Js实现方法。
Php/Js/Shell/Go jackxiang 2013-1-29 17:11
1)纯Js实现来自PHP高级群中庸就是春江:
2)用Jquery实现,PHP高级群单曲实现:
2)用Jquery实现,PHP高级群单曲实现:
背景:后知后觉之经过实践证明,其实,调试还是用print_r($_GET);好,见: https://jackxiang.com/post/1950/ ,辅助下正则猫:RegexBuddy,也就解决了90%的问题。
共计有三个方法来调试这个Urlrewrite:
一)调试apache的urlrewrite是个大问题,这儿有两个哥们的博文作了介绍,特转之。
阅读全文
共计有三个方法来调试这个Urlrewrite:
一)调试apache的urlrewrite是个大问题,这儿有两个哥们的博文作了介绍,特转之。
阅读全文
北京时间1月28日消息,据美国国家地理网站报道,瑞典隆德大学生物学家近日一项最新研究表明,蜣螂(Dung Beetle)俗称屎克螂,是利用太空中的银河来为自己导航,这也是动物世界已知拥有如此技能的唯一物种。据研究人员介绍,这种小昆虫可以很快地让自己适应银河在天空中所形成的明亮光带,并沿着相对于这条光带的某种直线路径移动。
这项研究实验近日在南非实施完成。瑞典隆德大学生物学家埃里克-华伦特介绍说,“这是一种复杂的导航技术。对于这么小的动物来说,拥有如此技能是相当难得的。”生物学家们的研究成果发表于《当代生物学》杂志之上。
对于蜣螂这种小昆虫来说,沿着直线运动是非常重要的。它们生活于一个极为复杂的世界,它们之间对于食物(粪便)的争夺也是非常激烈。当它们发现一堆热气腾腾的新鲜粪便,雄性蜣螂会立即将其滚成一个个粪球,然后将其滚向尽量远的地方,同时,它们还要帮助雌性做同样的工作。一对对蜣螂将这些粪球埋在地下,为自己将来的孩子们储备食物。
此前,科学家们已经知道,在白天蜣螂会测定太阳偏振光的对称图案从而为自己导向一条直线路径。我们人类看不到这种图案,但是昆虫的眼睛中拥有这种特殊的感光器。但是,在夜间蜣螂是如何利用视觉功能呢?比如,月光或更微弱的偏振光图案。对于这一问题,科学家们也知之甚少。因此,华伦特带领研究团队在南非一农场专门研究蜣螂的夜间导航问题。
为了吸引蜣螂前来,科学家们为它们提供了一桶桶粪便并泼在农场地面上。最初的观测结果令科学家们很惊讶,甚至在没有月光的夜晚,蜣螂也会沿着直线路径快速滚动粪球。华伦特表示,“这令我们情绪很低落,因为我们根本不知道该如何解释。不过,接下来我们突然想到,它们会不会是利用星光来导向呢?事实证明,它们确实如此。”
为了证明这种星光理论,研究团队在农场里建起了一个小型的封闭式实验台,然而将蜣螂放入其中,观测这些昆虫究竟是如何对不同的天空状况做出反应的。研究人员发现,在晴朗的夜间,即使没有月光,蜣螂也可以以直线路径滚动自己的粪球。为了证明这些蜣螂确实是在聚集银河,研究团队又将实验台搬入约翰内斯堡天文馆。他们发现,只要有银河存在,蜣螂们就会沿着直线运动。最后,为了证明这种银河结论,研究人员又在每一只蜣螂头顶上粘上了一块小小的纸板,挡住它们看向天空的视线。结果是,这些蜣螂只会没目标地到处乱滚动。
研究团队成员、内布拉斯加林肯大学昆虫学家西恩-惠普尔表示,“惊人的实验结果有力地证明了蜣螂是靠星光导向的。”他又指出,灯光污染的另一负面影响就是影响蜣螂的导航。“如果来自城市、家庭和路灯的人造光线淹没了夜空的星光,就有可能妨碍蜣螂的方向感。”研究人员认为,也许在昆虫世界广泛存在这种技术,“迁徙的蛾类可能也拥有这种技能。”(彬彬)
来源:http://ngmchina.com.cn/web/?action-viewnews-itemid-199093
http://www.cnbeta.com/articles/224152.htm
我现在终于想通为何一些动物可以通过太阳来确定方位了,而没有太阳他也能知道太阳在哪儿,是根据太阳的偏光确定太阳的方位的,以前学光学没有弄懂,现在弄懂了。
能看到偏光 的人不一般啊,能在阴天,雨天辨别到太阳的位置,而屎壳郎更厉害能根据银河的光导航,日,人类太渺小了这样来看。
太阳石是靠什么原理来在看不见太阳的情况下辨别方向的?哪位高人能给个详细的解释。
就北欧维京海盗用来在海上识别方向的方法,好像是利用偏振光的原理,哪位高人给解释下,太阳石要做成什么形状,怎么操作,什么原理,越详细越好。谢了。
长见识,还没想到这个现象有这种用途。
补充一点,这在光学上叫做“双折射现象”,是指当一束偏振光透过某些晶体(例如方解石)后,会分成方向不同的两束,当你透过方解石晶体看物体时,会有重影,但两束光线的夹角与入射光的偏振方向有关,当入射光偏振方向与晶体固有的轴(这个轴具体叫什么一时记不清了)成一定关系时,两束光重合。因此可利用这种现象判断光的偏振方向(但当然,首先你得知道晶体的那个轴的方向,应该可以从晶体的菱角判别)。
另外,反射一般不会改变光的偏振方向(但折射会改变光的偏振方向,实际上是过滤出光中某个偏振方向上的分量,如果入射光没有这个方向上的偏振分量,也即两个方向垂直,则会被阻挡),所以即使是在阴天,太阳光穿过云层后偏振方向不会改变。因此,若天上有偏振光,且偏振方向与太阳方向有关,则可利用方解石确定光的偏振方向,进而确定太阳方向。
但有一个说不通的地方:太阳发出的光不是偏振光(实际上是各个方向偏振光的混合)。也许是大气层的折射作用?(就像第二段所说的,折射的确可以过滤出某个方向上的偏振光。)
具体原理,随便找一本大学的光学书,会有很详细的描述。如果你有方解石晶体,可以自己琢磨、试验,虽然原理看似复杂,但操作起来应该很简单的。
偏光太阳眼镜原理:
自然光(非偏极光),其实是由会朝特定方向震动的电磁波所组成,而被反射或散射的光线又通常偏爱某个特定方向,这也是为什么偏光太阳眼镜可以滤掉从车顶或水池反射来的阳光的缘故;自然光经过了偏光镜片的过滤后,就只能让一个方向的光线通过,也就是说偏光镜片能先将光线偏极化后,只允许一个方向的光通过(可视光)。
偏光太阳眼镜就是利用这个特性来阻隔有害光线,因为太阳光无论是碰触到任何物体都会因自然反射或折射产生有害之眩,偏光太阳眼镜就能完全吸收这些会造成刺眼及眼睛伤害的强光
一般太阳眼镜与偏光太阳眼镜的比较:
一般太阳眼镜只是利用减光的作用,因为一般的镜片无法过滤光线,所以只能减低眩光、紫外光等的强度,并无法完全阻隔这些有害光线,所以其功能只是降低眼睛的伤害,但是一般太阳眼镜最大的优势是流行性佳。偏光镜片则因具有偏光性质,所以可完全阻隔因散射、屈折、反射等各种因素所造成之刺眼的眩光。同时也能将对人眼有害的紫外光线完全阻隔,使人在强光下长期活动时,眼睛不易疲倦,达到真正保护的功能,而且能让看见的东西更清晰、立体。
偏光太阳眼镜的功能:
生活中,有太多的光源会产生有害的光线,尤其是太阳光;太阳光里散发出来的光线有:可视光线﹑红外线﹑紫外线等三种。当中以紫外线对人体的皮肤、眼睛..等,造成严重伤害;太阳光所释放出来的光线里 IR ( Infra-red )红外线( 750mm)以上,可视光线(Visible light lay)(310~780nm);紫外线又分为UVA、UVB、UVC( 310nm)以上,青光( Blue light )其中UVA、UVB、UVC是有害光线,如果长时间曝晒会造成身体的损坏,UVB是对视力有严重影响,( Tanning Ray )是烧黑皮肤的光线,大部份眼角会吸收此种UVB光线所以一定要阻绝掉此种光源。偏光太阳眼镜因为具有将光偏极化的功能,所以能将所有之有害光线都阻隔掉却不影响可视光的透过,能够真正达到保护眼睛的功用。
偏光太阳眼镜的应用:
偏光太阳眼镜因为能够100%阻隔有害光线,故其可应用在:
1. 医疗:眼睛手术患者,需要全方位的保护,偏光太阳眼镜是最好的选择。
2. 户外活动:如滑雪、钓鱼、水上活动等,都需要能完全阻隔有害光线的太阳眼镜,以避免眼睛受伤或疲劳。
3. 护目镜
灰色或墨绿色镜片,视物时可保有最自然之原有色彩,是很好的选择。
1、偏光镜片根据光线的波动性偏振原理和百页窗原理设计制造的,能有效削减强光,消除耀眼的反射光和散射光,让凌乱的光线变成平行的光线,使视物更加清晰柔和、清晰。
2、偏光镜片的偏光角度和弧度经过专业设计加工,使配戴者不会有景物失真和眩晕的感觉。
3、偏光片有7层材料复合而成,符合国家太阳镜片标准、UV400紫外线标准,全方位保护眼睛。
第一层为偏光层,是镜片的核心,提供超过99%的偏光效果,有效吸收眩光。
第二、三层为粘接层,能有效抵抗切割、烘烤、烘弯、裁片,经得住恶劣环境的考验。
第四、五层为紫外线吸收层,能吸收99%以上的UV紫外线。
第六、七层为防冲击层,提供良好的韧性、耐冲击性,有效防止镜片刮伤而延长镜片使用寿命。
这项研究实验近日在南非实施完成。瑞典隆德大学生物学家埃里克-华伦特介绍说,“这是一种复杂的导航技术。对于这么小的动物来说,拥有如此技能是相当难得的。”生物学家们的研究成果发表于《当代生物学》杂志之上。
对于蜣螂这种小昆虫来说,沿着直线运动是非常重要的。它们生活于一个极为复杂的世界,它们之间对于食物(粪便)的争夺也是非常激烈。当它们发现一堆热气腾腾的新鲜粪便,雄性蜣螂会立即将其滚成一个个粪球,然后将其滚向尽量远的地方,同时,它们还要帮助雌性做同样的工作。一对对蜣螂将这些粪球埋在地下,为自己将来的孩子们储备食物。
此前,科学家们已经知道,在白天蜣螂会测定太阳偏振光的对称图案从而为自己导向一条直线路径。我们人类看不到这种图案,但是昆虫的眼睛中拥有这种特殊的感光器。但是,在夜间蜣螂是如何利用视觉功能呢?比如,月光或更微弱的偏振光图案。对于这一问题,科学家们也知之甚少。因此,华伦特带领研究团队在南非一农场专门研究蜣螂的夜间导航问题。
为了吸引蜣螂前来,科学家们为它们提供了一桶桶粪便并泼在农场地面上。最初的观测结果令科学家们很惊讶,甚至在没有月光的夜晚,蜣螂也会沿着直线路径快速滚动粪球。华伦特表示,“这令我们情绪很低落,因为我们根本不知道该如何解释。不过,接下来我们突然想到,它们会不会是利用星光来导向呢?事实证明,它们确实如此。”
为了证明这种星光理论,研究团队在农场里建起了一个小型的封闭式实验台,然而将蜣螂放入其中,观测这些昆虫究竟是如何对不同的天空状况做出反应的。研究人员发现,在晴朗的夜间,即使没有月光,蜣螂也可以以直线路径滚动自己的粪球。为了证明这些蜣螂确实是在聚集银河,研究团队又将实验台搬入约翰内斯堡天文馆。他们发现,只要有银河存在,蜣螂们就会沿着直线运动。最后,为了证明这种银河结论,研究人员又在每一只蜣螂头顶上粘上了一块小小的纸板,挡住它们看向天空的视线。结果是,这些蜣螂只会没目标地到处乱滚动。
研究团队成员、内布拉斯加林肯大学昆虫学家西恩-惠普尔表示,“惊人的实验结果有力地证明了蜣螂是靠星光导向的。”他又指出,灯光污染的另一负面影响就是影响蜣螂的导航。“如果来自城市、家庭和路灯的人造光线淹没了夜空的星光,就有可能妨碍蜣螂的方向感。”研究人员认为,也许在昆虫世界广泛存在这种技术,“迁徙的蛾类可能也拥有这种技能。”(彬彬)
来源:http://ngmchina.com.cn/web/?action-viewnews-itemid-199093
http://www.cnbeta.com/articles/224152.htm
我现在终于想通为何一些动物可以通过太阳来确定方位了,而没有太阳他也能知道太阳在哪儿,是根据太阳的偏光确定太阳的方位的,以前学光学没有弄懂,现在弄懂了。
能看到偏光 的人不一般啊,能在阴天,雨天辨别到太阳的位置,而屎壳郎更厉害能根据银河的光导航,日,人类太渺小了这样来看。
太阳石是靠什么原理来在看不见太阳的情况下辨别方向的?哪位高人能给个详细的解释。
就北欧维京海盗用来在海上识别方向的方法,好像是利用偏振光的原理,哪位高人给解释下,太阳石要做成什么形状,怎么操作,什么原理,越详细越好。谢了。
长见识,还没想到这个现象有这种用途。
补充一点,这在光学上叫做“双折射现象”,是指当一束偏振光透过某些晶体(例如方解石)后,会分成方向不同的两束,当你透过方解石晶体看物体时,会有重影,但两束光线的夹角与入射光的偏振方向有关,当入射光偏振方向与晶体固有的轴(这个轴具体叫什么一时记不清了)成一定关系时,两束光重合。因此可利用这种现象判断光的偏振方向(但当然,首先你得知道晶体的那个轴的方向,应该可以从晶体的菱角判别)。
另外,反射一般不会改变光的偏振方向(但折射会改变光的偏振方向,实际上是过滤出光中某个偏振方向上的分量,如果入射光没有这个方向上的偏振分量,也即两个方向垂直,则会被阻挡),所以即使是在阴天,太阳光穿过云层后偏振方向不会改变。因此,若天上有偏振光,且偏振方向与太阳方向有关,则可利用方解石确定光的偏振方向,进而确定太阳方向。
但有一个说不通的地方:太阳发出的光不是偏振光(实际上是各个方向偏振光的混合)。也许是大气层的折射作用?(就像第二段所说的,折射的确可以过滤出某个方向上的偏振光。)
具体原理,随便找一本大学的光学书,会有很详细的描述。如果你有方解石晶体,可以自己琢磨、试验,虽然原理看似复杂,但操作起来应该很简单的。
偏光太阳眼镜原理:
自然光(非偏极光),其实是由会朝特定方向震动的电磁波所组成,而被反射或散射的光线又通常偏爱某个特定方向,这也是为什么偏光太阳眼镜可以滤掉从车顶或水池反射来的阳光的缘故;自然光经过了偏光镜片的过滤后,就只能让一个方向的光线通过,也就是说偏光镜片能先将光线偏极化后,只允许一个方向的光通过(可视光)。
偏光太阳眼镜就是利用这个特性来阻隔有害光线,因为太阳光无论是碰触到任何物体都会因自然反射或折射产生有害之眩,偏光太阳眼镜就能完全吸收这些会造成刺眼及眼睛伤害的强光
一般太阳眼镜与偏光太阳眼镜的比较:
一般太阳眼镜只是利用减光的作用,因为一般的镜片无法过滤光线,所以只能减低眩光、紫外光等的强度,并无法完全阻隔这些有害光线,所以其功能只是降低眼睛的伤害,但是一般太阳眼镜最大的优势是流行性佳。偏光镜片则因具有偏光性质,所以可完全阻隔因散射、屈折、反射等各种因素所造成之刺眼的眩光。同时也能将对人眼有害的紫外光线完全阻隔,使人在强光下长期活动时,眼睛不易疲倦,达到真正保护的功能,而且能让看见的东西更清晰、立体。
偏光太阳眼镜的功能:
生活中,有太多的光源会产生有害的光线,尤其是太阳光;太阳光里散发出来的光线有:可视光线﹑红外线﹑紫外线等三种。当中以紫外线对人体的皮肤、眼睛..等,造成严重伤害;太阳光所释放出来的光线里 IR ( Infra-red )红外线( 750mm)以上,可视光线(Visible light lay)(310~780nm);紫外线又分为UVA、UVB、UVC( 310nm)以上,青光( Blue light )其中UVA、UVB、UVC是有害光线,如果长时间曝晒会造成身体的损坏,UVB是对视力有严重影响,( Tanning Ray )是烧黑皮肤的光线,大部份眼角会吸收此种UVB光线所以一定要阻绝掉此种光源。偏光太阳眼镜因为具有将光偏极化的功能,所以能将所有之有害光线都阻隔掉却不影响可视光的透过,能够真正达到保护眼睛的功用。
偏光太阳眼镜的应用:
偏光太阳眼镜因为能够100%阻隔有害光线,故其可应用在:
1. 医疗:眼睛手术患者,需要全方位的保护,偏光太阳眼镜是最好的选择。
2. 户外活动:如滑雪、钓鱼、水上活动等,都需要能完全阻隔有害光线的太阳眼镜,以避免眼睛受伤或疲劳。
3. 护目镜
灰色或墨绿色镜片,视物时可保有最自然之原有色彩,是很好的选择。
1、偏光镜片根据光线的波动性偏振原理和百页窗原理设计制造的,能有效削减强光,消除耀眼的反射光和散射光,让凌乱的光线变成平行的光线,使视物更加清晰柔和、清晰。
2、偏光镜片的偏光角度和弧度经过专业设计加工,使配戴者不会有景物失真和眩晕的感觉。
3、偏光片有7层材料复合而成,符合国家太阳镜片标准、UV400紫外线标准,全方位保护眼睛。
第一层为偏光层,是镜片的核心,提供超过99%的偏光效果,有效吸收眩光。
第二、三层为粘接层,能有效抵抗切割、烘烤、烘弯、裁片,经得住恶劣环境的考验。
第四、五层为紫外线吸收层,能吸收99%以上的UV紫外线。
第六、七层为防冲击层,提供良好的韧性、耐冲击性,有效防止镜片刮伤而延长镜片使用寿命。
[框架用到]PHP里判断是否由于Ajax请求
Php/Js/Shell/Go jackxiang 2013-1-28 16:46
先说前端使用 jQuery 时怎么区分:
jQuery 发出 ajax 请求时,会在请求头部添加一个名为 X-Requested-With 的信息,信息内容为:XMLHttpRequest
在后端可以使用 $_SERVER["HTTP_X_REQUESTED_WITH"] 来获取。(注意:中划线换成了下划线,不区分大小写)
由此,我们可以这样来判断是否为 ajax 请求:
写成函数:
在使用原生 JavaScript 发出 ajax 请求时,我们也可以给头部添加信息,以方便后端同学进行区分,方法如下:
这里我们也一样是给头部添加 X_REQUESTED_WITH 信息,与 jQuery 的一致。当然你也可以更改为别的信息来进行区分。
OK,进行区分之后有什么好处呢?说两个例子:
1.当 js 文件未加载完时,用户点击了某个按钮或链接,本应是 ajax 请求的成了 正常请求,后端根据判断,不输出 ajax 时的 json 数据,而是跳转,这也是优雅降级的形式。
2. [A 页面]使用 ajax 方式进行登录,[B 页面]使用正常方式登录,如果不区分,后端需要写两次几乎完全相同的代码,而有了区分,可以把重复的代码消掉。
来源:http://copier.blog.163.com/blog/static/220101002012111241827156/
jQuery 发出 ajax 请求时,会在请求头部添加一个名为 X-Requested-With 的信息,信息内容为:XMLHttpRequest
在后端可以使用 $_SERVER["HTTP_X_REQUESTED_WITH"] 来获取。(注意:中划线换成了下划线,不区分大小写)
由此,我们可以这样来判断是否为 ajax 请求:
写成函数:
在使用原生 JavaScript 发出 ajax 请求时,我们也可以给头部添加信息,以方便后端同学进行区分,方法如下:
这里我们也一样是给头部添加 X_REQUESTED_WITH 信息,与 jQuery 的一致。当然你也可以更改为别的信息来进行区分。
OK,进行区分之后有什么好处呢?说两个例子:
1.当 js 文件未加载完时,用户点击了某个按钮或链接,本应是 ajax 请求的成了 正常请求,后端根据判断,不输出 ajax 时的 json 数据,而是跳转,这也是优雅降级的形式。
2. [A 页面]使用 ajax 方式进行登录,[B 页面]使用正常方式登录,如果不区分,后端需要写两次几乎完全相同的代码,而有了区分,可以把重复的代码消掉。
来源:http://copier.blog.163.com/blog/static/220101002012111241827156/
linux 删除带减号(横杠)和(或)空格的文件
Unix/LinuxC技术 jackxiang 2013-1-27 23:40
带减号前缀和空格, 减号会被解析为参数前缀, 空格会被划分到下一个参数, 加双引号,单引号, 反斜杠均不行, google了一下, 完整的命令应该这样:
1
rm -- "- no-timestamp"
来源:http://306lab.com/?p=412
1
rm -- "- no-timestamp"
来源:http://306lab.com/?p=412
SCIM支持多国语言的输入法,默认支持英语键盘、智能拼音、五笔字型、自然码、二笔等。
安装命令:sudo apt-get install scim-pinyin ,这个方法在触摸屏上没有软键盘,得看这个:
http://ozzmaker.com/virtual-keyboard-for-the-raspberry-pi/
/usr/bin/toggle-matchbox-keyboard.sh
[codes=php]
#!/bin/bash
#This script toggle the virtual keyboard
PID=`pidof matchbox-keyboard`
if [ ! -e $PID ]; then
killall matchbox-keyboard
else
matchbox-keyboard -s 75 extended&
fi
[/codes]
cat /usr/share/applications/toggle-matchbox-keyboard.desktop[Desktop Entry]
[codes=php]
Name=Toggle Matchbox Keyboard
Comment=Toggle Matchbox Keyboard
Exec=toggle-matchbox-keyboard.sh
Type=Application
Icon=matchbox-keyboard.png
Categories=Panel;Utility;MB
X-MB-INPUT-MECHANSIM=True
[/codes]
cat /home/pi/.config/lxpanel/LXDE-pi/panels/panel
[codes=php]
lugin {
type = launchbar
Config {
Button {
id=toggle-matchbox-keyboard.desktop
}
Button {
id=lxde-screenlock.desktop
}
Button {
id=lxde-logout.desktop
}
}
[/codes]
菜单-》附件-》Toggle Matchbox Keyboard 里就能打开软键盘。
最新版本的Raspberry用的Chrome浏览器,Python3,也没有开SSHd,得通过读卡器打开Boot目录里新建一个ssh空文件,然后在 /etc/profile里加一个service ssd sart.Download URL:http://director.downloads.raspberrypi.org/raspbian/images/raspbian-2018-11-15/2018-11-13-raspbian-stretch.zip
Powershell:
PS C:\WINDOWS\system32> F:
PS F:\>
PS F:\> dir
目录: F:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2013/6/19 11:08 17808 bootcode.bin
-a---- 2023/12/27 0:08 170 cmdline.txt
-a---- 2023/12/27 0:08 213 network-.con
PS F:\> new-item ssh -type file
目录: F:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2024/1/3 23:22 0 ssh
更新源:cat /etc/apt/sources.list
# deb http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free rpi
一开始 apt-get install vim不好用。在putty中执行这条命令就可以了。
[codes=C]sudo apt-get update && sudo apt-get install vim && sudo update-alternatives --set editor /usr/bin/vim.basic[/codes]
树莓派3_win10下使用"远程桌面连接"与树莓派通信(使用VNC实现连接后)--彻底解决了之前VNC无法从Win10复制到Raspberrypi上,实现了双向复制,在里面是右键点复制,在Win10上复制树莓派直接Ctl+V即可,但是里面也是要右键复制才行,这已经很好了,找了好久,这个方案不错,用来在上面运行Python的Sin曲线啥的,如果只是SecureCRT里是无法弹出Sin曲线的。AddTime:2018/12/18
##打开终端使用命令安装xrdp
sudo apt-get install xrdp
##安装tightvncserver桌面服务
sudo apt-get install vnc4server tightvncserver
##重新启动xrdp服务
sudo /etc/init.d/xrdp restart
在win10下win+R然后输入mstsc 执行,在远程桌面连接窗口中输入刚才查询的树莓派IP,连接,然后在登录到xrdp窗口中,默认选择的是Xorg(有的是sesman-Xvnc)
用户名:pi
密 码:raspberry
完成后即可进入树莓派的系统图像界面。
Win7下
在开始->所有程序->附件中找到远程桌面连接并打开,点开选项,计算机项空格中输入刚才找到的ip地址,用户名项中输入Raspberry Pi下的用户名:
点击连接。
勾选不再询问,点击是,然后就进入了xrdp界面,
填上自己的密码,点击OK就进入了远程桌面中。
MacBook:
https://blog.csdn.net/geanwen/article/details/79565454
远程连接windows电脑。
一个小工具即可解决;
先下载工具:
http://downinfo.myhostadmin.net/RDC.dmg
下面是安装记录和遇到的一些问题解决办法;
下载安装包提示安全性打不开的话:
解决:打开‘系统偏好设置’-->‘安全性与隐私’-->
左下角的锁头开锁,点一下后锁头打开状态,....
From:http://www.cnblogs.com/wyl-pi/p/9784205.html
设置树莓派SSH连接因超时闲置断开:
vi /etc/ssh/sshd_config
在服务器端设置
如果有相应的权限,也可以在服务器端设置,即编辑/etc/ssh/sshd_config,并添加:
ClientAliveInterval 60
重启SSH服务器后该项设置会生效。
/etc/init.d/sshd restart
/usr/sbin/sshd restart
每一个连接到此服务器上的客户端都会受其影响。
+++++++++++++++++++++++++++++++++++++++++++++++++
自动调整分区大小
树莓派的Debian版Linux自带一个叫做raspi-config的工具,该工具仅当系统第一次启动时才会加载,当然你也可以在命令行窗口或终端中输入 sudo raspi-config手动加载它。该工具为树莓派下常见的任务配置提供简单的操作界面,其中就包括自动调整根分区的大小。
警告使用raspi-config调整根分区的时候,在某些情况下会导致数据冲突。尽管概率很小,但如果你无法承受存放在树莓派上的数据丢失的痛苦时,最好还是先备份这些数据,或者使用随后的章节给出的更可靠的分区调整方法。
使用raspi-config调整根分区的步骤如下:
1.如果这是你第一次启动Debian系统,那么开机后raspi-config会自动启动,否则你要在命令行窗口或终端里输入sudo raspi-config手动启动该软件。
2.在raspi-config的界面中(如图5-3所示),按键盘上的下方向键选中expand_rootfs一行然后按回车键。
3.调整操作仅需数秒,之后会弹出信息提示你操作将会在下次系统启动的时候完成,按回车键忽略该消息。
4.按两次Tab键使Exit菜单高亮,按回车键退出raspi-config。
5.输入 sudo reboot 重启系统,根据需要调整分区大小,这次的启动时间要比平常时间长。大小调整之后,以后启动的时候就不会再调整了,启动时间也会和以前一样了。
当树莓派重启后,根分区现在已经可以使用SD卡所能允许的最大容量了,你可以在终端中输入df -h查看所有存储设备的剩余容量。
执行apt-get install时,必须先配置dns.
E: 有几个软件包无法下载,您可以运行 apt-get update 或者加上 --fix-missing 的选项再试试?
echo 'nameserver 192.168.0.1' >> /etc/resolv.conf
echo 'nameserver 88.8.8.8' >> /etc/resolv.conf
//然后重启网卡
/etc/init.d/networking restart
实践得出,必须要重启一下才行,否则还是提示:--fix-missing,
sudo apt-get install nginx php5-common php5-fpm php-apc php5-mysql php5-gd mysql-server php5-cli php5-curl php5-cgi php-pear php5-dev
sudo apt-get remove nginx php5-fpm php-apc php5-mysql php5-gd php5-cli php5-curl php5-cgi php-pear php5-dev php5-common
装php_dio驱动:
If the command failed with 'phpize: not found' then you need to install php5-dev packageYou can do it by running 'apt-get install php5-dev' as a root userERROR: `phpize' failed
得安装:sudo apt-get install php5-dev
sudo pecl install channel://pecl.php.net/dio-0.0.6
Add "extension=dio.so" to php.ini
Restart apache
dpkg -L php5-common
Creating config file /etc/php5/mods-available/pdo.ini with new version
Setting up libonig2 (5.9.1-1) ...
Setting up libqdbm14 (1.8.78-2) ...
Setting up php5-fpm (5.4.41-0+deb7u1) ...
Creating config file /etc/php5/fpm/php.ini with new version
Setting up php5-gd (5.4.41-0+deb7u1) ...
Creating config file /etc/php5/mods-available/gd.ini with new version
Setting up php5-mysql (5.4.41-0+deb7u1) ...
Creating config file /etc/php5/mods-available/mysql.ini with new version
Creating config file /etc/php5/mods-available/mysqli.ini with new version
Creating config file /etc/php5/mods-available/pdo_mysql.ini with new version
Setting up php-apc (3.1.13-1) ...
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
来自并配置:http://blog.csdn.net/csharpgame/article/details/9386799
http://stayrunning.blog.163.com/blog/static/19675800220132180323681/
还不行?如下这种情况就是源不对,必须换一个源,其现象和操作过程如下:
Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/p/php5/php5-common_5.4.41-0+deb7u1_armhf.deb Could not connect to mirrors.neusoft.edu.cn:80 (219.216.128.25), connection timed out
PHP apc:
cat /etc/php5/cli/conf.d/20-apc.ini
extension=apc.so
[apc]
apc.enabled=1
apc.shm_segments=1
apc.shm_size=30M
apc.ttl=7200
apc.user_ttl=3600
apc.stat =1
apc.stat_ctime = 0
apc.max_file_size = 1M
apc.ttl=7200
;用户缓存对象生命周期
apc.user_ttl=3600
php -i|grep apc
就能看到上面的配置生效。
http://www.williamsang.com/archives/1045.html
----------------------------------------------------------------------------------------------------------------------------
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
#deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
使用半天后,发现系统下载实在是慢的无法接受了,在网上查了一下,主要原因是用默认的镜像下载不行,需要更改镜像源
可用的镜像源在 http://www.raspbian.org/RaspbianMirrors 中可以找到
经网友推介和试用,我用的镜像源是 http://mirror.nus.edu.sg/raspbian/raspbian (速度还不错,要用中国电信的网络哦,否则不好说)
接下来,介绍修改镜像源
apt-get的镜像源定义在文件/etc/apt/sources.list中
首先,备份原镜像源定义文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
然后,修改镜像源定义文件
sudo nano /etc/apt/sources.list
原文件内容:
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
修改为:(注意地址最后是没有斜杠的)
deb http://mirror.nus.edu.sg/raspbian/raspbian wheezy main contrib non-free rpi
CTRL+O 确认并存盘
CTRL+X 退出
现在重新运行,比原来快多了,终于可以完成 apt-get update, apt-get upgrade 了
_______________________________________________________________________________________
apt-get remove samba ///卸载samba
使用命令dpkg -L <package name> 如果包安装成功的话,会列出所有文件的位置。
dpkg -L apache2
[codes=C]
pi@raspberrypi:~$ dpkg -L apache2
/usr
/usr/share
/usr/share/bug
/usr/share/bug/apache2
/usr/share/bug/apache2/control
/usr/share/doc
/usr/share/bug/apache2/script
/usr/share/doc/apache2
[/codes]
访问,It works!:
/var/www/index.html
root@raspberrypi:/# vi /etc/apache2/apache2.conf
/etc/apache2# vi apache2.conf
# Include the virtual host configurations:
Include sites-enabled/
ls sites-enabled
\000-default
vi 000-default
Add:
DirectoryIndex index.html index.php
service apache2 restart
日志去掉,防止磁盘写满:
./envvars:export APACHE_LOG_DIR=/var/log/apache2$SUFFIX
CustomLog ${APACHE_LOG_DIR}/access.log combined
root@raspberrypi:/var/log/apache2# ls
access.log error.log other_vhosts_access.log
给Raspberry pi 安装看门狗程序让它永不死机
[codes=php]
apt-get install watchdog
apt-get install chkconfig #我的精简系统精简掉了chkconfig,手动安装一下就好
chkconfig watchdog on
#chkconfig是设定看门狗程序随系统启动自动运行
[/codes]
让硬件的看门狗模块运行起来
modprobe bcm2708_wdog
vi /etc/modules
#加入一行 "bcm2708_wdog"
在开始运行watchdog之前,先配置一下这个程序
vi /etc/watchdog.conf
取消掉 watchdog-device = /dev/watchdog 前的注释#号,让他监控的设备指向CPU的硬件看门狗
取消掉 max-load-1 = 24 前的注释#号,当1分钟load进程超过24个的时候(一般5个就是超高负载了,再<FONT face="Courier New">高可以认为是死机,这在遭遇DDOS攻击的时候很容易遇到)就触发重启</FONT>
[codes=C]
root@raspberrypi:~# : (){ :|:& };:
[1] 4721
[/codes]
这一串字符会让系统内核立马崩溃,等等看,是不是10秒后他就自动重启了。
利用看门狗程序,结合raspberry pi 的CPU硬件看门狗模块,实现了raspberry pi永不死机。
看门狗更多设置:http://www.eeboard.com/bbs/thread-6763-1-1.html
____________________________________________________________________________
树莓派上手实战之简单几步为Raspbian安装Chrome浏览器:
默认的Raspbian附带的两个浏览器都是轻量级产品,为了提升使用体验,可以在树莓派上面安装 Google出品的 Chrome浏览器
简单几步走
在终端里面输入
sudo apt-get install chromium-browser chromium-l10n
中途输入Y等待直至安装完成
进入桌面 选择
菜单-〉互联网-〉Chromium网页浏览器
经过实践发现最新版本的安装不是上面这个是:
sudo apt-get install chromium //这个运行不起来
sudo apt-get remove chromium
sudo apt-get install chromium-browser
sudo apt-get install chromium-browser chromium-l10n
摘自 :http://www.eeboard.com/bbs/thread-5191-1-1.html 里面有论述如何让Raspberry Pi显示中文,如回收站,实践OKAddTime:2016-8-1。
安装chrome来自:http://blog.sina.com.cn/s/blog_90a9238f0102woil.html http://www.ti6.net/qita/2842.html 都没安上。
树莓派rz sz apt-get包:
sudo apt-get install lrzsz
rz因网络问题安装命令下载不了,后用pc机下载后用sftp上传后,用命令行安装,如下:
安装deb软件包 dpkg -i xxx.deb
删除软件包 dpkg -r xxx.deb
连同配置文件一起删除 dpkg -r –purge xxx.deb
查看软件包信息 dpkg -info xxx.deb
查看文件拷贝详情 dpkg -L xxx.deb
查看系统中已安装软件包信息 dpkg -l
重新配置软件包 dpkg-reconfigure xxx
清除所有已删除包的残馀配置文件
root@raspberrypi:/home/pi# dpkg -i lrzsz_0.12.21-5_armhf.deb
Selecting previously unselected package lrzsz.
(Reading database ... 84601 files and directories currently installed.)
Unpacking lrzsz (from lrzsz_0.12.21-5_armhf.deb) ...
Setting up lrzsz (0.12.21-5) ...
Processing triggers for man-db ...
树莓派驱动3G网卡上网 :
http://blog.csdn.net/rk2900/article/details/8667833
树莓派如果电压不够,插入物理网线,一端连接笔记本,一端连接树莓派会出现没有连接,是断开的,我用的是usb供电,而用我的i9000直充的电源线插上就没有这个问题。所以,电源很重要。AddTime:2014-12-15.
ifconfig eth0 192.168.xx.xxx.
ifconfig eth0 192.168.0.2 netmask 255.255.255.0
debian:
/etc/network/interface
红帽子系列:
/etc/sysconfig/network-scripts
出现配置eth0时:
Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces … (warning).
service networking restart
Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces ... (warning).
/etc/init.d/networking restart
Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces ... (warning).
Reconfiguring network interfaces...done.
Debian 在重启网络时候导致错误:
执行 /etc/init.d/networking restart 或者 service networking restart
报错信息:Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces … (warning).
问题所在:执行此命令是由于网卡(eth0 或者其他)没有启动导致的错误
解决办法
1、vim /etc/init.d/network
内容为
root@Test:~# cat /etc/init.d/network
#!/bin/bash
/etc/init.d/networking stop
/etc/init.d/networking start
ifup eth0
2、修改权限 chmod 755 /etc/init.d/network
3、重启网络
root@Test:~# /etc/init.d/network
Deconfiguring network interfaces...done.
Configuring network interfaces...done.
root@Test:~#
4、ok 问题解决
按4后,直接运行:
ifconfig eth0 192.168.2.2 netmask 255.255.255.0 (关机失效)或:
vi /etc/network/interfaces
首先是找到并打开 网络配置文件
sudo nano /etc/network/interfaces
编辑里面的 网络配置
我的 pi 现在是静态ip 192.168.1.88 网关是 192.168.1.1 不管是连网线还是 wlan ip都不变
auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.88
netmask 255.255.255.0
gateway 192.168.1.1
auto wlan0
iface wlan0 inet static
address 192.168.1.88
netmask 255.255.255.0
gateway 192.168.1.1
wpa-ssid 要连接的wlan ssid
wpa-passphrase wlan密码
wireless-channel 11
实践OK:
vi /etc/network/interfaces
[codes=php]
auto lo
iface lo inet loopback
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "HiWiFi_256ECA"
wpa-psk "XdXp***"
iface eth0 inet static
address 192.168.2.2
netmask 255.255.255.0
gateway 192.168.2.11
[/codes]
ifconfig eth0 192.168.2.2 netmask 255.255.255.0
保存退出重启网络,输入:
sudo /etc/init.d/networking restart
重新启动Raspberry pi的Linux后使用ifconfig无显示:
linux下在终端直接输入ifconfig命令后回车不显示怎么解决?有网卡
配置玩ip了,却还不显示,重启下网卡试试,命令是:/etc/init.d/network restart或service network restart,发现提示问题了,如果还不好使可能是网卡硬件或网卡驱动的问题了。
=============================================
1、可以把它放在/etc/rc.d/init.d/rc.local文件中
ifconfig eth0 192.168.172.2 netmask 255.255.255.0
route add default gw 192.168.172.1
2、配置网卡的配置文件
创建或修改此文件/etc/sysconfig/network-scripts/ifcfg-eth0#ifcfg-eth0
/etc/network/interface
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.10.255
IPADDR=192.168.10.50
NETMASK=255.255.255.0
NETWORK=192.168.10.0
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
PEERDNS=no
GATEWAY=
##Add to tail of /etc/sysconfig/static-routes
eth0 192.168.1.1
=============================================
运行:route -p add 192.168.172.0 mask 255.255.255.0 192.168.172.1 metric 1
--注:意思是将192*的IP包的路由网关设为192.168.172.1 ,-P 参数代表永久写入路由表,建议先不加此参数,实践通过后在写上去
网关详解:
192.168.0.1那ip属于c类,192.168.172.1的通配符子网掩码是多少啊:255.255.255.0。
__________________________________________________________
新的Raspberry Pi不集成USB网卡驱动及带自动扩展分区(不用工具)的链接:
http://blog.csdn.net/zhang_danf/article/details/19195931
sudo install -p -m 644 8188eu.ko /lib/modules/3.12.28+/kernel/drivers/net/wireless/
/sbin/depmod -a 3.12.28+
Raspberry Pi 使用USB无线网卡的时候不会因为路由重启而掉线。
http://49mm.com/archives/158.html
通电后系统将会进入首次启动配置页面(如果以后还想进行这样的配置运行‘sudo raspi-config’即可),请进行下列操作:
选择expand_rootfs,将系统容量进行扩展
选择boot_behaviour,将启动方式设置为console
实践一次对eth0的默认路由进行删除,并添加新的wifi出口为默认路由,addTime: 2015-10-17
[codes=php]
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.199.0 * 255.255.255.0 U 0 0 0 wlan0
route add default gw 192.168.199.1
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default Hiwifi.lan 0.0.0.0 UG 0 0 0 wlan0
default 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.199.0 * 255.255.255.0 U 0 0 0 wlan0
root@raspberrypi:~# route del default gw 192.168.2.1
root@raspberrypi:~# curl "baidu.com"
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>
[/codes]
Win7作为上位机用USB转串口CP210X,后直接接到raspberrypi树莓派的串口上去,三根线:
一:用SecureCRT软件,设置波特率等参数:
• Speed: 115200
• Bits: 8
• Parity: None
• Stop Bits: 1
• Flow Control: None
注意接线除开地外都相反:
Tx-->Rx
Rx-->TX
Gn-->Gn
特别要注意:
1):默认进去不是Root,Username: pi Password: raspberry
2):流控设置为;XON/XOFF才行,否则:用DTR/DSR,RTS/CTS都是不行的。
淘宝购买的1米线串口接线图:
[img][attach]902[/attach][/img]
二:用Puty来进行串口连接:
Puty:
• Speed: 115200
• Bits: 8
• Parity: None
• Stop Bits: 1
• Flow Control: None
Tx-->Rx
Rx-->TX
Gn-->Gn
Puty在这儿需要用户名和密码:
1.接串口时要刚好相反的接,不是tx对tx,而是tx对rx。
2.Username: pi Password: raspberry
再就是解决PHP Deprecated: Comments starting with '#' are deprecated in 方法:
root@raspberrypi:/home/pi# php -m
PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0
根据提示打开这个ming.ini文件, 发现对应的位置是#开头的注释符号, 联想到类似的php.ini文件中的注释是以;开头的,所以试着改成为;
#configuration for php MING module
extension=ming.so
改为:
;configuration for php MING module
extension=ming.so
然后这个警告就不出现了. 原来是现在的PHP不支持#用来做注释符号,而改用了;这个符号, 以后在出现问题时一定不要着急,试着从报警的信息中找到提示信息,然后再按图索骥地找到解决问题的方法;
用raspberry pi做web服务器,感觉有点慢的问题解决办法(AddTime: 2015/05/19):
APC XCache eAccelerator不知哪个更好用,不过从安装上好像前两个更容易,apt-get就行了,最后一个好像要来个./configure,make,make install三部曲,虽说也不麻烦,但好久没这样装过软件了。我一般选择apc,毕竟是官方的,用的人也多,性能差别还不至于到非要选某个的地步。
有位兄弟用了apc:先用apc了,毕竟官方易安装,先用试试。 贴两张图,一个是使用前的,一个是使用后的。
安装方法:sudo apt-get install php5-fpm php-apc 摘自:http://www.th7.cn/system/lin/201401/49673.shtml
HDMI To VGA配置的方法实践Ok:
通过转接线直接通电启动树莓派,由于其不带BIOS,所以全靠刻录到SD卡的系统进行引导,我尝试了很多次无奈显示器没有任何输出。
搜索了网络得知在首次运行前需要修改配置文件config.txt里的参数,取消掉hdmi_safe=1前面的注释号,变更为如下:
# uncomment if you get no picture on HDMI for a default "safe" mode
hdmi_safe=1
再次启动,显示器有反应了,正当我满怀欣喜的时候,显示器一直没有画面出来,黑屏在那边,有得求助于万能的网络了,结果找到这么一篇Wiki – RPi VerifiedPeripherals – Display adapters,结果帮了我大忙,经过反复摸索,得出配置文件如下:
hdmi_safe=1
overscan_left=-30
overscan_right=-30
overscan_top=-30
overscan_bottom=-30
hdmi_group=2
hdmi_mode=4
hdmi_drive=2
config_hdmi_boost=4
更改完SD卡中的config.txt后存盘,重新插入树莓,然后引导系统,这回奇迹终于显现了,显示器有画面了!
来源:http://wangye.org/blog/archives/762/
sudo apt-get install minicom
昨天用pacman -S minicom命令在archlinux上下载并安装了minicom,但是调用minicom命令时出现如下错误:
minicom: cannot open /dev/modem: No such file or directory
今天终于找到解决方案,做一个软链接到/dev/ttyS0就可以解决问题了。命令如下:
ln -s /dev/ttyS0 /dev/modem
minicom命令正常运行后,打开开发板电源,屏幕上出现预期的来自开发板串口的信息。
raspberrypi树莓派:
ln -s dev/modem /dev/ttyAMA0
raspberrypi下安装samba的方法步骤如下:
sudo apt-get install samba
sudo apt-get install samba-common-bin
废掉原来的配置文件,自己建立一个新的:
cd /etc/samba/
cp smb.conf smb.conf.backup
vi smb.conf
[global]
log file = /var/log/samba/log.%m
[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes
添加用户和存密码文件的文件smbpasswd:
sudo useradd jackxiang
sudo touch /etc/samba/smbpasswd
cd /etc/samba/
sudo smbpasswd -a jackxiang //sudo apt-get install samba-common-bin ,smbpasswd 来自:samba-common-bin
运行命令
service samba restart
串口通信:
http://pypi.python.org/pypi/pyserial
应用如下(程序有点问题,每次关闭串口再打开会出现乱码现象)
import serial
from time import sleep
ser = serial.Serial('/dev/ttyUSB0', 2400, timeout=1)
def recv(serial):
data, quit = None, False
while 1:
data =serial.read(1)
if data == '':
continue
sleep(0.02) # data is this interval will be merged
while 1:
n = serial.inWaiting()
if n > 0:
data = "%s%s" % (data,serial.read(n))
else:
quit = True
break
if quit:
break
return data
while 1:
data =recv(ser)
if data== 'c' :
ser.close()
break
ser.write(data)
Python连接mysql
链接http://sourceforge.net/projects/mysql-python/files/mysql-python/
我没有按照这种方法,因为没安装成功,我用的debian系统,采取包的安装方法
apt-get install python-mysqldb
linux c调用串口通信,在raspberry pi上面测试OK
直接贴代码了:
代码情况说明下,我串口连了一个单片机,一直在往串口发数据。
这段程序只是简单的连接了串口,然后将单片机通过串口发送过来的信息读取并打印出来。
连接测试OK,可以很简单的改为发送数据。
我上位机是raspberry pi, 跑的raspbian;下位机为arduino,是usb转串口的,机器自带了usb转串口的驱动,识别的串口为ttyACM0
raspberry pi装arduino环境参考下面链接:
http://www.shumeipai.net/read.php?tid=142
[codes=C]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
int main()
{
int fd,speed;
char buff[100];
//open port
if ( (fd =open("/dev/ttyACM0",O_RDWR|O_NOCTTY|O_NDELAY)) <0 )
perror("open port err\n");
if( fcntl(fd,F_SETFL,0)<0 )
perror("fcntl f_setfl\n");
if(isatty(fd)==0)
perror("standar input is not a terminal device");
//set port
struct termios new_cfg,old_cfg;
if(tcgetattr(fd,&old_cfg) !=0)
perror("tcgetattr");
new_cfg=old_cfg;
cfmakeraw(&new_cfg);
new_cfg.c_cflag &=~CSIZE;
speed = B115200;
cfsetispeed(&new_cfg,speed);
cfsetospeed(&new_cfg,speed);
new_cfg.c_cflag|=CS8;
new_cfg.c_cflag &=~PARENB;
new_cfg.c_cflag &=~INPCK;
new_cfg.c_cflag &=~CSTOPB;
new_cfg.c_cc[VTIME]=0;
new_cfg.c_cc[VMIN]=1;
tcflush(fd,TCIFLUSH);
if((tcsetattr(fd,TCSANOW,&new_cfg))!=0)
{
perror("tcsetattr");
}
//start read
do{
memset(buff,0,100);
if(read(fd,buff,100) >0)
{
printf("read:%s",buff);
}
}while(strncmp(buff,"quit",4));
close(fd);
return 0;
}
[/codes]
Setting up Memcached on my Raspberry Pi:
I am installing the software from packages, documentation available at Google Code, with apt-get.
apt-get install memcached
After the installation has completed you can see the stats with the following command:
echo "stats settings" | nc localhost 11211
。。。
http://www.mycreativity.nl/blog/setting-up-memcached-on-my-raspberry-pi
First we need to install Netcat on RPi and the target linux machine where we are sending the video stream
CODE: SELECT ALL
sudo apt-get install netcat
on the target machine we also need mplayer to play the video.
CODE: SELECT ALL
sudo apt-get install mplayer
安装apache mysql php实践ok Add-Time:2015-05-04:
在树莓PI 上运行 Apache 服务器的步骤很简单,
在命令行上运行:
sudo apt-get install apache2 php5 libapache2-mod-php5 php5-mysql php-apc
sudo apt-get install apache2 php5 libapache2-mod-php5 php5-mysql php-apc mysql-server php5-cli php5-curl php5-common php-pear
这条命令会安装 Apache 和 PHP ;装完之后在 /var/www 下会有 index.html 是默认主页。
运行(可选):
sudo apt-get install mysql-server mysql-client php5-mysql
则会装上 MySQL 数据库。
装完 Apache 服务器后则可以在浏览器里访问 树莓PI 的IP地址。
实践来源:http://www.111cn.net/phper/apache/77296.htm
--------------------------------------------------------------------------------------------------------------
https://github.com/emoncms/raspberrypi
aspberry PI emoncms module
This module is to be used with an emoncms installed on the PI to interface with an RFM12 to PI board in a seemless fashion.
Features:
set the emoncms account to send data to
set the RFM12 frequency
set the RFM12 group
set the RFM12 board node id.
php serial script
Requires the pecl php serial module
sudo apt-get install php-pear php5-dev
sudo pecl install channel://pecl.php.net/dio-0.0.6
Add "extension=dio.so" to php.ini
Restart apache
root@raspberrypi:~# sudo pecl install channel://pecl.php.net/apc-3.1.9
downloading APC-3.1.9.tgz ...
Starting to download APC-3.1.9.tgz (155,540 bytes)
..............done: 155,540 bytes
54 source files, building
running: phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
Build process completed successfully
Installing '/usr/lib/php5/20100525+lfs/apc.so'
install ok: channel://pecl.php.net/APC-3.1.9
configuration option "php_ini" is not set to php.ini location
You should add "extension=apc.so" to php.ini
running: make INSTALL_ROOT="/tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6" install
Installing shared extensions: /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6/usr/lib/php5/20100525+lfs/
running: find "/tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6" | xargs ls -dils
393894 4 drwxr-xr-x 3 root root 4096 2月 2 16:14 /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6
393921 4 drwxr-xr-x 3 root root 4096 2月 2 16:14 /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6/usr
393922 4 drwxr-xr-x 3 root root 4096 2月 2 16:14 /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6/usr/lib
393923 4 drwxr-xr-x 3 root root 4096 2月 2 16:14 /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6/usr/lib/php5
393924 4 drwxr-xr-x 2 root root 4096 2月 2 16:14 /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6/usr/lib/php5/20100525+lfs
393920 120 -rwxr-xr-x 1 root root 119105 2月 2 16:14 /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6/usr/lib/php5/20100525+lfs/dio.so
Build process completed successfully
Installing '/usr/lib/php5/20100525+lfs/dio.so'
install ok: channel://pecl.php.net/dio-0.0.6
configuration option "php_ini" is not set to php.ini location
You should add "extension=dio.so" to php.ini
---------待实践:实践Ok,AddTime:2015-05-04
apt-get install libevent-dev
apt-get install libevent,安装libevent后:
pecl install channel://pecl.php.net/libevent-0.1.0 //centOS访问下载地址:http://pecl.php.net/package/libevent
Please provide the prefix of libevent installation [autodetect] :回车
Build process completed successfully
Installing '/usr/lib/php5/20100525+lfs/libevent.so'
install ok: channel://pecl.php.net/libevent-0.1.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=libevent.so" to php.ini
pecl install channel://pecl.php.net/xhprof-0.9.2
pecl install channel://pecl.php.net/libevent-0.0.5 //到:0.1.0 了,http://pecl.php.net/package/libevent
http://serverfault.com/questions/271554/problems-installing-php-libevent-pecl-package
安装PHP的 libevent PECL Package 扩展步骤及实例,以及实现多个USB转串口的读写实践成功 ,可以用select函数:
http://jackxiang.com/post/4803/
下面这个好像不行:
pecl install channel://pecl.php.net/libevent/xdebug-2.2.1
ERROR: unable to unpack /tmp/buildd/php5-5.4.4/pear-build-download/xdebug-2.2.1.tgz
tar: 归档文件中异常的 EOF
(不知道这个版本行不:xdebug-2.1.2)
pecl install channel://pecl.php.net/libevent/xdebug-2.1.2
invalid package name/package file "channel://pecl.php.net/libevent/xdebug-2.1.2"
install failed
Installing '/usr/local/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so'
install ok: channel://pecl.php.net/xdebug-2.0.2
configuration option "php_ini" is not set to php.ini location
You should add "extension=xdebug.so" to php.ini
At this point, you should open your php.ini file an add the line as suggested, but use the zend_extension directive as follows:
zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so
Of course you should check that the path matches what your installer output provides.
And then you just need to restart apache and you're done.
To check that your installation is working, try running the following code (which is similar to one of the test scripts on the xdebug site):
<?php
function test(){
echo "Called @ ".xdebug_call_file().
":".xdebug_call_line()." from".
xdebug_call_function();
}
test();
?>
pecl install xdebug
vi /etc/php5/apache2/php.ini
;;;;;;;;;;
; XDebug ;
;;;;;;;;;;
;load module
zend_extension="/usr/lib/php5/20060613+lfs/xdebug.so"
;some options
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
;The following IP should be of the host running Eclipse!
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.idekey=
;Only enable the following if you want profiler output (lots of data!)
;xdebug.profiler_enable=1
;xdebug.profiler_output_dir=/var/log/XDebug/
;xdebug.profiler_enable_trigger=1
/etc/init.d/apache2 restart
root@raspberrypi:~/music# pecl install xdebug
downloading xdebug-2.2.1.tgz ...
Starting to download xdebug-2.2.1.tgz (248,057 bytes)
..................
无线网卡配置(找了很多都没有成,这个可以),很简单:
http://www.buxiaoyang.com/raspberrypi_wifi_setting/
root@raspberrypi:/home/pi# vi /etc/network/interfaces
[codes=php]
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "MyHome"
wpa-psk "0123456789"
[/codes]
重启动:sudo shutdown "now" -r
安装redis-server和nodejs:
[codes=php]
apt-get install redis-server
sudo apt-get install nodejs npm
npm install -g redis
npm install mysql
sudo npm install memcache
sudo npm install mongo
nodejs -v
v0.6.19
node-websocket-server@1.4.03 不支持node 0.5以上的版本。
sudo npm install node-websocket-server //不行
npm search websocket 找到: websocket socket server
npm install socket
[/codes]
安装Nodejs的包来源:http://raspberrypi.stackexchange.com/questions/4194/getting-npm-installed-on-raspberry-pi-wheezy-image
搜索软件包:
apt-cache search 尋找及 apt-get 搞定安裝:
apt-cache search nginx
Nginx在raspberry pi下的push模块安装:
sudo apt-get install nginx-extras //添加其余的nginx模块
http://code.adrianvera.com/comet-server-nginx-push-ubuntu-11.10
安装SVN服务器,将树莓派作为自己的软件代码托管服务器!!!
1、首先需要安装Subversion软件:
sudo apt-get install subversion
2、创建仓库
svnadmin create /var/svn
/var/svn 为所创建仓库的路径,理论上可以是任何目录
3、修改配置文件/var/svn/conf/svnserve.conf
#去掉#[general]前面的#号
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,去掉前面的#
password-db = passwd
注意:所有的行都必须顶格,否则报错。 建议:为了防止不必要的错误,建议你直接用我上面的内容覆盖掉文件原来的内容.
4、修改配置文件passwd vim /var/svn/conf/passwd
[users]
svnuser = password
ukonline2000 = ukonline2000
注意:
◆一定要去掉[users]前面的#,否则svn只能以匿名用户登录,客户端不会出现登录窗口,除非你的anon不为none,否则将返回一个错误。
◆这里的密码都是没有加密的,我按照一些教程所说的用htpasswd生成的密码无法使用。
5、停止Subversion服务器:
killall svnserve
6、启动Subversion服务器 对于单个代码仓库,启动命令:
svnserve -d -r /var/svn
其中-d表示在后台运行,-r指定服务器的根目录,这样访问服务器时就可以直接 用svn://服务器ip来访问了。
-----------------------------------------------------------------------------------------------------------------------------------------------
经常有新手配置基于svnserve的subversion服务器后,
在客户端访问subversion版本库时出现这个错误:
svnserve.conf:12: Option expected
为什么会出现这个错误呢,就是因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件,如
### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository. (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)
### Visit http://subversion.tigris.org/ for more information.
[general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
anon-access = read
auth-access = write
像上面的配置文件中,anon-access是顶行的,没问题,而auth-access就存在前置空格,会导致这个错误。
要避免出现这个错误,应该在去掉这些行前的#时,也要顺手去掉前面的空格,这一点,在郑新星老早的文章《Subversion之路--实现精细的目录访问权限控制》就提到过。
-----------------------------------------------------------------------------------------------------------------------------------------------
另外,客户端推荐用TortoiseSVN ,http://www.eeboard.com/bbs/thread-5568-1-1.html。
安装触摸屏:http://www.ickey.cn/raspberry.php?action=fangan&sub=10333
其实很久之前就用上触摸屏了,但是最近很忙一直没时间写教程,今天有点时间,就给大家说说如何在树莓派上使用触摸屏!!
准备设备:
1.树莓派1个
2.带触摸功能的液晶显示屏(在购买之前一定要确认触摸芯片是否是eGalax的芯片)
操作步骤:
1.请大家下载基于最新debain-02-09版本上编译的系统镜像(推荐用8G的卡导入镜像,部分4G卡会提示空间不足)
网盘地址:http://pan.baidu.com/share/link?shareid=372072&uk=3338932639
2.刷好系统启动树莓派,使用lsusb命令查看触摸屏是否识别:
pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 001 Device 005: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
如果看到有eGalax,恭喜你的的触摸屏已经找到了,如果没找到请确认触摸屏的usb接口是否正确连接,确认触摸屏的芯片是否是eGalax的
3.登录树莓派,进入图形界面,运行xinput_calibrator程序软件调校屏幕(镜像中已经安装了软件)
pi@raspberrypi ~ $ xinput_calibrator
屏幕会出现提示,让你去点击对角线的小叉,点击完后屏幕会提示一个调整信息,如下:
Calibrating EVDEV driver for “eGalax Inc. USB TouchController” id=8
current calibration values (from XInput): min_x=1938, max_x=114 and min_y=1745, max_y=341
Doing dynamic recalibration:
Setting new calibration data: 121, 1917, 317, 1741
–> Making the calibration permanent <–
copy the snippet below into ‘/etc/X11/xorg.conf.d/99-calibration.conf’
Section “InputClass”
Identifier “calibration”
MatchProduct “eGalax Inc. USB TouchController”
Option “Calibration” “121 1917 317 1741″
Option “SwapAxes” “1″
EndSection
4.按照提示将以下内容复制这部分内容
Section “InputClass”
Identifier “calibration”
MatchProduct “eGalax Inc. USB TouchController”
Option “Calibration” “121 1917 317 1741″
Option “SwapAxes” “1″
EndSection
5.编辑文件”/usr/share/X11/xorg.conf.d/01-input.conf“,将刚才复制的内容添加到文件的最后,并保存
pi@raspberrypi ~ $sudo nano /usr/share/X11/xorg.conf.d/01-input.conf
6.重启树莓派,好好享受的你触摸屏吧!
==========================================
之前测试wifi不稳定,网上看了看gprs的开发模块还挺贵。打算将我的htc手机连接到raspberry pi的板子上,看看能不能成功。
使用命令查看是否已经认到手机。
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 008: ID 0bb4:0cad HTC (High Tech Computer Corp.)
Bus 001 Device 009: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 Webcam
编写文件,内容里面的串是根据lsusb中的值得来的。
$ sudo vim /etc/udev/rules.d/99-android.rules
SUBSYSTEM==”usb”, ATTRS{idVendor}==”0bb4″, ATTRS{idProduct}==”0cad”,MODE=”0666″
$ sudo chmod a+rx /etc/udev/rules.d/99-android.rules
$ sudo service udev restart
下载编译好的adb工具
http://fieldeffect.info/w/Beagleboard_Notes?action=AttachFile&do=view&target=adb
本地下载:
[file][attach]340[/attach][/file]
传到系统上,使用命令进入android手机
$ chmod a+x adb
$ ./adb shell
成功了。这样就可以用手机做代理进行操作,如果写个能时时交互数据的服务,很多传感器的钱都剩下了。
http://huulivoide.pp.fi/Arch/arm/也有编译好的adb工具,我没有测试
扩展可用空间
第一次用 root 登录,会自动弹出树莓派的高级设置面板(以后也可以通过 raspi-config 命令进入):
选择第一项 Expand Filesystem 扩展 SD 卡上可用的空间,不然以后会有很多大软件,不能安装(提示空间不足,例如 mysql)。
扩展之后可以通过 df -h 命令看到效果~
双网卡的路由设置:
root@raspberrypi:~# ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:eb:e7:a8:1f
inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:489 errors:0 dropped:0 overruns:0 frame:0
TX packets:530 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:42731 (41.7 KiB) TX bytes:79114 (77.2 KiB)
wlan0 Link encap:Ethernet HWaddr ec:17:2f:cf:45:15
inet addr:192.168.1.113 Bcast:255.255.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:245 errors:0 dropped:1 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25610 (25.0 KiB) TX bytes:1398 (1.3 KiB)
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
[codes=php]
raspberry pi的双网卡中的路由设定,192.168.2.1 255.255.255.0 这个不上网是eth0,而wlan0是wifi,也就是无线网卡这个可以上网的路由设置,先加个默认网关(也就是路由器的IP),默认eth0,得修改下,否则默认由eth0是出不去的:
route add default gw 192.168.1.1
默认网关:
route add default gw 192.168.1.1 wlan0
加路由:
route add -net 192.168.2.0/255 gw 192.168.2.1 eth0
删除默认路由:
route del default gw 192.168.2.1
[/codes]
再次实践Ok:AddTime 2015-05-10
[codes=php]
root@raspberrypi:~# ping baidu.com
connect: Network is unreachable
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.199.0 * 255.255.255.0 U 0 0 0 wlan0
root@raspberrypi:~# ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:eb:e7:a8:1f
inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:270 errors:0 dropped:0 overruns:0 frame:0
TX packets:221 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23884 (23.3 KiB) TX bytes:33957 (33.1 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:100 (100.0 B) TX bytes:100 (100.0 B)
wlan0 Link encap:Ethernet HWaddr ec:17:2f:cf:45:15
inet addr:192.168.199.167 Bcast:192.168.199.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:124 errors:0 dropped:0 overruns:0 frame:0
TX packets:43 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:16060 (15.6 KiB) TX bytes:6064 (5.9 KiB)
root@raspberrypi:~# route add default gw 192.168.199.1 wlan0
root@raspberrypi:~# route add -net 192.168.2.0/255 gw 192.168.2.1 eth0
root@raspberrypi:~# ping baidu.com
PING baidu.com (180.149.132.47) 56(84) bytes of data.
64 bytes from 180.149.132.47: icmp_req=1 ttl=56 time=526 ms
64 bytes from 180.149.132.47: icmp_req=2 ttl=56 time=10.7 ms
[/codes]
route add default gw 192.168.1.1 wlan0
SIOCADDRT: File exists
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default localhost 0.0.0.0 UG 0 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0
localhost localhost 255.255.255.255 UGH 0 0 0 eth0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
root@raspberrypi:~# ping baidu.com
PING baidu.com (123.125.114.144) 56(84) bytes of data.
64 bytes from 123.125.114.144: icmp_req=1 ttl=57 time=178 ms
64 bytes from 123.125.114.144: icmp_req=2 ttl=57 time=61.6 ms
相于wlan0的网关是192.168.1.1:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
default 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
___________________________________________________________________________________
如果eth0为192.168.10.123/255.255.255.0,eth1为192.168.20.231/255.255.255.0,则命令格式如下:
#route add -net 192.168.10.0 netmask 255.255.255.0 dev eth0
#route add -net 192.168.20.0 netmask 255.255.255.0 dev eth1
上面的命令把发送给192.168.10.0网段的IP包交给eth0转发,把192.168.20.0网段的IP包交给eth1转发。如果还有可能有发送给其他目的IP的包,那么你肯能希望设置一个“默认网关”:
#route add default gw 192.168.10.1
上面的命令把所有发送给其他目的IP的包都转发给192.168.10.1,而如何转发给192.168.10.1这个地址的规则已经在刚才的第一条命令中定义了(从eth0转发)。一般情况下,默认网关已经自动设置好了,不用重复设置。可以用route命令加-n参数进行检查。
如果要删除某一条,命令格式为:
#route del -net 192.168.10.0 netmask 255.255.255.0
配置时的一种思路是把192.168.10.0网段路由至eth0,192.168.20.0网段路由至eth1,再设置默认路由。另一种思路是,只指定其中一个,然后把默认的0.0.0.0路由至另一个。其实效果一样,就是两种风格。
添加路由:
route add -net 10.0.0.0 netmask 255.0.0.0 dev eth0
删除路由:
route del -net 10.0.0.0 netmask 255.0.0.0 dev eth0
添加默认路由:
route add default gw 10.0.0.1
删除默认路由
route del default gw 10.0.0.1
route del default
linux下添加路由的方法:
使用 route 命令添加
使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法:
//添加到主机的路由
# route add –host 192.168.168.110 dev eth0
# route add –host 192.168.168.119 gw 192.168.168.1
添加到网络的路由
# route add –net IP netmask MASK eth0
# route add –net IP netmask MASK gw IP
# route add –net IP/24 eth1
添加默认网关
# route add default gw IP
删除路由
# route del –host 192.168.168.110 dev eth0
一:使用 route 命令添加
[codes=php]
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.199.0 * 255.255.255.0 U 0 0 0 wlan0
root@raspberrypi:~# route del -net 192.168.2.0 netmask 255.255.255.0
root@raspberrypi:~# route del -net 192.168.199.0 netmask 255.255.255.0
root@raspberrypi:~# route del default gw 192.168.2.1 //这条运行后,失去联系,reboot下。
reboot 后自己也就Ok了:
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default Hiwifi.lan 0.0.0.0 UG 0 0 0 wlan0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.199.0 * 255.255.255.0 U 0 0 0 wlan0
[/codes]
二:在linux下设置永久路由的方法:
1.在/etc/rc.local里添加
方法:
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.3.254
2.在/etc/sysconfig/network里添加到末尾
方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev
3./etc/sysconfig/static-router :
any net x.x.x.x/24 gw y.y.y.y
在一个路由表里面加 两个 default gateway 的用法是没问题, 实际使用是有问题的, 就是LZ 所说的感觉反应慢 ; 这个用法是在线路质量绝对符合 weight 分配的情况下才能正常工作,还要看目的地址响应的情况,在电信和联通以拖慢对方为己任的现实情况下 ,weight在这里没有什么意义;
在没有键盘的情况下配置Raspberry Pi
1、路由设置开启 DHCP,Raspberry Pi 插上网线
2、在路由中找到 Raspberry Pi 的IP地址
3、用 Putty 等 SSH 客户端连接上 Raspberry Pi 设备的 22 号端口
4、用默认username :pi Password :raspberry 连接(都是小写linux严格区分大小写)
5、sudo raspi-config 对 raspberry pi 进行配置
来自:http://blog.sina.com.cn/s/blog_bce68edc0101cklj.html
最后,装个swoole整个WEBSOCKET:
/usr/include/php5/ext/pcre/php_pcre.h:29:18: fatal error: pcre.h: No such file or directory
compilation terminated.
Makefile:171: recipe for target 'swoole.lo' failed
make: *** [swoole.lo] Error 1
root@raspberrypi:~/software/swoole-src-swoole-1.7.18-stable# apt-get install pcre-devel
还是不行,这个包不对。
http://www.link888.cn/read-558.html
刚刚在编译php扩展yaf的时候,老是报缺少pcre
缺少就装上呗。
当然是想通过apt-get这个命令解决问题了,不过搜索了网络,只找到了CentOS的yum命令:
yum update
yum install pcre-devel
依葫芦画瓢,把yum直接改成apt-get,不过apt-get install pcre-devel这步出错了,找不到包,仔细搜索了网络才知道,原来Debian系下(ubuntu源自Debain)不叫这个名字,正确的命令如下:
apt-get update
apt-get install libpcre3 libpcre3-dev
搞定
libtool: install: cp ./.libs/swoole.so /root/software/swoole-src-swoole-1.7.18-stable/modules/swoole.so
libtool: install: cp ./.libs/swoole.lai /root/software/swoole-src-swoole-1.7.18-stable/modules/swoole.la
Installing shared extensions: /usr/lib/php5/20100525+lfs/
树莓派Raspberry Pi备份SD卡系统、浏览挂载IMG分区镜像文件:
备份存储于SD卡的操作系统(类似于GHOST备份)
大家应该还记得在Windows平台下有个写入树莓派系统映像的Win32DiskImager,其实细心的读者应该发现这个软件上面有个选项是Read,猜对了,今天我们就是依靠于这个选项来实现镜像的备份。
打开Win32DiskImager,如下图所示,Device选择SD卡所在盘符,Image File指定要备份的文件路径,需要注意的是备份的文件大小会相当于SD卡实际的容量,比如我16GB的SD卡,备份下来文件也有14.7GB左右,请保证有足够的空间。准备妥当后直接点击Read,等完成后即可。
Win32DiskImager Read Image File
当然恢复备份镜像则直接选择该镜像然后点击Write,和烧录系统一样。
挂载SD卡文件系统并浏览查看LINUX系统文件
因为在Windows下默认不能直接挂载Linux的分区,所以我们需要借助于另外一款软件:DiskInternals Linux Reader(下载地址),打开这个软件,连接上你的包含Raspberry Pi系统的SD卡,直接点击Drives -> Refresh Drive List就可以看到Linux的分区啦,当然也可以对其中的文件进行操作。
DiskInternals Linux Reader
浏览查看IMG镜像文件(挂载IMG镜像)
如何浏览并查看img镜像文件呢?还是用到刚才我们提到的DiskInternals Linux Reader工具,运行该软件,点击菜单 Drives -> Mount Image,选择Raw Disk Images,然后在弹出的文件选择框内选择树莓派的img文件,稍等片刻就可以看到镜像被成功加载了。
详细:http://wangye.org/blog/archives/938/
vnc安装和输入法:
vncServer安装和输入法。
cat startvncsvr.sh
killall Xvnc >/dev/null 2>&1
rm -rf /tmp/.X*-lock
rm -rf /tmp/.X11-unix/X*
rm -rf /root/.vnc/*.log
rm -rf /root/.vnc/*.pid
vncserver -kill :1
vncserver :1 -geometry 1024x768
启动:
sh /home/irdcops/shell/vncsvr/startvncsvr.sh
Can't find file /root/.vnc/raspberrypi:1.pid
You'll have to kill the Xtightvnc process manually
You will require a password to access your desktops.
Password: XXX
Verify: XXX
给树莓派安装中文输入法Fcitx及Google拼音输入法:
sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin
安装完毕,重启即可。
安装命令:sudo apt-get install scim-pinyin ,这个方法在触摸屏上没有软键盘,得看这个:
http://ozzmaker.com/virtual-keyboard-for-the-raspberry-pi/
/usr/bin/toggle-matchbox-keyboard.sh
[codes=php]
#!/bin/bash
#This script toggle the virtual keyboard
PID=`pidof matchbox-keyboard`
if [ ! -e $PID ]; then
killall matchbox-keyboard
else
matchbox-keyboard -s 75 extended&
fi
[/codes]
cat /usr/share/applications/toggle-matchbox-keyboard.desktop[Desktop Entry]
[codes=php]
Name=Toggle Matchbox Keyboard
Comment=Toggle Matchbox Keyboard
Exec=toggle-matchbox-keyboard.sh
Type=Application
Icon=matchbox-keyboard.png
Categories=Panel;Utility;MB
X-MB-INPUT-MECHANSIM=True
[/codes]
cat /home/pi/.config/lxpanel/LXDE-pi/panels/panel
[codes=php]
lugin {
type = launchbar
Config {
Button {
id=toggle-matchbox-keyboard.desktop
}
Button {
id=lxde-screenlock.desktop
}
Button {
id=lxde-logout.desktop
}
}
[/codes]
菜单-》附件-》Toggle Matchbox Keyboard 里就能打开软键盘。
最新版本的Raspberry用的Chrome浏览器,Python3,也没有开SSHd,得通过读卡器打开Boot目录里新建一个ssh空文件,然后在 /etc/profile里加一个service ssd sart.Download URL:http://director.downloads.raspberrypi.org/raspbian/images/raspbian-2018-11-15/2018-11-13-raspbian-stretch.zip
Powershell:
PS C:\WINDOWS\system32> F:
PS F:\>
PS F:\> dir
目录: F:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2013/6/19 11:08 17808 bootcode.bin
-a---- 2023/12/27 0:08 170 cmdline.txt
-a---- 2023/12/27 0:08 213 network-.con
PS F:\> new-item ssh -type file
目录: F:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2024/1/3 23:22 0 ssh
更新源:cat /etc/apt/sources.list
# deb http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi
deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free rpi
一开始 apt-get install vim不好用。在putty中执行这条命令就可以了。
[codes=C]sudo apt-get update && sudo apt-get install vim && sudo update-alternatives --set editor /usr/bin/vim.basic[/codes]
树莓派3_win10下使用"远程桌面连接"与树莓派通信(使用VNC实现连接后)--彻底解决了之前VNC无法从Win10复制到Raspberrypi上,实现了双向复制,在里面是右键点复制,在Win10上复制树莓派直接Ctl+V即可,但是里面也是要右键复制才行,这已经很好了,找了好久,这个方案不错,用来在上面运行Python的Sin曲线啥的,如果只是SecureCRT里是无法弹出Sin曲线的。AddTime:2018/12/18
##打开终端使用命令安装xrdp
sudo apt-get install xrdp
##安装tightvncserver桌面服务
sudo apt-get install vnc4server tightvncserver
##重新启动xrdp服务
sudo /etc/init.d/xrdp restart
在win10下win+R然后输入mstsc 执行,在远程桌面连接窗口中输入刚才查询的树莓派IP,连接,然后在登录到xrdp窗口中,默认选择的是Xorg(有的是sesman-Xvnc)
用户名:pi
密 码:raspberry
完成后即可进入树莓派的系统图像界面。
Win7下
在开始->所有程序->附件中找到远程桌面连接并打开,点开选项,计算机项空格中输入刚才找到的ip地址,用户名项中输入Raspberry Pi下的用户名:
点击连接。
勾选不再询问,点击是,然后就进入了xrdp界面,
填上自己的密码,点击OK就进入了远程桌面中。
MacBook:
https://blog.csdn.net/geanwen/article/details/79565454
远程连接windows电脑。
一个小工具即可解决;
先下载工具:
http://downinfo.myhostadmin.net/RDC.dmg
下面是安装记录和遇到的一些问题解决办法;
下载安装包提示安全性打不开的话:
解决:打开‘系统偏好设置’-->‘安全性与隐私’-->
左下角的锁头开锁,点一下后锁头打开状态,....
From:http://www.cnblogs.com/wyl-pi/p/9784205.html
设置树莓派SSH连接因超时闲置断开:
vi /etc/ssh/sshd_config
在服务器端设置
如果有相应的权限,也可以在服务器端设置,即编辑/etc/ssh/sshd_config,并添加:
ClientAliveInterval 60
重启SSH服务器后该项设置会生效。
/etc/init.d/sshd restart
/usr/sbin/sshd restart
每一个连接到此服务器上的客户端都会受其影响。
+++++++++++++++++++++++++++++++++++++++++++++++++
自动调整分区大小
树莓派的Debian版Linux自带一个叫做raspi-config的工具,该工具仅当系统第一次启动时才会加载,当然你也可以在命令行窗口或终端中输入 sudo raspi-config手动加载它。该工具为树莓派下常见的任务配置提供简单的操作界面,其中就包括自动调整根分区的大小。
警告使用raspi-config调整根分区的时候,在某些情况下会导致数据冲突。尽管概率很小,但如果你无法承受存放在树莓派上的数据丢失的痛苦时,最好还是先备份这些数据,或者使用随后的章节给出的更可靠的分区调整方法。
使用raspi-config调整根分区的步骤如下:
1.如果这是你第一次启动Debian系统,那么开机后raspi-config会自动启动,否则你要在命令行窗口或终端里输入sudo raspi-config手动启动该软件。
2.在raspi-config的界面中(如图5-3所示),按键盘上的下方向键选中expand_rootfs一行然后按回车键。
3.调整操作仅需数秒,之后会弹出信息提示你操作将会在下次系统启动的时候完成,按回车键忽略该消息。
4.按两次Tab键使Exit菜单高亮,按回车键退出raspi-config。
5.输入 sudo reboot 重启系统,根据需要调整分区大小,这次的启动时间要比平常时间长。大小调整之后,以后启动的时候就不会再调整了,启动时间也会和以前一样了。
当树莓派重启后,根分区现在已经可以使用SD卡所能允许的最大容量了,你可以在终端中输入df -h查看所有存储设备的剩余容量。
执行apt-get install时,必须先配置dns.
E: 有几个软件包无法下载,您可以运行 apt-get update 或者加上 --fix-missing 的选项再试试?
echo 'nameserver 192.168.0.1' >> /etc/resolv.conf
echo 'nameserver 88.8.8.8' >> /etc/resolv.conf
//然后重启网卡
/etc/init.d/networking restart
实践得出,必须要重启一下才行,否则还是提示:--fix-missing,
sudo apt-get install nginx php5-common php5-fpm php-apc php5-mysql php5-gd mysql-server php5-cli php5-curl php5-cgi php-pear php5-dev
sudo apt-get remove nginx php5-fpm php-apc php5-mysql php5-gd php5-cli php5-curl php5-cgi php-pear php5-dev php5-common
装php_dio驱动:
If the command failed with 'phpize: not found' then you need to install php5-dev packageYou can do it by running 'apt-get install php5-dev' as a root userERROR: `phpize' failed
得安装:sudo apt-get install php5-dev
sudo pecl install channel://pecl.php.net/dio-0.0.6
Add "extension=dio.so" to php.ini
Restart apache
dpkg -L php5-common
Creating config file /etc/php5/mods-available/pdo.ini with new version
Setting up libonig2 (5.9.1-1) ...
Setting up libqdbm14 (1.8.78-2) ...
Setting up php5-fpm (5.4.41-0+deb7u1) ...
Creating config file /etc/php5/fpm/php.ini with new version
Setting up php5-gd (5.4.41-0+deb7u1) ...
Creating config file /etc/php5/mods-available/gd.ini with new version
Setting up php5-mysql (5.4.41-0+deb7u1) ...
Creating config file /etc/php5/mods-available/mysql.ini with new version
Creating config file /etc/php5/mods-available/mysqli.ini with new version
Creating config file /etc/php5/mods-available/pdo_mysql.ini with new version
Setting up php-apc (3.1.13-1) ...
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
来自并配置:http://blog.csdn.net/csharpgame/article/details/9386799
http://stayrunning.blog.163.com/blog/static/19675800220132180323681/
还不行?如下这种情况就是源不对,必须换一个源,其现象和操作过程如下:
Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/p/php5/php5-common_5.4.41-0+deb7u1_armhf.deb Could not connect to mirrors.neusoft.edu.cn:80 (219.216.128.25), connection timed out
PHP apc:
cat /etc/php5/cli/conf.d/20-apc.ini
extension=apc.so
[apc]
apc.enabled=1
apc.shm_segments=1
apc.shm_size=30M
apc.ttl=7200
apc.user_ttl=3600
apc.stat =1
apc.stat_ctime = 0
apc.max_file_size = 1M
apc.ttl=7200
;用户缓存对象生命周期
apc.user_ttl=3600
php -i|grep apc
就能看到上面的配置生效。
http://www.williamsang.com/archives/1045.html
----------------------------------------------------------------------------------------------------------------------------
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
#deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
使用半天后,发现系统下载实在是慢的无法接受了,在网上查了一下,主要原因是用默认的镜像下载不行,需要更改镜像源
可用的镜像源在 http://www.raspbian.org/RaspbianMirrors 中可以找到
经网友推介和试用,我用的镜像源是 http://mirror.nus.edu.sg/raspbian/raspbian (速度还不错,要用中国电信的网络哦,否则不好说)
接下来,介绍修改镜像源
apt-get的镜像源定义在文件/etc/apt/sources.list中
首先,备份原镜像源定义文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
然后,修改镜像源定义文件
sudo nano /etc/apt/sources.list
原文件内容:
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
修改为:(注意地址最后是没有斜杠的)
deb http://mirror.nus.edu.sg/raspbian/raspbian wheezy main contrib non-free rpi
CTRL+O 确认并存盘
CTRL+X 退出
现在重新运行,比原来快多了,终于可以完成 apt-get update, apt-get upgrade 了
_______________________________________________________________________________________
apt-get remove samba ///卸载samba
使用命令dpkg -L <package name> 如果包安装成功的话,会列出所有文件的位置。
dpkg -L apache2
[codes=C]
pi@raspberrypi:~$ dpkg -L apache2
/usr
/usr/share
/usr/share/bug
/usr/share/bug/apache2
/usr/share/bug/apache2/control
/usr/share/doc
/usr/share/bug/apache2/script
/usr/share/doc/apache2
[/codes]
访问,It works!:
/var/www/index.html
root@raspberrypi:/# vi /etc/apache2/apache2.conf
/etc/apache2# vi apache2.conf
# Include the virtual host configurations:
Include sites-enabled/
ls sites-enabled
\000-default
vi 000-default
Add:
DirectoryIndex index.html index.php
service apache2 restart
日志去掉,防止磁盘写满:
./envvars:export APACHE_LOG_DIR=/var/log/apache2$SUFFIX
CustomLog ${APACHE_LOG_DIR}/access.log combined
root@raspberrypi:/var/log/apache2# ls
access.log error.log other_vhosts_access.log
给Raspberry pi 安装看门狗程序让它永不死机
[codes=php]
apt-get install watchdog
apt-get install chkconfig #我的精简系统精简掉了chkconfig,手动安装一下就好
chkconfig watchdog on
#chkconfig是设定看门狗程序随系统启动自动运行
[/codes]
让硬件的看门狗模块运行起来
modprobe bcm2708_wdog
vi /etc/modules
#加入一行 "bcm2708_wdog"
在开始运行watchdog之前,先配置一下这个程序
vi /etc/watchdog.conf
取消掉 watchdog-device = /dev/watchdog 前的注释#号,让他监控的设备指向CPU的硬件看门狗
取消掉 max-load-1 = 24 前的注释#号,当1分钟load进程超过24个的时候(一般5个就是超高负载了,再<FONT face="Courier New">高可以认为是死机,这在遭遇DDOS攻击的时候很容易遇到)就触发重启</FONT>
[codes=C]
root@raspberrypi:~# : (){ :|:& };:
[1] 4721
[/codes]
这一串字符会让系统内核立马崩溃,等等看,是不是10秒后他就自动重启了。
利用看门狗程序,结合raspberry pi 的CPU硬件看门狗模块,实现了raspberry pi永不死机。
看门狗更多设置:http://www.eeboard.com/bbs/thread-6763-1-1.html
____________________________________________________________________________
树莓派上手实战之简单几步为Raspbian安装Chrome浏览器:
默认的Raspbian附带的两个浏览器都是轻量级产品,为了提升使用体验,可以在树莓派上面安装 Google出品的 Chrome浏览器
简单几步走
在终端里面输入
sudo apt-get install chromium-browser chromium-l10n
中途输入Y等待直至安装完成
进入桌面 选择
菜单-〉互联网-〉Chromium网页浏览器
经过实践发现最新版本的安装不是上面这个是:
sudo apt-get install chromium //这个运行不起来
sudo apt-get remove chromium
sudo apt-get install chromium-browser
sudo apt-get install chromium-browser chromium-l10n
摘自 :http://www.eeboard.com/bbs/thread-5191-1-1.html 里面有论述如何让Raspberry Pi显示中文,如回收站,实践OKAddTime:2016-8-1。
安装chrome来自:http://blog.sina.com.cn/s/blog_90a9238f0102woil.html http://www.ti6.net/qita/2842.html 都没安上。
树莓派rz sz apt-get包:
sudo apt-get install lrzsz
rz因网络问题安装命令下载不了,后用pc机下载后用sftp上传后,用命令行安装,如下:
安装deb软件包 dpkg -i xxx.deb
删除软件包 dpkg -r xxx.deb
连同配置文件一起删除 dpkg -r –purge xxx.deb
查看软件包信息 dpkg -info xxx.deb
查看文件拷贝详情 dpkg -L xxx.deb
查看系统中已安装软件包信息 dpkg -l
重新配置软件包 dpkg-reconfigure xxx
清除所有已删除包的残馀配置文件
root@raspberrypi:/home/pi# dpkg -i lrzsz_0.12.21-5_armhf.deb
Selecting previously unselected package lrzsz.
(Reading database ... 84601 files and directories currently installed.)
Unpacking lrzsz (from lrzsz_0.12.21-5_armhf.deb) ...
Setting up lrzsz (0.12.21-5) ...
Processing triggers for man-db ...
树莓派驱动3G网卡上网 :
http://blog.csdn.net/rk2900/article/details/8667833
树莓派如果电压不够,插入物理网线,一端连接笔记本,一端连接树莓派会出现没有连接,是断开的,我用的是usb供电,而用我的i9000直充的电源线插上就没有这个问题。所以,电源很重要。AddTime:2014-12-15.
ifconfig eth0 192.168.xx.xxx.
ifconfig eth0 192.168.0.2 netmask 255.255.255.0
debian:
/etc/network/interface
红帽子系列:
/etc/sysconfig/network-scripts
出现配置eth0时:
Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces … (warning).
service networking restart
Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces ... (warning).
/etc/init.d/networking restart
Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces ... (warning).
Reconfiguring network interfaces...done.
Debian 在重启网络时候导致错误:
执行 /etc/init.d/networking restart 或者 service networking restart
报错信息:Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces … (warning).
问题所在:执行此命令是由于网卡(eth0 或者其他)没有启动导致的错误
解决办法
1、vim /etc/init.d/network
内容为
root@Test:~# cat /etc/init.d/network
#!/bin/bash
/etc/init.d/networking stop
/etc/init.d/networking start
ifup eth0
2、修改权限 chmod 755 /etc/init.d/network
3、重启网络
root@Test:~# /etc/init.d/network
Deconfiguring network interfaces...done.
Configuring network interfaces...done.
root@Test:~#
4、ok 问题解决
按4后,直接运行:
ifconfig eth0 192.168.2.2 netmask 255.255.255.0 (关机失效)或:
vi /etc/network/interfaces
首先是找到并打开 网络配置文件
sudo nano /etc/network/interfaces
编辑里面的 网络配置
我的 pi 现在是静态ip 192.168.1.88 网关是 192.168.1.1 不管是连网线还是 wlan ip都不变
auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.88
netmask 255.255.255.0
gateway 192.168.1.1
auto wlan0
iface wlan0 inet static
address 192.168.1.88
netmask 255.255.255.0
gateway 192.168.1.1
wpa-ssid 要连接的wlan ssid
wpa-passphrase wlan密码
wireless-channel 11
实践OK:
vi /etc/network/interfaces
[codes=php]
auto lo
iface lo inet loopback
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "HiWiFi_256ECA"
wpa-psk "XdXp***"
iface eth0 inet static
address 192.168.2.2
netmask 255.255.255.0
gateway 192.168.2.11
[/codes]
ifconfig eth0 192.168.2.2 netmask 255.255.255.0
保存退出重启网络,输入:
sudo /etc/init.d/networking restart
重新启动Raspberry pi的Linux后使用ifconfig无显示:
linux下在终端直接输入ifconfig命令后回车不显示怎么解决?有网卡
配置玩ip了,却还不显示,重启下网卡试试,命令是:/etc/init.d/network restart或service network restart,发现提示问题了,如果还不好使可能是网卡硬件或网卡驱动的问题了。
=============================================
1、可以把它放在/etc/rc.d/init.d/rc.local文件中
ifconfig eth0 192.168.172.2 netmask 255.255.255.0
route add default gw 192.168.172.1
2、配置网卡的配置文件
创建或修改此文件/etc/sysconfig/network-scripts/ifcfg-eth0#ifcfg-eth0
/etc/network/interface
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.10.255
IPADDR=192.168.10.50
NETMASK=255.255.255.0
NETWORK=192.168.10.0
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
PEERDNS=no
GATEWAY=
##Add to tail of /etc/sysconfig/static-routes
eth0 192.168.1.1
=============================================
运行:route -p add 192.168.172.0 mask 255.255.255.0 192.168.172.1 metric 1
--注:意思是将192*的IP包的路由网关设为192.168.172.1 ,-P 参数代表永久写入路由表,建议先不加此参数,实践通过后在写上去
网关详解:
192.168.0.1那ip属于c类,192.168.172.1的通配符子网掩码是多少啊:255.255.255.0。
__________________________________________________________
新的Raspberry Pi不集成USB网卡驱动及带自动扩展分区(不用工具)的链接:
http://blog.csdn.net/zhang_danf/article/details/19195931
sudo install -p -m 644 8188eu.ko /lib/modules/3.12.28+/kernel/drivers/net/wireless/
/sbin/depmod -a 3.12.28+
Raspberry Pi 使用USB无线网卡的时候不会因为路由重启而掉线。
http://49mm.com/archives/158.html
通电后系统将会进入首次启动配置页面(如果以后还想进行这样的配置运行‘sudo raspi-config’即可),请进行下列操作:
选择expand_rootfs,将系统容量进行扩展
选择boot_behaviour,将启动方式设置为console
实践一次对eth0的默认路由进行删除,并添加新的wifi出口为默认路由,addTime: 2015-10-17
[codes=php]
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.199.0 * 255.255.255.0 U 0 0 0 wlan0
route add default gw 192.168.199.1
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default Hiwifi.lan 0.0.0.0 UG 0 0 0 wlan0
default 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.199.0 * 255.255.255.0 U 0 0 0 wlan0
root@raspberrypi:~# route del default gw 192.168.2.1
root@raspberrypi:~# curl "baidu.com"
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>
[/codes]
Win7作为上位机用USB转串口CP210X,后直接接到raspberrypi树莓派的串口上去,三根线:
一:用SecureCRT软件,设置波特率等参数:
• Speed: 115200
• Bits: 8
• Parity: None
• Stop Bits: 1
• Flow Control: None
注意接线除开地外都相反:
Tx-->Rx
Rx-->TX
Gn-->Gn
特别要注意:
1):默认进去不是Root,Username: pi Password: raspberry
2):流控设置为;XON/XOFF才行,否则:用DTR/DSR,RTS/CTS都是不行的。
淘宝购买的1米线串口接线图:
[img][attach]902[/attach][/img]
二:用Puty来进行串口连接:
Puty:
• Speed: 115200
• Bits: 8
• Parity: None
• Stop Bits: 1
• Flow Control: None
Tx-->Rx
Rx-->TX
Gn-->Gn
Puty在这儿需要用户名和密码:
1.接串口时要刚好相反的接,不是tx对tx,而是tx对rx。
2.Username: pi Password: raspberry
再就是解决PHP Deprecated: Comments starting with '#' are deprecated in 方法:
root@raspberrypi:/home/pi# php -m
PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0
根据提示打开这个ming.ini文件, 发现对应的位置是#开头的注释符号, 联想到类似的php.ini文件中的注释是以;开头的,所以试着改成为;
#configuration for php MING module
extension=ming.so
改为:
;configuration for php MING module
extension=ming.so
然后这个警告就不出现了. 原来是现在的PHP不支持#用来做注释符号,而改用了;这个符号, 以后在出现问题时一定不要着急,试着从报警的信息中找到提示信息,然后再按图索骥地找到解决问题的方法;
用raspberry pi做web服务器,感觉有点慢的问题解决办法(AddTime: 2015/05/19):
APC XCache eAccelerator不知哪个更好用,不过从安装上好像前两个更容易,apt-get就行了,最后一个好像要来个./configure,make,make install三部曲,虽说也不麻烦,但好久没这样装过软件了。我一般选择apc,毕竟是官方的,用的人也多,性能差别还不至于到非要选某个的地步。
有位兄弟用了apc:先用apc了,毕竟官方易安装,先用试试。 贴两张图,一个是使用前的,一个是使用后的。
安装方法:sudo apt-get install php5-fpm php-apc 摘自:http://www.th7.cn/system/lin/201401/49673.shtml
HDMI To VGA配置的方法实践Ok:
通过转接线直接通电启动树莓派,由于其不带BIOS,所以全靠刻录到SD卡的系统进行引导,我尝试了很多次无奈显示器没有任何输出。
搜索了网络得知在首次运行前需要修改配置文件config.txt里的参数,取消掉hdmi_safe=1前面的注释号,变更为如下:
# uncomment if you get no picture on HDMI for a default "safe" mode
hdmi_safe=1
再次启动,显示器有反应了,正当我满怀欣喜的时候,显示器一直没有画面出来,黑屏在那边,有得求助于万能的网络了,结果找到这么一篇Wiki – RPi VerifiedPeripherals – Display adapters,结果帮了我大忙,经过反复摸索,得出配置文件如下:
hdmi_safe=1
overscan_left=-30
overscan_right=-30
overscan_top=-30
overscan_bottom=-30
hdmi_group=2
hdmi_mode=4
hdmi_drive=2
config_hdmi_boost=4
更改完SD卡中的config.txt后存盘,重新插入树莓,然后引导系统,这回奇迹终于显现了,显示器有画面了!
来源:http://wangye.org/blog/archives/762/
sudo apt-get install minicom
昨天用pacman -S minicom命令在archlinux上下载并安装了minicom,但是调用minicom命令时出现如下错误:
minicom: cannot open /dev/modem: No such file or directory
今天终于找到解决方案,做一个软链接到/dev/ttyS0就可以解决问题了。命令如下:
ln -s /dev/ttyS0 /dev/modem
minicom命令正常运行后,打开开发板电源,屏幕上出现预期的来自开发板串口的信息。
raspberrypi树莓派:
ln -s dev/modem /dev/ttyAMA0
raspberrypi下安装samba的方法步骤如下:
sudo apt-get install samba
sudo apt-get install samba-common-bin
废掉原来的配置文件,自己建立一个新的:
cd /etc/samba/
cp smb.conf smb.conf.backup
vi smb.conf
[global]
log file = /var/log/samba/log.%m
[tmp]
comment = Temporary file space
path = /tmp
read only = no
public = yes
添加用户和存密码文件的文件smbpasswd:
sudo useradd jackxiang
sudo touch /etc/samba/smbpasswd
cd /etc/samba/
sudo smbpasswd -a jackxiang //sudo apt-get install samba-common-bin ,smbpasswd 来自:samba-common-bin
运行命令
service samba restart
串口通信:
http://pypi.python.org/pypi/pyserial
应用如下(程序有点问题,每次关闭串口再打开会出现乱码现象)
import serial
from time import sleep
ser = serial.Serial('/dev/ttyUSB0', 2400, timeout=1)
def recv(serial):
data, quit = None, False
while 1:
data =serial.read(1)
if data == '':
continue
sleep(0.02) # data is this interval will be merged
while 1:
n = serial.inWaiting()
if n > 0:
data = "%s%s" % (data,serial.read(n))
else:
quit = True
break
if quit:
break
return data
while 1:
data =recv(ser)
if data== 'c' :
ser.close()
break
ser.write(data)
Python连接mysql
链接http://sourceforge.net/projects/mysql-python/files/mysql-python/
我没有按照这种方法,因为没安装成功,我用的debian系统,采取包的安装方法
apt-get install python-mysqldb
linux c调用串口通信,在raspberry pi上面测试OK
直接贴代码了:
代码情况说明下,我串口连了一个单片机,一直在往串口发数据。
这段程序只是简单的连接了串口,然后将单片机通过串口发送过来的信息读取并打印出来。
连接测试OK,可以很简单的改为发送数据。
我上位机是raspberry pi, 跑的raspbian;下位机为arduino,是usb转串口的,机器自带了usb转串口的驱动,识别的串口为ttyACM0
raspberry pi装arduino环境参考下面链接:
http://www.shumeipai.net/read.php?tid=142
[codes=C]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
int main()
{
int fd,speed;
char buff[100];
//open port
if ( (fd =open("/dev/ttyACM0",O_RDWR|O_NOCTTY|O_NDELAY)) <0 )
perror("open port err\n");
if( fcntl(fd,F_SETFL,0)<0 )
perror("fcntl f_setfl\n");
if(isatty(fd)==0)
perror("standar input is not a terminal device");
//set port
struct termios new_cfg,old_cfg;
if(tcgetattr(fd,&old_cfg) !=0)
perror("tcgetattr");
new_cfg=old_cfg;
cfmakeraw(&new_cfg);
new_cfg.c_cflag &=~CSIZE;
speed = B115200;
cfsetispeed(&new_cfg,speed);
cfsetospeed(&new_cfg,speed);
new_cfg.c_cflag|=CS8;
new_cfg.c_cflag &=~PARENB;
new_cfg.c_cflag &=~INPCK;
new_cfg.c_cflag &=~CSTOPB;
new_cfg.c_cc[VTIME]=0;
new_cfg.c_cc[VMIN]=1;
tcflush(fd,TCIFLUSH);
if((tcsetattr(fd,TCSANOW,&new_cfg))!=0)
{
perror("tcsetattr");
}
//start read
do{
memset(buff,0,100);
if(read(fd,buff,100) >0)
{
printf("read:%s",buff);
}
}while(strncmp(buff,"quit",4));
close(fd);
return 0;
}
[/codes]
Setting up Memcached on my Raspberry Pi:
I am installing the software from packages, documentation available at Google Code, with apt-get.
apt-get install memcached
After the installation has completed you can see the stats with the following command:
echo "stats settings" | nc localhost 11211
。。。
http://www.mycreativity.nl/blog/setting-up-memcached-on-my-raspberry-pi
First we need to install Netcat on RPi and the target linux machine where we are sending the video stream
CODE: SELECT ALL
sudo apt-get install netcat
on the target machine we also need mplayer to play the video.
CODE: SELECT ALL
sudo apt-get install mplayer
安装apache mysql php实践ok Add-Time:2015-05-04:
在树莓PI 上运行 Apache 服务器的步骤很简单,
在命令行上运行:
sudo apt-get install apache2 php5 libapache2-mod-php5 php5-mysql php-apc
sudo apt-get install apache2 php5 libapache2-mod-php5 php5-mysql php-apc mysql-server php5-cli php5-curl php5-common php-pear
这条命令会安装 Apache 和 PHP ;装完之后在 /var/www 下会有 index.html 是默认主页。
运行(可选):
sudo apt-get install mysql-server mysql-client php5-mysql
则会装上 MySQL 数据库。
装完 Apache 服务器后则可以在浏览器里访问 树莓PI 的IP地址。
实践来源:http://www.111cn.net/phper/apache/77296.htm
--------------------------------------------------------------------------------------------------------------
https://github.com/emoncms/raspberrypi
aspberry PI emoncms module
This module is to be used with an emoncms installed on the PI to interface with an RFM12 to PI board in a seemless fashion.
Features:
set the emoncms account to send data to
set the RFM12 frequency
set the RFM12 group
set the RFM12 board node id.
php serial script
Requires the pecl php serial module
sudo apt-get install php-pear php5-dev
sudo pecl install channel://pecl.php.net/dio-0.0.6
Add "extension=dio.so" to php.ini
Restart apache
root@raspberrypi:~# sudo pecl install channel://pecl.php.net/apc-3.1.9
downloading APC-3.1.9.tgz ...
Starting to download APC-3.1.9.tgz (155,540 bytes)
..............done: 155,540 bytes
54 source files, building
running: phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
Build process completed successfully
Installing '/usr/lib/php5/20100525+lfs/apc.so'
install ok: channel://pecl.php.net/APC-3.1.9
configuration option "php_ini" is not set to php.ini location
You should add "extension=apc.so" to php.ini
running: make INSTALL_ROOT="/tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6" install
Installing shared extensions: /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6/usr/lib/php5/20100525+lfs/
running: find "/tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6" | xargs ls -dils
393894 4 drwxr-xr-x 3 root root 4096 2月 2 16:14 /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6
393921 4 drwxr-xr-x 3 root root 4096 2月 2 16:14 /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6/usr
393922 4 drwxr-xr-x 3 root root 4096 2月 2 16:14 /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6/usr/lib
393923 4 drwxr-xr-x 3 root root 4096 2月 2 16:14 /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6/usr/lib/php5
393924 4 drwxr-xr-x 2 root root 4096 2月 2 16:14 /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6/usr/lib/php5/20100525+lfs
393920 120 -rwxr-xr-x 1 root root 119105 2月 2 16:14 /tmp/pear/temp/pear-build-rootsFCcTJ/install-dio-0.0.6/usr/lib/php5/20100525+lfs/dio.so
Build process completed successfully
Installing '/usr/lib/php5/20100525+lfs/dio.so'
install ok: channel://pecl.php.net/dio-0.0.6
configuration option "php_ini" is not set to php.ini location
You should add "extension=dio.so" to php.ini
---------待实践:实践Ok,AddTime:2015-05-04
apt-get install libevent-dev
apt-get install libevent,安装libevent后:
pecl install channel://pecl.php.net/libevent-0.1.0 //centOS访问下载地址:http://pecl.php.net/package/libevent
Please provide the prefix of libevent installation [autodetect] :回车
Build process completed successfully
Installing '/usr/lib/php5/20100525+lfs/libevent.so'
install ok: channel://pecl.php.net/libevent-0.1.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=libevent.so" to php.ini
pecl install channel://pecl.php.net/xhprof-0.9.2
pecl install channel://pecl.php.net/libevent-0.0.5 //到:0.1.0 了,http://pecl.php.net/package/libevent
http://serverfault.com/questions/271554/problems-installing-php-libevent-pecl-package
安装PHP的 libevent PECL Package 扩展步骤及实例,以及实现多个USB转串口的读写实践成功 ,可以用select函数:
http://jackxiang.com/post/4803/
下面这个好像不行:
pecl install channel://pecl.php.net/libevent/xdebug-2.2.1
ERROR: unable to unpack /tmp/buildd/php5-5.4.4/pear-build-download/xdebug-2.2.1.tgz
tar: 归档文件中异常的 EOF
(不知道这个版本行不:xdebug-2.1.2)
pecl install channel://pecl.php.net/libevent/xdebug-2.1.2
invalid package name/package file "channel://pecl.php.net/libevent/xdebug-2.1.2"
install failed
Installing '/usr/local/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so'
install ok: channel://pecl.php.net/xdebug-2.0.2
configuration option "php_ini" is not set to php.ini location
You should add "extension=xdebug.so" to php.ini
At this point, you should open your php.ini file an add the line as suggested, but use the zend_extension directive as follows:
zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so
Of course you should check that the path matches what your installer output provides.
And then you just need to restart apache and you're done.
To check that your installation is working, try running the following code (which is similar to one of the test scripts on the xdebug site):
<?php
function test(){
echo "Called @ ".xdebug_call_file().
":".xdebug_call_line()." from".
xdebug_call_function();
}
test();
?>
pecl install xdebug
vi /etc/php5/apache2/php.ini
;;;;;;;;;;
; XDebug ;
;;;;;;;;;;
;load module
zend_extension="/usr/lib/php5/20060613+lfs/xdebug.so"
;some options
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
;The following IP should be of the host running Eclipse!
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.idekey=
;Only enable the following if you want profiler output (lots of data!)
;xdebug.profiler_enable=1
;xdebug.profiler_output_dir=/var/log/XDebug/
;xdebug.profiler_enable_trigger=1
/etc/init.d/apache2 restart
root@raspberrypi:~/music# pecl install xdebug
downloading xdebug-2.2.1.tgz ...
Starting to download xdebug-2.2.1.tgz (248,057 bytes)
..................
无线网卡配置(找了很多都没有成,这个可以),很简单:
http://www.buxiaoyang.com/raspberrypi_wifi_setting/
root@raspberrypi:/home/pi# vi /etc/network/interfaces
[codes=php]
auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "MyHome"
wpa-psk "0123456789"
[/codes]
重启动:sudo shutdown "now" -r
安装redis-server和nodejs:
[codes=php]
apt-get install redis-server
sudo apt-get install nodejs npm
npm install -g redis
npm install mysql
sudo npm install memcache
sudo npm install mongo
nodejs -v
v0.6.19
node-websocket-server@1.4.03 不支持node 0.5以上的版本。
sudo npm install node-websocket-server //不行
npm search websocket 找到: websocket socket server
npm install socket
[/codes]
安装Nodejs的包来源:http://raspberrypi.stackexchange.com/questions/4194/getting-npm-installed-on-raspberry-pi-wheezy-image
搜索软件包:
apt-cache search 尋找及 apt-get 搞定安裝:
apt-cache search nginx
Nginx在raspberry pi下的push模块安装:
sudo apt-get install nginx-extras //添加其余的nginx模块
http://code.adrianvera.com/comet-server-nginx-push-ubuntu-11.10
安装SVN服务器,将树莓派作为自己的软件代码托管服务器!!!
1、首先需要安装Subversion软件:
sudo apt-get install subversion
2、创建仓库
svnadmin create /var/svn
/var/svn 为所创建仓库的路径,理论上可以是任何目录
3、修改配置文件/var/svn/conf/svnserve.conf
#去掉#[general]前面的#号
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,去掉前面的#
password-db = passwd
注意:所有的行都必须顶格,否则报错。 建议:为了防止不必要的错误,建议你直接用我上面的内容覆盖掉文件原来的内容.
4、修改配置文件passwd vim /var/svn/conf/passwd
[users]
svnuser = password
ukonline2000 = ukonline2000
注意:
◆一定要去掉[users]前面的#,否则svn只能以匿名用户登录,客户端不会出现登录窗口,除非你的anon不为none,否则将返回一个错误。
◆这里的密码都是没有加密的,我按照一些教程所说的用htpasswd生成的密码无法使用。
5、停止Subversion服务器:
killall svnserve
6、启动Subversion服务器 对于单个代码仓库,启动命令:
svnserve -d -r /var/svn
其中-d表示在后台运行,-r指定服务器的根目录,这样访问服务器时就可以直接 用svn://服务器ip来访问了。
-----------------------------------------------------------------------------------------------------------------------------------------------
经常有新手配置基于svnserve的subversion服务器后,
在客户端访问subversion版本库时出现这个错误:
svnserve.conf:12: Option expected
为什么会出现这个错误呢,就是因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件,如
### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository. (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)
### Visit http://subversion.tigris.org/ for more information.
[general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
anon-access = read
auth-access = write
像上面的配置文件中,anon-access是顶行的,没问题,而auth-access就存在前置空格,会导致这个错误。
要避免出现这个错误,应该在去掉这些行前的#时,也要顺手去掉前面的空格,这一点,在郑新星老早的文章《Subversion之路--实现精细的目录访问权限控制》就提到过。
-----------------------------------------------------------------------------------------------------------------------------------------------
另外,客户端推荐用TortoiseSVN ,http://www.eeboard.com/bbs/thread-5568-1-1.html。
安装触摸屏:http://www.ickey.cn/raspberry.php?action=fangan&sub=10333
其实很久之前就用上触摸屏了,但是最近很忙一直没时间写教程,今天有点时间,就给大家说说如何在树莓派上使用触摸屏!!
准备设备:
1.树莓派1个
2.带触摸功能的液晶显示屏(在购买之前一定要确认触摸芯片是否是eGalax的芯片)
操作步骤:
1.请大家下载基于最新debain-02-09版本上编译的系统镜像(推荐用8G的卡导入镜像,部分4G卡会提示空间不足)
网盘地址:http://pan.baidu.com/share/link?shareid=372072&uk=3338932639
2.刷好系统启动树莓派,使用lsusb命令查看触摸屏是否识别:
pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 001 Device 005: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
如果看到有eGalax,恭喜你的的触摸屏已经找到了,如果没找到请确认触摸屏的usb接口是否正确连接,确认触摸屏的芯片是否是eGalax的
3.登录树莓派,进入图形界面,运行xinput_calibrator程序软件调校屏幕(镜像中已经安装了软件)
pi@raspberrypi ~ $ xinput_calibrator
屏幕会出现提示,让你去点击对角线的小叉,点击完后屏幕会提示一个调整信息,如下:
Calibrating EVDEV driver for “eGalax Inc. USB TouchController” id=8
current calibration values (from XInput): min_x=1938, max_x=114 and min_y=1745, max_y=341
Doing dynamic recalibration:
Setting new calibration data: 121, 1917, 317, 1741
–> Making the calibration permanent <–
copy the snippet below into ‘/etc/X11/xorg.conf.d/99-calibration.conf’
Section “InputClass”
Identifier “calibration”
MatchProduct “eGalax Inc. USB TouchController”
Option “Calibration” “121 1917 317 1741″
Option “SwapAxes” “1″
EndSection
4.按照提示将以下内容复制这部分内容
Section “InputClass”
Identifier “calibration”
MatchProduct “eGalax Inc. USB TouchController”
Option “Calibration” “121 1917 317 1741″
Option “SwapAxes” “1″
EndSection
5.编辑文件”/usr/share/X11/xorg.conf.d/01-input.conf“,将刚才复制的内容添加到文件的最后,并保存
pi@raspberrypi ~ $sudo nano /usr/share/X11/xorg.conf.d/01-input.conf
6.重启树莓派,好好享受的你触摸屏吧!
==========================================
之前测试wifi不稳定,网上看了看gprs的开发模块还挺贵。打算将我的htc手机连接到raspberry pi的板子上,看看能不能成功。
使用命令查看是否已经认到手机。
$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 008: ID 0bb4:0cad HTC (High Tech Computer Corp.)
Bus 001 Device 009: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 Webcam
编写文件,内容里面的串是根据lsusb中的值得来的。
$ sudo vim /etc/udev/rules.d/99-android.rules
SUBSYSTEM==”usb”, ATTRS{idVendor}==”0bb4″, ATTRS{idProduct}==”0cad”,MODE=”0666″
$ sudo chmod a+rx /etc/udev/rules.d/99-android.rules
$ sudo service udev restart
下载编译好的adb工具
http://fieldeffect.info/w/Beagleboard_Notes?action=AttachFile&do=view&target=adb
本地下载:
[file][attach]340[/attach][/file]
传到系统上,使用命令进入android手机
$ chmod a+x adb
$ ./adb shell
成功了。这样就可以用手机做代理进行操作,如果写个能时时交互数据的服务,很多传感器的钱都剩下了。
http://huulivoide.pp.fi/Arch/arm/也有编译好的adb工具,我没有测试
扩展可用空间
第一次用 root 登录,会自动弹出树莓派的高级设置面板(以后也可以通过 raspi-config 命令进入):
选择第一项 Expand Filesystem 扩展 SD 卡上可用的空间,不然以后会有很多大软件,不能安装(提示空间不足,例如 mysql)。
扩展之后可以通过 df -h 命令看到效果~
双网卡的路由设置:
root@raspberrypi:~# ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:eb:e7:a8:1f
inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:489 errors:0 dropped:0 overruns:0 frame:0
TX packets:530 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:42731 (41.7 KiB) TX bytes:79114 (77.2 KiB)
wlan0 Link encap:Ethernet HWaddr ec:17:2f:cf:45:15
inet addr:192.168.1.113 Bcast:255.255.255.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:245 errors:0 dropped:1 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25610 (25.0 KiB) TX bytes:1398 (1.3 KiB)
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
[codes=php]
raspberry pi的双网卡中的路由设定,192.168.2.1 255.255.255.0 这个不上网是eth0,而wlan0是wifi,也就是无线网卡这个可以上网的路由设置,先加个默认网关(也就是路由器的IP),默认eth0,得修改下,否则默认由eth0是出不去的:
route add default gw 192.168.1.1
默认网关:
route add default gw 192.168.1.1 wlan0
加路由:
route add -net 192.168.2.0/255 gw 192.168.2.1 eth0
删除默认路由:
route del default gw 192.168.2.1
[/codes]
再次实践Ok:AddTime 2015-05-10
[codes=php]
root@raspberrypi:~# ping baidu.com
connect: Network is unreachable
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.199.0 * 255.255.255.0 U 0 0 0 wlan0
root@raspberrypi:~# ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:eb:e7:a8:1f
inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:270 errors:0 dropped:0 overruns:0 frame:0
TX packets:221 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23884 (23.3 KiB) TX bytes:33957 (33.1 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:100 (100.0 B) TX bytes:100 (100.0 B)
wlan0 Link encap:Ethernet HWaddr ec:17:2f:cf:45:15
inet addr:192.168.199.167 Bcast:192.168.199.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:124 errors:0 dropped:0 overruns:0 frame:0
TX packets:43 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:16060 (15.6 KiB) TX bytes:6064 (5.9 KiB)
root@raspberrypi:~# route add default gw 192.168.199.1 wlan0
root@raspberrypi:~# route add -net 192.168.2.0/255 gw 192.168.2.1 eth0
root@raspberrypi:~# ping baidu.com
PING baidu.com (180.149.132.47) 56(84) bytes of data.
64 bytes from 180.149.132.47: icmp_req=1 ttl=56 time=526 ms
64 bytes from 180.149.132.47: icmp_req=2 ttl=56 time=10.7 ms
[/codes]
route add default gw 192.168.1.1 wlan0
SIOCADDRT: File exists
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default localhost 0.0.0.0 UG 0 0 0 wlan0
192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0
localhost localhost 255.255.255.255 UGH 0 0 0 eth0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
root@raspberrypi:~# ping baidu.com
PING baidu.com (123.125.114.144) 56(84) bytes of data.
64 bytes from 123.125.114.144: icmp_req=1 ttl=57 time=178 ms
64 bytes from 123.125.114.144: icmp_req=2 ttl=57 time=61.6 ms
相于wlan0的网关是192.168.1.1:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
default 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
___________________________________________________________________________________
如果eth0为192.168.10.123/255.255.255.0,eth1为192.168.20.231/255.255.255.0,则命令格式如下:
#route add -net 192.168.10.0 netmask 255.255.255.0 dev eth0
#route add -net 192.168.20.0 netmask 255.255.255.0 dev eth1
上面的命令把发送给192.168.10.0网段的IP包交给eth0转发,把192.168.20.0网段的IP包交给eth1转发。如果还有可能有发送给其他目的IP的包,那么你肯能希望设置一个“默认网关”:
#route add default gw 192.168.10.1
上面的命令把所有发送给其他目的IP的包都转发给192.168.10.1,而如何转发给192.168.10.1这个地址的规则已经在刚才的第一条命令中定义了(从eth0转发)。一般情况下,默认网关已经自动设置好了,不用重复设置。可以用route命令加-n参数进行检查。
如果要删除某一条,命令格式为:
#route del -net 192.168.10.0 netmask 255.255.255.0
配置时的一种思路是把192.168.10.0网段路由至eth0,192.168.20.0网段路由至eth1,再设置默认路由。另一种思路是,只指定其中一个,然后把默认的0.0.0.0路由至另一个。其实效果一样,就是两种风格。
添加路由:
route add -net 10.0.0.0 netmask 255.0.0.0 dev eth0
删除路由:
route del -net 10.0.0.0 netmask 255.0.0.0 dev eth0
添加默认路由:
route add default gw 10.0.0.1
删除默认路由
route del default gw 10.0.0.1
route del default
linux下添加路由的方法:
使用 route 命令添加
使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法:
//添加到主机的路由
# route add –host 192.168.168.110 dev eth0
# route add –host 192.168.168.119 gw 192.168.168.1
添加到网络的路由
# route add –net IP netmask MASK eth0
# route add –net IP netmask MASK gw IP
# route add –net IP/24 eth1
添加默认网关
# route add default gw IP
删除路由
# route del –host 192.168.168.110 dev eth0
一:使用 route 命令添加
[codes=php]
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.199.0 * 255.255.255.0 U 0 0 0 wlan0
root@raspberrypi:~# route del -net 192.168.2.0 netmask 255.255.255.0
root@raspberrypi:~# route del -net 192.168.199.0 netmask 255.255.255.0
root@raspberrypi:~# route del default gw 192.168.2.1 //这条运行后,失去联系,reboot下。
reboot 后自己也就Ok了:
root@raspberrypi:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default Hiwifi.lan 0.0.0.0 UG 0 0 0 wlan0
192.168.2.0 * 255.255.255.0 U 0 0 0 eth0
192.168.199.0 * 255.255.255.0 U 0 0 0 wlan0
[/codes]
二:在linux下设置永久路由的方法:
1.在/etc/rc.local里添加
方法:
route add -net 192.168.3.0/24 dev eth0
route add -net 192.168.2.0/24 gw 192.168.3.254
2.在/etc/sysconfig/network里添加到末尾
方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev
3./etc/sysconfig/static-router :
any net x.x.x.x/24 gw y.y.y.y
在一个路由表里面加 两个 default gateway 的用法是没问题, 实际使用是有问题的, 就是LZ 所说的感觉反应慢 ; 这个用法是在线路质量绝对符合 weight 分配的情况下才能正常工作,还要看目的地址响应的情况,在电信和联通以拖慢对方为己任的现实情况下 ,weight在这里没有什么意义;
在没有键盘的情况下配置Raspberry Pi
1、路由设置开启 DHCP,Raspberry Pi 插上网线
2、在路由中找到 Raspberry Pi 的IP地址
3、用 Putty 等 SSH 客户端连接上 Raspberry Pi 设备的 22 号端口
4、用默认username :pi Password :raspberry 连接(都是小写linux严格区分大小写)
5、sudo raspi-config 对 raspberry pi 进行配置
来自:http://blog.sina.com.cn/s/blog_bce68edc0101cklj.html
最后,装个swoole整个WEBSOCKET:
/usr/include/php5/ext/pcre/php_pcre.h:29:18: fatal error: pcre.h: No such file or directory
compilation terminated.
Makefile:171: recipe for target 'swoole.lo' failed
make: *** [swoole.lo] Error 1
root@raspberrypi:~/software/swoole-src-swoole-1.7.18-stable# apt-get install pcre-devel
还是不行,这个包不对。
http://www.link888.cn/read-558.html
刚刚在编译php扩展yaf的时候,老是报缺少pcre
缺少就装上呗。
当然是想通过apt-get这个命令解决问题了,不过搜索了网络,只找到了CentOS的yum命令:
yum update
yum install pcre-devel
依葫芦画瓢,把yum直接改成apt-get,不过apt-get install pcre-devel这步出错了,找不到包,仔细搜索了网络才知道,原来Debian系下(ubuntu源自Debain)不叫这个名字,正确的命令如下:
apt-get update
apt-get install libpcre3 libpcre3-dev
搞定
libtool: install: cp ./.libs/swoole.so /root/software/swoole-src-swoole-1.7.18-stable/modules/swoole.so
libtool: install: cp ./.libs/swoole.lai /root/software/swoole-src-swoole-1.7.18-stable/modules/swoole.la
Installing shared extensions: /usr/lib/php5/20100525+lfs/
树莓派Raspberry Pi备份SD卡系统、浏览挂载IMG分区镜像文件:
备份存储于SD卡的操作系统(类似于GHOST备份)
大家应该还记得在Windows平台下有个写入树莓派系统映像的Win32DiskImager,其实细心的读者应该发现这个软件上面有个选项是Read,猜对了,今天我们就是依靠于这个选项来实现镜像的备份。
打开Win32DiskImager,如下图所示,Device选择SD卡所在盘符,Image File指定要备份的文件路径,需要注意的是备份的文件大小会相当于SD卡实际的容量,比如我16GB的SD卡,备份下来文件也有14.7GB左右,请保证有足够的空间。准备妥当后直接点击Read,等完成后即可。
Win32DiskImager Read Image File
当然恢复备份镜像则直接选择该镜像然后点击Write,和烧录系统一样。
挂载SD卡文件系统并浏览查看LINUX系统文件
因为在Windows下默认不能直接挂载Linux的分区,所以我们需要借助于另外一款软件:DiskInternals Linux Reader(下载地址),打开这个软件,连接上你的包含Raspberry Pi系统的SD卡,直接点击Drives -> Refresh Drive List就可以看到Linux的分区啦,当然也可以对其中的文件进行操作。
DiskInternals Linux Reader
浏览查看IMG镜像文件(挂载IMG镜像)
如何浏览并查看img镜像文件呢?还是用到刚才我们提到的DiskInternals Linux Reader工具,运行该软件,点击菜单 Drives -> Mount Image,选择Raw Disk Images,然后在弹出的文件选择框内选择树莓派的img文件,稍等片刻就可以看到镜像被成功加载了。
详细:http://wangye.org/blog/archives/938/
vnc安装和输入法:
vncServer安装和输入法。
cat startvncsvr.sh
killall Xvnc >/dev/null 2>&1
rm -rf /tmp/.X*-lock
rm -rf /tmp/.X11-unix/X*
rm -rf /root/.vnc/*.log
rm -rf /root/.vnc/*.pid
vncserver -kill :1
vncserver :1 -geometry 1024x768
启动:
sh /home/irdcops/shell/vncsvr/startvncsvr.sh
Can't find file /root/.vnc/raspberrypi:1.pid
You'll have to kill the Xtightvnc process manually
You will require a password to access your desktops.
Password: XXX
Verify: XXX
给树莓派安装中文输入法Fcitx及Google拼音输入法:
sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin
安装完毕,重启即可。
这个问题,GHOST有两个判决原则。 1.不.
原以前先允许恢复到GHO文件所在的目标。 2.GHO的数据大小必须小于恢复目标分区 的总容量大小。如果GHO镜像内包含的数 据比目标分区总容量还大,那么不可能恢 复得进去,自然就是灰色不可选。
原以为重新装win7后再把def盘理清顺序后再安上ghost.实践发现还是变灰,后用winpe打开那个文件直接拷贝到c盘
原以前先允许恢复到GHO文件所在的目标。 2.GHO的数据大小必须小于恢复目标分区 的总容量大小。如果GHO镜像内包含的数 据比目标分区总容量还大,那么不可能恢 复得进去,自然就是灰色不可选。
原以为重新装win7后再把def盘理清顺序后再安上ghost.实践发现还是变灰,后用winpe打开那个文件直接拷贝到c盘
background:
Win7下安Windows Virtual PC 不想升级IE6。
Registry key: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/Setup/8.0
Key value name: DoNotAllowIE80
阅读全文
Win7下安Windows Virtual PC 不想升级IE6。
Registry key: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/Setup/8.0
Key value name: DoNotAllowIE80
阅读全文
背景:Aptana3.0是一个很好的开发PHP的软件工具,不光是js,尤其是3.0,我试用了下,但发现这个基于eclipse的软件里有一个快捷键失效,如:搜索引用(快捷键Ctrl+Shift+G)无效,如ctrl+q回到上一个编辑的地儿也好像不行,于是否在网上找了篇文章,可以试试,是不是这个问题。摘录如下:
当Eclipse快捷键功能,或者使用菜单时都无效。例如:搜索引用(快捷键Ctrl+Shift+G)无效;
解决方案:转换WorkSpace,或者删除WorkSpace目录下的.metadata文件夹,重启Eclipse,重新设置。
D:\admin\My Documents\Aptana Studio 3 Workspace\.metadata 删除。
D:\admin\My Documents\Aptana Studio 3 Workspace
阅读全文
当Eclipse快捷键功能,或者使用菜单时都无效。例如:搜索引用(快捷键Ctrl+Shift+G)无效;
解决方案:转换WorkSpace,或者删除WorkSpace目录下的.metadata文件夹,重启Eclipse,重新设置。
D:\admin\My Documents\Aptana Studio 3 Workspace\.metadata 删除。
D:\admin\My Documents\Aptana Studio 3 Workspace
阅读全文