Software

Voor wat de software betreft: bij het board dat we ontvingen zat een SD-kaart met Raspbian voorgeïnstalleerd (blijkbaar aangemaakt in Duitsland). Aansluiten van het board op een console is gemakkelijk omdat er, anders dan bij een RPi, een toegankelijke debug-aansluiting is, waar een serieel-naar-USB-converter kan worden aangesloten. De complete boot-log is beschikbaar aan het einde van dit artikel.

Volgens het BPi GitBook zouden er ook images voor Android en Ubuntu beschikbaar moeten zijn, maar bij mij leverden de links alleen maar '404 - Not Found' op. Hopelijk wordt dat opgelost als de kaart wordt vrijgegeven voor het publiek. Voor de M2 Ultra is er ook een speciale Linux, Tina-IoT van Allwinner, maar hoe die moet worden aangepast voor de M2 Berry wordt niet vermeld. Misschien werkt het zoals het is, misschien ook niet...

 
banana pi m2 berry + rpi3 back sides
De SD-connector van de BPi M2 Berries (links)
is breder dan die op de RPi (rechts)

Conclusie

De Banana Pi BPI-M2 Berry is gericht op RPi gebruikers. Omdat hij is geïntroduceerd na de RPi3 zou je verwachten dat hij even krachtig zou zijn als een RPi3, maar in werkelijkheid hebben we te maken met een RPi2 v1.0 met WiFi, Bluetooth 4.0 en SATA. Omdat de Berry min of meer dezelfde prijs heeft als de RPi3, is waarschijnlijk de SATA-interface de enige reden waarom iemand de voorkeur zou geven aan dit board in plaats van een echte RPi (3 of 2).

De BPi M2 Berry paste niet in mijn RPi-behuizing vanwege de grootte van de SD-connector, maar omdat het een sample is van een pre-release, kan het zijn dat dat nog wordt verbeterd voordat de kaart officieel wordt gereleaset. Een beetje snijden lost dit probleem op, maar het zal lastiger zijn om een oplossing te vinden voor de niet-compatibele LCD- en cameraconnector. Waarschijnlijk zijn die gehouden voor compatibiliteit met andere BPi kaarten, maar ze breken de belofte van RPi-compatibiliteit.

Banana Pi M2 Berry boot log

Linux-deskundigen kunnen allerlei nuttige informatie afleiden uit een boot-log, dus bij dezen... Inloggen gaat met de gebruikersnaam ‘pi’ of ‘root’, het standaard wachtwoord is ‘bananapi’.
[     0.33]HELLO! BOOT0 is starting!
[     0.37]boot0 commit : 2320b4e28f694a40302a75531ea057ca7fcc0074
 
[     0.44]boot0 version : 4.0
[     0.47]set pll start
[     0.51]set pll end
[     0.87]rtc[0] value = 0x00000000
[     0.90]rtc[1] value = 0x00000000
[     0.93]rtc[2] value = 0x00000000
[     0.97]rtc[3] value = 0x00000000
[     0.100]rtc[4] value = 0x00000000
[     0.103]rtc[5] value = 0x00000000
[     0.107]DRAMC IS FOUR
[     0.109]DRAM BOOT DRIVE INFO: V1.1
[     0.113]the chip id is 0x00000001
[     0.116]the chip id is 0x00000001
[     0.120]the chip id is 0x00000001
[     0.123]the chip id is 0x00000001
[     0.127]the chip id is 0x00000001
[     0.134]PMU: [     0.135]AXP221
[     0.137]ddr voltage = 1250 mv
[     0.144]PMU: [     0.145]AXP221
[     0.147]ddr voltage = 1250 mv
[     0.158]PMU: [     0.159]AXP221
[     0.161]ddr voltage = 1500 mv
[     0.172]DRAM CLK =576 MHZ
[     0.174]DRAM Type =3 (2:DDR2,3:DDR3,6:LPDDR2,7:LPDDR3)
[     0.180]DRAM zq value: 0x003b3bfb
[     0.186]DRAM SIZE =1024 M
[     0.189]DRAM simple test OK.
[     0.192]dram size =1024
[     0.194]rtc standby flag is 0x00000000, super standby flag is 0x00000000
[     0.203]card no is 0
[     0.205]sdcard 0 line count 4
[     0.208][mmc]: mmc driver ver 2016-07-01 15:30
[     0.212][mmc]: sdc0 spd mode error, 2
[     0.225][mmc]: Wrong media type 0x00000000
[     0.229][mmc]: ***Try SD card 0***
[     0.240][mmc]: HSSDR52/SDR25 4 bit
[     0.243][mmc]: 50000000 Hz
[     0.246][mmc]: 15072 MB
[     0.249][mmc]: ***SD/MMC 0 init OK!!!***
[     0.354]Loading boot-pkg Succeed(index=0).
[     0.358]Entry_name        = u-boot
[     0.377]Ready to disable icache.
[     0.380]Jump to secend Boot.


U-Boot 2014.07 (May 25 2017 - 11:43:14) Allwinner Technology 

uboot commit : 8 
i2c_init ok
[      0.448]pmbus:   ready
[      0.468]PMU: AXP221
[      0.468]PMU: AXP22x found
[      0.469]PMU: dcdc2 1160
[      0.470]PMU: cpux 1008 Mhz,AXI=336 Mhz
PLL6=600 Mhz,AHB1=200 Mhz, APB1=100Mhz  MBus=400Mhz
set power on vol to default
dcdc1_vol = 3300, onoff=1
dcdc2_vol = 1160, onoff=1
dcdc3_vol = 1100, onoff=1
dcdc4_vol = 1100, onoff=0
aldo1_vol = 2800, onoff=0
aldo2_vol = 1500, onoff=1
aldo3_vol = 3000, onoff=1
dc1sw_vol = 3000, onoff=0
dc5ldo_vol = 1100, onoff=0
dldo1_vol = 3300, onoff=0
dldo2_vol = 3300, onoff=0
dldo3_vol = 3300, onoff=0
dldo4_vol = 2500, onoff=0
eldo1_vol = 2800, onoff=0
eldo2_vol = 1500, onoff=0
eldo3_vol = 1200, onoff=0
gpio0_vol = 3300, onoff=0
gpio1_vol = 1800, onoff=0
find power_sply to end
vbus exist
BPI: bpi_boot_init_gpio ...
set pin for gpio_pin_1
set pin for gpio_pin_2
set pin for gpio_pin_3
set pin for gpio_pin_4
run key detect
BPI: BPI-M2 Berry 1.0 
bpi_board_version: [2e]
no key found
no uart input
DRAM:  1 GiB
fdt addr: 0x76e84c98
Relocation Offset is: 35edb000
In:    serial
Out:   serial
Err:   serial
gic: normal mode
[      0.698]start
drv_disp_init
init_clocks: finish init_clocks.
pwm_request: reg = 0x1c23400. pwm = 0.
request pwm success, pwm = 0.
tv_init:
tv_init:
drv_disp_init finish
boot_disp.output_disp=0
boot_disp.output_type=3
boot_disp.output_mode=5
boot_disp.auto_hpd=1
disp0 device type(4) enable
attched ok, mgr0<-->device0, type=4, mode=5
[      1.382]end
workmode = 0,storage type = 1
[      1.382]MMC:	 0
[mmc]: mmc driver ver 2016-07-01 15:50:00
[mmc]: boot_card_no error 1
SUNXI SD/MMC: 0
[mmc]: 50 MHz...
[mmc]: sample: 51 - 196(ps)
[mmc]: 100 MHz...
[mmc]: sample: 25 - 200(ps)
[mmc]: 200 MHz...
[mmc]: sample: 13 - 192(ps)
[mmc]: BPI: 0 CARD_TYPE_SD
[mmc]: media type 0x8000001
[mmc]: ************Try SD card 0************
[mmc]: host caps: 0x27
[mmc]: MID 74 PSN 00000e1b
[mmc]: PNM 00000 -- 0x30-30-30-30-30
[mmc]: PRV 0.0
[mmc]: MDT m-6 y-2016
[mmc]: speed mode     : HSSDR52/SDR25 
[mmc]: clock          : 50000000 Hz
[mmc]: bus_width      : 4 bit
[mmc]: user capacity  : 15072 MB
[mmc]: ************SD/MMC 0 init OK!!!************
[mmc]: erase_grp_size      : 0x1WrBlk*0x200=0x200 Byte
[mmc]: secure_feature      : 0x0
[mmc]: secure_removal_type : 0x0
[      1.558]sunxi flash init ok
sunxi secure storage is not supported
[      1.565]usb burn from boot
delay time 0
[      1.656]usb prepare ok
[      2.455]timer occur
[      2.456]overtime
[      2.489]do_burn_from_boot usb : no usb exist
--------fastboot partitions--------
-total partitions:7-
-name-        -start-       -size-      
boot-res    : 1000000       1000000     
env         : 2000000       100000      
boot        : 2100000       800000      
private     : 2900000       100000      
misc        : 2a00000       100000      
rootfs      : 2b00000       a000000     
UDISK       : cb00000       0           
-----------------------------------
base bootcmd=run setargs_nand boot_normal
bootcmd set setargs_mmc
key 0
cant find rcvy value
cant find fstbt value
misc partition found
to be run cmd=run setargs_mmc boot_normal
BPI: disable_node mmc2 in BPI-M2 Berry 1.0
update dtb dram start
update dtb dram  end
sunxi_serial: serial_feature is not exist
serial is: 14005190410c482c034c
BPI-M2 Berry: force to set pmu_bat_unused = 1
BPI: axp_probe_battery_exist(32)
BPI: BatExist(32) pmu_bat_unused(0)
BPI: force to set no battery in BPI-M2 Berry 1.0
PowerBus = 2( 2:vBus 3:acBus other: not exist)
no battery, limit to dc
no battery exist
sunxi_bmp_logo_display
reading bootlogo.bmp
3686538 bytes read in 164 ms (21.4 MiB/s)
bmp file buffer: 0x40000000, bmp_info.buffer: 46400000
screen_id =0, screen_width =1280, screen_height =720
frame buffer address 46400036
Net:   No ethernet found.
[      2.954]inter uboot shell
Hit any key to stop autoboot:  2  1  0 
[mmc]: MMC Device 2 not found
** Bad device mmc 2 **
reading bananapi/bpi-m2u/linux/uEnv.txt
2280 bytes read in 5 ms (445.3 KiB/s)
Loaded environment from uEnv.txt
Running uenvcmd ...
Banana Pi bpi-m2u chip: r40 Service: linux
reading bananapi/bpi-m2u/linux/uImage
6834472 bytes read in 298 ms (21.9 MiB/s)
reading bananapi/berryboot.img
** Unable to read file bananapi/berryboot.img **
## Booting kernel from Legacy Image at 47000000 ...
   Image Name:   Linux-3.10.65-BPI-M2U-Kernel
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    6834408 Bytes = 6.5 MiB
   Load Address: 40008000
   Entry Point:  40008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
   reserving fdt memory region: addr=43000000 size=800
   Using Device Tree in place at 45000000, end 450191df
prepare for kernel
[mmc]: MMC Device 2 not found
[mmc]: mmc 2 not find, so not exit

Starting kernel ...

[    1.070364] platform pwm0: there is no bind_pwm, set bind_pwm 255!
[    1.070364] platform pwm0: there is no dead time, set bind_pwm 255!
[    1.110434] add_sys_pwr_dm: get ldo name  for id: vdd-cpus failed
[    1.110434] add_sys_pwr_dm: get ldo name  for id: vcc-lpddr failed
[    1.110434] add_sys_pwr_dm: get ldo name  for id: vcc-pl failed
[    1.110434] add_sys_pwr_dm: axp22_dcdc1 ldo already alwayson.
[    1.110434] Warning: can not find np for dynamic_standby_para. 
[    1.175230] OF: no ranges; cannot translate
[    1.175256] OF: no ranges; cannot translate
[    1.175524] OF: no ranges; cannot translate
[    1.175541] OF: no ranges; cannot translate
[    1.397180] sunxi-wlan wlan: request pincrtl handle for device [wlan] failed
[    1.405308] /soc@01c00000/wlan: could not find phandle
[    1.411152] sunxi-wlan wlan: get gpio wlan_hostwake failed
[    1.490035] sunxi-ahci sata: SATA power enable do not exist!!
[    1.754779] axp22_dcdc1: unsupportable voltage range: 858992688-3400000uV
[    1.784011] get() with no identifier
[    1.787998] get() with no identifier
[    1.792130] get() with no identifier
[    1.880038] *mmc0 detect cd change*
[    1.883942] *mmc0 lock*
[    1.920862] sunxi-mmc sdc0: smc 0 p0 err, cmd 52, RTO !!
[    1.927721] sunxi-mmc sdc0: smc 0 p0 err, cmd 52, RTO !!
[    1.938386] sunxi-mmc sdc0: smc 0 p0 err, cmd 5, RTO !!
[    1.945123] sunxi-mmc sdc0: smc 0 p0 err, cmd 5, RTO !!
[    1.951953] sunxi-mmc sdc0: smc 0 p0 err, cmd 5, RTO !!
[    1.958676] sunxi-mmc sdc0: smc 0 p0 err, cmd 5, RTO !!
[    1.993272] sunxi-mmc sdc1: smc 1 p1 err, cmd 52, RTO !!
[    2.000133] sunxi-mmc sdc1: smc 1 p1 err, cmd 52, RTO !!
[    2.008242] EXT3-fs (mmcblk0p2): error: couldn't mount because of unsupported optional features (240)
[    2.010557] sunxi-mmc sdc1: smc 1 p1 err, cmd 8, RTO !!
[    2.011386] sunxi-mmc sdc1: smc 1 p1 err, cmd 5, RTO !!
[    2.012208] sunxi-mmc sdc1: smc 1 p1 err, cmd 5, RTO !!
[    2.013029] sunxi-mmc sdc1: smc 1 p1 err, cmd 5, RTO !!
[    2.013851] sunxi-mmc sdc1: smc 1 p1 err, cmd 5, RTO !!
[    2.014673] sunxi-mmc sdc1: smc 1 p1 err, cmd 55, RTO !!
[    2.015496] sunxi-mmc sdc1: smc 1 p1 err, cmd 55, RTO !!
[    2.016318] sunxi-mmc sdc1: smc 1 p1 err, cmd 55, RTO !!
[    2.017141] sunxi-mmc sdc1: smc 1 p1 err, cmd 55, RTO !!
[    2.018011] sunxi-mmc sdc1: smc 1 p1 err, cmd 1, RTO !!
[    2.080690] EXT2-fs (mmcblk0p2): error: couldn't mount because of unsupported optional features (240)
[    2.261012] Failed to execute /init.  Attempting defaults...
[  OK  ] Started Remount Root and Kernel File Systems.
[  OK  ] Reached target Local File Systems (Pre).
         Starting Load/Save Random Seed...
[  OK  ] Started Load/Save Random Seed.
[  OK  ] Started Show Plymouth Boot Screen.
[  OK  ] Created slice system-systemd\x2drfkill.slice.
         Starting Load/Save RF Kill Switch Status of rfkill0...
[  OK  ] Reached target Paths.
[  OK  ] Reached target Sound Card.
[  OK  ] Started Load/Save RF Kill Switch Status of rfkill0.
[  OK  ] Found device /dev/ttyS0.
[  OK  ] Found device /dev/mmcblk0p1.
         Starting File System Check on /dev/mmcblk0p1...
[    5.647178] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:755: group 25, 23822 clusters in bitmap, 23825 in gd
[    5.769412] systemd-fsck[2178]: fsck.fat 3.0.27 (2014-11-12)
[    5.771305] systemd-fsck[2178]: 0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
[  OK  ] Started File System Check on /dev/mmcblk0p1.
[    5.772691] systemd-fsck[2178]: Automatically removing dirty bit.
[    5.774247] systemd-fsck[2178]: Performing changes.
         Mounting /boot...
[    5.775073] systemd-fsck[2178]: /dev/mmcblk0p1: 218 files, 18335/65467 clusters
[  OK  ] Mounted /boot.
[  OK  ] Reached target Local File Systems.
         Starting Tell Plymouth To Write Out Runtime Data...
         Starting Create Volatile Files and Directories...
[  OK  ] Reached target Remote File Systems.
         Starting Trigger Flushing of Journal to Persistent Storage...
         Starting LSB: Prepare console...
         Starting LSB: Switch to ondemand cpu governor (unless shift key is pressed)...
         Starting LSB: Raise network interfaces....
[  OK  ] Started Tell Plymouth To Write Out Runtime Data.
[  OK  ] Started Trigger Flushing of Journal to Persistent Storage.
[    6.059839] EXT4-fs error (device mmcblk0p2): ext4_mb_generate_buddy:755: group 33, 36 clusters in bitmap, 37 in gd
[  OK  ] Started Create Volatile Files and Directories.
         Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Started LSB: Prepare console.
         Starting LSB: Set console font and keymap...
[  OK  ] Started LSB: Set console font and keymap.
[  OK  ] Started LSB: Raise network interfaces..
[  OK  ] Started LSB: Switch to ondemand cpu governor (unless shift key is pressed).
[  OK  ] Reached target System Initialization.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Timers.
         Starting Restore Sound Card State...
[  OK  ] Reached target Basic System.
         Starting Avahi mDNS/DNS-SD Stack...
         Starting dhcpcd on all interfaces...
         Starting Regular background program processing daemon...
[  OK  ] Started Regular background program processing daemon.
         Starting System Logging Service...
         Starting Login Service...
         Starting D-Bus System Message Bus...
[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
         Starting LSB: Banana Pi init script...
         Starting LSB: Autogenerate and use a swap file...
         Starting LSB: triggerhappy hotkey daemon...
[  OK  ] Started System Logging Service.
[  OK  ] Started Restore Sound Card State.
[  OK  ] Started dhcpcd on all interfaces.
[  OK  ] Reached target Network.
         Starting OpenBSD Secure Shell server...
[  OK  ] Started OpenBSD Secure Shell server.
         Starting /etc/rc.local Compatibility...
         Starting Permit User Sessions...
[  OK  ] Reached target Network is Online.
         Starting LSB: Start xrdp and sesman daemons...
         Starting LSB: Start NTP daemon...
[  OK  ] Started LSB: Start xrdp and sesman daemons.
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Login Service.
         Starting Light Display Manager...
[  OK  ] Started LSB: triggerhappy hotkey daemon.
[  OK  ] Started LSB: Start NTP daemon.
[  OK  ] Started LSB: Autogenerate and use a swap file.
BPI: bt-raspbian.sh
[  OK  ] Started /etc/rc.local Compatibility.
         Starting Hold until boot process finishes up...
         Starting Terminate Plymouth Boot Screen...

Raspbian GNU/Linux 8 bpi-iot-ros-ai ttyS0

bpi-iot-ros-ai login: root
Passwort: 
Letzte Anmeldung: Freitag, den 24. März 2017, 04:17:26 CET auf ttyS0
Linux bpi-iot-ros-ai 3.10.65-BPI-M2U-Kernel #1 SMP Thu May 25 11:46:04 CST 2017 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.