存档

文章标签 ‘Raspberry Pi’

从USB硬盘启动树莓派4B

2021年12月21日 1 条评论

引用1:https://gist.github.com/XSystem252/d274cd0af836a72ff42d590d59647928
引用2:https://archlinuxarm.org/forum/viewtopic.php?t=14672#p64313

应用1是一个大神做的笔记,应用2是ArchLinuxARM2020年底时候对于USB硬盘启动做的讨论,这个帖子在ArchLinuxARM论坛被置顶了。应用1整理了引用2 中关于USB硬盘启动的方法外,还在USB硬盘上使用btrfs文件系统,还做了全盘加密。我这里没有这么多的需求,所以对原文做了一个简化。

另外因为我的树莓派4B是2019年买的,也就是说其eeprom比较早,需要升级,我也把怎么更新这部分内容,做了描述。

概述

大约在2019年12月份的时候,搞过一次使用usb硬盘做roofs,原理比较简单,就是从tf卡的vfat分区启动,然后挂载usb硬盘的分区作为rootfs,然后配置cmdline.txt文件就好了。

但是最近这个树莓派滚挂了,原因也很简单,当时使用的是三方LTS的aarch64的内容,后来ArchLinuxARM接管了这个内核,再后来ArchLinuxARM牛B大了,不用LTS的内容,开始为树莓派4B提供与ArchLinux相同的滚动最新内核,并且在树莓派4B的bootloader与内核之间加了一层uboot,然后我的这个树莓派4b就滚挂了。

今天某东新买的tf读卡器到了,就花了一下午的时间把这个研究了一下,终于搞定记录一下。

树莓派4B最新的eeprom更新了bootloader,可以通过raspi-config来做启动顺序的设定。可以设定tf卡启动失败,再使用usb硬盘启动,也可以设定usb硬盘启动失败,再使用tf卡启动。这样一来,我们就可以直接从USB硬盘启动,不再像我2019年时候还是用tf卡的vfat分区做启动。

另外,今天发现最新ArchLinuxARM在启动的时候没法挂载usb硬盘,但是启动以后可以挂载,这样就需要定制一下内核的img,保证在内核加载的时候,相应usb的驱动能被加载。

在开始前,我们需要准备一张tf卡,这个卡要先用来升级树莓派4B,后面再用来定制ArchLinuxARM。

升级树莓派4B

我准备直接用2019年时候的那个tf卡,这个卡是16G。我先在我的manjaro xfce里面安装了一个叫rpi-imager的包,他是树莓派基金会官方出的tf卡制作工具的linux版,现在这个工具很牛B了,除了可以刷Raspberry Pi OS(Raspbian),还能直接刷manjaro arm和libreelec。在这个tf卡上刷一个Raspberry Pi OS Lite版,因为我们不需要桌面环境,ssh远程访问就好了。

制作好tf卡以后,加载vfat分区,在里面的根目录下创建一个名为ssh的空文件。linux下可以用下面的命令快速创建。

touch ssh

将tf卡插回树莓派4b,然后加电启动。在路由器找一个名叫raspberrypi的主机的IP,然后使用如下命令远程登录,默认密码是raspberry。

ssh pi@192.168.1.xxx

登录后按顺序执行下面的三行命令

sudo apt update
sudo apt full-upgrade
sudo rpi-eeprom-update -d -a

这三行命令的第一行是更新本地安装包数据库,第二句是根据最新的本地安装包数据库,更新所有的安装包。我执行完这两行以后,第三行已经不用执行了,从显示的信息看,已经从2019年而eeprom更新到了2021年4月份的版本了。这个2021四月份的版本是稳定版本,如果想换成其他正式发布的版本,好像还可以更新到最新的2021年11月版本。但这与我的目标没有关系了,我也就没有往下升级。

这时树莓派4B的eeprom更新就已经搞完了。我们使用halt命令关机,当树莓派4B的电源灯灭掉的时候,我们先断电,再拔出tf。

准备启动TF卡

我们把tf通过读卡器接回manjaro,现在我们可以针对这两个卡进行操作了。因为之前的创建Raspberry Pi OS的时候,tf上面已经有两个分区了,我们现在跳过分区的步骤,开始重新格式化这两个分区。重新格式化vfat是因为ArchLinuxARM使用了uboot,重新格式化ext4是因为ArchLinuxARM的根文件系统与Raspberry Pi OS完全不同。

sudo mkfs.vfat /dev/sdc1
sudo mkfs.ext4 /dev/sdc2
mkdir boot
mkdir root
sudo mount /dev/sdc1 boot
sudo mount /dev/sdc2 root
sudo bsdtar -xpf ArchLinuxARM-2021.11-rpi-aarch64-rootfs.tar.gz -C root
sudo mv root/boot/* boot
sudo sed -i 's/mmcblk0/mmcblk1/g' root/etc/fstab
sudo umount boot root

最后一行是因为我们安装的是aarch64版本,这个版本貌似mmcblk不是从0开始排的,是从1开始排的。如果是armv7版本的话,是不需要这一行的。使用aarch64版本的好处就是速度快,很多64位的软件可以用,但是坏处是发热量大,我树莓派4B上就安装了一个大散热片。

这样我们就完成了tf的准备,这时可以拔出读卡器,将tf插回树莓派4B。加电前,需要先把USB线断开,这是因为默认的内核img里面usb的驱动,启动时连接USB,在启动以后看不到usb,反而是启动完成再连接usb线能看到usb设备。

我的usb设备不是普通的usb硬盘,而是针对树莓派4b设计的同伴科技的x825笔记本硬盘扩展板,我在上面加了一个本子上拆下来而1T本盘。同伴科技还出来其他的usb硬盘扩展板,你可直接使用m2的ssd,或者3.5寸的台式机硬盘,甚至还能接两个硬盘。

安装准备

在树莓派4b启动以后,我们再去路由上找一个名叫alarm设备的IP。我们使用下面的命令登录。

ssh alarm@192.168.1.xxx

下面我们开始准备向USB硬盘上写的系统:

  1. 登录后我们使用su命令切换到root帐号。ArchLinuxARM没有内置sudo,切换成root,后面比较方便。
  2. 修改/etc/pacman.conf,去掉Color和ParallelDownloads = 5前面的注释,然后在ParallelDownloads = 5下面加一行ILoveCandy。Color表示pacman使用彩色界面,ParallelDownloads = 5表示pacman使用5个并发下载,能提高下载效率,最后一个ILoveCandy是一个隐藏菜单,pacman会使用游戏吃豆的特效来现实进度条。
  3. 修改/etc/pacman.d/mirrorlist,这个可以修改成国内中科大镜像或者清华tuna的镜像,速度在我这儿位置是最快的,具体怎么改不细说了,参考http://mirrors.ustc.edu.cn/help/archlinuxarm.html
  4. 先后执行pacman-key –init和pacman-key –populate archlinuxarm。
  5. 执行pacman -Syu将系统盘滚动更新到最新的版本。
  6. 然后通过命令行pacman -S uboot-tools rsync安装两个工具,第一个是uboot工具,用于更新uboot启动配置,第二个是同步工具,将tf上制作完成的系统同步到usb上。
  7. 这个时候我们先重启树莓派4b。

重启后我仍然用ssh登录在切到root帐号。

  1. 然后修改/etc/mkiniycpio.conf,在MODULES=()的括号中加上pcie_brcmstb。保存后执行mkinitcpio -P,这样会重新创建一个新的initramfs镜像文件,这将保证内核在启动时支持usb。
  2. 编辑/boot/boot.txt。编辑前备份一下这个文件。将part uuid ${devtype} ${devnum}:2 uuid这一行注释掉。
  3. 在将下面一行中的root=PARTUUID=${uuid}改为root=/dev/sda2。然后在/boot目录执行./mkscr。
  4. 编辑/etc/fstab。将/dev/mmcblk1p0 /boot vfat defaults 0 0中的mmcblk1p1换成sda1。
  5. 这时我们连接usb硬盘,连接后通过lsblk查看能否看到/dev/sda设备。
  6. 如果能看到,我们对usb硬盘进行分区,与tf分区类似,第一个分区256MB,类型为c,第二个分区为剩下磁盘大小,类型不变。我们在安装好以后使用交换文件来做交换内存,不使用交换分区。
  7. 回到root帐号的home,创建boot和root两个目录,将/dev/sda1挂载在boot上,将/dev/sda2挂载在root上。
  8. 执行rsync –info=progress2 -axHAX /boot/ boot/和rsync –info=progress2 -axHAX / root/,将tf的两个分区同步到usb硬盘的两个分区。然后再执行sync确保磁盘写操作真是完成。
  9. 这时我们就可以关闭树莓派4b,拔电后取出tf,再不拔出usb硬盘的情况下,重新加电启动。这时我们从路由上可以看到,一个叫alarm的设备已经获得ip了。

后续的设置,已经和普通的Archlinux没有什么区别了,设置一下ntp自动更新时间,设置一下当前的时区,设置一下locale,设置一下hostname等等。当然为了winbios名字解析,也可以安装一个samba。

树莓派4上的64位Archlinux

2019年12月21日 4 条评论

前两天终于咬牙跺脚收了同伴科技的X825,这是因为树莓派4终于支持了USB3.0,能基本把硬盘的性能跑出来了。顺便研究了一下,现在树莓派4上面的64位Linux,基本上可以确定现在树莓派4可以当做小型服务器来耍了。

首先,树莓派4是aarch64架构的arm处理器,4G内存,千兆网络,USB3.0接口,基本可用了。其次,Docker Hub上的服务器应用也开始支持aarch64了,甚至像mariadb、mongodb和openjdk的docker官方镜像只支持arm的aarch64架构。

网上查了一段时间,对比了树莓派爱好者基地的64位debian和第三方出的64为archlinuxarm,觉得还是喜欢archlinux,于是写写怎么在树莓派4上跑64位的archlinuxarm。

感觉archlinuxarm网站论坛里面的讨论,找到了一个三方出的树莓派4的64为archlinuxarm的rootfs,地址是https://olegtown.pw/Public/ArchLinuxArm/RPi4/rootfs/ ,挑一个最新的,按照archlinuxarm官方树莓派4的安装教程 https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4#installation 来安装就好了。安装好以后,连接有线网络,可以在路由器的dhcp设备列表里面找到设备的ip,这时候远程登录就好了。

安装好以后需要做一些官方教程里面没有的额外设置,首先要用nano来编辑/etc/resolv.conf,添加一行nameserver 8.8.8.8。这是因为这个rootfs没有安装vi包,其次没有设置dns服务器。如果我们需要改成静态ip,需要修改/etc/systemd/network/eth.network。

如果需要使用netbios访问树莓派4,可以参考我之前写的http://just4fun.cn/?p=1017

如果需要使用文件做交换内存,可以参考我之前写的http://just4fun.cn/?p=972

这个时候可以开始配置X825上面的硬盘作为rootfs。我是专门从狗东买了一个容量最小的tf卡,按照前面的介绍安装好archlinuxarm,分区并格式化/dev/sda1,然后直接修改/boot/cmdlin.txt就好了。但是在树莓派爱好者基地的64位debian貌似这么做不好用,可能是因为它用了树莓派上面UFEI导致的,没有深入研究。

硬盘接好启动以后,用fdisk先给硬盘创建一个分区,把格式化好ext4的分区mount在/mnt/newdrive,然后执行命令rsync -avx / /media/newdrive把tf卡的rootfs同步到硬盘上。这个步骤在树莓派爱好者基地的64位debian上也不好用。之后修改cmdline就好了。

重启之后,使用df -h看看根fs是不是挂在sda1上。

另,这个三方的roofs可以用pacman更新archlinuxarm官方的aarch64软件包,但是因为官方没有aarch64的树莓派内核,所以需要自己从https://olegtown.pw/Public/ArchLinuxArm/RPi4/kernel/https://olegtown.pw/Public/ArchLinuxArm/RPi4/firmware/ 下载最新的内核和firmware。此外这个网站还提供了5.4的内核,但是因为树莓派官方的内核只有4.19的代码,所以我没敢尝试。

分类: ARM, ARM Box, Linux 标签: ,

微雪的SPI液晶屏在ArchlinuxARM上的设置

2018年8月8日 没有评论

我之前的一堆树莓派都找不到了,但是翻出来了一个带微雪3.5寸SPI液晶屏的B+,有点古董。正好前段时候收了一个HDMI的3.5寸液晶屏,顺手对比一下,再写一个配置教程。

微雪的这个屏叫3.5A,应该是有好几个版本了,我手里这个是V3,但是微雪淘宝店里的照片已经不一样了。好在驱动还是一样的。微雪还有一个3.5B,是IPS液晶的面板,也视角会更大。另外还有一个3.5 HDMI产品,也是IPS的面板。这三块屏都是480*320的分辨率。

这三块屏的区别是,HDMI那块带一个驱动芯片,1920的信号输出也能直接显示,模糊而已。因为使用HDMI,一般的img都不需要驱动,另外HDMI的带宽要好,显示速度要快。SPI的这两块,由于数据带宽低,屏幕上更新的内容多了以后,会有明显的刷屏。而且因为SPI不是标准的视频接口,所以需要微雪的接口驱动才能工作。

相应的价格也是3.5HDMI最高,3.5A最便宜,我手里这两个屏,正好一头一个。

微雪网站资料很丰富,3.5A的页面如下:www.waveshare.net/wiki/3.5inch_RPi_LCD_(A) 这里面提供了一驱动包,一个安装好驱动的raspbian的镜像,以及一个说明文档。这个文档说明了驱动包怎么用,以及内置驱动的img怎么做tf卡。驱动包地址为http://www.waveshare.net/w/upload/3/34/LCD-show-180331.tar.gz

我看了一下驱动包怎么安装,也打开了LCD35-show这个脚本,发现这里面基本上两部分内容,显示编译驱动,然后配置控制台驱动和x的驱动。正好看到包里面有编译好的驱动,至少在这个B+上目前工作正常,下面就说说ArchlinuxARM上怎么配置。

1.在驱动包的根目录下有一个waveshare35a-overlay.dtb文件,把这个文件复制两次到你archlinuxarm的boot分区的overlays目录下,一次保持原名,一次改名为waveshare35a.dtbo。

2.修改config.txt文件,在最后加上dtoverlay=waveshare35a

3.修改cmdline.txt文件,在最后加上一个空格和fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo

这样重启以后,经过一段时间的浅灰色的显示阶段,控制台就显示出来了。

这个办法目前在我的B+上的ArchlinuxARM上可用,uname -a显示为

Linux alarmpi 4.14.59-1-ARCH #1 SMP Tue Jul 31 00:57:25 UTC 2018 armv6l GNU/Linux

树莓派3B和3B+目前阶段的主要区别

2018年7月26日 没有评论

近期收了一个新的树莓派3B+和一个二手的3B,总结一下:

1.官方表示3B和3B+是同一个处理器,只是主频高了,有线网变成了千兆,无线支持了4G。

2.3B和3B+在使用armv7指令集,也就是arm32的时候,基本没有什么区别。

3.3B和3B+在使用armv8指令集,也就是aarch64的时候,3B上基本正常的系统,3B+上基本有线网络、无线网络都会出问题。

4.除了ArchLinuxARM之外,都没有官方的树莓派aarch64的系统。即使如此,3B+也无法正常使用。

5.3B上跑aarch64的系统,外加f2fs的话,计算和IO都有很大的提升。

6.3B+目前看上去更像一个内置无线网络和蓝牙的2B

7.2B有一个1.2版,使用的是3B的处理器,而3B的版本上来就是1.2

8.想试试aarch64的话,3B比3B+更合适

9.淘宝3B手机普遍比3B+贵20

分类: Raspberry Pi 标签:

关于树莓派Raspberry Pi3和ArchLinuxARM的一些情况

2016年3月7日 2 条评论

ArchLinuxARM在第一时间更新了网站,并支持了树莓派3,但是还有一些情况,参考:https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3。例如:当前的root filesystem使用的还是Pi2的32位的内容等。

另,需要注意的是Pi3需要电源更大的电流,根据ArchLinuxARM的测试,需要2.5A以上的电流,这个有点强悍。

一个树莓派2代和1代的GPIO评测

2016年1月12日 2 条评论

不翻译了,累,自己看吧,不长

http://codeandlife.com/2015/03/25/raspberry-pi-2-vs-1-gpio-benchmark/

这个是原始的树莓派1代GPIO的评测,里面有如何产生那些数据的代码:

http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/

分类: ARM, ARM Box, Raspberry Pi 标签:

ArchLinux内核4上面的水星MW150US v2.0迷你USB无线网卡

2015年11月7日 没有评论

在树莓派和PC的ArchLinux的2015.11上,驱动都没有问题。

lsusb显示:

Bus 001 Device 004: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter

lsmod显示:

使用的是8188eu的驱动,使用cfg80211栈。但是在插卡的时候不会加载cfg80211,只有在wifi-menu之后,才会加载。

使用wifi-menu连接的时候,会有ioctl的错误信息,但是不影响连接。在wifi-menu,里面看不到信号评分或者信号的分贝提示。dmesg会有错误信息。

补充:

1.COMFAST CF-WU810N的lsusb和lsmod信息一致。

2.COMFAST CF-WU720N的lsusb和lsmod信息一致。

ArchLinux内核4上面的EDUB EP-N8508GS迷你USB无线网卡

2015年11月7日 没有评论

在树莓派和PC的ArchLinux的2015.11上,驱动都没有问题。

lsusb显示:

Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter

lsmod显示使用的是8192cu的驱动,使用cfg80211栈。

使用wifi-menu连接的时候,会有ioctl的错误信息,但是不影响连接。

树莓派1&2 ArchLinux ARM 2015.11目前最完美的USB无线网卡

2015年11月7日 1 条评论

在我这次买的一堆USB无线网卡里面,磊科NW360这个是唯一的不需要做任何操作就可以使用的无线网卡,内部应该是RTL8191SU芯片。

lsusb的信息是

Bus 001 Device 004: ID 0bda:8172 Realtek Semiconductor Corp. RTL8191SU 802.11n WLAN Adapter

lsmod显示驱动为r8712u,使用cfg80211栈。目前,从dmesg看,无任何错误信息。

在ArchLinux上驱动mt7601u无线usb网卡

2015年11月7日 没有评论

上一篇《在ArchLinux ARM下驱动RTL 8188eu无线网卡》对网卡不好用,很是郁闷。所以这次整了一堆无线usb网卡来测试。今天很高兴,完美驱动了mt7601u网卡,当然这个过程不是一帆风顺,不然也就不必要写这么一篇blog了。

先说使用这个片子的网卡:

必联(B-Link) BL-D88 http://item.jd.com/1154411.html

必联(B-Link) BL-150SM http://item.jd.com/1154451.html

传说小米的随身wifi也是这个片子,但是我手头没有小米的随身wifi,所以读者自己测试吧

再说驱动为什么不是一帆风顺:我在pc和arm的ArchLinux上测试这个网卡的时候,发现插上设备以后,系统没有新增网卡设备,lsusb发现识别正常,lsmod发现驱动正常,dmesg发现加载firmware时,没有找到firmware文件。于是自己去http://www.mediatek.com/en/downloads1/downloads/mt7601u-usb/这里下载了一个最新的,你不想注册信息的话,可以从我的百度盘下载http://pan.baidu.com/s/1hqpWmGG。我共享的这个文件,不需要改名字,直接sftp上传,然后复制到/lib/firmware里面,重启pc或者树莓派就好了。

sftp可以使filezilla client。

在ArchLinux ARM下驱动RTL 8188eu无线网卡

2015年11月5日 没有评论

在2013年4月的时候,我曾写过一篇《在Cubieboard的ArchLinux下驱动RTL8188eu无线网卡》。现在两年半以后,因为ArchLinux ARM的升级,所以那片帖子的里面的内容已经过时了。但是根据访问统计看,还有人在访问,而且我现在自己也想把自己树莓派上面的网线换成无线,所以有了今天这篇的内容。今天的这个内容,我在树莓派1B+、树莓派2B以及x86的环境中都做了测试,目前看实验现象似乎都是一致的。水星Mercury的MW150US网卡有多个版本,我手里的这个是MW150US v2.0。

在2013年的时候,当时ArchLinux ARM的内核还是Linux 3,但是现在ArchLinux和ArchLinux ARM的内核都已经是Linux 4了,而且RTL的驱动程序也在升级,所以情况也是有变化的。

先说说现状:

目前RTL 8188eu的驱动,在ArchLinux和ArchLinux ARM的内核里面都已经内置了,插上USB以后,使用lsmod会看到有一个r8188eu的驱动在,但是无论使用wpa_supplicant还是wifi-menu,都无法连到无线路由器。翻墙查了相关的搜索结果以后,大部分都在建议使用https://github.com/lwfinger/rtl8188eu/tree/v4.1.8_9499的新驱动,据说老的驱动是3下面的驱动,在4里面无法很好的工作。

编译并安装驱动:

首先用pacman –S base-devel git dkms iw wpa_supplicant dialog crda linux-raspberrypi-headers安装必要的组件。这其中base-devel是编译需要的工具链,git是代码获取工具,iw、wpa_supplicant、dialog是配置无线网的工具,dkms是动态内核配置工具。crda能设置无线网卡的频率范围,linux-raspberrypi-headers是编译驱动所需要的头文件。

然后获取代码git clone –b v4.1.8_9499 https://github.com/lwfinger/rtl8188eu.git,这会将一个稳定的版本下载到本地。下载后可以先修改rtl8188eu中的Makefile文件,其中CONFIG_POWER_SAVING的内容修改为CONFIG_POWER_SAVING = n,目的是关闭省电功能。然后就可以使用make或者dkms来编译了,具体可以参考github的页面上的帮助。这两种做法会有一个区别,区别是make会自动在/etc/modprobe.d/内创建一个50-8188eu.conf文件,他会把内核中的r8188eu模块加入blacklist,我们自己可以编辑这个文件,并加入一行options 8188eu rtw_power_mgnt=0,给驱动送参数,来关闭相关的电源管理。

结果:

目前看按照上面的操作完成驱动安装以后,某些时候会工作的比较好,dmesg里面已经没有错误信息了。但是说某些时候,是因为不确定原因的某些时候工作的不好。据说最完美的情况是在x64的情况下,据说github上维护代码的这个作者,他用的是这个环境。

还有就是目前看,ArchLinux的作者和使用者确实激进,因为从搜索结果看,大部分是ArchLinux的用户在提问。另外,还有相当多的用户是和我一样在树莓派上使用。

我目前的想法是换一个usb网卡试试。没准换过几个网卡之后,我会写一个迷你usb无线网卡的评测,哈哈

再加一句:ArchLinuxARM论坛里面推荐的dkms-8188eu的方法并不好用,也已经测试了。

初窥树莓派上的Win10

2015年8月21日 没有评论

为了装个树莓派上的Win10,准备了好多东西,卡,跑win10的虚机,关键还得再准备一个树莓派2。今天东西齐了,刷完以后,32G的卡,20多G的内容都空着……

接上电视以后,发现界面上没啥东西,看提示有web界面,所以用浏览访问。最后发现有Web的管理界面在8080上,还可以ssh。都需要用户名和密码,用户名是administrator,密码是p@ssw0rd

现在刚跑起来,还没啥东西呢……所以只有一个截图。

image

image

image

image

image

image

image

image

image

image

今天Raspberry Pi的ArchLinuxARM升级到内核4

2015年6月23日 没有评论

早上例行升级树莓派的ArchLinux,发现内核升级到4.0.5-1了

image

关于Raspberry Pi树莓派一代使用TF卡的问题

2015年6月18日 没有评论

目前不确定了是因为Raspberry Pi树莓派1代的问题,还是那个TF转接SD的问题,目前已经坏了三块TF了。暂时不准备继续再用TF了。

回头换个大卡吧。

分类: Raspberry Pi 标签:

树莓派1和树莓派2的性能对比(6):Server Benchmark

2015年3月22日 没有评论

系列文章:

树莓派1和树莓派2的性能对比(1):Synthetic PHP BenchMark

树莓派1和树莓派2的性能对比(2):Synthetic MySQL BenchMark

树莓派1和树莓派2的性能对比(3):Synthetic Read Write BenchMark

树莓派1和树莓派2的性能对比(4):Real World PHP BenchMark

树莓派1和树莓派2的性能对比(5):Real World PHP & MySQL BenchMark

上次树莓派1和Cubieboard对比的地址为:

树莓派和Cubieboard对比测试(7) – Server Benchmark

Pi Pi2
PHP version 5.6.6
MySQL version 5.5.5-10.0.17-MariaDB-log
Server Software Apache/2.4.12 (Unix) PHP/5.6.6
Server Benchmark
test_1_create_dir 0.0017 seconds 0.0009 seconds
test_1_small_page 0.4914 seconds 0.1713 seconds
test_1b_small_page 0.4885 seconds 0.1394 seconds
test_1c_small_page 0.4882 seconds 0.1392 seconds
test_1d_small_page 0.4898 seconds 0.1392 seconds
test_1e_small_page 0.4889 seconds 0.1397 seconds
test_2_create_tempfile 0.0016 seconds 0.0008 seconds
test_2_medium_page 1.3283 seconds 0.4323 seconds
test_2b_medium_page 1.3281 seconds 0.4348 seconds
test_2c_medium_page 1.3297 seconds 0.4374 seconds
test_2d_medium_page 1.3283 seconds 0.4361 seconds
test_2e_medium_page 1.3318 seconds 0.4373 seconds
test_3_large_page 3.9221 seconds 1.3041 seconds
test_3_write 0.1565 seconds 0.0558 seconds
test_3b_large_page 3.9231 seconds 1.3027 seconds
test_3c_large_page 3.9270 seconds 1.3016 seconds
test_3d_large_page 3.9473 seconds 1.3015 seconds
test_3e_large_page 3.9296 seconds 1.3024 seconds
test_4_append 0.1028 seconds 0.0383 seconds
test_4_huge_page 6.2111 seconds 2.0126 seconds
test_4b_append 0.0999 seconds 0.0376 seconds
test_4b_huge_page 6.1738 seconds 2.0134 seconds
test_4c_huge_page 6.2370 seconds 2.0141 seconds
test_4d_huge_page 6.2073 seconds 2.0137 seconds
test_4e_huge_page 6.2364 seconds 2.0114 seconds
test_5_fileinfo 0.3223 seconds 0.1466 seconds
test_6_read_1024 1.9919 seconds 0.5921 seconds
test_6b_read_512 1.9095 seconds 0.5338 seconds
test_6c_read_256 2.5433 seconds 0.7696 seconds
test_6d_read_128 4.1118 seconds 1.1324 seconds
test_6e_read_64 7.1683 seconds 2.0073 seconds
test_6f_read_32 12.9881 seconds 3.5275 seconds
test_6g_read_16 28.5116 seconds 7.2687 seconds
test_7_read_8 33.9870 seconds 9.7546 seconds
test_9_readdir 1.6711 seconds 0.6747 seconds
test_arithmetic 0.0060 seconds 0.0015 seconds
test_array_operators 0.0101 seconds 0.0028 seconds
test_bitwise 0.0013 seconds 0.0005 seconds
test_casting 0.0283 seconds 0.0066 seconds
test_chr_fixed 0.0482 seconds 0.0116 seconds
test_chr_hardcoded 0.0093 seconds 0.0032 seconds
test_chr_var 0.0407 seconds 0.0107 seconds
test_comment_loop 0.0022 seconds 0.0014 seconds
test_compare 0.0020 seconds 0.0009 seconds
test_compare_false 0.0002 seconds 0.0001 seconds
test_compare_invert 0.0003 seconds 0.0001 seconds
test_compare_strict 0.0004 seconds 0.0001 seconds
test_compare_unstrict 0.0008 seconds 0.0003 seconds
test_connect_db 0.0587 seconds 0.0172 seconds
test_constants 0.0039 seconds 0.0011 seconds
test_crc32 0.0027 seconds 0.0007 seconds
test_db_setup 0.6793 seconds 0.1770 seconds
test_del_file 0.0014 seconds 0.0008 seconds
test_del_tempdir 0.0010 seconds 0.0004 seconds
test_distinctcolumn 1.8773 seconds 0.6269 seconds
test_do_while 0.0097 seconds 0.0051 seconds
test_do_while_break 0.0021 seconds 0.0011 seconds
test_empty 0.0003 seconds 0.0001 seconds
test_empty_loop 0.0024 seconds 0.0014 seconds
test_fetcharray 1.3069 seconds 0.4140 seconds
test_fetchassoc 1.1749 seconds 0.3709 seconds
test_fetchlength 1.1717 seconds 0.3643 seconds
test_fetchrow 1.1665 seconds 0.3681 seconds
test_fieldflags 3.4805 seconds 1.0895 seconds
test_foreach 0.0433 seconds 0.0153 seconds
test_get_class 0.0030 seconds 0.0008 seconds
test_global_scalar_assign 0.0014 seconds 0.0006 seconds
test_global_string_assign 0.0077 seconds 0.0029 seconds
test_if_constant 0.0004 seconds 0.0002 seconds
test_increment 0.0029 seconds 0.0010 seconds
test_is_array 0.0010 seconds 0.0003 seconds
test_is_object 0.0010 seconds 0.0003 seconds
test_is_type 0.0032 seconds 0.0009 seconds
test_isset 0.0003 seconds 0.0001 seconds
test_line 0.0004 seconds 0.0002 seconds
test_local_array_assign 0.0342 seconds 0.0096 seconds
test_local_boolean_assign 0.0021 seconds 0.0007 seconds
test_local_float_assign 0.0021 seconds 0.0007 seconds
test_local_hash_assign 0.0019 seconds 0.0007 seconds
test_local_integer_assign 0.0020 seconds 0.0007 seconds
test_local_object_assign 0.0020 seconds 0.0006 seconds
test_local_scalar_assign 0.0031 seconds 0.0010 seconds
test_local_string_assign 0.0078 seconds 0.0025 seconds
test_maxget 0.9734 seconds 0.3113 seconds
test_md5 0.0040 seconds 0.0014 seconds
test_microtime 0.0163 seconds 0.0043 seconds
test_mt_rand 0.0016 seconds 0.0005 seconds
test_numfields 2.5441 seconds 0.7369 seconds
test_numrows 2.5617 seconds 0.7237 seconds
test_ord 0.1501 seconds 0.0443 seconds
test_ordered_functions 0.0234 seconds 0.0101 seconds
test_ordered_functions_references 0.0228 seconds 0.0098 seconds
test_page1a 0.2641 seconds 0.0792 seconds
test_page1b 0.2585 seconds 0.0781 seconds
test_page1c 0.2621 seconds 0.0779 seconds
test_page1d 0.2613 seconds 0.0781 seconds
test_page1e 0.2598 seconds 0.0781 seconds
test_page2a 0.7814 seconds 0.2352 seconds
test_page2b 0.7866 seconds 0.2332 seconds
test_page2c 0.8034 seconds 0.2333 seconds
test_page2d 0.7826 seconds 0.2341 seconds
test_page2e 0.7810 seconds 0.2342 seconds
test_page3a 1.1535 seconds 0.3559 seconds
test_page3b 1.1828 seconds 0.3559 seconds
test_page3c 1.1847 seconds 0.3560 seconds
test_page3d 1.1614 seconds 0.3560 seconds
test_page3e 1.1867 seconds 0.3562 seconds
test_page4a 1.5888 seconds 0.4892 seconds
test_page4b 1.5672 seconds 0.4886 seconds
test_page4c 1.5672 seconds 0.4895 seconds
test_page4d 1.5980 seconds 0.4899 seconds
test_page4e 1.5838 seconds 0.4891 seconds
test_preg_match 0.0111 seconds 0.0028 seconds
test_rand 0.0015 seconds 0.0005 seconds
test_references 0.0004 seconds 0.0002 seconds
test_rowcount 0.5033 seconds 0.1234 seconds
test_sha1 0.0073 seconds 0.0016 seconds
test_sort 4.1689 seconds 1.2160 seconds
test_sort2 4.1101 seconds 1.3251 seconds
test_sort3 4.2083 seconds 1.2172 seconds
test_string_append 0.0058 seconds 0.0021 seconds
test_strlen 0.0010 seconds 0.0003 seconds
test_sumcolumn 1.0162 seconds 0.3223 seconds
test_switch 0.0070 seconds 0.0034 seconds
test_time 0.0016 seconds 0.0005 seconds
test_unordered_functions 0.0266 seconds 0.0112 seconds
test_variable_variables 0.0032 seconds 0.0009 seconds
test_while 0.0091 seconds 0.0056 seconds
test_write 0.6625 seconds 0.1705 seconds
test_write2 0.7029 seconds 0.1888 seconds
test_write3 0.7162 seconds 0.1961 seconds
test_write_cleanup 0.0103 seconds 0.0040 seconds
Score(higher is better) 144 484

树莓派1和树莓派2的性能对比(5):Real World PHP & MySQL BenchMark

2015年3月22日 没有评论

系列文章:

树莓派1和树莓派2的性能对比(1):Synthetic PHP BenchMark

树莓派1和树莓派2的性能对比(2):Synthetic MySQL BenchMark

树莓派1和树莓派2的性能对比(3):Synthetic Read Write BenchMark

树莓派1和树莓派2的性能对比(4):Real World PHP BenchMark

上次树莓派1和Cubieboard对比的地址为:

树莓派和Cubieboard对比测试(6) – Real World PHP & MySQL BenchMark

Pi Pi2
PHP version 5.6.6
MySQL version 5.5.5-10.0.17-MariaDB-log
Server Software Apache/2.4.12 (Unix) PHP/5.6.6
Real World PHP & MySQL BenchMark
test_page1a 2.3365 seconds 0.7525 seconds
test_page1b 2.3499 seconds 0.7534 seconds
test_page1c 2.3339 seconds 0.7531 seconds
test_page1d 2.3447 seconds 0.7529 seconds
test_page1e 2.3353 seconds 0.7529 seconds
test_page2a 6.4310 seconds 1.8929 seconds
test_page2b 6.3900 seconds 1.8923 seconds
test_page2c 6.4243 seconds 1.8913 seconds
test_page2d 6.4153 seconds 1.8927 seconds
test_page2e 6.4204 seconds 1.8924 seconds
test_page3a 9.0395 seconds 2.6444 seconds
test_page3b 9.3039 seconds 2.6462 seconds
test_page3c 8.9621 seconds 2.6440 seconds
test_page3d 8.9731 seconds 2.6467 seconds
test_page3e 8.9627 seconds 2.6429 seconds
test_page4a 12.5272 seconds 3.7309 seconds
test_page4b 12.3040 seconds 3.7344 seconds
test_page4c 12.7825 seconds 3.7329 seconds
test_page4d 12.3229 seconds 3.7370 seconds
test_page4e 12.4328 seconds 3.7291 seconds
Score(higher is better) 198 665

树莓派1和树莓派2的性能对比(4):Real World PHP BenchMark

2015年3月22日 没有评论

系列文章:

树莓派1和树莓派2的性能对比(1):Synthetic PHP BenchMark

树莓派1和树莓派2的性能对比(2):Synthetic MySQL BenchMark

树莓派1和树莓派2的性能对比(3):Synthetic Read Write BenchMark

上次树莓派1和Cubieboard对比的地址为:

树莓派和Cubieboard对比测试(5) – Real World PHP BenchMark

Pi Pi2
PHP version 5.6.6
MySQL version 5.5.5-10.0.17-MariaDB-log
Server Software Apache/2.4.12 (Unix) PHP/5.6.6
Real World PHP BenchMark
test_1_small_page 1.1907 seconds 0.5099 seconds
test_1b_small_page 1.1620 seconds 0.3424 seconds
test_1c_small_page 1.1608 seconds 0.3422 seconds
test_1d_small_page 1.1648 seconds 0.3435 seconds
test_1e_small_page 1.1701 seconds 0.3411 seconds
test_2_medium_page 3.2147 seconds 1.0279 seconds
test_2b_medium_page 3.2330 seconds 1.0329 seconds
test_2c_medium_page 3.3178 seconds 1.0358 seconds
test_2d_medium_page 3.3654 seconds 1.0369 seconds
test_2e_medium_page 3.3518 seconds 1.0372 seconds
test_3_large_page 9.9856 seconds 3.1942 seconds
test_3b_large_page 10.2158 seconds 3.1947 seconds
test_3c_large_page 9.9806 seconds 3.1957 seconds
test_3d_large_page 10.2136 seconds 3.1958 seconds
test_3e_large_page 10.2217 seconds 3.1928 seconds
test_4_huge_page 15.8610 seconds 4.9444 seconds
test_4b_huge_page 15.5103 seconds 4.9461 seconds
test_4c_huge_page 15.8390 seconds 4.9671 seconds
test_4d_huge_page 15.6031 seconds 4.9714 seconds
test_4e_huge_page 15.6240 seconds 4.9754 seconds
Score(higher is better) 297 941

树莓派1和树莓派2的性能对比(3):Synthetic Read Write BenchMark

2015年3月22日 没有评论

系列文章:

树莓派1和树莓派2的性能对比(1):Synthetic PHP BenchMark

树莓派1和树莓派2的性能对比(2):Synthetic MySQL BenchMark

上次树莓派1和Cubieboard对比的地址为:

树莓派和Cubieboard对比测试(4) – Synthetic Read/Write BenchMark

Pi Pi2
PHP version 5.6.6
MySQL version 5.5.5-10.0.17-MariaDB-log
Server Software Apache/2.4.12 (Unix) PHP/5.6.6
Synthetic Read Write BenchMark
test_1_create_dir 0.0014 seconds 0.0010 seconds
test_2_create_tempfile 0.0015 seconds 0.0009 seconds
test_3_write 0.2340 seconds 0.1246 seconds
test_4_append 0.1555 seconds 0.0863 seconds
test_4b_append 0.1521 seconds 0.0840 seconds
test_5_fileinfo 0.4854 seconds 0.2825 seconds
test_6_read_1024 4.3047 seconds 1.2699 seconds
test_6b_read_512 4.4377 seconds 1.1854 seconds
test_6c_read_256 6.0634 seconds 1.7323 seconds
test_6d_read_128 9.6558 seconds 2.6062 seconds
test_6e_read_64 14.4697 seconds 4.5069 seconds
test_6f_read_32 24.8038 seconds 7.7512 seconds
test_6g_read_16 52.2430 seconds 15.5660 seconds
test_7_read_8 74.0824 seconds 21.8323 seconds
test_9_readdir 2.4713 seconds 1.0116 seconds
test_del_file 0.0014 seconds 0.0008 seconds
test_del_tempdir 0.0010 seconds 0.0004 seconds
Score(higher is better) 124 413

树莓派1和树莓派2的性能对比(2):Synthetic MySQL BenchMark

2015年3月22日 没有评论

系列文章:

树莓派1和树莓派2的性能对比(1):Synthetic PHP BenchMark

上次树莓派1和Cubieboard对比的地址为:

树莓派和Cubieboard对比测试(3) – Synthetic MySQL BenchMark

Pi Pi2
PHP version 5.6.6
MySQL version 5.5.5-10.0.17-MariaDB-log
Server Software Apache/2.4.12 (Unix) PHP/5.6.6
Synthetic MySQL BenchMark
test_db_setup 1.3504 seconds 0.4811 seconds
test_distinctcolumn 6.0972 seconds 2.0539 seconds
test_fetcharray 3.4702 seconds 1.0954 seconds
test_fetchassoc 3.1557 seconds 1.0263 seconds
test_fetchlength 3.1741 seconds 1.0148 seconds
test_fetchrow 3.1540 seconds 1.2152 seconds
test_fieldflags 13.0071 seconds 3.5117 seconds
test_maxget 2.8478 seconds 0.8929 seconds
test_numfields 8.9720 seconds 2.2549 seconds
test_numrows 10.1692 seconds 2.2571 seconds
test_rowcount 1.0088 seconds 0.2399 seconds
test_sort 15.3296 seconds 4.1467 seconds
test_sort2 16.1388 seconds 4.1016 seconds
test_sort3 15.2947 seconds 4.1456 seconds
test_sumcolumn 2.8440 seconds 0.9381 seconds
test_write 1.3475 seconds 0.3367 seconds
test_write2 1.3922 seconds 0.3848 seconds
test_write3 1.4473 seconds 0.3876 seconds
test_write_cleanup 0.0107 seconds 0.0044 seconds
Score(higher is better) 145 524

树莓派1和树莓派2的性能对比(1):Synthetic PHP BenchMark

2015年3月22日 没有评论

两代树莓派硬件的主要区别是,主频高了一些,cpu变成了4核,ram变成了1GB。

上次树莓派1和Cubieboard对比的地址为:树莓派和Cubieboard对比测试(2) – Synthetic PHP BenchMark

Pi Pi2
PHP version 5.6.6
MySQL version 5.5.5-10.0.17-MariaDB-log
Server Software Apache/2.4.12 (Unix) PHP/5.6.6
Synthetic PHP BenchMark
test_arithmetic 0.2261 seconds 0.1105 seconds
test_array_operators 0.2856 seconds 0.1700 seconds
test_bitwise 0.0383 seconds 0.0216 seconds
test_casting 1.3268 seconds 0.3272 seconds
test_chr_fixed 1.8898 seconds 0.5745 seconds
test_chr_hardcoded 0.4025 seconds 0.1578 seconds
test_chr_var 1.8833 seconds 0.5317 seconds
test_comment_loop 0.1064 seconds 0.0676 seconds
test_compare 0.1038 seconds 0.0417 seconds
test_compare_false 0.0056 seconds 0.0033 seconds
test_compare_invert 0.0084 seconds 0.0041 seconds
test_compare_strict 0.0084 seconds 0.0052 seconds
test_compare_unstrict 0.0307 seconds 0.0145 seconds
test_constants 0.1514 seconds 0.0500 seconds
test_crc32 0.1210 seconds 0.0352 seconds
test_do_while 0.4012 seconds 0.2534 seconds
test_do_while_break 0.0931 seconds 0.0541 seconds
test_empty 0.0057 seconds 0.0038 seconds
test_empty_loop 0.1062 seconds 0.0676 seconds
test_foreach 1.9737 seconds 0.8063 seconds
test_get_class 0.1385 seconds 0.0381 seconds
test_global_scalar_assign 0.0477 seconds 0.0266 seconds
test_global_string_assign 0.3587 seconds 0.1446 seconds
test_if_constant 0.0131 seconds 0.0090 seconds
test_increment 0.1622 seconds 0.0494 seconds
test_is_array 0.0365 seconds 0.0123 seconds
test_is_object 0.0396 seconds 0.0124 seconds
test_is_type 0.1358 seconds 0.0442 seconds
test_isset 0.0076 seconds 0.0045 seconds
test_line 0.0099 seconds 0.0065 seconds
test_local_array_assign 0.8565 seconds 0.3604 seconds
test_local_boolean_assign 0.0727 seconds 0.0316 seconds
test_local_float_assign 0.0731 seconds 0.0319 seconds
test_local_hash_assign 0.0685 seconds 0.0314 seconds
test_local_integer_assign 0.1053 seconds 0.0319 seconds
test_local_object_assign 0.0809 seconds 0.0280 seconds
test_local_scalar_assign 0.1006 seconds 0.0448 seconds
test_local_string_assign 0.2859 seconds 0.1169 seconds
test_md5 0.1953 seconds 0.0662 seconds
test_microtime 0.6788 seconds 0.2107 seconds
test_mt_rand 0.0649 seconds 0.0216 seconds
test_ord 6.4353 seconds 2.2288 seconds
test_ordered_functions 1.0930 seconds 0.4972 seconds
test_ordered_functions_references 0.9427 seconds 0.4826 seconds
test_preg_match 0.4483 seconds 0.1258 seconds
test_rand 0.0735 seconds 0.0223 seconds
test_references 0.0108 seconds 0.0072 seconds
test_sha1 0.2715 seconds 0.0810 seconds
test_string_append 0.2736 seconds 0.0996 seconds
test_strlen 0.0459 seconds 0.0127 seconds
test_switch 0.3535 seconds 0.1650 seconds
test_time 0.0618 seconds 0.0256 seconds
test_unordered_functions 1.1314 seconds 0.5539 seconds
test_variable_variables 0.1076 seconds 0.0407 seconds
test_while 0.4435 seconds 0.2794 seconds
Score(higher is better) 410 1082