Newer BBB fails to enable eMMC with legacy 3.8 SD image

I have an older BBB that is flashing just fine from my SD (3.8 kernel img). When I put this same SD into a newer BBB it fails to flash because mmcblk1 doesn’t exist. So I disabled the emmc flash script at the end of uEnv.txt, and did an lsblk. Sure enough there is no emmc enabled, or at least mmcblk1 is not seen/mounted.

The SD card is unchanged from one device to another, and the only thing I can see that’s different is the newer one seems to be running U-Boot 2016.11-rc3-00002-g73df7f7, as apposed to the older one running U-Boot 2015.01.

If I grab a newer image (4.4) and put it on the SD, it works fine. The issue is, I need to keep 3.8 for the time being, and I need it to properly enable the emmc.

Anyone run into this type of issue? Any advice would be amazing! Thank you.

This was fixed in 3.8.13-bone80, which is the "first" 3.8.13 kernel to
support eMMC5.1..

It's not any issue in any other kernel branches.

If you "MUST" have a specific 3.8.13 version follow these directions:

https://gist.github.com/RobertCNelson/39faf80ddc9fcefae74dce2c6ca2eb45

and rebuild it yourself.. :wink:

Regards,

Thank you! Patched our custom kernel successfully with those patches. For some reason I could not for the life of me track down what had changed.

I have the same problem with the new beaglebones.

I need the 3.8.13-bone60 kernel with this patch for the new beaglebones with eMMC5.1.

How can I compile 3.8.13-bone60 with the two patches instead of the 3.8.13-bone56 ?

Here is the output with 3.8.13-bone56:

44e10800.pinmux; cannot claim for gpio-leds.8
[ 0.779863] pinctrl-single 44e10800.pinmux: pin-21 (gpio-leds.8) status -22
[ 0.787146] pinctrl-single 44e10800.pinmux: could not request pin 21 on device pinctrl-single
Loading, please wait…
modprobe: chdir(3.8.13-bone56): No such file or directory
modprobe: chdir(3.8.13-bone56): No such file or directory
modprobe: chdir(3.8.13-bone56): No such file or directory
[ 2.199118] EXT4-fs (mmcblk0p2): error loading journal
mount: mounting /dev/mmcblk0p2 on /root failed: Invalid argument
mount: mounting /dev on /root/dev failed: No such file or directory
Target filesystem doesn’t have requested /sbin/init.
No init found. Try passing init= bootarg.
modprobe: chdir(3.8.13-bone56): No such file or directory
modprobe: chdir(3.8.13-bone56): No such file or directory
modprobe: chdir(3.8.13-bone56): No such file or directory
modprobe: chdir(3.8.13-bone56): No such file or directory
modprobe: chdir(3.8.13-bone56): No such file or directory
modprobe: chdir(3.8.13-bone56): No such file or directory

BusyBox v1.20.2 (Debian 1:1.20.0-7) built-in shell (ash)
Enter ‘help’ for a list of built-in commands.

/bin/sh: can’t access tty; job control turned off
(initramfs)

U-Boot SPL 2013.10-dirty (Feb 05 2014 - 10:40:58)
reading args
spl: error reading image args, err - -1
reading u-boot.img
reading u-boot.img

U-Boot 2013.10-dirty (Feb 05 2014 - 10:40:58)

I2C: ready
DRAM: 512 MiB

Well, just follow the directions i posted two posts ago in this thread:

https://gist.github.com/RobertCNelson/39faf80ddc9fcefae74dce2c6ca2eb45

In the directions ^ change the 3.8.13-bone56 -> 3.8.13-bone60

Regards,

When I try to compile a .deb kernel package with cmd ‘./build_deb.sh’ im getting errors

With the cmd ./build_kernel.sh I get created the 3.8.13-bone60.zImage,.dtbs,.firmware,.modules.

But how can i generate or where can I get these files which are located in my fat32 boot partition.
uImage
uInitrd
initrd.img

Here is the Output when I try to compile the kernel with ./build_deb.sh on a x86 debian9 64Bit system.

ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
CHK include/generated/utsrelease.h
UPD include/generated/utsrelease.h
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
HOSTCC scripts/dtc/checks.o
HOSTCC scripts/dtc/data.o
SHIPPED scripts/dtc/dtc-lexer.lex.c
HOSTCC scripts/genksyms/genksyms.o
SHIPPED scripts/dtc/dtc-parser.tab.h
SHIPPED scripts/dtc/dtc-parser.tab.c
HOSTCC scripts/dtc/dtc.o
HOSTCC scripts/dtc/flattree.o
HOSTCC scripts/dtc/fstree.o
SHIPPED scripts/genksyms/lex.lex.c
SHIPPED scripts/genksyms/keywords.hash.c
SHIPPED scripts/genksyms/parse.tab.h
SHIPPED scripts/genksyms/parse.tab.c
HOSTCC scripts/genksyms/lex.lex.o
HOSTCC scripts/dtc/livetree.o
HOSTCC scripts/dtc/srcpos.o
HOSTCC scripts/dtc/treesource.o
HOSTCC scripts/dtc/util.o
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Generating include/generated/mach-types.h
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
HOSTCC scripts/dtc/dtc-lexer.lex.o
CC kernel/bounds.s
ERROR: ld.so: object 'libfakeroot-sysv.so HOSTCC scripts/genksyms/parse.tab.o
’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
GEN include/generated/bounds.h
CC arch/arm/kernel/asm-offsets.s
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
GEN include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
HOSTCC scripts/dtc/dtc-parser.tab.o
HOSTLD scripts/genksyms/genksyms
CC scripts/mod/empty.o
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object ‘libfakeroot-sysv.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

Everyone of those is safe to ignore.. it's just teh old 32bit gcc used..

Regards