BananaPi BPI-M3 New Image: ArchLinux-4.18.1-1-ARCH 2018-08-19

Can you try this one please:

https://drive.google.com/open?id=1d3rfQ-59jpMutXhDU4JPUewpy2c4IX-Y

No luck with this image too :confused: I’ve flashed it with 2 PCs on 2 different cards. Unmounted SDs cleanly. Same error persists. fsck reports orphaned inodes even just after the flashing. I’ll try with another card on another configuration once more.

So simple thing and so many troubles :slight_smile:

Here is what I did:

  1. Umount all file systems

  2. Checked all file systems:

  • e2fsck -vf /dev/mmcblk0p2
  • fsck.vfat /dev/mmcblk0p1
  1. Create image file:

    dd if=/dev/mmcblk0 bs=1M | pv | zip ./ArchLinuxARM-BPI-M3-08-22-2018.img.zip

  2. Create checksum:

    md5sum ./ArchLinuxARM-BPI-M3-08-22-2018.img.zip 514069560c36c2a5d85ddc04fd9ca8b5 ./ArchLinuxARM-BPI-M3-08-22-2018.img.zip

  3. Write image to SD

    unzip -p ./ArchLinuxARM-BPI-M3-08-22-2018.img.zip | pv | dd of=/dev/mmcblk0 bs=10M status=noxfer

  4. Insert SD to BPI and power on. Here is logs:

    https://pastebin.com/APwzfQaE

Image:

https://drive.google.com/open?id=1wATkI9v5aWRElMSGDbfZy8jeT4M3toR6

This one worked lovely! Thanks! Flashed with your exact command. Inserted to BPI and login prompt was waiting. HDMI works, USB works, Ethernet works. I’ve been playing around with pacman and I saw some dmesg logs like

[  224.250427] EXT4-fs warning (device mmcblk0p2): ext4_dirent_csum_verify:354: inode #3197: comm pacman: No space for directory leaf checksum. Please run e2fsck -D.
[  224.265031] EXT4-fs error (device mmcblk0p2): ext4_find_entry:1448: inode #3197: comm pacman: checksumming directory block 0
[  225.640867] EXT4-fs warning (device mmcblk0p2): ext4_dirent_csum_verify:354: inode #4105: comm pacman: No space for directory leaf checksum. Please run e2fsck -D.
[  225.655461] EXT4-fs error (device mmcblk0p2): ext4_find_entry:1448: inode #4105: comm pacman: checksumming directory block 0

And directly from pacman

error: could not open file /var/lib/pacman/local/gc-7.6.6-1/desc: Bad message
error: could not open file /var/lib/pacman/local/linux-armv7-4.18.1-1/desc: Bad message
error: 'linux-armv7-4.18.1-1': description file is missing
error: 'linux-armv7-4.18.1-1': file list is missing
error: 'gc-7.6.6-1': description file is missing
error: 'gc-7.6.6-1': file list is missing

But installed packages seem to work properly.

Finally :slight_smile:. Glad to hear this.

Regarding the errors in logs - you can try to re-check the file system and simply re-install these packages. But keep in mind, if kernel will be upgraded or re-installed than tdb file will also be updated and I2C won’t work.

Thanks for the image.

I can confirm that the following works:

  • HDMI
  • Multitouch USB HID (this does not work with Kernel 3.4)
  • Wifi
  • Fast Ethernet

Gigabit Ethernet has a high packet loss rate (> 50%) and is thus unusable.

In order to get 2D acceleration, I installed the packages

odroid-c1-libgl-headers odroid-c1-libgl-x11

which contain a Mali driver.

Initially, the system didn’t boot up at all because it timed out while mounting /boot, for some reason. I worked around this issue by uncommeting that line in /etc/fstab.

I have experimentally determined the GPIO pin assignments in /sys/class/gpio:

- 1: 3V3
- 2: 5V
- 3: GPIO 229
- 4: 5V
- 5: GPIO 228
- 6: GND
- 7: GPIO 362
- 8: GPIO 32
- 9: GND
- 10: GPIO 33
- 11: GPIO 68
- 12: GPIO 35
- 13: GPIO 71
- 14: GND
- 15: GPIO 81
- 16: GPIO 34
- 17: 3V3
- 18: GPIO 360
- 19: GPIO 64
- 20: GND
- 21: GPIO 65
- 22: GPIO 361
- 23: GPIO 66
- 24: GPIO 67
- 25: GND
- 26: GPIO 234
- 27: ID_SD
- 28: ID_SC
- 29: GPIO 82
- 30: GND
- 31: GPIO 202
- 32: GPIO 205
- 33: GPIO 203
- 34: GND
- 35: GPIO 204
- 36: GPIO 133
- 37: GPIO 132
- 38: GPIO 146
- 39: GND
- 40: GPIO 147

Thanks for your investigation.

Regarding odroid package, is it really Mali video in BPI M3. Isn’t it PowerVR SGX544MP1? Can you please explain how did you determine GPIO pin assignments?

Regarding the GPU: I have no idea. I simply wildly tried different things until I found something that worked…

Regarding the GPIO pin assignments: I wrote a small Python script which exports all available IO pins, configures them as outputs, then toggles them in a pattern which helps figure out which pin is which.

Basically I connect an LED to one of the pins, then the script toggles one half of all GPIOs, asks me whether the LED was toggled to figure out which half the pin is in, then toggles one half of those, and so on. Classic bisecting. It takes only about 15 seconds to identify the GPIO number that way.

Thanks for your input.

Hi, unfortunately I can not boot it on my m3. I only see a black screen on hdmi. I am using the image with sdcard.

I unzipped LATEST download for BPI M3, the .img.zip ArchLinuxARM-BPI-M3-08-22-2018.img.zip and the first pass thru 7zip produced an output file named ~ That’s is the entire file. Then I unzipped that file size = 7 730 102 272 unpacked size and this produces 2 outputs folders: 0.fat size 104 457 600 bytes file system FAT16-LBA and 1.img 7 624 196 096 file system LINUX. 0.fat produces an image file initramfs-linux.img 3 other files and another compressed folder named DTBS. 1.img produces a number of typical Linux folders except /bin folder is missing. The image burning software is expecting a file with a .img name extension and won’t recognize the input supplied from unzip.

I’ll try to prepare new image with recent updates soon so let’s try new one.

You can use this command to write image directly to the sd card:

Or you can just unzip archive:

unzip ./ArchLinuxARM-BPI-M3-08-22-2018.img.zip

so you’ll get .img file and use some image burning software.

I do this step or I try with other buning software and is not booting. [ Compile new Kernel for Docker.io ].

Did you manage to boot from this image ?

I manage to boot.

The blue led was not working but he was booting. I just need to wait.

Thank you.

New Image:

  • U-Boot: 2018.11-rc3
  • Kernel: 4.19.1-1-ARCH
  • SMP works
  • Ethernet works (Limited to 100Mbps. 1Gbps is unstable ~50% of loss)
  • Wifi works
  • HDMI
  • LCD (Needs to be checked)
  • GPIO works(WiringPi)
  • BPI tools included
  • I2C enabled(In TDB file)
  • Onboard blue led works

Installation(Change /dev/mmcblk1 to proper device name):

# gunzip -c ./ArchLinuxARM-BPI-M3-11-20-2018.img.gz | dd of=/dev/mmcblk1 
# fsck.ext4 -v /dev/mmcblk1p1

Can be installed to sd card and emmc.

Clean CLI only. System is upgraded by 11.16.2018. root/root

Download link:

https://drive.google.com/open?id=12MGt_BK_fH9PhAQc6z_GrSRRGGYK_Ppb

Github:

How do I enable UART2?

currently I always get something like this:

mic@bpro ~ $ sudo stty -F /dev/ttyS2 115200 stty: /dev/ttyS2: Input/output error

When trying to access the UART2 (or UART1, UART3, UART4) control registers at 0x01c28800 directly, I cannot change their values, even after enabling their clock gating and deasserting their soft reset…

I assume that the device tree needs to be changed?

I’ve never tried. ( Maybe this section in dtb file will help you:

serial@1c28400 {
		compatible = "snps,dw-apb-uart";
		reg = < 0x1c28400 0x400 >;
		interrupts = < 0x00 0x01 0x04 >;
		reg-shift = < 0x02 >;
		reg-io-width = < 0x04 >;
		clocks = < 0x02 0x36 >;
		resets = < 0x02 0x29 >;
		status = "disabled";
		phandle = < 0x54 >;
	};

How would I compile this? Unfortunately I couldn’t find any sources for your image.

Use dtb file from /boot/dtbs: Just to see readable text:

dtc -I dtb -O dts sun8i-a83t-bananapi-m3.dtb|more

Convert to dts, so you’ll be able to make some changes:

dtc -I dtb -O dts -o sun8i-a83t-bananapi-m3.dts sun8i-a83t-bananapi-m3.dtb

And convert it back:

dtc -O dtb -o sun8i-a83t-bananapi-m3.dtb -b 0 sun8i-a83t-bananapi-m3.dts

Keep backup of the original dtb file, it’s easy to corrupt boot of the system.