1
2
|
|
这一步有与没有是一样的,但是有一点要注意,查看自己的mtab文件 sudo vi /etc/mtab 如果自己的SD卡挂载在类似/dev/sdb1之类的挂载点上,那就把sdb后面的数字删除掉。这在后面使用fdisk是必要的,我自己最开始的时候是挂载在/dev/sdb上的,后来格式化了几次就成了/dev/sdb1.之后就是copy sunxi-spl.bin和u-boot.bin
|
1 2 |
|
因为我是用的是u-boot v2013.07,所以使用的是这个,至于u-boot的交叉编译,在上一篇博文有提到我没有使用arm-none-lnux-gnueabi的原因而在linaro的主页上下载了linaro的交叉编译工具链,这个时候不能下载armeb的工具链,因为全志的是板子是小端存储模式的。之后就是对SD卡的分区了
1
2
3
4
5
|
sfdisk -R ${card}
cat
<<EOT | sfdisk --
in
-order -L -uM ${card}
1,16,c
,,L
EOT
|
这个我是不建议使用的,就是因为使用sfdisk的命令让我一直不成功。其实到现在还不知道为什么,-uM的参数表明是按兆分区的,应该是16兆(不知道是不是因为我买的金士顿SD卡是盗版的还是怎么的),不过从串口读出的信息显示推测应该是分区时覆盖了uImage神马的(具体的就说不出来了)。还是使用fdisk要保险一点。这里参数必须使/dev/sdb而不能是/dev/sdb1之类的,(使用fdisk之前要把SD卡卸载了,umount /dev/sdb)这就是之前要看一下mtab文件的原因,接下来格式化分区
mkfs.vfat ${card}${p}1
mkfs.ext4 ${card}${p}2
|
如果之前没有做第一步,这里就可以用mkfs.vfat /dev/sdb1之类的,至于boot.scr和script.bin就没什么好讲的,直接按照官网上来就可以了。这里就不讲/dev/sdb1里面的文件了,直接讲移植根文件系统和内核,编译内核的时候要是知道板子上的驱动可以把驱动先编译几个。
1
2
3
|
mount
${card}${p}2
/mnt/
tar
-C
/mnt/
-xjpf my-chosen-rootfs.
tar
.bz2
umount
/mnt
|
这里的根文件系统直接解压到/dev/sdb2,全志官网上的那个文件系统linaro已经不维护了,所以那个链接过期了。不过我当是找不到让我很不爽,于是自己在网上找到那个版本的然后就用了,不过倒霉了,由于不维护了,用这个文件系统什么都下载不了,什么git,ssh之类的,我当时还去改了很久的这个根文件系统的源库都不行,后来才知道是linaro官方不维护了,无语加呵呵了。长点经验,要下载资料就去官网下,本来Linux软件的更新就快,网上的资源都不知道是多久以前的,能不能用都不知道。之后就是去官网下载了,一切ok。
之后也别先急着去启动,修改fstab文件,修改了之后再去启动,可能有很多文章里面提到还要修改inittab文件,但是现在的系统里面已经没有文件了。不知道那些文章是多久之前的。启动之后就可以根据下面的网址更改串口控制https://help.ubuntu.com/community/SerialConsoleHowto