Hi3518内核和文件系统烧写以及nfs挂载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hi3518内核和文件系统烧写以及NFS挂载
修改履历
第一步编译内核和文件系统
文档说明:涉及到目录的请根据自己的实际情况进行更改,本文档仅根据笔者的测试进行举例说明。
1 安装交叉编译器
cd arm-hisiv100nptl-linux
./cross.install
说明:3518e推荐使用100nptl进行编译,arm-hisiv100nptl-linux-(使用uclibc库,uclibc 工具链支持全规格版本和小型化版本
)arm-hisiv200-linux-(glibc 库glibc 工具链只支持全规格版本),实验时没有使用hisiv200,不确定会出什么问题,不推荐使用。
2 编译步骤
cd ./linux-3.0.y
./mk3518.sh
mk3518.sh 脚本里面包含了编译linux内核所需的所有的命令,具体看mk3518.sh文件,编译成功将生成在目录arch/arm/boot/uImage文件,这个就是要烧录到板子上的
注意:大小大约为1M。大于1M也许会出问题,在实验前期都是大于1M,烧录的时候出问题。
制作rootfs文件系统,使用的是最新的squashfs只读文件系统,使用的工具为mksquashfs,目录squashfs4.2为这个工具的代码
rm ./rootfs.squashfs //仅仅为了删除之前存在的文件系统,如果没有,可不执行这一步。
./mksquashfs ./rootfsrootfs.squashfs -b 256K
cp ./rootfs.squashfs ./tftpboot //可不用命令,自己拷贝,黏贴,文件夹根据自己实际情况所定。
生成的rootfs.squashfs这个就是要烧录到板子上的文件
注意:生成的文件大约为1.5M
地址空间说明
| 256K | 1M | 1.5M |
|------------|---------------|-----------------------|
| boot | kernel | rootfs |
剩下5.25M可以由用户自由使用。
可以看出如果文件超出限制,将会出现内存不够的错误。烧写前期遇到几次提示内存不足的错误。
第二步烧写内核和文件系统
1 烧写工具安装和配置
win7下使用tftod32和secureCRT 进行烧写。
a、安装usb转串口的驱动
在~/usb驱动/WIN7驱动2/Prolific_DriverInstaller_v110.exe目录下
安装后到设备管理器中查看是否安装成功。
注:有时系统会自己安装,安装以后只要secureCRT设置正确,仍可以正常使用,如果不能正常使用,请尝试卸载系统自动安装的,使用hisi提供的驱动。
b、安装tftpd32软件,在百度上面随便搜索一个下载,安装后,打开tftpd32软件。其中当前目录指的是安装tftpd32的安装目录,点击显示目录可以看到该目录下的内容。后面要烧录的镜像文件都是放在这个目录下的,在u-boot控制命令台加载镜像文件的时候,自动从该目录下搜索指定的镜像文件。
服务器IP地址指的是当前PC机的IP地址,当打开tftpd32软件的时候,会自动把你当前PC上的IP地址加载到此处。如果你想修改服务器的IP地址,直接把你的PC的IP地址修改后,打开tftpd32软件,会自动加载的。
注:烧录基本不用远程服务器,如果有兴趣可以研究使用远程服务器烧录,不推荐使用远程服务器。
c、安装SecureCTR软件,具体步骤请百度。
首先打开SecureCTR软件,选择快速链接,会弹出一个选项框。
在Protocla 下拉菜单中选择 serial ;
Port的选择依据安装驱动时分配的com端口;
波特率选择115200
点击ok
当窗口出现绿色勾时表明链接成功。
d、重新启动开发板,按住ctrl+c进入u-boot的控制台,再根据烧录步骤,输入命令烧kernel和文件系统。但是一定要把相关镜像文件拷贝到tftpd32的安装目录下,不然找不到。
注。切记uImage和 rootfs一定要拷贝到tftpd32的根目录下。
2 烧写过程
注:千万不要忘记把tftpd32打开并进行设置
uboot烧写内核
set serverip 192.168.16.100
mw.b 0x82000000 0xFF 0x100000
tftp 0x82000000 uImage
sf probe 0
sf erase 0x40000 0x100000
sf write 0x82000000 0x40000 0x100000
烧写rootfs文件系统
mw.b 0x82000000 0xFF 0x180000
tftp 0x82000000 rootfs.squashfs
sf probe 0
sf erase 0x140000 0x180000
sf write 0x82000000 0x140000 0x180000
设置启动参数和启动命令
setenvbootargs 'mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=squashfsmtdparts=hi_sfc:256K(boot),1M(kernel),1536K(rootfs),5 376K(user)'
setenvbootcmd 'sf probe 0;sf read 0x82000000 0x40000 0x100000;bootm
0x82000000'
saveenv
reset