<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post/9995/</link>
<title><![CDATA[[学习了解]树莓派(Raspberry PI)上的Python3.7.1，安装后用于矩阵学习及TensorF画Sin函数图，涉及到VNCServer的配置尤其是复制和开机启动相关的low安装入门]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[系统架构与硬件]]></category>
<pubDate>Sat, 15 Dec 2018 06:53:40 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/9995/</guid> 
<description>
<![CDATA[ 
	sudo useradd -m -s /bin/bash xiangdong -g irdcops&nbsp;&nbsp;#添加用户<br/><br/><textarea name="code" class="php" rows="15" cols="100">
sudo apt-get install build-essential tk-dev -y
sudo apt-get install libncurses5-dev libncursesw5-dev libreadline-dev -y
sudo apt-get install libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev -y
sudo apt-get install libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev -y
sudo apt autoremove -y
</textarea><br/><br/>DownLoad：<br/>https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz<br/>出现缺少库ModuleNotFoundError: No module named &#039;_ctypes&#039;，再次加上,关于在centos下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named &#039;_ctypes&#039;的解决办法:<br/><textarea name="code" class="php" rows="15" cols="100">
3.7版本需要一个新的包libffi-devel，安装此包之后再次进行编译安装即可。

#yum install libffi-devel -y
#make install
若在安装前移除了/usr/bin下python的文件链接依赖，此时yum无法正常使用，需要自己下载相关软件包安装，为节省读者时间，放上链接

#wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libffi-devel-3.0.13-18.el7.x86_64.rpm
#rpm -ivh libffi-devel-3.0.13-18.el7.x86_64.rpm
安装完成后重新进行make install，结束后再次配置相关文件的软连接即可。
原文：https://blog.csdn.net/qq_36416904/article/details/79316972 
</textarea><br/><br/>而Raspberry Pi读取的是libffi-dev ,如下：<br/><textarea name="code" class="php" rows="15" cols="100">
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus -y
sudo apt-get install libncursesw5-dev libgdbm-dev libc6-dev -y
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev -y
sudo apt-get install libssl-dev openssl -y
sudo apt-get install libffi-dev -y
</textarea><br/>来自：https://blog.csdn.net/wang725/article/details/79905612<br/><textarea name="code" class="php" rows="15" cols="100">
./configure --prefix=/usr/local/python37 &amp;&amp;&nbsp;&nbsp;make &amp;&amp; make install 
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-10.0.1 setuptools-39.0.1
在新版本的树莓派上出现问题：
$ python
Python 3.7.0a3 (default, Jan 10 2018, 14:36:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
&gt;&gt;&gt; import ssl
Traceback (most recent call last):
&nbsp;&nbsp;File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
&nbsp;&nbsp;File &quot;/usr/local/lib/python3.7/ssl.py&quot;, line 100, in &lt;module&gt;
&nbsp;&nbsp;&nbsp;&nbsp;import _ssl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # if we can&#039;t import it, let the error propagate
ModuleNotFoundError: No module named &#039;_ssl&#039;
apt-get install libssl-dev openssl
修改python源码：
$ vi Modules/Setup
找到
# Socket module helper for socket(2)
#_socket socketmodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
#_ssl _ssl.c &#92;
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl &#92;
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -L$(SSL)/lib -lssl -lcrypto
改為
# Socket module helper for socket(2)
_socket socketmodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl
_ssl _ssl.c &#92;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl &#92;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-L$(SSL)/lib -lssl -lcrypto
https://hk.saowen.com/a/0b0ad8c19b818139066b545032da2834cd5a1413d4dd86a3b43d715277d60309

#做软链接
#sudo cp /usr/bin/python /usr/bin/python2.7_bak #不用个性，系统自己也用python旧版本。
#sudo rm /usr/bin/python
sudo ln -s /usr/local/python37/bin/python3.7 /usr/bin/python3.7

#Pip用刚编译的最新的Pip3
#sudo mv /usr/bin/pip /usr/bin/pip2_bak&nbsp;&nbsp;#不用个性，系统自己也用python旧版本。
sudo ln -s /usr/local/python37/bin/pip3 /usr/bin/pip3.7&nbsp;&nbsp; #/usr/bin/pip3.7 -&gt; /usr/local/python37/bin/pip3

问题：pip3 install simplejson出现：
subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1.

解决方法
find / -name lsb_release
rm -rf /usr/bin/lsb_release
于是就好了：
/usr/local/python37/bin/pip3&nbsp;&nbsp;install simplejson
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting simplejson
&nbsp;&nbsp;Downloading https://files.pythonhosted.org/packages/e3/24/c35fb1c1c315fc0fffe61ea00d3f88e85469004713dab488dee4f35b0aff/simplejson-3.16.0.tar.gz (81kB)
&nbsp;&nbsp;&nbsp;&nbsp;100% &#124;████████████████████████████████&#124; 81kB 73kB/s 
Successfully installed simplejson-3.16.0
You are using pip version 10.0.1, however version 18.1 is available.
You should consider upgrading via the &#039;pip install --upgrade pip&#039; command.
pip install --upgrade pip
root@raspberrypi:/usr/local/src/Python-3.7.1# pip install --upgrade pip 
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting pip
&nbsp;&nbsp;Downloading https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl (1.3MB)
&nbsp;&nbsp;&nbsp;&nbsp;100% &#124;████████████████████████████████&#124; 1.3MB 50kB/s 
Installing collected packages: pip
&nbsp;&nbsp;Found existing installation: pip 10.0.1
&nbsp;&nbsp;&nbsp;&nbsp;Uninstalling pip-10.0.1:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Successfully uninstalled pip-10.0.1
Successfully installed pip-18.1
原文：https://blog.csdn.net/itdabaotu/article/details/83142918 

</textarea><br/>编译Python3.7.1教程：https://blog.csdn.net/RambleMY/article/details/82109788<br/><br/>安装numpy:<br/>如果成功安装好了pip，安装numpy及其他任何Python包都非常方便了<br/>　　运行pip install numpy<br/>　　pip会先自动下载与我们Python版本对应的numpy-xxx.whl文件，然后安装<br/><br/>矩阵计算：<br/><textarea name="code" class="php" rows="15" cols="100">
root@raspberrypi:/usr/local/src/Python-3.7.1# pip install numpy
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting numpy
&nbsp;&nbsp;Downloading https://files.pythonhosted.org/packages/2d/80/1809de155bad674b494248bcfca0e49eb4c5d8bee58f26fe7a0dd45029e2/numpy-1.15.4.zip (4.5MB)
&nbsp;&nbsp;&nbsp;&nbsp;100% &#124;████████████████████████████████&#124; 4.5MB 119kB/s 
Installing collected packages: numpy
&nbsp;&nbsp;Running setup.py install for numpy ... done
Successfully installed numpy-1.15.4

&gt;&gt;&gt; x = np.array([1.0, 2.0, 3.0])
Traceback (most recent call last):
&nbsp;&nbsp;File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
NameError: name &#039;np&#039; is not defined

&gt;&gt;&gt; import numpy as np
&gt;&gt;&gt; x = np.array([1.0, 2.0, 3.0])
&gt;&gt;&gt; print(x)
[1. 2. 3.]
&gt;&gt;&gt; type(x)
&lt;class &#039;numpy.ndarray&#039;&gt;
&gt;&gt;&gt; x = np.array([1.0, 2.0, 3.0])
&gt;&gt;&gt; y = np.array([2.0, 4.0, 6.0])
&gt;&gt;&gt; x + y
array([3., 6., 9.])
&gt;&gt;&gt; x - y
array([-1., -2., -3.])
&gt;&gt;&gt; x * y
array([ 2.,&nbsp;&nbsp;8., 18.])
&gt;&gt;&gt; print(x)
[1. 2. 3.]
&gt;&gt;&gt; print(y)
[2. 4. 6.]
&gt;&gt;&gt; print(x+y)
[3. 6. 9.]
&gt;&gt;&gt; x / 2.0
array([0.5, 1. , 1.5])
&gt;&gt;&gt; A = np.array([[1, 2], [3, 4]])&nbsp;&nbsp; 
&gt;&gt;&gt; print(A)
[[1 2]
 [3 4]]
&gt;&gt;&gt; A.shape
(2, 2)
&gt;&gt;&gt; A.dtype
dtype(&#039;int32&#039;)
&gt;&gt;&gt; B = np.array([[3, 0],[0, 6]])
&gt;&gt;&gt; A + B
array([[ 4,&nbsp;&nbsp;2],
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ 3, 10]])
&gt;&gt;&gt; A * B
array([[ 3,&nbsp;&nbsp;0],
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ 0, 24]])
&gt;&gt;&gt; print(A)
[[1 2]
 [3 4]]
&gt;&gt;&gt; A * 10
array([[10, 20],
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [30, 40]])
广播：
&gt;&gt;&gt; A = np.array([[1,2],[3,4]])
&gt;&gt;&gt; B = np.array([10,20])
&gt;&gt;&gt; A*B
array([[10, 40],
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [30, 80]])

循环：
&gt;&gt;&gt; X = np.array([[51,55],[14,19],[0,4]])
&gt;&gt;&gt; for row in X:
...&nbsp;&nbsp;&nbsp;&nbsp; print(row)
... 
[51 55]
[14 19]
[0 4]

#将X转为一维数组
&gt;&gt;&gt; X = X.flatten()
&gt;&gt;&gt; print (X)
[51 55 14 19&nbsp;&nbsp;0&nbsp;&nbsp;4]

#从X里抽取大于15的元素
&gt;&gt;&gt; X &gt; 15
array([ True,&nbsp;&nbsp;True, False,&nbsp;&nbsp;True, False, False])
&gt;&gt;&gt; X[X&gt;15]
array([51, 55, 19])


</textarea><br/><br/><br/>画曲线：<br/>sudo su -<br/>pip3 install matplotlib&nbsp;&nbsp;#失败<br/>sudo apt-get install python3-matplotlib # 安装成功，但是写代码时引用失败，如下：<br/>&gt;&gt;&gt; import matplotlib.pyplot as plt<br/>Traceback (most recent call last):<br/>&nbsp;&nbsp;File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;<br/>ModuleNotFoundError: No module named &#039;matplotlib&#039;&nbsp;&nbsp;，成功如下：<br/><textarea name="code" class="php" rows="15" cols="100">
sudo su -&nbsp;&nbsp;#否则会[Errno 13] 权限不够
pip install&nbsp;&nbsp;matplotlib
pip install&nbsp;&nbsp;sklearn&nbsp;&nbsp; #不运行这个也能import matplotlib.pyplot as plt

import numpy as np
import matplotlib.pyplot as plt

# 生成数据
x = np.arange(0, 6, 0.1) # 以0.1为单位，生成0到6的数据
y = np.sin(x)

# 绘制图形
plt.plot(x, y)&nbsp;&nbsp;#SecureCRT不行，有博文说它将弹出一个新窗口，显示一幅如图3-16所示的曲线，但不同的是多了几个GUI按钮做修饰。
plt.show()
</textarea><br/>以上代码在树莓派的界面上运行成功输出一个新窗口的Sina曲线。<br/><br/><br/>二)VNCServer的配置尤其是复制和开机启动相关：<br/>cat /home/irdcops/shell/vncsvr/startvncsvr.sh <br/>killall Xvnc &gt;/dev/null 2&gt;&amp;1&nbsp;&nbsp;<br/>vncserver -kill :1&nbsp;&nbsp;<br/>rm -rf /tmp/.X*-lock&nbsp;&nbsp;<br/>rm -rf /tmp/.X11-unix/X*&nbsp;&nbsp;<br/>rm -rf /root/.vnc/*.log&nbsp;&nbsp;<br/>rm -rf /root/.vnc/*.pid&nbsp;&nbsp;<br/>vncserver :1 -geometry 1024x768&nbsp;&nbsp;<br/><br/>这个是手动，二是那个能从Windows里复制进去，还得要开机启动，如下配置：<br/><textarea name="code" class="php" rows="15" cols="100">
1. 安装autocutsel sudo apt-get install autocutsel
2. 打开/root/.vnc/xstartup,添加 autocutsel -fork
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
autocutsel -fork
#x-terminal-emulator -geometry 80x24+10+10 -ls -title &quot;$VNCDESKTOP Desktop&quot; &amp;
#x-window-manager &amp;
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession
3. 关闭VNC:&nbsp;&nbsp;&nbsp;&nbsp;vncserver -kill :1
4. 启动VNC:&nbsp;&nbsp;&nbsp;&nbsp;vncserver  :1

以上来自：https://www.jianshu.com/p/1cbb422cf54a
</textarea><br/><br/><br/>cat /etc/init.d/vncserver<br/><textarea name="code" class="php" rows="15" cols="100">
#!/bin/sh
### BEGIN INIT INFO
# Provides:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vncserver
# Required-Start:&nbsp;&nbsp;&nbsp;&nbsp;$local_fs
# Required-Stop:&nbsp;&nbsp;&nbsp;&nbsp; $local_fs
# Default-Start:&nbsp;&nbsp;&nbsp;&nbsp; 2 3 4 5
# Default-Stop:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 1 6
# Short-Description: Start/stop vncserver
### END INIT INFO
# 第一行是告诉系统这个脚本文件通过/bin/目录下的sh来执行
# 后面几行是一些说明信息，说明这个脚本是干嘛的
# 这脚本是用来开启和关闭vncserver的
 
# More details see:
# http://www.penguintutor.com/linux/vnc
 
### Customize this entry
# Set the USER variable to the name of the user to start vncserver under
export USER=&#039;root&#039;
### End customization required
# 导出环境变量USER=&#039;pi&#039;
 
eval cd ~$USER
# eval表示该句扫过两次，首先将cd ~$USER替换为cd ~pi
# 接着执行cd ~pi
 
# 如果sh执行这个脚本的时候传入的第一个参数是start，就...
# 如果sh执行这个脚本的时候传入的第一个参数是stop，就...
# 如果sh执行这个脚本的时候传入的第一个参数是其他，就...
case &quot;$1&quot; in
&nbsp;&nbsp;start)
&nbsp;&nbsp;&nbsp;&nbsp;# 启动命令行。此处自定义分辨率、控制台号码或其它参数。
&nbsp;&nbsp;&nbsp;&nbsp;su $USER -c &#039;/usr/bin/vncserver -depth 16 -geometry 1024x768 :1&#039;
&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;Starting VNC server for $USER &quot;
&nbsp;&nbsp;&nbsp;&nbsp;;;
&nbsp;&nbsp;stop)
&nbsp;&nbsp;&nbsp;&nbsp;# 终止命令行。此处控制台号码与启动一致。
&nbsp;&nbsp;&nbsp;&nbsp;su $USER -c &#039;/usr/bin/vncserver -kill :1&#039;
&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;vncserver stopped&quot;
&nbsp;&nbsp;&nbsp;&nbsp;;;
&nbsp;&nbsp;*)
&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;Usage: /etc/init.d/vncserver &#123;start&#124;stop&#125;&quot;
&nbsp;&nbsp;&nbsp;&nbsp;exit 1
&nbsp;&nbsp;&nbsp;&nbsp;;;
esac

exit 0
</textarea><br/><br/><br/>chmod 755 /etc/init.d/vncserver<br/>sudo update-rc.d vncserver defaults<br/><br/>继续解决复制问题，如下步骤：<br/>找不到：vncconfig,在红帽里找了一下，发现在：<br/>rpm -qf /usr/bin/vncconfig <br/>tigervnc-server-minimal-1.8.0-5.el7.x86_64 ，于是推测在Raspberry Pi里也是这样，指示了下：<br/>apt-get install&nbsp;&nbsp;tigervnc-standalone-server<br/>下列【新】软件包将被安装：<br/>&nbsp;&nbsp;libgnutls30 libhogweed4 libnettle6 libxfont2 tigervnc-common tigervnc-standalone-server<br/>apt-get install&nbsp;&nbsp;tigervnc-standalone-server&nbsp;&nbsp; #之前安装了一个：&nbsp;&nbsp;sudo apt-get install tightvncserver<br/> root@raspberrypi:~# vncconfig<br/>vncconfig: unable to open display &quot;&quot;<br/><br/>stat /usr/bin/vncconfig<br/>最近改动：2018-12-16 19:23:52.760773550 +0800<br/><br/>据博文，在文件/root/.vnc/xstartup,加一行 vncconfig -iconic &amp;&nbsp;&nbsp;，有的说是加： vncconfig -nowin&amp;<br/><textarea name="code" class="php" rows="15" cols="100">
 cat /root/.vnc/xstartup&nbsp;&nbsp;&nbsp;&nbsp;
#!/bin/sh

xrdb $HOME/.Xresources
xsetroot -solid grey
autocutsel -fork
vncconfig -iconic &amp;
#x-terminal-emulator -geometry 80x24+10+10 -ls -title &quot;$VNCDESKTOP Desktop&quot; &amp;
#x-window-manager &amp;
# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession
</textarea><br/><br/><br/>三）TensorFlow：https://www.raspberrypi.org/magpi/tensorflow-ai-raspberry-pi/<br/>https://yq.aliyun.com/articles/623213
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post/9119/</link>
<title><![CDATA[CentOS 7（1611） for ARM（armhfp）发布]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[系统架构与硬件]]></category>
<pubDate>Fri, 16 Dec 2016 13:39:09 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/9119/</guid> 
<description>
<![CDATA[ 
	CentOS系统开发人员Fabian Arrotin非常高兴的宣布为ARM（armhfp）硬件架构发布CentOS Linux 7（1611）镜像。该GNU/Linux发行版本深受单板计算机和嵌入式设备的喜爱，支持树莓派3、树莓派2、Banana Pi，CubieTruck和Cubieboard单板计算机，CentOS Linux 7（1611）for armhfp涵盖一些激动人心的新技术，基于Linux Kernel 4.4 LTS内核，升级uboot镜像至2016.09版本等等。<br/><br/>需要注意的是，ARM版CentOS 7.3.1611是从Red Hat Enterprise Linux 7.3系统中派生出来的，这就意味着操作系统能够兼容上层系统。尽管CentOS 7 Userland for armhfp来自于CentOS 7 GNU/Linux发行版本，但是部分预安装包已经移除，或者针对armv7hl兼容设备进行了优化。<br/>下载：<br/>http://mirror.centos.org/altarch/7/isos/armhfp/Images<br/><br/><br/>摘自：http://www.cnbeta.com/articles/567535.htm?_t_t_t=0.39831793188461095
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post/8668/</link>
<title><![CDATA[Chromium OS for Raspberry Pi 3 0.5版本发布]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[系统架构与硬件]]></category>
<pubDate>Thu, 28 Apr 2016 04:21:53 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/8668/</guid> 
<description>
<![CDATA[ 
	背景：用raspberry pi+chrome做了一个孵化小鸡的硬件，当时想用websocket，好像没有，想用svg画温度曲线，好像测试了一下也没有，最后用的ajax轮训，后面不知这个新出的版本有没有加上。<br/><br/>Chromium OS for Raspberry Pi 3 0.5版本发布：<br/><a href="http://www.chromiumosforsbc.org/download/" target="_blank">下载：download the Chromium OS for Raspberry Pi 3 0.5 binary image</a><br/>当时被问及Chromium OS是否会移植到树莓派3的时候，Callahan表示已经购买了两台树莓派3，并确认将会得到扩展支持。而现在，Callahan非常高兴的宣布面向树莓派3单板电脑的0.5版本。树莓派3 Model B于2016年2月29日正式发布，支持WiFi和蓝牙，并内部包含64位四核ARM Cortex-A53处理器。<br/>团队表示尽管在树莓派2的基础上开发移植Chromium OS for 树莓派3，但是在0.5版本依然带来了很多新特性。首先提到的是已经压缩尺寸的Linux 4.2.8-ckt8内核，BFS优化、更少的调试输出，且没有Dynamic tick模块，声卡驱动的多重改善，借助BFQ分级调度和按需调度的优化调整带来更好的储存性能。<br/>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post/8521/</link>
<title><![CDATA[解决 Hit any key to stop autoboot 问题]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[系统架构与硬件]]></category>
<pubDate>Sun, 21 Feb 2016 03:46:27 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/8521/</guid> 
<description>
<![CDATA[ 
	背景：Raspberry Pi下的FreeBSD关机时候出现：<br/><textarea name="code" class="php" rows="15" cols="100">
U-Boot 2015.04 (Feb 17 2016 - 10:41:14)

DRAM:&nbsp;&nbsp;944 MiB
WARNING: Caches not enabled
RPI 2 Model B
MMC:&nbsp;&nbsp; bcm2835_sdhci: 0
reading uboot.env

** Unable to read &quot;uboot.env&quot; from mmc0:1 **
Using default environment

In:&nbsp;&nbsp;&nbsp;&nbsp;serial
Out:&nbsp;&nbsp; lcd
Err:&nbsp;&nbsp; lcd
Net:&nbsp;&nbsp; Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot:&nbsp;&nbsp;0 
U-Boot&gt; 
U-Boot&gt; 
</textarea><br/>========================================================<br/>刚搞uboot 学习下 写下来这些自己的小经验<br/>我的终端用的是SecureCRT.exe<br/>烧写uboot后 提示 Hit any key to stop autoboot ： 几秒后 aoto运行<br/>如果没有设置好 按键是没有用的 解决方法是：<br/>选择 你打开的串口的会话设置&nbsp;&nbsp;再选择 键映射&nbsp;&nbsp;当然还有其他的方法 这里你映射几个键 既可以了<br/><br/>来自：http://blog.sina.com.cn/s/blog_6b94d5680100ms8g.html<br/>SecureCRT 更改键盘映射功能 : http://blog.chinaunix.net/uid-20773865-id-4040702.html
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post/8519/</link>
<title><![CDATA[[实践OK]树莓派装FreeBSD时出现Could not load host key: /etc/ssh/ssh_host_dsa_key]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[系统架构与硬件]]></category>
<pubDate>Sun, 21 Feb 2016 03:06:24 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/8519/</guid> 
<description>
<![CDATA[ 
	背景：在Raspberry Pi上装了一个FreeBSD，之前是linux，用ssh连接时出现问题，这个ssh其实linux上也是一样的，于是按linux上的办法解决了该问题，重启动sshd后，用我的手机重新ssh到Raspberry pi上，提示error消失，连接正常。<br/>root@rpi2:/usr/local # Feb 18 03:50:39 rpi2 sshd[4917]: error: Could not load host key: /etc/ssh/ssh_host_dsa_key<br/>魅族手机ssh访问：<br/>Feb 18 03:50:41 rpi2 sshd[4917]: error: PAM: authentication error for root from meizu-mx4-pro.lan<br/><br/>Could not load host key: /etc/ssh/ssh_host_dsa_key，那就生成这个key：<br/>root@rpi2:/usr/local # ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key<br/>Generating public/private dsa key pair.<br/>Enter passphrase (empty for no passphrase): <br/>Enter same passphrase again: <br/>Your identification has been saved in /etc/ssh/ssh_host_dsa_key.<br/>Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.<br/>The key fingerprint is:<br/>SHA256:0gV9unsS+HmqgE0j45aqtNQVhVsYNUiX2pgBbbmBLbM root@rpi2<br/>The key&#039;s randomart image is:<br/>+---[DSA 1024]----+<br/>&#124;&nbsp;&nbsp; .*oB=o.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&#124;&nbsp;&nbsp; + @oo... .&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124;&nbsp;&nbsp;&nbsp;&nbsp;=.@&nbsp;&nbsp; .o&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&#124;&nbsp;&nbsp; E *.o ..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124;&nbsp;&nbsp;&nbsp;&nbsp;o.+ S. .&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&#124;&nbsp;&nbsp;...B o. o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124; o .= o&nbsp;&nbsp;. +&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>&#124;o .o&nbsp;&nbsp; .&nbsp;&nbsp;= o&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>&#124;.o.&nbsp;&nbsp;&nbsp;&nbsp; ...=&nbsp;&nbsp;&nbsp;&nbsp; &#124;<br/>+----[SHA256]-----+<br/><br/>重新启动ssh服务：<br/>root@rpi2:/usr/local # /etc/rc.d/sshd restart <br/>Performing sanity check on sshd configuration.<br/>Could not load host key: /etc/ssh/ssh_host_dsa_key<br/>Stopping sshd.<br/>Waiting for PIDS: 799.<br/>Performing sanity check on sshd configuration.<br/>Could not load host key: /etc/ssh/ssh_host_dsa_key<br/>Starting sshd.<br/><br/><br/><br/>参考自：http://blog.163.com/zhengjiu_520/blog/static/3559830620118851822482/
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post/8518/</link>
<title><![CDATA[[实践OK]Raspberry Pi下安装FreeBSD系统并实现无线网络连接无线网卡，及DNS设置。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[系统架构与硬件]]></category>
<pubDate>Sat, 20 Feb 2016 13:04:56 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/8518/</guid> 
<description>
<![CDATA[ 
	配置FreeBSD下的Wifi主要参考这两篇文章即可，树莓派下的也大体一样一样的没有什么大的区别：<br/>http://www.111cn.net/sys/freebsd/59534.htm<br/>国外有一个文章在后面有写。<br/>总之，按这样来配置连接上了家里的路由器。<br/><br/>Raspberry Pi Model B+ Run FreeBSD11+Apache+PHP+MySQL+Webmin+Wordpress：<br/>http://www.bigsea.com.cn/archives/1393/<br/><br/>ifconfig -a时没有wlan0，是因为没有配置及没有启动服务：service netif start<br/>root@rpi2:~ # ifconfig wlan0<br/>wlan0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ether 3c:46:d8:8e:7d:dc<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inet6 fe80::3e46:d8ff:fe8e:7ddc%wlan0 prefixlen 64 tentative scopeid 0x3 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;groups: wlan <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ssid HiWiFi_256ECA channel 4 (2427 MHz 11g) bssid d4:ee:07:25:6e:ca<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;country US authmode WPA2/802.11i privacy ON deftxkey UNDEF<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AES-CCM 2:128-bit txpower 0 bmiss 7 scanvalid 60 bgscan<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wme roaming MANUAL<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;media: IEEE 802.11 Wireless Ethernet DS/1Mbps mode 11g<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;status: associated<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nd6 options=29&lt;PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL&gt;<br/><br/>其中“status: associated”表示无线网络已经连接，可以上网冲浪了。<br/>固定你的 resolv.conf<br/>如果你用DHCP，有一个问题可能会不断地搔扰你，就是/etc/resolv.conf里所记录的 DNS 会时不时地被修改。当然除了暴力地<br/> 代码如下&nbsp;&nbsp;复制代码<br/>#chflags schg /etc/resolv.conf<br/> <br/>让它不能被修改外，还可以很简单地解决此问题，就是往/etc/dhclient.conf里添加<br/> 代码如下&nbsp;&nbsp;复制代码<br/> <br/>prepend domain-name-servers 8.8.8.8, 8.8.4.4;<br/># See ``man 5 dhclient.conf&#039;&#039; for details.<br/>修改成自己的：<br/>prepend domain-name-servers 114.114.114.114, 123.125.81.6;<br/># See ``man 5 dhclient.conf&#039;&#039; for details.<br/>详细配置WIFI可查看FreeBSD官方文档。<br/><br/>=========================================================================<br/>USB硬件信息：<br/>root@rpi2:~ # dmesg &#124; grep urtwn0<br/>urtwn0: &lt;Realtek 802.11n NIC, class 0/0, rev 2.00/0.00, addr 4&gt; on usbus0<br/>urtwn0: MAC/BB RTL8188EU, RF 6052 1T1R<br/>urtwn0: at uhub1, port 3, addr 4 (disconnected)<br/>urtwn0: &lt;Realtek 802.11n NIC, class 0/0, rev 2.00/0.00, addr 4&gt; on usbus0<br/>urtwn0: MAC/BB RTL8188EU, RF 6052 1T1R<br/><br/>root@rpi2:~ # cat /var/log/messages &#124; grep urtwn0<br/>Feb 17 11:19:16 rpi2 kernel: urtwn0: &lt;Realtek 802.11n NIC, class 0/0, rev 2.00/0.00, addr 4&gt; on usbus0<br/>Feb 17 11:19:16 rpi2 kernel: urtwn0: MAC/BB RTL8188EU, RF 6052 1T1R<br/>Feb 17 11:39:37 rpi2 kernel: urtwn0: &lt;Realtek 802.11n NIC, class 0/0, rev 2.00/0.00, addr 4&gt; on usbus0<br/>Feb 17 11:39:37 rpi2 kernel: urtwn0: MAC/BB RTL8188EU, RF 6052 1T1R<br/>Feb 17 14:15:35 rpi2 kernel: urtwn0: at uhub1, port 3, addr 4 (disconnected)<br/>Feb 17 14:20:14 rpi2 kernel: urtwn0: &lt;Realtek 802.11n NIC, class 0/0, rev 2.00/0.00, addr 4&gt; on usbus0<br/>Feb 17 14:20:14 rpi2 kernel: urtwn0: MAC/BB RTL8188EU, RF 6052 1T1R<br/><br/>启动时信息提示：<br/>root@rpi2:~ # ifconfig wlan create wlandev urtwn0<br/>ieee80211_load_module: load the wlan_amrr module by hand for now.<br/>wlan0: Ethernet address: 3c:46:d8:8e:7d:dc<br/>wlan0<br/><br/><br/>拔下无线Wifi的USB时提示：<br/>root@rpi2:~ # ugen0.4: &lt;Realtek&gt; at usbus0 (disconnected)<br/>urtwn0: at uhub1, port 3, addr 4 (disconnected)<br/><br/><br/>查看网络：<br/>root@rpi2:~ # ifconfig wlan0 up scan<br/>wlan0: ieee80211_new_state_locked: pending INIT -&gt; SCAN transition lost<br/>SSID/MESH ID&nbsp;&nbsp;&nbsp;&nbsp;BSSID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHAN RATE&nbsp;&nbsp;&nbsp;&nbsp;S:N&nbsp;&nbsp;&nbsp;&nbsp; INT CAPS<br/>123456&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b8:55:10:1a:9d:05&nbsp;&nbsp;&nbsp;&nbsp;6&nbsp;&nbsp; 54M&nbsp;&nbsp;-77:-95&nbsp;&nbsp; 100 EP&nbsp;&nbsp; RSN HTCAP WME<br/>ChinaNet-iYDT&nbsp;&nbsp; fc:e3:3c:54:b8:ec&nbsp;&nbsp; 11&nbsp;&nbsp; 54M&nbsp;&nbsp;-93:-95&nbsp;&nbsp;&nbsp;&nbsp;98 EP&nbsp;&nbsp; HTCAP WPS WPA WME<br/>CALT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;40:16:9f:55:33:2c&nbsp;&nbsp;&nbsp;&nbsp;7&nbsp;&nbsp; 54M&nbsp;&nbsp;-90:-95&nbsp;&nbsp; 100 EPS&nbsp;&nbsp;RSN WPA WME HTCAP ATH WPS<br/>ChinaNet-Kjvz&nbsp;&nbsp; 60:b6:17:79:14:b7&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp; 54M&nbsp;&nbsp;-89:-95&nbsp;&nbsp; 100 EP&nbsp;&nbsp; HTCAP WPA WME<br/>CU_VGSU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 88:cf:98:dd:fa:18&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp; 54M&nbsp;&nbsp;-91:-95&nbsp;&nbsp; 100 EP&nbsp;&nbsp; HTCAP RSN WME<br/>HiWiFi_256ECA&nbsp;&nbsp; d4:ee:07:25:6e:ca&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;&nbsp; 54M&nbsp;&nbsp;-69:-95&nbsp;&nbsp; 100 EP&nbsp;&nbsp; HTCAP WPA RSN WME<br/>jiaweiyi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8c:be:be:2f:ae:5b&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;&nbsp; 54M&nbsp;&nbsp;-93:-95&nbsp;&nbsp; 100 EP&nbsp;&nbsp; RSN HTCAP WPS WPA WME<br/>ChinaNet-qePR&nbsp;&nbsp; 60:b6:17:78:89:3e&nbsp;&nbsp; 10&nbsp;&nbsp; 54M&nbsp;&nbsp;-79:-95&nbsp;&nbsp; 100 EP&nbsp;&nbsp; HTCAP WPA WME<br/><br/><br/>service netif start&nbsp;&nbsp;&nbsp;&nbsp; # 这个能自动帮你连接无线获取IP地址，当然如果配置正确的话，开机就可以自动连接上无线了。<br/><br/>实践来源：http://jackxiang.com/post/7492/<br/><br/><br/><br/>—————————————————————————————————————————————————————————————<br/>Setting up USB WiFi under FreeBSD is not a very hard task.<br/>We can use official handbook.<br/>But in my opinion it’s too complex.<br/>Here is a simple guide how to configure USB WiFi.<br/>Our goal is to configure WiFi interface to connect and use available wireless network.<br/>I use Miniature WiFi Module from Adafruit.<br/>This is in reality Realtek RTL8188CUS.<br/>elinux.org says this is a problem adapter.<br/>And I had some problems with it under Raspbian.<br/>There was no driver for this adapter in FreeBSD-10.0-RELEASE.<br/>Driver for this adapter appears in stable images in March.<br/>This is good for us, so we don’t need to adding it into kernel.<br/>During boot we can see our adapter:<br/><a href="https://vzaigrin.files.wordpress.com/2014/04/14.jpg" target="_blank"><img src="https://vzaigrin.files.wordpress.com/2014/04/14.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>After boot we can see it in interfaces list:<br/><a href="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/15.jpg" target="_blank"><img src="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/15.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>If we try to up this interface we will see some warning and error messages:<br/>urtwn-rtl8192cfwT: You need to read the LICENSE file in /usr/share/doc/legal/realtek/.<br/>urtwn-rtl8192cfwT: If you agree with the license, set legal.realtek.license_ack=1 in /boot/loader.conf.<br/>module_register_init: MOD_LOAD (urtwn-rtl8192cfwT_fw, 0xc2aa24f0, 0) error 1<br/>urtwn-rtl8192cfwT: could not load firmware image, error 8<br/>urtwn0: failed loadfirmware of file urtwn-rtl8192cfwT<br/><a href="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/18.jpg" target="_blank"><img src="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/18.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>We need to add this two strings to file /boot/loader.conf:<br/>legal.realtek.license_ack=1<br/>if_urtwn_load=&quot;YES&quot;<br/><a href="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/19.jpg" target="_blank"><img src="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/19.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>After reboot we can continue.<br/>Next step is creating wlan interface:<br/>ifconfig wlan0 create wlandev urtwn0<br/>Then we can to up this wlan interface and scan available wireless networks:<br/>ifconfig wlan0 up scan<br/><a href="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/21.jpg" target="_blank"><img src="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/21.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>For permanent use WiFi connection we need to add this two strings to file /etc/rc.conf:<br/>wlans_urtwn0=&quot;wlan0&quot;<br/>ifconfig_wlan0=&quot;WPA DHCP&quot;<br/><a href="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/22.jpg" target="_blank"><img src="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/22.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>And we need to configure authentication in file /etc/wpa_supplicant.conf<br/><a href="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/23.jpg" target="_blank"><img src="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/23.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>After reboot we can check network connection:<br/><a href="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/25.jpg" target="_blank"><img src="http://www.jackxiang.com/file:///E:/Raspberry%20Pi/%E6%A0%91%E8%8E%93%E6%B4%BEFreeBSD%E8%AE%BE%E7%BD%AEWifi%E8%81%94%E7%BD%91/How%20to%20setup%20USB%20WiFi%20on%20Raspberry%20Pi%20with%20FreeBSD%20_%20Vadim%20Zaigrin_files/25.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>It works!<br/><br/><br/>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post/8492/</link>
<title><![CDATA[在windows下防止连接上的树莓派ssh时断连bat脚本。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[系统架构与硬件]]></category>
<pubDate>Fri, 05 Feb 2016 05:58:18 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/8492/</guid> 
<description>
<![CDATA[ 
	背景：linux长时间无动作会断掉，此时需要发送点东西保持活动，这个ping估计是有点类似于SecureCRT里终端，发送协议NO-OP每[10]秒。<br/>防止ssh时断连.bat<br/><textarea name="code" class="php" rows="15" cols="100">
@echo off
echo 本批处理能够避免您在使用网卡ssh时发生断线的问题，请保持它的运行！
echo 如果出现&quot;无法访问目标主机&quot;或&quot;请求超时&quot;请等候一下或者您输错了IP
echo 按ctrl+C，将可以停止本批处理！
set /p IP=请输入树莓派的IP地址:
ping -l 0 -t %IP%
</textarea>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post/8491/</link>
<title><![CDATA[将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[系统架构与硬件]]></category>
<pubDate>Fri, 05 Feb 2016 05:52:27 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/8491/</guid> 
<description>
<![CDATA[ 
	背景：之前配置成功过，找了很多文章，特别是国外的，现在国内也有兄弟在做这个，于是做一个转载，配置热点有好处，可以连接上去操作树莓派。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; 本文是基于在某东购买的usb无线网卡（RTL8188CUS芯片）来制作无线热点。本来想制作一个一键脚本，不过先把实现的过程记录下来。<br/>参考文章 <br/>Turn Your Raspberry Pi Into a WiFi Hotspot with Edimax Nano USB EW-7811Un (RTL8188CUS chipset) <br/>Why won’t dnsmasq’s DHCP server work when using hostapd?<br/>1、更新系统，安装需要的软件<br/>我们首先需要更新系统，然后安装必备的软件，以备随后编译hostapd。<br/>sudo apt-get update<br/>sudo apt-get install bridge-utils udhcpd make<br/><br/>2、编译安装hostpad<br/>现在在git库中的hostpad是2.6版，已经支持了最新的RTL8188CUS芯片，所以我们直接编译安装即可。<br/>#从官网直接克隆代码<br/>git clone git://w1.fi/srv/git/hostap.git<br/>#若你想指定版本库则可以直接checkout<br/>git checkout hostap_2_5<br/>cd hostap/hostapd/<br/>#使用默认配置文件<br/>cp defconfig .config<br/>#编译安装<br/>make<br/>sudo make install<br/>#这时可以看到已经将hostpad安装至`install -D hostapd /usr/local/bin//hostapd`<br/><br/><br/><br/><br/><br/>3.1、桥接方式设置wifi热点<br/>若不想使用桥接方式则可以跳过此步，使用路由器方式来设置热点<br/>编辑网卡配置文件：<br/>sudo nano /etc/network/interfaces<br/>然后将配置文件修改成如下配置：<br/>auto lo<br/>iface lo inet loopback<br/>iface eth0 inet dhcp<br/>#添加桥接<br/>auto br0<br/>iface br0 inet dhcp<br/>bridge_ports eth0 wlan0<br/><br/><br/><br/><br/>配置hostapd：<br/>sudo nano /etc/hostapd/hostapd.conf<br/>配置成如下：<br/>#macaddr_acl：指定MAC地址过滤规则，0表示除非在禁止列表否则允许，1表示除非在允许列表否则禁止，2表示使用外部RADIUS服务器<br/>#accept_mac_file：指定允许MAC列表文件所在<br/>#deny_mac_file：指定禁止MAC列表文件所在<br/>#ignore_broadcast_ssid改为1为隐藏SSID<br/>#macaddr_acl=1<br/>#accept_mac_file=/etc/hostapd/hostapd.accept<br/>ignore_broadcast_ssid=0<br/>interface=wlan0<br/>driver=rtl871xdrv<br/>#ssid<br/>ssid=My_SSID_Name<br/>hw_mode=g<br/>channel=1<br/>macaddr_acl=0<br/>auth_algs=1<br/>ignore_broadcast_ssid=0<br/>wpa=2<br/>#密码<br/>wpa_passphrase=MYPASSWORD<br/>wpa_key_mgmt=WPA-PSK<br/>wpa_pairwise=TKIP<br/>rsn_pairwise=CCMP<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>然后将配置文件加入hostapd并使其生效：<br/>sudo nano /etc/default/hostapd<br/>去掉注释符号，并将上面的配置文件的路径填写在DAEMON_CONF下：<br/>DAEMON_CONF=&quot;/etc/hostapd/hostapd.conf&quot;<br/>最后重启：<br/>sudo reboot<br/>3.2、用路由器的方式设置WiFI热点<br/>这里主要使用udhcpd工具来为连接到Wifi的设备自动分配IP地址，当然也可以替换成其他的dhcpd工具。<br/>修改udhcpd配置文件：<br/>sudo mv /etc/udhcpd.conf /etc/udhcpd.conf.bak<br/>sudo nano /etc/udhcpd.conf<br/><br/>将配置文件修改成如下内容：<br/>#设置路由器分配的起始IP与终止IP<br/>start 192.168.42.1<br/>end 192.168.42.20<br/>interface wlan0<br/>remaining yes<br/>#设置DNS<br/>opt dns 8.8.8.8 4.2.2.2<br/>opt subnet 255.255.255.0<br/>#设置树莓派网卡的IP<br/>opt router 192.168.42.1<br/>#设置IP过期时间<br/>opt lease 864000<br/><br/><br/><br/><br/><br/><br/>然后编辑/etc/default/udhcpd使DHCP Server正常工作：<br/>#将这行的注释取消<br/>DHCPD_ENABLED=&quot;no&quot;<br/><br/>设置树莓派无线网卡的静态IP：<br/>sudo ifconfig wlan0 192.168.42.1<br/>修改网卡配置文件，使其永久生效：<br/>sudo nano /etc/network/interfaces<br/>将配置文件修改成如下内容：<br/>auto lo<br/>iface lo inet loopback<br/>iface eth0 inet dhcp<br/>allow-hotplug wlan0<br/>iface wlan0 inet static<br/>&nbsp;&nbsp;address 192.168.42.1<br/>&nbsp;&nbsp;netmask 255.255.255.0<br/>#每次开机自动加载iptables<br/>up iptables-restore &lt; /etc/iptables.ipv4.nat<br/><br/><br/><br/><br/><br/>配置hostapd：<br/>sudo nano /etc/hostapd/hostapd.conf<br/>配置成如下：<br/>interface=wlan0<br/>driver=rtl871xdrv<br/>#ssid<br/>ssid=My_SSID_Name<br/>hw_mode=g<br/>channel=1<br/>macaddr_acl=0<br/>auth_algs=1<br/>ignore_broadcast_ssid=0<br/>wpa=2<br/>#密码<br/>wpa_passphrase=MYPASSWORD<br/>wpa_key_mgmt=WPA-PSK<br/>wpa_pairwise=TKIP<br/>rsn_pairwise=CCMP<br/><br/><br/><br/><br/><br/><br/><br/>然后将配置文件加入hostapd并使其生效：<br/>sudo nano /etc/default/hostapd<br/>去掉注释符号，并将上面的配置文件的路径填写在DAEMON_CONF下：<br/>DAEMON_CONF=&quot;/etc/hostapd/hostapd.conf&quot;<br/>启动IP转向功能以便于开通NAT：<br/>sudo sh -c &quot;echo 1 &gt; /proc/sys/net/ipv4/ip_forward&quot;<br/>编辑sudo vim /etc/sysctl.conf修改net.ipv4.ip_forward设置为1：<br/>net.ipv4.ip_forward=1<br/>配置iptable防火墙<br/>sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE<br/>sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT<br/>sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT<br/><br/>这时NAT功能已被启用，然后将当前修改的内容存储在iptables配置文件中：<br/>sudo sh -c &quot;iptables-save &gt; /etc/iptables.ipv4.nat&quot;<br/>将/etc/default/ifplugd内容修改成如下配置：<br/>INTERFACES=&quot;eth0&quot;<br/>HOTPLUG_INTERFACES=&quot;eth0&quot;<br/>ARGS=&quot;-q -f -u0 -d10 -w -I&quot;<br/>SUSPEND_ACTION=&quot;stop&quot;<br/><br/><br/>然后启动相应的服务，并将其加入启动项：<br/>sudo service hostapd start<br/>sudo service udhcpd start<br/>sudo update-rc.d hostapd enable<br/>sudo update-rc.d udhcpd enable<br/><br/><br/>最后重启：<br/>sudo reboot<br/>此时就完成了无线热点的配置，然后就可以根据设置的ssid与密码进行wifi的连接，将hostapd升级至2.6以后连接速度非常之快，但有一个问题是，在将信道设置为6时，手机连接无法分配到IP。等待后续更新处理。<br/>来自：http://blog.csdn.net/talkxin/article/details/50607658
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post/8455/</link>
<title><![CDATA[FreeBSD 11-CURRENT on Raspberry Pi Apache 2.4/MySQL 5.6/PHP 5.6, 如何在树莓派 2B 上安装 FreeBSD及网络配置。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[系统架构与硬件]]></category>
<pubDate>Fri, 22 Jan 2016 15:39:09 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/8455/</guid> 
<description>
<![CDATA[ 
	<br/><br/>一）FreeBSD前提是能连上网，配置成功的实践步骤在：https://jackxiang.com/post/8518/<br/>二）后就是安装Lamp架构了，如下pkg，port目前好像用的人较少，先使这个吧，特别是Raspberry这种cpu相对太差，自己编译太麻烦了也更耗时，就别在上面整port了，直接pkg安装即可，也解决了依赖问题：<br/>まず静的リンクしたコマンドでpkg自体をインストール<br/># fetch http://www.peach.ne.jp/archives/rpi/pkg-static<br/># chmod 755 pkg-static<br/># ./pkg-static add http://www.peach.ne.jp/archives/rpi/ports/pkg.txz<br/><br/>デフォルトのパッケージを無効化<br/># mkdir -p /usr/local/etc/pkg/repos<br/># echo &quot;FreeBSD: &#123; enabled: no &#125;&quot; &gt; /usr/local/etc/pkg/repos/FreeBSD.conf<br/><br/>独自パッケージリポジトリを追加<br/># fetch http://www.peach.ne.jp/archives/rpi/rpi.conf<br/># mv rpi.conf /usr/local/etc/pkg/repos<br/><br/>リポジトリカタログを最新状態に更新<br/>pkg update <br/>pkg install screen<br/>freebsd-update fetch<br/>freebsd-update install<br/>pkg install php56 mod_php56 php56-mysql php56-mysqli<br/>如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理：http://www.linuxidc.com/Linux/2016-01/127139.htm<br/>FreeBSD 10 + Nginx 1.4.4 + PHP 5.5.9 + MySQL 5.6.15：&nbsp;&nbsp;&nbsp;&nbsp; http://my.oschina.net/neochen/blog/198979<br/><br/>三） FreeBSD的pkg使用方法 ：<br/>http://blog.chinaunix.net/uid-20332519-id-4063284.html<br/> ====================================================================<br/>在 FreeBSD 10.0 上安装和配置 Nginx+PHP+APC+MySQL：<br/>http://www.vpsee.com/2014/04/install-nginx-php-apc-mysql-on-freebsd-10-0/<br/>安装软件：<br/>pkg search php<br/><br/>FreeBSD 11-CURRENT on Raspberry Pi Apache 2.4/MySQL 5.6/PHP 5.6:<br/>http://www.bigsea.com.cn/archives/1393/<br/><br/>如何在树莓派 2B 上安装 FreeBSD:<br/>http://www.linuxidc.com/Linux/2015-12/126724.htm<br/><br/>FreeBSD 网络配置:<br/>https://wiki.freebsdchina.org/faq/networking<br/><br/><br/>修改raspberry pi上安装的freebsd可用内存大小：<br/>http://blog.sina.com.cn/s/blog_a0aacb430101mj69.html
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post/8146/</link>
<title><![CDATA[[实践OK]温控制系统之让树莓派 Raspberry Pi开机启动一个脚本/执行一个命令怎么办？用mplayer播放声音。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[系统架构与硬件]]></category>
<pubDate>Sun, 28 Jun 2015 07:25:02 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/8146/</guid> 
<description>
<![CDATA[ 
	背景：如果你想在树莓派开机时做一些外围设备的自检，如串口是否连接上，如手机是否连接上adb命令，这样就需要开机后启动一个脚本来做这个事情，于是有这篇文章。<br/>实践如下：<br/>vi /etc/rc.local<br/>/usr/bin/php /var/www/initOuterInterfaceCheck.php<br/>initOuterInterfaceCheck.php<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
$voicePath=&quot;/var/www/voice/&quot;;//播放声音目录
$command = &quot;/sbin/adb devices&quot;; //电话号码可修改,防止手机丢了。
$handle = popen($command, &quot;r&quot;);
$excuteResultAll = &quot;&quot;;
do &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$excuteResult = fread($handle, 1024);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (strlen($excuteResult) == 0) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pclose($handle); //关闭pipe
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$excuteResultAll .= $excuteResult;
&#125; while (true);
$adbDevicesArrInfo = explode(&quot;&#92;n&quot;,$excuteResultAll);
if(empty($adbDevicesArrInfo[1]))&#123;//如果没有设备，就提示用户插上手机即可。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$command = &quot;mplayer &quot;.$voicePath.&quot;initMobileBad.m4a &quot;; //电话号码可修改,防止手机丢了。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$handle = popen($command, &quot;r&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$excuteResultAll = &quot;&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$excuteResult = fread($handle, 1024);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (strlen($excuteResult) == 0) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pclose($handle); //关闭pipe
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$excuteResultAll .= $excuteResult;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; while (true);


&#125;else&#123;//识别到手机设备
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$command = &quot;mplayer &quot;.$voicePath.&quot;initMobileOk.m4a &quot;; //电话号码可修改,防止手机丢了。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$handle = popen($command, &quot;r&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$excuteResultAll = &quot;&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$excuteResult = fread($handle, 1024);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (strlen($excuteResult) == 0) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pclose($handle); //关闭pipe
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$excuteResultAll .= $excuteResult;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; while (true);


&#125;
?&gt;
</textarea><br/>发现是代码有问题，开机后，的确是执行了，但是发现手机没插入，但报检测到手机了~<br/>要让Pi开机启动一个脚本/执行一个命令怎么办？<br/>我们知道，RedHat有 /etc/rc.local 文件，在里面写上要执行的命令就可以开机执行了，这是最简单的办法，而Arch Linux ARM没有这个东西，它是按下面的方法设置的：<br/>假设我要开机执行一句shell命令，把它写在文件 /etc/rc.local 中（在Arch Linux中，此文件一开始是不存在的）：<br/>How to execute a shell script/a command on Pi startup?<br/>For RedHat it&#039;s very easy, it has a /etc/rc.local file, we just add the commands to the file, while Arch Linux ARM doesn&#039;t have such thing, and I&#039;m a beginner of Arch, so after asking Google for many times, I find a way to do that - suppose I need to execute a shell command, so I create the /etc/rc.local file &amp; write the shell command to it:<br/><br/>#!/bin/bash<br/># this file defines the commands that will be executed at system startup<br/> <br/>echo &quot;abc&quot; &gt; /root/test.txt<br/>为此文件赋予可执行权限：<br/>Give the file the executable permission:<br/><br/>1<br/>chmod +x /etc/rc.local<br/>然后创建一个文件 /usr/lib/systemd/system/rc-local.service ，内容为：<br/>Then create a file /usr/lib/systemd/system/rc-local.service , with the content of:<br/><br/>[Unit]<br/>Description=/etc/rc.local Compatibility<br/>ConditionPathExists=/etc/rc.local<br/>&nbsp;&nbsp;<br/>[Service]<br/>Type=forking<br/>ExecStart=/etc/rc.local start<br/>TimeoutSec=0<br/>StandardOutput=tty<br/>RemainAfterExit=yes<br/>SysVStartPriority=99<br/> <br/>[Install]<br/>WantedBy=multi-user.target<br/>文章来源：http://www.codelast.com/<br/>创建一个软链接：<br/>Create a symbol link:<br/><br/>cd /etc/systemd/system/multi-user.target.wants<br/>ln -s /usr/lib/systemd/system/rc-local.service rc-local.service<br/>启用服务：<br/>Enable the service:<br/><br/>systemctl enable rc-local.service<br/>重启系统，然后就可以开机执行你的shell命令了。如果要立即启用，则执行以下命令：<br/>Restart Pi, then you&#039;ll be able to execute the shell command on OS startup. If you want to execute it without restarting Pi, just execute the following command:<br/><br/>systemctl start rc-local.service<br/>这是使用systemd的启动方式，非常麻烦。<br/>如果你只是简单地要设置一个命令的别名，可以把命令写在 /etc/profile 中，ssh登录Pi的时候就自动会执行。<br/><br/>摘自：http://www.codelast.com/?p=4945
]]>
</description>
</item>
</channel>
</rss>