【硬创邦】跟hoowa学做智能路由(六上):扩充RAM和FLASH
本帖最后由 dongtao 于 2014-5-8 11:40 编辑前几篇好多童鞋都说路由器的内存太小了、FLASH太小了怎么办,我们这章就介绍下怎么给路由器扩充内存和存储器。
本章所介绍内容不是教程必学内容,就算当前的FLASH容量大家也能完成本教程的全部操作。不过站在玩家兴趣身份上来说,这章的内容会让以后更精彩,操作技术上也存在一些难度,请大家认真操作一次。
实现原理
在M150开发板上我们拥有3个USB接口以及1个TF卡接口,这些接口足够我们连接外部存储设备。
使用Linux的SWAP技术(交换内存分区技术,类似Windows虚拟内存)就可以让外部存储设备承担一部分内存工作,慢是慢了点,但是聊胜于无啊。
至于Flash大家应该还记得我们前面的章节所讲过的/overlay可写分区,原理就是我们直接将可写分区挂载到外部磁盘上,不使用Flash中的存储。
启动外置磁盘的原理
在我们没有启用外置磁盘之前系统是这样启动的:
kernel–>rootfs(/rom)–>FLASH可写分区(/overlay)–>….. (/overlay=mtd3)
在我们启动了外置磁盘之后是这样的顺序:
kernel–>rootfs(/rom)–>FLASH可写分区(/overlay)–>fstab–>外部磁盘(/overlay) (/overlay=/dev/sd)
区别在于,当rootfs将overlay挂载上之后将读取/etc/config/fstab(在可写分区上),动过那个配置将/overlay替换成为外置磁盘,从而实现擦写部分操作外部磁盘。
存储器选型介绍
移动硬盘 :在M150的电路板上有三个USB2.0接口,均可以用来连接移动硬盘,请使用2.5寸或1.8寸移动硬盘。M150的外部供电至少要达到12V 1A才能带动一块硬盘,如果你要带的硬盘很多,需要增加到2A或3A的电源。硬盘的优势是:没有擦写次数限制,并且性能也比较好。
FLASH闪存 :闪存技术存储现在很普遍,M150支持TF卡和U盘两种闪存存储方式,闪存选购时请注意数据存储技术有区别:
1. SLC: Single Layer Cell 单层单元, SLC的特点是成本高、容量小、速度快,每个存储单元有1bit数据,每个单元可擦写次数可达到10万次,一般使用在工业级产品和服务器级的SSD中,如果你的设备主要提供频繁擦写,使用SLC比较适合,但是其价格也要贵很多。
2. MLC: Multi-Level Cell多层单元,在相同的单元密度下可存储2bit数据,这个是目前市面上消费级SSD使用的最主要存储技术,但是由于密度增加和算法原因,每个单元理论可擦写次数为3000-10000次。
3. TLC: Triple-level cell多倍单元,在相同的单元密度下可存储3bit数据,这个是目前低价位U盘常用的,其特点是密度大成本低,缺点是速度慢,容易损坏,每个单元理论可擦写次数为500-1000次。
所以,想选择哪个就选择哪个吧。U盘、TF卡、1.8寸或2.5寸移动硬盘,甚至是磁盘阵列都可以的。
让系统识别外置磁盘
现在以及今后的操作就需要联网了,我们需要把开发板跟路由连上网线(现在还没法用无线呢)。
具体连接为:你上网的路由器LAN口—->开发板WAN口(开发板的WAN口位置请参考之前的章节有图片说明)。
可能这个地方有的人会晕,这个地方有啥好晕的。你把开发板当成电脑,开发板上的WAN口就是它的网口,只有把”能连接外网的线”插它这个”网口”上才行。
插好以后,在系统中执行:
root@OpenWrt:/# ifconfig eth0
这里eth0就是板子的WAN口,如果显示已经获得了你现在网络的内网IP地址,就可以测试下外网连接是否有效了。
ping一下网络是否通畅:
root@OpenWrt:/# ping www.sina.com
第一步:安装驱动和工具包
在保证设备已经能连接外网的情况下执行以下指令
root@OpenWrt:/# opkg update
root@OpenWrt:/# opkg install kmod-usb-core kmod-usb-ohci kmod-usb-uhci kmod-usb2
root@OpenWrt:/# opkg install kmod-usb-storage kmod-usb-storage-extras kmod-fs-ext4 kmod-fs-vfat kmod-nls-utf8 kmod-nls-cp437
root@OpenWrt:/# opkg install usbutils mount-utils fdisk block-mount e2fsprogs blkid
执行过程中会有很多提示,安装包安装状态,只要所有安装包都安装正确就不用理会。
重新启动系统使相关驱动加载进入内核:
root@OpenWrt:/# reboot
第二步: 检测外置磁盘
检测移动硬盘、U盘的方法一样,直接插入存储设备,等待片刻后执行以下指令,即可看到(40GB 1.8寸移动硬盘为例):
root@OpenWrt:/# fdisk -l
Disk /dev/mtdblock0: 128 KiB, 131072 bytes, 256 sectors
…..
Disk /dev/sdb: 37.3 GiB , 40007759872 bytes, 78140156 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x13015f0b
….
检测TF卡方式有点区别,TF卡没有自动上电功能,首先给开发板断电,然后插入TF卡,并且再给开发板上电,之后执行以下指令(4GB TF卡为例):
root@OpenWrt:/# fdisk -l
Disk /dev/mtdblock0: 128 KiB, 131072 bytes, 256 sectors
……
Disk /dev/sda: 3.7 GiB , 3995074560 bytes, 7802880 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0×00000000
….
格式化和分区
hoowa刚刚使用的是4G容量的TF卡做演示,以后的章节涉及到存储部分的也将使用这个TF卡。由于设备不同,每个设备在系统中的符号也不一样。
在M150的板子上,设备符号总是以/dev/sd方式显示的。其中X表明设备符号,N表明分区符号。
第一步:对设备进行分区
TF卡在M150开发板上总是以/dev/sda存在,因此hoowa计划分区如下形式:
1G SWAP交换内存分区
3G 用来存储数据实现/overlay的分区
使用linux最常见的fdisk指令进行操作,关于该指令与在x86电脑上使用相同:
root@OpenWrt:~# fdisk /dev/sda
Welcome to fdisk (util-linux 2.24.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
查看当前磁盘的分区情况:
Command (m for help): p
Disk /dev/sda: 3.7 GiB, 3995074560 bytes, 7802880 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0×00000000
Device Boot Start End Blocks Id System
/dev/sda1 8192 7802879 3897344 b W95 FAT32
删除掉旧分区(如果有多个分区,就要全部删除掉):
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
创建分区:
Command (m for help): n
强烈支持楼主ing……
页:
[1]