第八课--MicroWRT SD卡/U盘使用

来自Microduino Wikipedia
跳转至: 导航搜索

MicroWRT上没有提供SD卡的插槽接口,不过我们可以USB接口连连接外部的SD卡,当然玩家也可以使用USB存储设备。 本文主要通过一个例子来介绍如何使用SD卡,并在上面安装python和mysql。由于出厂固件的原因, 在microWRT上安装需要较大空间的程序时,总是提示/overlay空间不足的错误,比如安装python时会有如下错误,如下图所示:

文件:Sd-1.jpg
SD Configuration

用命令查看时,其空间确实挺小的:

文件:Sd-2.jpg
SD Configuration

下面就来介绍如何用闪存卡来扩容。由于出厂固件已经有了usb驱动模块,所以一插上闪存卡就能识别了。

文件:Sd-3.jpg
SD Configuration

对SD卡的操作步骤想很简单,先格式化,再挂载,再配置opkg.conf使软件安装到其上。

1.格式化,操作步骤看下图所示。

文件:Sd-4.jpg
SD Configuration

2.挂载到/mnt/usb目录

文件:Sd-5.jpg
SD Configuration

3.修改/etc/profile及/etc/opkg.conf文件

文件:Sd-6.jpg
SD Configuration
文件:Sd-7.jpg
SD Configuration

4. 软件安装

4.1使用如下命令安装python。

opkg update
opkg -d usb install python

即把python安装到了卡中,/etc/profile修改环境变量保证能找到库和程序。

4.2 安装mysql

安装mysql的具体步骤,请参考如下连接:

http://www.right.com.cn/forum/thread-89216-1-1.html

由于我将mysql安装在了外挂SD卡上(U盘),还要修改它本身的配置文件。在/mnt/usb/目录下,打开etc/my.cnf, 修改数据目录和临时目录和基础目录,如图所示:

文件:Sd-8.jpg
SD Configuration

在创建默认的数据库时,即命令:mysql_install_db --force --basedir=/mnt/usb/usr,有一大堆的输出,可以参考。 注意貌似像my.cnf和mysqld都得在相应的/etc/和/etc/init.d目录下创建软链接;启动服务后,修改root密码,登陆后,如图所示:

文件:Sd-9.jpg
SD Configuration


下面用一个测试例子来验证安装的程序是否正确。 功能:POST随机数据到web平台(已提供POST接口)

 1.	import httplib  
 2.	import urllib  
 3.	import time  
 4.	import random  
 5.	  
 6.	url_platform = '11.4.31.195:9071'  
 7.	  
 8.	path = '/WIFPa/ResourceData.xml/000100003f0cfd4a?ResourceID=1'  
 9.	path_uploadservicedata = '/WIFPd/UploadServiceData/000100003f0cfd4a'  
 10.	  
 11.	FORMAT = '%Y-%m-%dT%X'  
 12.	params_xml1 = '<ServiceData><mwid>000100003f0cfd4a</mwid><datatime>' +time.strftime(FORMAT,time.localtime()) + '</datatime><Datapoints><value>'  
 13.	params_xml2 = '</value><num>1</num></Datapoints></ServiceData>'  
 14.	  
 15.	header = {'Content-type':'text/xml'}  
 16.	  
 17.	  
 18.	# conn.request(method='GET',url=path)   
 19.	# while True:   
 20.	conn = httplib.HTTPConnection(url_platform)  
 21.	val = str(random.randint(1,100))  
 22.	print 'value',val  
 23.	params_xml = params_xml1 + val + params_xml2  
 24.	  
 25.	conn.request('POST',path_uploadservicedata,params_xml,header)  
 26.	resp = conn.getresponse()  
 27.	print resp.status,resp.reason  
 28.	  
 29.	#   htmldata = resp.read()   
 30.	#   print htmldata   
 31.	#   time.sleep(5)  

运行程序,结果如下图所示:

文件:Sd-10.jpg
SD Configuration
文件:Sd-11.jpg
SD Configuration