01_openWRT环境搭建文档

 

/*****************************************************************************************************************

  

                                                       Document Author : ELvins Fu

                                           Digtal technology park, A3 -06 , shenzhen, China   

                                                                             

      *************************************************************************************************************

      Module : Unversion Gateway Application 

      Software Version : 6.1.1

      Date : 2015-2016

      Description: the document include the envrionment install by special needs.

                      

********************************************************************************************************************/  

 

驱动环境搭建说明书

Version :0.1

 

简 介

本安装文档适用于Lantiq’s CPE 软件软件组件Universal Gateway(UGW)Release 6.1.1 版本的安装.

 

注意安装的目录一定要在用户工作目录下,否则后续编译会出现问题。

一:安装环境概要说明

1、其硬件参考平台为

•GRX300 Family:

–PXB 4310, V1.2

–PXB 4387, V2.1

–PXB 4369, V2.1

–PXB 4389, V2.1

–PXB 4389 720 MHz, V2.1

•XWAY™ ARX300 Family:

–XWAY™ ARX368 (PSB 50368), V1.2

–XWAY™ ARX388 (PSB 50388), V1.2

•XWAY™ xRX200 Family:

–XWAY™ VRX268 (PSB 80910), V1.2

–XWAY™ VRX288 (PSB 80920), V1.2

–XWAY™ GRX288 (PXB 4210), V1.2

•VRX220 Family:

–PSB 80220, V1.1

       –PSB 80221, V1.1

 

2、UGW 软件参考平台

UGW软件编译框架建立于openWRT发行版本。

Linux® Version: 3.10 LTS

Toolchain: GCC 4.8-linaro, uClibc-0.9.33.2, binutils-2013.05-66

 

3、UGW软件的先决条件

•Linux 3.10.xx内核

•至少512M内存和1G处理器

•安装实用工具

–glibc version ≥ 2.3.2

–automake ≥ 1.7.2

–autoconf ≥ 2.57

–bison

–gawk

–git

–flex

–zip, unzip

–bzip2, bunzip2

–gzip, gunzip

–zlib

–patch

–perl

–wget

–tar

–libncurses

–texinfo

        –python ≥ 2.6.5

注释:对于Ubuntu,额外的包libssl-dev, zlib1g-dev, libncurses5-dev, cl-yacc 需要安装。

 

  1. 安装UGW的CD

01_openWRT环境搭建文档

 

注释:Lantiq也许只给出install.sh

  1. 安装补丁

例如:

ubuntu@sky:~/work/Lantiq/Damai/UGW-6.1.1-SW-CD/Software/Sources$ ls

00-01-00-UGW-6.1.1-SW-CD-Day0-Generic-Patch.sh               

01-01-00-UGW-6.1.1-SW-CD-Day0-Session-Management-Patch.sh  02-01-00-UGW-6.1.1-SW-CD-Day0-Qos-Adaptation-Layer-Patch.sh  

03-01-00-UGW-6.1.1-SW-CD-Day0-GRX220-Telit-Patch.sh        

安装这四个脚本之后会生成ugw-patches目录

 

  1. 安装环境搭建
  2. 选择编译模块

sudo chmod -R 777 UGW-6.1.1

在UGW 6.1.1目录下

执行

•./scripts/ltq_change_environment.sh switch

会出现

 

[0]Abort

[01]   ./config/ARX388_GW_HE_ADSL_SAMPLE

[02]   ./config/GRX220_GW_EL_ETHWAN_LTE

[03]   ./config/GRX288_GW_HE_ETHWAN_LTE_SAMPLE

[04]   ./config/GRX300_GW_HE_ETHWAN_16K_SAMPLE

[05]   ./config/GRX300_GW_HE_VDSL_LTE

[06]   ./config/GRX300_GW_HE_VDSL_LTE_DEBUG_SAMPLE

[07]   ./config/GRX300_GW_HE_VDSL_LTE_WITH_COMPACTION_SAMPLE

[08]   ./config/GRX300_RT_HE_ETHWAN_LTE

[09]   ./config/GRX330_GW_HE_GFAST_ETHWAN_SAMPLE

[10]   ./config/GRX330_GW_HE_VDSL_LTE_BLNR_SAMPLE

[11]   ./config/GRX330_GW_HE_VDSL_LTE

[12]   ./config/GRX330_GW_HE_VDSL_LTE_QTN_2RGMII_SAMPLE

[13]   ./config/GRX330_GW_HE_VDSL_LTE_QTN_RGMII_SAMPLE

[14]   ./config/GRX330_RT_HE_ETHWAN_LTE

[15]   ./config/VRX220_GW_EL_VDSL_SPI

[16]   ./config/VRX220_RT_EL_VDSL

[17]   ./config/VRX288_GW_HE_VDSL_LTE

[18]   ./config/VRX288_GW_HE_VDSL_LTE_NFS_SAMPLE

选择合适的模型,Make编译之后,最终在UGW-6.1.1/bin/lantiq/<model-name>/ 目录下生成最终的镜像文件

•u-boot.ltq

•u-boot-nand.bin

•gphy_firmware.img

•uImage

•rootfs.img

•firmware.img

•fullimage.img

 

  1. 编译过程

•压缩包从dl/解压到build_dir/

用户空间的包解压在build_dir/target-mips_r2_uClibc-0.9.33.2_<model-name>/

用户内核头信息编译在

build_dir/linux_lantiq_<model-name>/.

主机使用工具的临时文件在

build_dir/host

•工具链编译在

build_dir/toolchain_<arch>_<gcc_version>_uClibc<version>/

安装在

staging_dir/toolchain_<arch>_<gcc_version>_uClibc<version>/.

•编译系统补丁在

target/linux/lantiq/patches-3.10/

复制target/linux/files/ 下的文件到build_dir/linux_lantiq_<model-name>/.

•文件系统在

target/Linux®/lantiq/base-files/

复制到build_dir/target-mips_r2_uClibc-0.9.33.2/root-lantiq/

 

  1. 菜单配置

01_openWRT环境搭建文档

 

注释:各个环境的菜单命令有所不同,根据具体的模型和用户所需求的设计进行更改。

 

  1. 额外命令

•make package/feeds/open_applications/busybox-prepare or make package/feeds/open_applications/busybox/prepare

•make package/feeds/open_applications/busybox-compile or make package/feeds/open_applications/busybox/compile

•make package/feeds/open_applications/busybox/install

•make target/linux/prepare

•make target/linux/compile

•make target/linux/install

•make package/kernel/install

•make rootfs

•make firmware

•make fullimage

•make package/feeds/ltq_feeds_uboot/open_uboot/install

•make target/linux/install

 

  1. 系统环境建立和开始
  2. 系统建立

Lantiq设备(CPE)的典型建立过程如下:

01_openWRT环境搭建文档

 

本地建立

-参考版

-主机PC

 

远程控制(可选)

-DSLAM

-B-RAS

 

 

Lantiq设备(CPE)的数据流图如下

01_openWRT环境搭建文档

 

 

 

  1. 更新开发板的镜像

打开开发板的电源

打开超级终端

     -速率 115200

     -数据位 8

     -检验位 无

     -停止位 1

     -流控   无

建立tftp传输环境

烧写uboot、内核与文件系统

 

  1. 备份和恢复/保存WIFI校准文件

对于GRX300ARX388:备份WIFI校准文件

cd /tmp/

read_img wlanconfig wlanconfig.tar.gz

tar -xvzf wlanconfig.tar.gz

tftp p-1 cal_wlan0.bin 192.168.X.X 

 

对于GRX300ARX388:恢复/保存WIFI校准文件

tftp g-r cal_wlan0.bin 192.168.X.X 

/etc/rc.d/wave_wlan_dut write

注释:只针对GRX300ARX388硬件参考平台

 

  1. 烧写过程

烧写启动代码uboot

有的开发板利用USB烧录,有的开发板利用UART串口烧录,本文以通过UART烧录为例(默认烧入到NAND Flash中) 。

-打开串口终端

-使用终端发送uboot.asc(倘若开发板中无启动程序)

-烧写uboot

01_openWRT环境搭建文档

 

-将开发板转为NAND Flash启动

-设置服务器(Ubuntu)和开发板的IP地址

01_openWRT环境搭建文档

 

 

 

-更新内核和文件系统

01_openWRT环境搭建文档

 

注释:各种平台的烧录命令不一样,请根据具体的参考文档作出相应的改变。

 

  1. 登录(参考文档中会有)

例如

Ltcqe login:root (开发板登录名)

Password : admin  (开发板密码)

 

 

  1. 外部工具链和uboot的修改
  2. 外部工具栏的使用

make menuconfig使用菜单界面进行配置       

-选用默认模型配置编译UGW。

从UGW-6.1.1/staging_dir中拷贝已经编译好的工具链toolchain-mips_r2_gcc-4.8-linaro_uClibc-0.9.33.2到你的备份位置,如/opt/cross/toolchain-mips_r2_gcc-4.8-linaro_uClibc-0.9.33.2。

-修改环境变量/etc/profile中的PATH(加上你的工具链的路径)

-在make  menuconfig 中去选择[*] Advanced configuration options (for developers)  --->

     [*]   Use external toolchain  --->  

                      Toolchain root(填上你的工具链的路径) 。

 

make编译即是使用外部的工具链,

 

  1. uboot的修改

例如我们将uboot默认从SPI Flash启动,那么必须修改uboot的环境参数,具体如下

 

VR9 # print

bootcmd=run flash_flash

bootdelay=5

baudrate=115200

preboot=echo;echo Type \"run flash_nfs\" to mount root filesystem over NFS;echo bootfile="uImage"

mem=62M

phym=64M

ethaddr=00:E0:92:00:01:40

netdev=eth0

console=ttyLTQ0

tftppath=

loadaddr=0x80800000

rootpath=/mnt/full_fs

rootfsmtd=/dev/mtdblock3

nfsargs=ramargs=setenv bootargs root=/dev/ram rw addip=setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname):$(netdev):on

addmisc=setenv bootargs $(bootargs) console=$(console),$(baudrate) ethaddr=$(ethaddr) mem=$(mem) panic=1 mtdparts=$(mtdparts) init=/etc/preinit vpe1_load_addr=0x83f00000 vpe1_mem=1M ubootver=$(ver)

flash_nfs=

net_nfs=

net_flash=

net_ram=tftp $(loadaddr) $(tftppath)$(bootfile);run ramargs addip addmisc;bootm

u-boot=u-boot.ltq

rootfs=rootfs.img

firmware=firmware.img

fullimage=fullimage.img

totalimage=totalimage.img

load=tftp $(loadaddr) $(u-boot)

update=protect off 1:0-2;era 1:0-2;cp.b $(loadaddr) B0000000 $(filesize)

flashargs=setenv bootargs root=$(rootfsmtd) ro rootfstype=squashfs quiet

flash_flash=sf probe 3;sf read $(loadaddr) $(f_kernel_addr) $(f_kernel_size);run flashargs addip addmisc;bootm

 $(loadaddr); run update_fullimage; reset

update_uboot=tftpboot $(loadaddr) $(tftppath)$(u-boot);sf probe 0:3;sf erase 0 10000;sf write $(loadaddr) 0 $(

filesize);run reset_sysconfig;reset

update_kernel=tftpboot $(loadaddr) $(tftppath)$(bootfile);upgrade $(loadaddr) $(filesize)

update_bootloader=run update_uboot;run update_gphyfirmware

update_rootfs=tftpboot $(loadaddr) $(tftppath)$(rootfs);upgrade $(loadaddr) $(filesize)

update_firmware=tftpboot $(loadaddr) $(tftppath)$(firmware);upgrade $(loadaddr) $(filesize)

update_fullimage=tftpboot $(loadaddr) $(tftppath)$(fullimage);upgrade $(loadaddr) $(filesize)

update_totalimage=tftpboot $(loadaddr) $(tftppath)$(totalimage);upgrade $(loadaddr) $(filesize)

update_gphyfirmware=tftpboot $(loadaddr) $(tftppath)gphy_firmware.img;sf probe 3;sf erase 10000 20000;sf write

 $(loadaddr) 10000 $(filesize);reset

gphy_fw_addr=0x10000

reset_uboot_config=sf probe 3; sf write 80400000 $(f_ubootconfig_addr) $(f_ubootconfig_size)

reset_ddr_config=sf probe 3; sf write 80400000 $(f_ddrconfig_addr) $(f_ddrconfig_size)

reset_sysconfig=sf probe 3;sf erase $(f_sysconfig_addr) 10000

mtdparts=ltq_sflash:64k(uboot),64k(gphyfirmware),512k(firmware),13568k(rootfs),2048k(data),64k(sysconfig),8k(ubootconfig),4k(dectconfig),8k(wlanconfig),-(res)

part0_begin=0x00000000

part1_begin=0x00010000

part2_begin=0x00020000

part3_begin=0x000A0000

total_part=4

flash_end=0x00FFFFFF

data_block0=uboot

data_block1=gphy_firmware

data_block2=firmware

data_block3=rootfs

data_block4=kernel

data_block5=data

data_block6=sysconfig

data_block7=ubootconfig

data_block8=dectconfig

data_block9=wlanconfig

total_db=10

f_uboot_addr=0x00000000

f_uboot_size=0

f_ubootconfig_addr=0x00FF0000

f_ubootconfig_size=0x2000

f_ubootconfig_end=0x00FF1FFF

f_gphy_firmware_addr=0x00010000

f_gphy_firmware_size=0

f_gphy_firmware_end=IFX_CFG_FLASH_GPHY_FIRMWARE_IMAGE_END_ADDR

f_kernel_addr=0x00DDFFFF

f_kernel_size=0

f_kernel_end=IFX_CFG_FLASH_KERNEL_IMAGE_END_ADDR

f_rootfs_addr=0x000A0000

f_rootfs_size=0

f_rootfs_end=IFX_CFG_FLASH_ROOTFS_IMAGE_END_ADDR

f_firmware_addr=0x00020000

f_firmware_size=0

f_fwdiag_addr=IFX_CFG_FLASH_FIRMWARE_DIAG_START_ADDR

f_fwdiag_size=IFX_CFG_FLASH_FIRMWARE_DIAG_SIZE

f_sysconfig_addr=0x00FE0000

f_sysconfig_size=0x10000

f_dectconfig_addr=0x00FF2000

f_dectconfig_size=0x1000

f_wlanconfig_addr= 0x00FF3000

f_wlanconfig_size=0x2000

f_ddrconfig_addr=0x0000FFE0

f_ddrconfig_size=32

f_ddrconfig_end=0x0000ffff

f_data_addr=0x00DE0000

f_data_size=0x200000

f_data_end=0x00FDFFFF

ethact=vr9 Switch

ipaddr=192.168.2.50

serverip=192.168.2.48

stdin=serial

stdout=serial

stderr=serial

ver=U-Boot-2010.06-LANTIQ-v-2.3.16.1

 

 

根据这些环境参数修改菜单中的ubootloader中的envrionment setting参数。

 

注释:外部工具链的权限问题,参数合适与正确的修改。

 

上一篇:0x05 设备漏洞---firmware-analysis-toolkit报错


下一篇:华硕Tinker Board开发板(rk3288处理器)开发 ---- 生成update.img,制作启动SD