树莓派论坛

 找回密码
 立即注册

raspberry pi从USB启动提升性能,增加可玩性

crabhero 发表于 2012-10-12 02:25:30 | 显示全部楼层 |阅读模式
raspberry pi从USB启动提升性能,增加可玩性


http://i2cq.com/2012/10/1768

希望有条件的朋友测试下 从usb hub上启动,以及usb 3.0 硬盘启动性能

评分

参与人数 1 +2 收起 理由
ksal528 + 2

查看全部评分

ksal528 发表于 2012-10-12 08:16:41 | 显示全部楼层
这个网址好像被墙了!!

我来复制粘贴一下吧




r-pi的启动是通过读取SD卡上/boot分区,参看其中的配置文件参数来启动系统。办法就是修改cmdline.txt中的/root位置 (/boot分区fat格式,windows可读)

dwc_otg.fiq_fix_enable=1 sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0
console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
其中 root=/dev/mmcblk0p2 改为 U盘上的根分区 root=/dev/sda2
我的U盘写入的是另外一个系统,两个分区,sda1为/boot,sda2为/,自行重分区可以去掉这个/boot只要一个/就行。可以理解为PC系统上的主板Bios就是这个SD卡上的/boot分区,启动盘就是指向的USB设备。

这是我的分区结构
pi@raspberrypi:/boot$ df
Filesystem             1K-blocks          Used              Available        Use%        Mounted on
rootfs                 1804128           1357844       354636           80%         /
/dev/root            1804128           1357844       354636           80%        /
devtmpfs 62028 0 62028 0% /dev
tmpfs 12420 220 12200 2% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 24820 0 24820 0% /run/shm
/dev/mmcblk0p1    76630         37254           39376             49%       /boot
可以看到,SD卡mmcblk0p1就是sd卡上那个/boot分区,修改掉的cmdline.txt文件也在其中。U盘包含了真个系统,所有读写都在U盘上和SD卡无关。



pi@raspberrypi:/boot$ sudo dd if=/dev/mmcblk0p1 of=/dev/null bs=8k count=10000
9600+0 records in
9600+0 records out
78643200 bytes (79 MB) copied, 6.54728 s, 12.0 MB/s

SD卡读取速度12MB/s

pi@raspberrypi:/mnt$ sudo dd if=/dev/sda2 of=/dev/null bs=8k count=10000
10000+0 records in
10000+0 records out
81920000 bytes (82 MB) copied, 3.61226 s, 22.7 MB/s

U盘读取速度22.7MB/s 几乎是前者两倍
为何要这样做一目了然,使用U盘上的系统大大提升了系统磁盘性能。另外SD卡因为兼容性问题,不少的卡无法使用,同时速度达不到原本的性能,比如UHS-I超Class  10规范的卡在raspberry pi上常常只能获得20MB/s不到的速度,而usb就没有兼容性问题,特别是usb 3.0开始普及的年代,向下兼容的特性就算在usb2.0上,写入也能超过20,读取达到40以上。另外SD卡槽相对来说比较易损,usb可以通过延长线提高接口物理寿命。U盘价格偏低,寿命比SD卡稍好。

另外可以使用USB外置硬盘作为系统,那性能将无可匹敌,不再成为瓶颈。

值得注意的是,一些官方系统中的脚本命令没有指向USB设备,需要用sed命令临时修改指向,比如raspi-config中自动重新分区扩容
cp /usr/bin/raspi-config ~
sed -i 's/mmcblk0p2/sda2/' ~/raspi-config
sed -i 's/mmcblk0/sda/' ~/raspi-config
sudo ~/raspi-config


我另外还想拥有一个功能,就是不插U盘的时候自动启动SD卡上的系统,插U盘的时候就启动U盘上的系统,这估计要修改内核重新编译了。不过可以另外一个角度来解决。选用一个带usb接口开关的usb hub,SD卡指定从U盘启动,一排带系统的U盘都插在上面,要哪个系统就开那个开关,其他关闭就行,这个可以有。
ksal528 发表于 2012-10-12 08:17:36 | 显示全部楼层
rsap_wu 发表于 2012-10-12 09:16:53 | 显示全部楼层
写得不错,顶一下[s:14]
doyle 发表于 2012-10-12 09:23:02 | 显示全部楼层
收藏,回去折腾
沙渺 发表于 2012-10-12 09:51:44 | 显示全部楼层
不看好啊。

USB总线太繁忙了。连在PC机的USB总线上多挂点设备都会慢,树莓派用USB总线作为日常读写?我有点担心这么做的性能啊。

USB最大的用途其实还是挂硬盘作为数据仓库用。如果当做BT/HTTP下载机,这个必不可缺。至于别的,没大必要。
topzdx 发表于 2012-10-12 13:06:00 | 显示全部楼层
支持USB, 更想要的是不要SD,直接优盘起系统.
很多发行版都有把LIVE系统装到U盘上的功能
crabhero  楼主| 发表于 2012-10-12 15:24:58 | 显示全部楼层

回 ksal528 的帖子

ksal528:这个网址好像被墙了!!

我来复制粘贴一下吧


....... (2012-10-12 08:16) 
不是吧,我的博客你们访问不了?服务器在香港而已啊
crabhero  楼主| 发表于 2012-10-12 15:31:18 | 显示全部楼层

回 沙渺 的帖子

沙渺:不看好啊。

USB总线太繁忙了。连在PC机的USB总线上多挂点设备都会慢,树莓派用USB总线作为日常读写?我有点担心这么做的性能啊。

USB最大的用途其实还是挂硬盘作为数据仓库用。如果当做BT/HTTP下载机,这个必不可缺。至于别的,没大必要。 (2012-10-12 09:51) 
这个就要看实际应用的测试情况了。不过SD卡由于速度瓶颈明显,特别是tmp缓存分区也在上面,就大大影响了系统的响应速度。CPU资源有限的确需要考虑。
raspwhat 发表于 2012-10-12 20:16:20 | 显示全部楼层
呀,那买个usb3的hub就更值得了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版 | Archiver | 树莓派论坛 ( 粤ICP备15075382号-1 )