主题 : 【笔记】Cubieboard用NFS启动 复制链接 | 浏览器收藏 | 打印
我艹
级别: 新手上路
UID: 104847
精华: 0
发帖: 46
金钱: 235 两
威望: 47 点
贡献值: 0 点
综合积分: 92 分
注册时间: 2014-06-06
最后登录: 2019-06-21
楼主  发表于: 2014-08-14 10:08

 【笔记】Cubieboard用NFS启动

参考 : http://linux-sunxi.org/How_to_boot_the_A10_or_A20_over_the_network#Automatic

默认的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”,属于正常情况

来自 http://www.100ask.org