[BPI-M64] Kernel Development 2019

yes I was chewing on that too (see Banana PI BPI-M64 Debian 9.5 Image update attempt)

I think this part is mainly a copy & past from bpi1 to bpi3 and I meanwhile try to avoid those scripts.

U-boot sits in the first 100MB of the boot partition. So I essentially dd the content of ./SD/bpi-m64/100MB/BPI-M64-720P-linux4.4-8k.img.gz in the build folder to this partition. This however is essentially packed together from from the files in e.g. ./out/tulip-m64/.

When I get home I will try to precise that a bit more clear…

So the only thing I need in boot is the bootloader like in the case of R2.

and then now I need to find a kernel source for m64.

Yes,

I usually just copy over an existing boot SD card, as @frank-w suggested for the R2.

Unfortunatly the only source available for now is the 4.4-kernel here:

which is the base for this kernel:

But I hope we soon see the sources of either of the following:

Thanks for the reply. I see the device doesn’t have any os by default and it doesn’t have a uboot or bootloader of its own when i try to power up. Nothing comes on. Will try with uart.

Also will try pine64+ img tonight and see how it responds

After bulding all files you end up with something like:

./SD/
     bpi-m65/
             100MB/
                   BPI-M64-720P-linux4.4-8k.img.gz
                   ...
             BPI-BOOT/
                   bananapi/
                            bpi-m64/
                                    linux4.4/
                                             720p/
                                                  bootlogo.bmp
                                                  sun50i-a64-bpi-m64-720p.dtb
                                                  uEnv.txt
                                             uImage
                                             uInitrd
             BPI-ROOT/
                      lib/
                          ...
                      usr/
                          ...
             4.4.89-BPI-M64-Kernel.tgz
             4.4.89-BPI-M64-Kernel-net.tgz
             BOOTLOADER-bpi-m64-linux4.4.tgz
             BPI-BOOT-bpi-m64-linux4.4.tgz
             linux-headers-4.4.89-BPI-M64-Kernel.tgz

The packed file BPI-BOOT-*.tgz essentially is what belong on the boot partition, including uImage and uInitrd. Usually you only need to take care of the files in the SD folder, where all the packed files are copied over from the build folders.

Files related to boot partition, bootstrap and u-boot are prepared in the foloowing folder

./out/
      100MB/
                   BPI-M64-720P-linux4.4-8k.img.gz
                   ...
      host/
           bin/
               ...
           tulip-m64/
                     image/
                           *.fex
                     boot.img
                     rootfs.img
                     tina_tulip-m64_uart0.img
                     tulip-m64-uImage
           tulip-noma/
                     ...

Most notworthy here are the *.fex files and boot.img which includes the vFAT root partition.

Configurations should be here:

./sunxi-pack/
      allwinner/
             tulip-m64/
                     base-files/
                           ...
                     configs/
                           BPI-M64-720P/
                                  bootlogo.bmp
                                  env-4.4.cfg
                                  sys_config.fex
                                  sys_partition.fex
                                  test_config.fex
                     configs.org/
                           ...
                     image/
                           ...
                     BoardConfig.mk
                     config-3.10
                     Makefile
                     tulip_m64.mk
                     ...

Hope this is helping.

1 Like

Indeed, the M64 comes naked without anything pre-installed.

You might try the Armbian images, but I had to stick till now with the 4.4-kernel build as this was the only one with sources available that booted for me.

I am trying the Arch Linux version from pine64 A64+ will report if it boots.

Also I would need someone from bananapi team to advice me on the bootloader files needed to boot. frank have made a good guide and a single 1MB bootloader img instead of 3 imgs to be flashed. Thanks for your response and support.

What do you use your device for?

My goal for this board is a Media Streaming Server using a PiFi DAC+ v2 via i2s for audio output and a 320x240 LCD via i2c as display. Additionally it is planned to be able to stream to BT headphones.

The M64 might be a bit overkill for this particular usecase, but I wanted enough headroom for future extensions. Additionally I try to get back to Linux programming as I haven’t made much use of them since 2000.

I was considering to also get something like the R2 board as Home Automation and Security Box.

Thanks for this directory structure. It helped me. I was able to boot into Arch with pine64 A64+. Lol this looks like the same device.

I am not much surprised, I told you from the code it seemed just minor changes happened :wink:

Need something is fstab I guess, Not able to login.

did you try with root or pi?

Yes, I had the same issue with R2. Looking for the log. Maybe rootfs is on read only. Trying passwordless It works on UART but not on DE.

Thanks. Will try new thing and get a working Manjaro Image ready.

Well quite often those builds have root without password, but I guess you already looked up here for the defaults:

  • User Name: alarm, Password: alarm
  • User Name: root, Password: root
1 Like

Ok, good luck & have fun, will call it a night for today.

BPI-M64-bsp-4.4(kernel 4.4) is the only bsp code support by bpi, it’s base on allwinner official release souce code(https://github.com/Allwinner-Homlet). Actually allwinner does not support linux, and this code have the special structure of bootloader, some binary code for bootloader build and pack, you can check BPI-M64-bsp-4.4/scripts/pack_img.sh for more detail.

In wiki, kernel 4.19 image is armbian build, which is base on mainline kernel 4.19, and other kernel 5.x image is mainline build.

Thank you for the reply, But this doesn’t seem very helpful. I see there is no update on M64 source code from BPI Git and also Allwinner git since long time.

I am going through other similar devices and use those patches.

@sinovoip Hi I have been testing M64 with older and newer kernel as well as uboots. My tests are explained here. Kernel 4.4 Works fine with anarsouls image for pine64-A64+ and also Avafingers Ubuntu with kernel 4.4 and older uboot but wifi/bt doesnt work this means v1.2 have newer chips.

As per Avafinger his Kernel 5.2 works fine on M64-Version1 and I have M64-version1.2 and his 5.2 doesnt seem to boot on V1.2.

Can you advice why the latest uboot and kernel5.2 is not working on v1.2 but same works fine on V1. Please advice, As I have been testing it for so many hours but couldn’t figure out. If only you can tell us what have changed between V1 and V1.2, it would be helpful

Here is the update for the A1 Chip: https://github.com/avafinger/bpi-m64-firmware/commit/ace09cc39c858be208786434e44018c0fc2f8f65

The changes i found so far from v1.0 to v1.2 are:

  • new A1 Chip (Wifi / BT)
  • new DRAM chips with a lower value from 672 to 576, that was the fix but you told that did not work, so must be something else. Maybe DRAM settings should be even lower than this…
  • new eMMC version 5.0 (or 5.1, or another version)

BTW, the BPI BSP kernel (github) does not build DRM support (at least for LCDs)

BPI has Grub and u-boot that seem to be working on their video release if the u-boot source code is released the problem is solved.

Being around for source code since the day it was released.

Still waiting for their response