> For the complete documentation index, see [llms.txt](https://bananapi.gitbook.io/banana-pi-bpi-r2-open-source-smart-router/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bananapi.gitbook.io/banana-pi-bpi-r2-open-source-smart-router/bpi-r2-source-code-on-github/bpi-r2-lede-source-code-for-hardware-nat.md).

# BPI-R2 LEDE source code for hardware NAT

**BPI-R2 LEDE source code for hardware NAT**

Source code

The source code is at: <https://github.com/garywangcn/bpi-r2_lede>

Please clone the code to local and checkout the code from branch \*\*bpi-r2-on-lede-v1\*\*.

Build

Follow the LEDE building instruction to compile the lede system, the target system is MediaTek Ralink ARM, the config file is attached.

Image

Please download the image I built from below link

<http://pan.baidu.com/s/1nuXqAVJ>

Boot with LEDE image

Step 1: Please program LEDE 2017-09-08 image to emmc by following

<http://forum.banana-pi.org/t/bpi-r2-new-image-openwrt-lede-2017-09-08/3797/19>

Step 2: Boot the board from EMMC, and enter U-boot shell.

Step 3: Load build\_dir/target-arm\_cortex-a7+neon-vfpv4\_musl\_eabi/linux-mediatek\_32/uImage-mt7623n-bananapi-bpi-r2-initramfs from host pc(tftp 84000000 uImage-mt7623n-bananapi-bpi-r2-initramfs). Before loading image, you may need to set/ipaddr/netmask/serverip in uboot

Step 4: Program the image to EMMC by run command:

`> mmc dev 0`

`> mmc write 84000000 1000 5800`

discuss on forum:

<http://forum.banana-pi.org/t/bpi-r2-lede-source-code-for-hardware-nat/3940>

**LEDE source code(Please note that the branch is bpi-r2-on-lede-v1)**  \
<https://github.com/garywangcn/bpi-r2_lede/tree/bpi-r2-on-lede-v1>

**Configurion of LEDE**

TARGET=MediaTek Ralink ARM Boot Loaders=u-boot-bpi\_r2 (This option is mandatory)

**How to build**  \
make -j1 V=s

**Images**  \
when above steps is done, we will below two images under \<TOP>/build\_dir/target-arm\_cortex-a7+neon-vfpv4\_musl\_eabi/linux-mediatek\_32/:

```
mtk-bpi-r2-EMMC.img

mtk-bpi-r2-SD.img
```

**How to use SD image**  \
A SD card is requried and then install mtk-bpi-r2-SD.img to SD card by running below command:

```
  dd if=mtk-bpi-r2-SD.img  of=/dev/sdb
```

where /dev/sdb is the SD card.

And then install the SD card to R2 board, power it on, the board will boot from SD card.

**How to use EMMC image**  \
We need another system which is running on SD card to program EMMC image to EMMC, please follow below steps to do:

1. Copy EMMC image to a running system which is on SD card
2. Program EMMC image to User Data Area of EMMC: dd if=mtk-bpi-r2-EMMC.img of=/dev/mmcblk0
3. Unlock EMMC boot0 block: echo 0 > /sys/block/mmcblk0boot0/force\_ro
4. Program preloader to EMMC boot0 block: dd if=mtk-bpi-r2-EMMC.img of=/dev/mmcblk0boot0 bs=1M count=1
5. Change the Partition configurion of EMMC is 48h: reboot the system which is running SD, and enter the U-boot command line, run command emmc pconf 48
6. Power off, remove SD card, and then power on R2 board.
