[Banana Pi BPI-R64] Mainline OpenWRT image

Update: I tested things a lot and pushed to the main repository:

Hi I try compile compile your staging tree and have got error during compiling:

aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/kernel/head.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/kernel/smccc-call.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/clear_page.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/clear_user.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/copy_from_user.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/copy_in_user.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/copy_page.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/copy_to_user.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/memchr.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/memcmp.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/memcpy.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/memmove.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/memset.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/strchr.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/strcmp.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/strlen.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/strncmp.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/strnlen.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/strrchr.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/tishift.o' being placed in section `__ksymtab_strings'
  KSYMS   .tmp_vmlinux.kallsyms2.S
  AS      .tmp_vmlinux.kallsyms2.S
  LD      vmlinux
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/kernel/head.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/kernel/smccc-call.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/clear_page.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/clear_user.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/copy_from_user.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/copy_in_user.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/copy_page.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/copy_to_user.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/memchr.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/memcmp.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/memcpy.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/memmove.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/memset.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/strchr.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/strcmp.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/strlen.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/strncmp.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/strnlen.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/strrchr.o' being placed in section `__ksymtab_strings'
aarch64-openwrt-linux-musl-ld: warning: orphan section `__ksymtab_strings' from `arch/arm64/lib/tishift.o' being placed in section `__ksymtab_strings'
  SORTTAB vmlinux
  SYSMAP  System.map
  OBJCOPY arch/arm64/boot/Image
make[5]: Leaving directory '/home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23'
cmp -s /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/vmlinux /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/vmlinux-initramfs.debug || { aarch64-openwrt-linux-musl-objcopy -O binary -R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id -S /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/vmlinux /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/vmlinux-initramfs; aarch64-openwrt-linux-musl-objcopy -R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id -S /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/vmlinux /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/vmlinux-initramfs.elf; cp -fpR /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/vmlinux /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/vmlinux-initramfs.debug;  cp -fpR /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot//Image /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/Image-initramfs;  }
touch /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/.image
make -C image compile install TARGET_BUILD=
make[5]: Entering directory '/home/dmitry/DTS_Test/target/linux/mediatek/image'
make[5]: Nothing to be done for 'compile'.
aarch64-openwrt-linux-musl-cpp -nostdinc -x assembler-with-cpp -I/home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot/dts/mediatek -I/home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot/dts/mediatek/include -I/home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/include/ -undef -D__DTS__  -o /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/image-mt7622-bananapi-bpi-r64.dtb.tmp /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
/home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/scripts/dtc/dtc -O dtb -i/home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot/dts/mediatek/ -Wno-unit_address_vs_reg -Wno-simple_bus_reg -Wno-unit_address_format -Wno-pci_bridge -Wno-pci_device_bus_num -Wno-pci_device_reg -Wno-avoid_unnecessary_addr_size -Wno-alias_paths -Wno-graph_child_address -Wno-graph_port -Wno-unique_unit_address  -@ -o /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/image-mt7622-bananapi-bpi-r64.dtb /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/image-mt7622-bananapi-bpi-r64.dtb.tmp
/home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot/dts/mediatek/mt7622.dtsi:257.40-264.4: Warning (interrupt_provider): /interrupt-controller@10200620: Missing #address-cells in interrupt provider
/home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot/dts/mediatek/mt7622.dtsi:300.24-312.4: Warning (interrupt_provider): /pinctrl@10211000: Missing #address-cells in interrupt provider
  also defined at /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts:285.6-545.3
/home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot/dts/mediatek/mt7622.dtsi:329.37-338.4: Warning (interrupt_provider): /interrupt-controller@10300000: Missing #address-cells in interrupt provider
rm -f /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/image-mt7622-bananapi-bpi-r64.dtb.tmp
aarch64-openwrt-linux-musl-cpp -nostdinc -x assembler-with-cpp -I/home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot/dts/mediatek -I/home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot/dts/mediatek/include -I/home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/include/ -undef -D__DTS__  -o /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/image-mt7622-bananapi-bpi-r64-pcie1.dtb.tmp /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64-pcie1.dts
aarch64-openwrt-linux-musl-cpp: error: /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/linux-5.10.23/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64-pcie1.dts: No such file or directory
aarch64-openwrt-linux-musl-cpp: warning: '-x assembler-with-cpp' after last input file has no effect
aarch64-openwrt-linux-musl-cpp: fatal error: no input files
compilation terminated.
make[5]: *** [Makefile:40: /home/dmitry/DTS_Test/build_dir/target-aarch64_cortex-a53_musl/linux-mediatek_mt7622/image-mt7622-bananapi-bpi-r64-pcie1.dtb] Error 1
make[5]: Leaving directory '/home/dmitry/DTS_Test/target/linux/mediatek/image'
make[4]: *** [Makefile:18: install] Error 2
make[4]: Leaving directory '/home/dmitry/DTS_Test/target/linux/mediatek'
make[3]: *** [Makefile:11: install] Error 2
make[3]: Leaving directory '/home/dmitry/DTS_Test/target/linux'
time: target/linux/install#22.36#5.97#28.08
    ERROR: target/linux failed to build.
make[2]: *** [target/Makefile:25: target/linux/install] Error 1
make[2]: Leaving directory '/home/dmitry/DTS_Test'
make[1]: *** [target/Makefile:19: /home/dmitry/DTS_Test/staging_dir/target-aarch64_cortex-a53_musl/stamp/.target_install] Error 2
make[1]: Leaving directory '/home/dmitry/DTS_Test'
make: *** [/home/dmitry/DTS_Test/include/toplevel.mk:230: world] Ошибка 2

@deema sorry, this was caused by an omission in the commits I had pushed. I forced-pushed an update and also pushed to openwrt.git, the buildbot is munging on it in this moment:

https://buildbot.openwrt.org/master/images/#/builders/44/builds/6

(so in an hour or two we will have images on downloads.openwrt.org)

Update: yet another small bug (caused by uncareful copy&paste on my end), caused the generated U-Boot for eMMC to contain the environment for SDMMC. Fixed now:

Hi, I want make clear. U-boot and bl2 flashing in eMMC only when I pick “Install bootloader and recovery to eMMC.” from SD u-boot menu?

You can do that manually in the U-Boot shell as well. From within Linux you can write to the eMMC, but I haven’t tried writing to the boot0 hardware partition in that way (may require some extra locks to be broken).

Using the option to install to eMMC in the bootloader menu is the easiest way. If you don’t have serial access, you can trigger the installation on the next boot from within OpenWrt running from the SD Card like this:

fw_setenv bootcmd run emmc_init

Buildbot for mt7622 running again:

https://buildbot.openwrt.org/master/images/#/builders/44/builds/8

Once this has completed, there will be images on downloads.openwrt.org containing both, the changes needed to select either SATA or PCIE1 at boot as well as fixed environment for eMMC installation.

I have install new build, but how activate sata support.

I found IT:

fw_setenv bootconf config-mt7622-bananapi-bpi-r64-sata

and reboot.

I had try new build. It work fine. Sata port have work.

Should work as on other images (maybe need to prepare hw-partitions with mmc utils).

root@bpi-r64:~# echo 0 > /sys/block/mmcblk1boot0/force_ro
root@bpi-r64:~# dd if=bl2_emmc.bin of=/dev/mmcblk1boot0

If it does not boot from emmc check/set partition config with mmcutils (needs to be 0x48)

root@bpi-r64:~# ./mmc extcsd read /dev/mmcblk1 | grep 'PARTITION_CONFIG'                                                                                       
Boot configuration bytes [PARTITION_CONFIG: 0x00]
root@bpi-r64:~# ./mmc bootpart enable 1 1 /dev/mmcblk1                                                                                                         
root@bpi-r64:~# ./mmc extcsd read /dev/mmcblk1 | grep 'PARTITION_CONFIG'                                                                                       
Boot configuration bytes [PARTITION_CONFIG: 0x48]

Hello, i have a bpi-r64 (mt7622) with lede 17 snapshot instaled, i want to move to openwrt last stable 19. But i don’t understand how to install from scratch. Thanks for your reply.

Flash openwrt-mediatek-mt7622-bananapi_bpi-r64-sdcard.img to SD card (by Win32Diskimager for example). Boot from SD and flash loader by command “Install bootloader and recovery to eMMC.”. Reboot from eMMC and load sysupgrade image by tftp server (tftpd64 for example) . More information you can see there

1 Like

in U-boot how i can change the ip of tftp server ? sr9UxowSPK

By default env var serverip is used.

you can do

printenv serverip
setenv serverip 192.168.0.10

And try again

1 Like

thanks it’s working :slight_smile: but now i get this : os7krE13H2

seems like the revovery.itb does not contain an config-node maybe @dangowrt have an idea…

i download the lasted version and it seems to work

Did you follow the OpenWrt guide?

It seems a little complicated. I have not yet tried it as hardware wise the bpi-r2 would be great as an OpenWrt router.

Or does the latest OpenWrt snapshot install normally, without the drama?

Hi. I have solved my trouble with internet. When I power on my BPI with modem, internet appear not immediately with luci, but only after 30-40 sec. I have noted that fist time wan load with IP 192.168.100.2 but some time late it reconnect with IP witch gave modem. To speed up this process I have create script which reboot wan if it’s IP 192.168.100.2:

WANIP=$(/sbin/ifconfig wan | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
BADIP="192.168.100.2"


if [ $WANIP = $BADIP ]
then
logger Wan Stop $WANIP
ifdown wan
sleep 10
ifup wan
logger Wan Start
fi

I putted it to: luci->system->startup->local startup

192.168.100.2 looks like a configured address…imho it will be better to remove this config…i guess you get your public-ip on wan,right?