cubieboard2入手有快1年时间了,一直没有详细弄过,这次在家里把它重新刷了个server版本,这里详细介绍下刷服务器版本的步骤。
使用的官方的 cb-a20-lubuntu-server-13.06-v1.00.img 文件,由于官方提供的地址已经失效,好不容易找到了一个镜像下载下来,相关资源我都放在百度云盘里了,包括这个镜像文件,下载地址 http://pan.baidu.com/s/1dDmrmE1

刷机
在网盘里下载好所有的文件,然后在window下安装 PhoenixSuit1.0.6.rar 的程序,这个是刷机程序,刷机很简单。
在cb板子USB接口下有个刷机模式按钮,按住并用USB接电脑,这时会提示安装驱动,安装好后,PhoenixSuit 就可以识别到了,然后在“一键刷机”菜单中选择你下载下来的IMG文件,然后点击刷机,会有个安全提示,点击yes就可以了,等待1分钟左右就可以刷完了,提示成功后就可以拔下来接点启动了。

刷好系统后,进入系统
经测试这个系统默认的root密码是123456,一定要修改掉并禁用密码登录,之前我就因为没有注意到这个问题,直接把它挂在公网上几天后发现盒子被别人莫名的登录过了,还把我的ssh的公钥给删掉了,还好这家伙没有修改盒子的密码,于是赶紧重刷系统。

使用 passwd root 修改root密码
然后再 vim /etc/ssh/sshd_config 把 PasswordAuthentication 改成 no,保存
vim ~/.ssh/authorized_keys (没有.ssh目录的话自行创建),然后把自己的公钥加进去

执行 /etc/init.d/ssh restart

接下来就是要固定一下网卡mac地址,否则每次重启后都会分配一个随机的网卡地址
vim /etc/network/interfaces
在最后加入 hwaddress ether aa:aa:aa:aa:aa:aa
后面的网卡地址 aa:aa:aa:aa:aa:aa 换成自己想要的
然后执行 ifconfig eth0 down && ifconfig eth0 up

修改下时区(默认是0)
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
同步下系统时间
ntpdate 0.pool.ntp.org
设置时区,否则后面运行部分程序会出问题

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales

调整分区,将2G调整成3.6G
(下载nand-part文件或使用我百度网盘里的 nand-part 文件)

wget http://dl.cubieforums.com/patwood/nand-part
chmod +x nand-part
./nand-part /dev/nand "env 32768" "boot 65536" "rootfs 7536640" "swap 0"
reboot

重启后执行
resize2fs -f /dev/nandd
(此处参考的是 https://gist.github.com/dkilcy/7123580 )

df -lh
后可以看到空间由原来的2G增到了3.6G

调整前

Filesystem      Size  Used Avail Use% Mounted on
/dev/nandd      2.0G  1.1G  871M  55% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none             91M  176K   91M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            454M     0  454M   0% /run/shm
none            100M     0  100M   0% /run/user

调整后

Filesystem      Size  Used Avail Use% Mounted on
/dev/nandd      3.6G  1.1G  2.4G  32% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none             91M  172K   91M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            454M     0  454M   0% /run/shm
none            100M     0  100M   0% /run/user

系统默认安装了apache,由于cb板子性能有限,我建议使用nginx而不是apache,所以我把apache给卸载了
/etc/init.d/apache2 stop
apt-get autoremove apache2

在安装nginx前,先升级下apt包
apt-get update
apt-get upgrade

安装nginx
apt-get install nginx

修改下配置 vim /etc/nginx/nginx.conf 由于cb板子只有双核,所以把进程数改小点
worker_processes 2;
安装好后
/etc/init.d/nginx start
启动,打开浏览器访问试试

系统已经安装好了php但是并没有安装php-fpm,所以现在安装下php-fpm
安装好后,启动php-fpm
/etc/init.d/php5-fpm start

修改nginx配置
vi /etc/nginx/sites-available/default

修改默认目录到 root /var/www/;

加入

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

并在index配置中加入 index.php
index index.html index.htm index.php;

然后重启nginx
/etc/init.d/nginx reload

重启后,vim /var/root/test.php 写入

<?php
phpinfo();

保存。打开地址栏试试

接下来开启 MySQL
使用 /etc/init.d/mysql start 后会发现提示如下失败错误:

Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql start

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start mysql
start: Job failed to start

这个原因主要是mysql的/var/lib/mysql目录权限的问题
chown -R mysql:mysql /var/lib/mysql
后重新执行 /etc/init.d/mysql start 就可以启动了

安装 nodejs
我先前使用 apt-get 安装 nodejs 后发现版本太低,所以决定在官网上下载最新版本进行编译安装。
由于这个系统没有安装gcc,所以先安装一个gcc

apt-get install gcc

wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz
tar zxvf node-v0.10.26.tar.gz
cd node-v0.10.26
./configure --without-snapshot
make
make install

PS:这个CPU编译个nodejs好慢,所以没耐心的话,建议丢在 screen 里编译,然后爱干嘛干嘛去,呵呵。

这里可以普及下 screen 的用法:
先 apt-get install screen 安装 screen
使用 screen -S nodejs 进入一个新窗口(其中nodejs是名称),如果你需要退出当前屏幕,你可以同时按下 control + a ,然后再同时按 controll + d 就可以退出来了
以后你可以使用 screen -ls 查看当前有的屏幕,比如:

There is a screen on:
    17263.nodejs    (04/27/14 20:18:39) (Detached)
1 Socket in /var/run/screen/S-root.

然后就可以通过 screen -r 17263 进入这个屏幕。退出很简单,只要 control + d 就可以了

由于ARM架构的系统无法使用 snapshot ,所以编译时要 –without-snapshot
另外,看到有人成功移植过去,我没试过,可参考 http://blog.163.com/xs_fantasy/blog/static/101560871201322341714377