一、编译
编译环境一般为我们所用的编译服务器。例如113,115,116服务器。
1)编译bootloder:
第一步:选择想要生成boot的芯片目录,并且进入所选目录。
第二步:一般来说没有配置信息,所以需要拷贝当前的配置信息到.config文件里面。
第三步:指定编译的工具链,并设置为环境变量编译boot。
然后make menuconfig进入菜单选择默认选项,界面如下:
选择默认配置,也就是刚才拷贝的.config配置Exit
选择Yes,然后make。
在当前目录下的btcode目录下生成的boot.bin文件。
Boot编译完成。
2)编译软件。
首先要进入我们所要编译的代码路径,并执行make menuconfig,结果如下:
第一步:Select Target,一般是选择我们软件所用到的芯片。
第二步:Select Kernel,选择内核,只有一个选项,默认即可。
第三步:Select Busybox,只有一个选项,默认即可。
第四步:Select toolchain,选择工具链,工具链的选择可以从代码根路径中Makefile查找对应芯片对应的工具链。
第五步:Select Board Configuration,选择我们所要编的软件型号。
Config kernel里面是一些控制宏,也就是例如config.linux-2.6.30.KL_CS160R_04291此类文件的菜单化,根据所需打开或关闭宏控制,界面如下:
Config Busybox和Config user作用和Config kernel一样,都是对于一些宏控的开关,根据所需要打开或者关闭,图形界面分别对应下面:
一切进行配置完毕后选择load default settings保存配置,之后make clean;make
在代码根目录下image目录生成以下文件:
1. fw.bin文件包含web文件,root 文件系统与linux内核,可以通关tftp和web页面两种方式升级。
2. Linux.bin文件只包含linux内核的文件。
3. Nfjrom一般是K值需要的文件。
4. Root.bin文件只包含root文件系统。
5. 以dat结尾的文件可以与fw.bin打包生成我们一般发布所需要的XX.flash与XX.web文件。
二、上传固件
1)上传固件所需要做的准备:
1、上传镜像必须要连接PC线与AP的lan口线。
2、修改PC端地址为静态地址并且为192.168.1.X。
2)上传。
1、上传boot。
在上面我们已经编译好生成了boot文件,在目录/bootcode_rtl8196d/btcode里面的boot.bin文件就是我们所要升级的boot文件。
①AP接上串口,并在串口下使用重启命令reboot,在启动过程中长按或者连续点击“Esc”按键直到串口进入BootLoader模式,如下界面:
②然后打开tftp服务器并且输入地址192.168.1.6与本地文件地址(boot.bin所在目录),点击上传,之后串口自动升级。
2、boot上传完毕,然后升级固件。
①进入到BootLoader模式下,然后tftp地址也是192.168.1.6,本地文件目录为要升级的固件的地址,这些文件可以是XX.flash、XX.web、fw.bin、root.bin、Linux.bin。例如下图:
②点击上传。除了XX.flash之外的软件都是不需要进行额外的操作可以直接升级的,但是如果是XX.flash文件,上传完毕后出现如下图:
③如图所示,输入命令flw 0 A0A00000 8000000完成后回车选择Y开始擦写flash如下图:
④升级完成同样是在BootLoader模式下,此时需重新拔电重启或者输入地址j bfc00000完成最后操作,升级完成。
3、除了在串口用tftp升级之外,还有一种页面升级的方法,位于系统管理菜单下:
页面升级可以升级除了下XX.flash之外的固件。
XX.web文件可以选择页面内升级勾选带配置的选项框或者在串口下升级都是可以带配置升级的,带配置就是升级后的路由信息被XX.web的信息所覆盖掉。