本来以为 archlinuxarm.org 上有 Mele A100 的安装指南装起来会方便些,但实际操作过程中仍然踩了一些坑,这里记录一下备查。
我选择 Mele A2000 的原因就是因为有 SATA 口,使用最新的 U-boot 后有可能直接把根分区放在 SATA 盘上,这样比起根分区在 SD 卡或 USB2.0 硬盘启动要快很多。遗憾的是,archlinuxarm.org 上最新的 sun4i 架构 rootfs 中带的 kernel 内置的启动代码有点儿小问题,在新版 Mele A2000 的板子上会将 SATA 控制器时钟设置错误,导致 kernel 启动挂载 sata 盘分区时循环显示 sata 接口 reset 错误无法继续:
1 | [ 5.530000] ata1: SATA link down (SStatus 1 SControl 300) |
因此只有下载修正后的 kernel 代码自行编译内置了 sw_ahci_platform 模块的 uImage(以 Ubuntu 11.04 为例):
1 | $ sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi u-boot-tools |
然后:
- 将
arch/arm/boot/uImage
复制到 SD 卡启动 FAT 分区下覆盖从原 rootfs 中复制过来的同名文件 - 将
output/lib
目录复制到 sata 盘 rootfs 中的/usr/
目录下 - 重新启动应该就能正常从 sata 盘启动了
以上过程参考:
- http://linux-sunxi.org/Linux
- http://rhombus-tech.net/allwinner_a10/hacking_the_mele_a1000/Building_Debian_From_Source_Code_for_Mele/
启动之后的另一个问题就是无线网络,由于 archlinuxarm.org 上下载的 rootfs 是最小镜像,连配置网卡所需的 wireless_tools 包都没有装,需要自己编译一个放到 rootfs 里:
1 | wget http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz |
在你的 rootfs 上新增文件 /etc/ld.so.conf.d/local.conf
,内容只有一行 /usr/local/lib
,保存后运行 ldconfig
刷新动态库缓存
通过 wireless_tools 和 rootfs 中带的 wpa_supplicant 可以手动连接 WPA2 验证的无线网络,过程为:
- 当前目录新增 wpa_supplicant 配置文件 mine.conf,内容为:
1 | ctrl_interface=/var/run/wpa_supplicant |
modprobe 8192cu
,这步很重要!默认没有自动加载 rtl8192cu 无线驱动ip link set wlan0 up
wpa_supplicant -i wlan0 -c mine.conf -B
iwconfig wlan0 essid <无线接入点名称>
dhcpcd wlan0
能上网后一切都好说了。
以上过程参考:https://wiki.archlinux.org/index.php/Wireless_Setup#Manual_setup
更新: 目前 archlinuxarm.org 上下载的最新镜像已经修正了 SATA 时钟错误问题并内置了 sw_ahci_platform 模块,无需自行编译内核了。另外 wireless_tools 也不用自己编译了,可以直接下载 安装包 用 pacman 安装