参考 : http://linux-sunxi.org/How_to_boot_the_A10_or_A20_over_the_network#Automatic 硬件 : http://www.100ask.org 的Cubieboard
默认的ubuntu12.04 LTS 32bit 没装NFS, 安装也很简单: 1. apt-get install nfs-kernel-server mkdir -p /var/nfsexport/arch/ 2. 设置共享目录 vi /etc/exports加上 /var/nfsexport *(rw,sync,no_root_squash,no_subtree_check) 3. 重启NFS: /etc/init.d/nfs-kernel-server restart 每次设置NFS共享目录,都必须重启NFS 。 下载并编译好kernel(笔者当时用的3.4.43)和script.bin(这部分可以看前面写的体验Cubieboard之制作最小系统章节) make ARCH=arm menuconfig 加上: CONFIG_IP_PNP=y CONFIG_SUNXI_EMAC=y CONFIG_ROOT_NFS=y 将uImage和script.bin拷贝到/var/nfsexport/arch/ 下载并编译好uboot 下载uboot.bin 和sunxi-spl.bin到SD卡 #dd if=spl/sunxi-spl.bin of=/dev/sdX bs=1024 seek=8 #dd if=u-boot.bin of=/dev/sdX bs=1024 seek=32 将SD卡插到板子,上电,接上ttl线,找到相应的com并设置crt, 按空格进入命令行,输入: setenv ethaddr 12:34:56:78:99:aa // 设置MAC 自动分配ip: setenv autoload no dhcp // 动态分配IP给板子 setenv serverip 192.168.1.109 // ubuntu ip saveenv // 执行dhcp后必须save,要不然ipaddr无法保存 setenv nfsroot ${serverip}:/var/nfsexport/arch/binary // 设置网络文件系统目录,这里必须放有 可用的文件系统 setenv bootcmd "nfs 0x43000000 ${nfsroot}/script.bin; nfs 0x48000000 ${nfsroot}/uImage; bootm 0x48000000" // 设置自启动命令,开机时自动nfs下载 setenv bootargs "console=ttyS0,115200 root=/dev/nfs init=/sbin/init nfsroot=${nfsroot} ip=${ipaddr}:${netmask}:${gatewayip}:::eth0" saveenv 4. 下载文件系统: wget https://releases.linaro.org/13.04/ubuntu/quantal-images/nano/linaro-quantal-nano-20130422-342.tar.gz 解压到共享目录: tar -xzf linaro-quantal-nano-20130422-342.tar.gz -C /var/nfsexport/arch 如果启动时卡在: 务必手动设置ip和网关: Sun7i# setenv netmask <netmask> Sun7i# setenv dnsip <dns> Sun7i# setenv gatewayip <gateway> Sun7i# setenv ipaddr <ip-address> 连上网线,必须保证能PING 服务器ubuntu 然后设置bootargs和nfsroot,保存savaenv 注意: 1. 用官方网址提供的ArchLinuxARM-sun4i-latest.tar.gz文件,启动卡在: timed out waiting for device sys-subsystem-net-device-eth0.device, 解决方法配置内核加上: CONFIG_FHANDLE=y
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y,登录时,用户名和密码都是root 2. 使用bsp提供的文件系统,启动也有点问题,必须加上init=/sbin/init 3. 如果启动时出现一直复位的现象,建议手动执行启动内核: bootm 48000000 4. 下载到一半会出现”T... T”,属于正常情况
|