首页 > ARM Box, Linux > 为Cubieboard的TF卡安装Archlinux

为Cubieboard的TF卡安装Archlinux

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 标签:
  1. aiyanxu
    2013年4月19日17:33 | #1

    n楼主,为什么没看登录的用户名和密码啊

  2. tll
    2013年4月30日12:03 | #2

    @aiyanxu
    看见了还得了

  3. limo
    2013年5月28日20:03 | #3

    装完以后lsmod是空白?

  4. limo
    2013年5月28日20:04 | #4

    无法加载驱动?

  5. xg
    2013年11月20日14:58 | #5

    root/root

  1. 2013年4月22日23:50 | #1