baryon Posted 18 hours ago Posted 18 hours ago (edited) Hello! I recently ran updates on the old M2S I won from here, and that appeared to break my OS, so I went back to try reinstall. And that's where I hit a snag. For some reason, after booting, the kernels refuse to see the partitions on the SD card. /dev/mmcblk0 exists, but none of the subpartitions, and so the boot process cannot find the partition it's supposed to boot from. Neither Armbian_25.5.1_Bananapim2s_trixie_current_6.12.32_minimal.img.xz nor Armbian_26.2.1_Bananapim2s_trixie_current_6.18.15_minimal.img.xz get me past this issue. I've tried changing the power supply, debug with LLMs, but nothing appears to be working. Any suggestions? Edited 18 hours ago by baryon 0 Quote
eselarm Posted 7 hours ago Posted 7 hours ago (edited) If 2 images don't work, I start thinking that the images are OK, but something goes wrong after extracting/decompressing, writing to SD-card, and reading at power by the bootROM/maskROM and U-Boot. I have various images downloaded and checked the past months, only for topics like this and I remember only 1 being wrong (there was no rootfs, only bootloader). I do not have a BPI-M2S, so cannot really test on hardware. And hardware might be the issue. Quite often nowadays it is fake or counterfeit SD-card. Those should work OK for writing the image and even verifying, but after that all sorts of strange errors and corruption can happen. It might be something with MBR or GPT failing, but this is rare. You simply need to check much more, check the SD-card in other Linux computer with fdisk etc. And connect serial console cable, so you can seen U-Boot and kernel logs and also interrupt U-Boot and do manual scan commands. Ultimately, you might need to build an image yourself and use Btrfs instead of Ext4. Might also make U-Boot understand Btrfs. Then any block-level corruption will be detected as Btrfs has checksums on all storage blocks. I use it for more than a decade and it really helps catching issues, even after years the same Btrfs root filesystem. And bad SD-cards are easily detected. Note that there is also btrfs-convert, allows converting existing images or SD-cards, but is a bit tricky as you need to do a few other things w.r.t. bootloader. Edited 7 hours ago by eselarm 0 Quote
baryon Posted 1 hour ago Author Posted 1 hour ago (edited) I mean, I've verified that the image is correctly written to the SD card on my PC. So it's not that, unless the M2S itself is not reading reliably. The frustrating part is that U-Boot appears to read the image correctly enough to get going but the kernel that boots does not. Ah well. I was hoping that there was some documented problem but this forum is a ghost town, and even finding old images to try is a struggle. I'm using an old, legit Lexar 16GB SD card, so I really don't think it's a legitimacy-of-SD-card issue. Two PCs and an Android phone both tell me there's no problem with the written data here. When I set this computer up three years ago, there was no hint of any of this. It was just plug and play and all was golden. Edited 1 hour ago by baryon 0 Quote
Solution c0rnelius Posted 45 minutes ago Solution Posted 45 minutes ago I would suggest using a better SD card. G12B:BL:6e7c85:2a3b91;FEAT:E0F83180:402000;POC:F;RCY:0;EMMC:0;READ:0;0. bl2_stage_init 0x01 bl2_stage_init 0x81 hw id: 0x0000 - pwm id 0x01 bl2_stage_init 0xc1 bl2_stage_init 0x02 L0:00000000 L1:20000703 L2:00008067 L3:14000000 B2:00402000 B1:e0f83180 TE: 53694 BL2 Built : 19:23:21, Sep 18 2020. g12b g9fde858 - gongwei.chen@droid11-sz Board ID = 12 Set A53 clk to 24M Set A73 clk to 24M Set clk81 to 24M A53 clk: 1200 MHz A73 clk: 1200 MHz CLK81: 166.6M smccc: 00011aa2 eMMC boot @ 0 sw8 s board id: 12 Load FIP HDR DDR from eMMC, src: 0x00010200, des: 0xfffd0000, size: 0x00004000, part: 0 Get wrong ddr fw magic! Error!! fw parse done PIEI prepare done 00000000 emmc switch 1 ok 00000000 emmc switch 2 ok NO find ddr boot_info from eMMC fastboot data verify result: 255 Cfg max: 12, cur: 1. Board id: 255. Force loop cfg LPDDR4 probe LPDDR4_PHY_V_0_1_22-Built : 14:57:26, Sep 1 2020. g12b g3c95fed - gongwei.chen@droid11-sz ddr clk to 1608MHz 00000000 emmc switch 0 ok dmc_version 0001 Check phy result INFO : End of CA training INFO : End of initialization INFO : Training has run successfully! Check phy result INFO : End of initialization INFO : End of read enable training INFO : End of fine write leveling INFO : End of read dq deskew training INFO : End of MPR read delay center optimization INFO : End of Write leveling coarse delay INFO : End of read delay center optimization INFO : Training has run successfully! Check phy result INFO : End of initialization INFO : End of MPR read delay center optimization INFO : End of write delay center optimization INFO : End of read delay center optimization INFO : End of max read latency training INFO : Training has run successfully! 1D training succeed Check phy result INFO : End of initialization INFO : End of 2D read delay Voltage center optimization INFO : End of 2D read delay Voltage center optimization INFO : End of 2D write delay Voltage center optimization INFO : End of 2D write delay Voltage center optimization INFO : Training has run successfully! soc_vref_reg_value 0x 0000001d 0000001c 0000001b 0000001e 0000001c 0000001c 0000001d 0000001c 0000001c 0000001a 0000001a 0000001b 00000019 0000001f 0000001b 0000001c 0000001b 0000001e 0000001c 0000001e 0000001a 0000001c 0000001c 0000001b 0000001c 0000001c 0000001b 0000001d 0000001d 0000001c 0000001b 0000001c dwc_ddrphy_apb_wr((0<<20)|(2<<16)|(0<<12)|(0xb0):0004 dram_vref_reg_value 0x 0000004d 2D training succeed auto size-- 65535DDR cs0 size: 2048MB DDR cs1 size: 2048MB DMC_DDR_CTRL: 00e00024DDR size: 3928MB cs0 DataBus test pass cs1 DataBus test pass cs0 AddrBus test pass cs1 AddrBus test pass non-sec scramble use zero key ddr scramble enabled 100bdlr_step_size ps== 403 result report boot times 0Enable ddr reg access 00000000 emmc switch 3 ok Authentication key not yet programmed get rpmb counter error 0x00000007 00000000 emmc switch 0 ok Load FIP HDR from eMMC, src: 0x00010200, des: 0x01700000, size: 0x00004000, part: 0 Load BL3X from eMMC, src: 0x00078200, des: 0x01768000, size: 0x000bea00, part: 0 0.0;M3 CHK:0;cm4_sp_mode 0 MVN_1=0x00000000 MVN_2=0x00000000 [Image: g12b_v1.1.3390-6ac5299 2019-09-26 14:10:05 luan.yuan@droid15-sz] OPS=0x10 ring efuse init chipver efuse init 29 0b 10 00 01 25 0c 00 00 0c 37 32 34 54 31 50 [0.778675 Inits done] secure task start! high task start! low task start! run into bl31 NOTICE: BL31: v1.3(release):4fc40b1 NOTICE: BL31: Built : 15:58:17, May 22 2019 NOTICE: BL31: G12A normal boot! NOTICE: BL31: BL33 decompress pass ERROR: Error initializing runtime service opteed_fast <debug_uart> U-Boot 2026.01 (Jan 15 2026 - 07:25:48 -0500) bpi-m2s Model: BananaPi M2S SoC: Amlogic Meson G12B (A311D) Revision 29:b (10:2) DRAM: 2 GiB (total 3.8 GiB) Core: 401 devices, 31 uclasses, devicetree: separate MMC: mmc@ffe05000: 0, mmc@ffe07000: 1 Loading Environment from nowhere... OK PCIE-0: Link up (Gen1-x1, Bus0) In: usbkbd,serial Out: vidconsole,serial Err: vidconsole,serial Net: eth0: ethernet@ff3f0000 starting USB... Starting the controller USB XHCI 1.10 Bus usb@ff500000: 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr 8133 bytes read in 2 ms (3.9 MiB/s) ## Executing script at 08000000 U-boot default fdtfile: amlogic/meson-g12b-a311d-bananapi-m2s.dtb Current variant: 211 bytes read in 1 ms (206.1 KiB/s) Current fdtfile after armbianEnv: amlogic/meson-g12b-a311d-bananapi-m2s.dtb Mainline bootargs: root=UUID=45e1ab7d-9528-4d3b-8b8e-27c59e112250 rootwait rootfstype=ext4 splash=verbose console=ttyAML0,115200 console=tty1 consoleblank=0 coherent_pool=2M loglevel=1 ubootpart=fe959640-01 libata.force=noncq usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u cgroup_enable=memory 25338901 bytes read in 1073 ms (22.5 MiB/s) 42338816 bytes read in 1792 ms (22.5 MiB/s) 80849 bytes read in 6 ms (12.8 MiB/s) Working FDT set to 4080000 232 bytes read in 5 ms (44.9 KiB/s) Applying kernel provided DT fixup script (meson-fixup.scr) ## Executing script at 32000000 ## Loading init Ramdisk from Legacy Image at 13000000 ... Image Name: uInitrd Image Type: AArch64 Linux RAMDisk Image (gzip compressed) Data Size: 25338837 Bytes = 24.2 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 04080000 Booting using the fdt blob at 0x4080000 Working FDT set to 4080000 Loading Ramdisk to 7e7d5000, end 7ffff3d5 ... OK Loading Device Tree to 000000007e758000, end 000000007e7d4fff ... OK Working FDT set to 7e758000 Starting kernel ... Armbian 26.2.1 Trixie ttyAML0 bananapim2s login: root Password: _ _ _ /_\ _ _ _ __ | |__(_)__ _ _ _ / _ \| '_| ' \| '_ \ / _` | ' \ /_/ \_\_| |_|_|_|_.__/_\__,_|_||_| v26.2.1 for Banana Pi M2S running Armbian Linux 6.18.15-current-meson64 Packages: Debian stable (trixie) Performance: Load: 12% Uptime: 1m Memory usage: 5% of 3.68G CPU temp: 44°C Usage of /: 5% of 29G Commands: Configuration: armbian-config Monitoring : htop root@bananapim2s:~# 0 Quote
baryon Posted 13 minutes ago Author Posted 13 minutes ago 30 minutes ago, c0rnelius said: I would suggest using a better SD card. Hah. I switched to using the cheapest one I had and that worked. But thank you for the validation. This was indeed the correct strategem. 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.