存档

2013年4月 的存档

Cubieboard下ArchLinux的sun4i-gpio独立驱动程序包

2013年4月24日 1 条评论

本来是想给Arch做的,结果Arch升级到3.0.57-2之后自带了,该修Script.bin就可以了。这个留给用其他版本的朋友吧。不保证能在其他非3.0的版本的内核上使用。另外,也需要修改script.bin。

下载地址

解压缩以后会有一个sun4i-gpio的目录,进去以后make clean在make modules。如果有错的话,自己修改Makefile。ko安装成功以后,会有/sys/devices/virtual/misc/sun4i-gpio存在。

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

在ArchLinux里面使用mjpg-streamer

2013年4月23日 没有评论

首先需要摄像头能驱动起来,驱动起来的标志是存在/dev/videoX这类的设备。然后使用paman安装mjpg-streamer。安装好之后在/usr/share/mjpeg-streamer里面会有一个start.sh脚本,修改未注释的那行开头的./。如果你的摄像头是JPEG模式的话,应该就能开始工作了。如果提示格式错误,如下修改:

mjpg_streamer -o "output_http.so -w ./www" –input "input_uvc.so –device /dev/video0 –fps 5 –resolution 640×480 –yuv"

一般情况需要改一下,因为目前YUV模式输出的摄像头比较多。看到入这个图显示的时候,mjpg-streamer应该就已经跑起来了。

image

按照上面提示的端口访问网站,就能访问到一个网站,里面有浏览器访问的例子。如果遇到不能显示,建议换个浏览器试试。下图是我从网页里面截取的我这里的图。

untitled

在Cubieboard的ArchLinux下驱动RTL8188eu无线网卡

2013年4月23日 3 条评论

原来图省事买了一个水星(Mercury)MW150US网卡,因为Cubieboard和Archlinux都内置RTL8129cu的驱动,结果买回来lsusb发现不是8129cu芯片,是8188eu的芯片。如果你用lsusb看到0bda:8179,那么恭喜你你也中标了。这两个芯片管脚兼容,但是驱动不太一样。在网上找到一个大神利用杨梅派2的驱动修改树莓派下Archlinux驱动的博客(地址),我也照他的过程编译出了Cubieboard下Archlinux的驱动。

我在百度盘上共享了我修改的源码包(地址)。如果在Cubieboard的ArchLinux下,只需先“pacman –S base-devel”之后,再解压缩进入目录执行“make && make install”就自动生成并部署了8188eu.ko。之后modprobe或者修改/etc/modules-load.d都可以了。

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

关于《为Cubieboard的TF卡安装Archlinux》的修订

2013年4月22日 1 条评论

本篇对于《为Cubieboard的TF卡安装Archlinux》进行修正。

修正的内容是在将最后umount之前,多执行一步“cp /tmp/arch/boot/uImage /tmp/boot”。这一步主要是用archlinux带的内核替换sunxi_hwpack中的内核。这两个内核都可以正常使用,没有什么额外的影响,但是驱动模块无法正常使用,需要自己重新编译。

这个问题是在cubieboard上无法驱动摄像头以后,才发现的fat分区中的内核与ko版本不一致的问题。上面那一个操作可以避免不一致。

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

修改树莓派ArchLinux分区的大小

2013年4月17日 没有评论

Arch Linux ARM给所有的盒子都提供了安装包,唯独给树莓派提供的是img文件。这个文件2G大小,也就是说不管你使用多大的SD卡,最终刷完img文件之后只能使用2G大小的空间。这就需要为这个分区扩容。

一般情况下,这个SD卡上面会有2到3个分区,这个根据不同的linux发布不同而不同。一个是FAT的分区,用来放启动时候的内核,一个是Linux分区,这个是rootfs。如果有第三个分区的话,一般是交换分区。Arch Linux ARM一般是两个分区。

本文以16G的SD卡为例,来进行演示。首先将Arch Linux ARM最新的img刷到SD卡上,这个不过程不复述了。然后准备一个Linux虚机,将插上SD卡的读卡器挂载到Linux环境中。

首先确保SD卡上面的分区没有被mount,然后使用parted命令。进入parted之后,首先使用unit s将显示的单位改成扇区。然后使用print列出SD卡上分区的信息。从下图中,我们能看整个磁盘/dev/sdb上面有30865408个扇区,Linux分区开始于186368扇区,结束于3481600扇区。

接下来问我们要删除linux分区,然后重新创建这个分区,并占满整个SD卡,这个过程只修改分区表,不修改实际数据。但是仍然建议备份卡里面的数据。执行rm 2来删除第二个分区。然后使用mkpart primary 186368 30865407来重新创建这个分区。186368来自于我们刚才看到的linux分区的起始位置,30865407来源于整个SD卡的的扇区数量,由于扇区是从0开始的,那么最后一个扇区就是30865408-1。然后使用quit命令退出parted。

接下来执行e2fsck –g /dev/sdb2 和 resize2fs /dev/sdb2来修复文件系统,以适应大的分区。

image

这时候,分区大小已经扩充完成。查到树莓派上就可以用df -h来查看新的rootfs的大小了。

image

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

为Cubieboard的TF卡安装Archlinux

2013年4月16日 5 条评论

ArchlinuxARM官方支持Cubieboard,其下载网站有一个安装指南,但是前面如何分区这块没有说清楚,另外ArchLinuxARM官方提供的bootloader有问题,需要使用sunxi官方的bootloader,也就是下文中下载的hwpack。需要说明的是,和树莓派上的Archlinux不同,Cubieboard上面的Archlinux对HDMI并没有驱动起来,这样Cubieboard启动时显示器是黑屏的,这时已经可以ssh来远程访问管理配置了。树莓派的ArchLinuxARM内核是3.6,Cubieboard的ArchLinuxARM的内核是3.0。这个估计是sunxi官方驱动只支持3.0的原因。

下面开始安装过程。

1.下载必须的文件。

首先下载bootloader和驱动,地址: http://dl.linux-sunxi.org/amery/sunxi-3.0/latest/cubieboard_hwpack.tar.xz

image

接下来下载ArchLinuxARM的最新安装包,地址 http://archlinuxarm.org/os/ArchLinuxARM-sun4i-latest.tar.gz

image

2.对TF卡分区和格式化。

根据读卡器的不同,TF卡在linux里面可能被识别成不同的设备。我这里就被识别成硬盘,设备名是sdb。如果识别成sd卡的话,设备名会是mmcblk0之类的。不管识别成什么样的设备,后面的过程都是一样的,不会有什么影响。后面我就以我的读卡器情况为例。

对TF卡分区需要有一个Linux环境。由于我没有安装Linux的PC,所以我使用虚机中的Linux环境。插上读卡器以后,再把读卡器这个USB设备挂到虚机上。虚机宿主使用vmware ws或者virtualbox都是可以的,linux发布我用过Ubuntu和ArchLinux,操作没有区别,但是Ubuntu需要全部在sudo下实行,以获得特权。

一般情况下,安装AcrhLinuxARM需要最少两个分区,一个是32M以上的FAT分区,一个是剩下空间的ext4分区。FAT分区主要是放内核和bootloader的配置文件。另外一个分区是rootfs。由于bootloader比较大,分区的时候需要把第一个分区往后挪1M左右,以防写上去的bootloader会覆盖fat分区的目录表。

下面这个是我的TF挂到虚机以后的情况。使用dd命令清除TF卡的分区表,然后使用fdsik重新分区。

image

执行fdisk /dev/sdb之后,fdisk会提示没有分区表。这个时候先用c命令将fdisk改为DOS兼容模式。然后使用u命令修改使用的分区单位为扇区(sector)。然后使用n命令创建分区。在提示分区类型(Partition type)的时候,选择p(主分区),然后选择1(第一个分区),在第一个扇区位置填写2048。因为前面我们说了要往后挪1M的空间,一个扇区是512字节,那么2048个扇区正好是1M的空间。第一个扇区的编号为0,那么0到2047正好是2048个,所以我们的第一个分区从2048扇区开始。接下来在结束扇区填写+64M,指定第一个分区为64兆大小。

image

接下来使用t命令修改刚才创建的分区的类型,修改为c。代表Win95支持LBA的FAT32类型。然后使用a命令,在这个分区上面加可启动标志。

image

接下来创建第二个分区。先试用p命令列出已经创建好的分区,目的是查看之前创建好的分区的结束扇区。我们可以看到结束扇区是133120。

然后使用n命令创建新分区,还是选择p创建主分区,然后设定为2号分区,在开始扇区位置填写133121,结束扇区使用默认值,占满整个TF卡。然后使用t命令,设定类型为83,也就是Linux分区。

image

接下来再用p看一下分区的结果,然后使用w命令把修改写回TF卡后退出。

image

接下来格式化两个分区。使用mkdosfs /dev/sdb1命令格式化第一个分区。使用mke2fs –t ext4 /dev/sdb2命令格式化第二个分区,遇到提示的时候,可以直接回车略过。

image

然后在/tmp下面创建boot和arch两个临时目录,把sdb1挂载到boot,把sdb2挂载到arch

image

3.部署响应文件。

使用tar zxf ArchLinuxARM-sun4i-latest.tar.gz –C /tmp/arch 将rootfs解压缩到第二个分区。然后使用tar Jxf cubieboard_hwpack.tar.xz 解压缩bootloader。解压好以后当前目录会出现三个目录。

然后分别使用dd if=bootloader/sunxi-spl.bin of=/dev/sdb bs=1024 seek=8 和 dd if=bootloader/u-boot.bin of/dev/sdb bs=1024 seek=32 两个命令来写bootloader

image

然后把kernel下面的所有文件拷贝到第一个分区。然后卸载两个分区。

image

这时候就可以把TF卡插回Cubieboard了。

插电接网线以后,到路由器的dhcp客户端列表里面就能找到Cubieboard了。

image

由于内置sshd,所以这个时候也可以用ssh远程登录了。

image

到此安装过程结束。

分类: ARM Box, Linux 标签:

树莓派和Cubieboard对比测试(8) – 总结

2013年4月16日 3 条评论

终于开始写总结了,前面的数据整整整理了12个小时。让我想起来了大学时候做物理实验,回来整理实验报告的日子了。

言归正传,从前面的测试数据来看,Cubieboard大约比树莓派快大约3到2倍的样子。之前有听说Cortax-A8的处理器(全志A10的CPU内核)要比ARM11(树莓派的BCM2835的CPU内核)快大约3倍的样子,可以印证前面的测试结果。

因为前面测试是针对LAMP的,所以能得到结论:如果你要跑LAMP的话,Cubieboard的性价比绝对要比树莓派高得多。

分类: Apache, Linux, MySQL, PHP, Raspberry Pi 标签:

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

2013年4月16日 没有评论
Tests:132
Iterations:200
Raspberry Pi
(second)
Cubieboard
(second)
test_1_create_dir
0.0016
0.0066
test_1_small_page
0.4975
0.8329
test_1b_small_page
0.5030
0.1360
test_1c_small_page
0.5000
0.1394
test_1d_small_page
0.5018
0.1377
test_1e_small_page
0.5013
0.1362
test_2_create_tempfile
0.0018
0.0006
test_2_medium_page
1.4950
0.5396
test_2b_medium_page
1.4955
0.5362
test_2c_medium_page
1.4949
0.5372
test_2d_medium_page
1.4927
0.5366
test_2e_medium_page
1.4965
0.5376
test_3_large_page
4.3020
1.6656
test_3_write
0.1554
0.0348
test_3b_large_page
4.2496
1.6978
test_3c_large_page
4.2650
1.6691
test_3d_large_page
4.2501
1.6671
test_3e_large_page
4.2698
1.6658
test_4_append
0.1096
0.0288
test_4_huge_page
6.5672
2.6030
test_4b_append
0.1072
0.0282
test_4b_huge_page
6.5808
2.6000
test_4c_huge_page
6.5739
2.6074
test_4d_huge_page
6.5768
2.6006
test_4e_huge_page
6.5674
2.6003
test_5_fileinfo
0.3705
0.1101
test_6_read_1024
2.0055
0.7907
test_6b_read_512
2.1653
0.7381
test_6c_read_256
2.5338
1.0037
test_6d_read_128
4.2413
1.6938
test_6e_read_64
7.2141
2.7522
test_6f_read_32
13.0593
4.7837
test_6g_read_16
24.1039
9.4418
test_7_read_8
30.2461
14.2243
test_9_readdir
1.9800
0.5612
test_arithmetic
0.0049
0.0022
test_array_operators
0.0076
0.0028
test_bitwise
0.0009
0.0004
test_casting
0.0235
0.0094
test_chr_fixed
0.0297
0.0144
test_chr_hardcoded
0.0067
0.0025
test_chr_var
0.0269
0.0107
test_comment_loop
0.0024
0.0013
test_compare
0.0022
0.0007
test_compare_false
0.0002
0.0001
test_compare_invert
0.0003
0.0001
test_compare_strict
0.0004
0.0001
test_compare_unstrict
0.0009
0.0003
test_connect_db
0.0057
0.0021
test_constants
0.0038
0.0015
test_crc32
0.0025
0.0010
test_db_setup
0.5372
0.1721
test_del_file
0.0015
0.0005
test_del_tempdir
0.0010
0.0003
test_distinctcolumn
1.7714
0.5888
test_do_while
0.0081
0.0046
test_do_while_break
0.0026
0.0010
test_empty
0.0003
0.0001
test_empty_loop
0.0024
0.0013
test_fetcharray
1.0424
0.3956
test_fetchassoc
0.8615
0.3523
test_fetchlength
0.8797
0.3426
test_fetchrow
0.8571
0.3512
test_fieldflags
4.2034
1.3129
test_foreach
0.0524
0.0140
test_get_class
0.0035
0.0011
test_global_scalar_assign
0.0012
0.0005
test_global_string_assign
0.0081
0.0026
test_if_constant
0.0004
0.0002
test_increment
0.0028
0.0012
test_is_array
0.0009
0.0003
test_is_object
0.0008
0.0002
test_is_type
0.0024
0.0008
test_isset
0.0003
0.0001
test_line
0.0004
0.0002
test_local_array_assign
0.0371
0.0095
test_local_boolean_assign
0.0022
0.0007
test_local_float_assign
0.0019
0.0005
test_local_hash_assign
0.0015
0.0005
test_local_integer_assign
0.0018
0.0005
test_local_object_assign
0.0024
0.0008
test_local_scalar_assign
0.0028
0.0008
test_local_string_assign
0.0062
0.0026
test_maxget
0.7916
0.2809
test_md5
0.0045
0.0017
test_microtime
0.0158
0.0059
test_mt_rand
0.0012
0.0005
test_numfields
2.9782
0.9294
test_numrows
2.8206
0.9266
test_ord
0.1318
0.0460
test_ordered_functions
0.0233
0.0081
test_ordered_functions_references
0.0219
0.0084
test_page1a
0.2725
0.0731
test_page1b
0.2628
0.0721
test_page1c   
0.2614
0.0724
test_page1d
0.2731
0.0725
test_page1e
0.2685
0.0723
test_page2a
0.8477
0.2478
test_page2b
0.8401
0.2445
test_page2c
0.8429
0.2387
test_page2d
0.8600
0.2388
test_page2e
0.8596
0.2448
test_page3a
1.3348
0.4008
test_page3b
1.3314
0.3999
test_page3c   
1.3342
0.4022
test_page3d   
1.3350
0.4005
test_page3e
1.3223
0.4025
test_page4a
1.8538
0.6009
test_page4b
1.8515
0.6015
test_page4c
1.8387
0.6083
test_page4d
1.8492
0.6101
test_page4e
1.8893
0.6100
test_preg_match
0.0096
0.0031
test_rand
0.0017
0.0007
test_references
0.0005
0.0002
test_rowcount
0.3727
0.1194
test_sha1
0.0067
0.0019
test_sort
4.2313
1.4310
test_sort2
4.3091
1.4196
test_sort3
4.2213
1.4108
test_string_append
0.0048
0.0018
test_strlen
0.0009
0.0003
test_sumcolumn
0.7706
0.2766
test_switch
0.0062
0.0030
test_time
0.0016
0.0012
test_unordered_functions
0.0249
0.0092
test_variable_variables
0.0025
0.0007
test_while
0.0089
0.0052
test_write
0.5102
0.1655
test_write2
0.5368
0.1865
test_write3
0.5537
0.1849
test_write_cleanup
0.0080
0.0032
Total time
207
79

综合评分

  • 树莓派 145
  • Cubieboard 378
分类: Apache, ARM, Linux, MySQL, PHP, SharePoint 标签:

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

2013年4月15日 没有评论
Tests:20
Iterations:2000
Raspberry Pi
(second)
Cubieboard
(second)
test_page1a
2.4093
0.6339
test_page1b
2.3304
0.6385
test_page1c
2.3521
0.6372
test_page1d
2.3451
0.6397
test_page1e
2.3529
0.6372
test_page2a
6.3356
1.7043
test_page2b
6.3270
1.6969
test_page2c   
6.2947
1.7056
test_page2d
6.3061
1.7068
test_page2e
6.3076
1.7088
test_page3a
8.6845
2.5152
test_page3b
8.6823
2.4956
test_page3c
8.6976
2.4980
test_page3d
8.7069
2.4976
test_page3e
8.7027
2.4958
test_page4a
12.8597
3.9805
test_page4b
12.8648
3.9556
test_page4c
12.8386
4.0234
test_page4d
12.8357
3.9496
test_page4e
12.8058
3.9347
Total time
151
44

综合评分

  • 树莓派 199
  • Cubieboard 681
分类: ARM, Linux, MySQL, PHP, Raspberry Pi 标签:

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

2013年4月15日 没有评论
Tests:20
Iterations:500
Raspberry Pi
(second)
Cubieboard
(second)
test_1_small_page
1.2150
1.5180
test_1b_small_page
1.2119
0.3241
test_1c_small_page
1.2187
0.3265
test_1d_small_page
1.2204
0.3201
test_1e_small_page
1.2246
0.3228
test_2_medium_page
3.6202
1.2820
test_2b_medium_page
3.6529
1.2761
test_2c_medium_page
3.6296
1.2737
test_2d_medium_page
3.6286
1.2781
test_2e_medium_page
3.6214
1.2814
test_3_large_page
10.4628
4.0927
test_3b_large_page
10.4616
4.0879
test_3c_large_page
10.4361
4.0937
test_3d_large_page
10.4505
4.0914
test_3e_large_page
10.4668
4.1038
test_4_huge_page
16.1156
6.4219
test_4b_huge_page
16.1501
6.4097
test_4c_huge_page
16.1647
6.4061
test_4d_huge_page
16.2468
6.4114
test_4e_huge_page
16.2303
6.4059
Total time
157
62

综合评分

  • 树莓派 286
  • Cubieboard 729
分类: ARM, Linux, Raspberry Pi 标签: