Issue when building kernel for Beagleboard Black

Hi,

I’m currently trying to build a customized kernel for the Beagleboard Black.

I follow instructions from Robert Nelson.
https://eewiki.net/display/linuxonarm/BeagleBone+Black

To build the kernel, I use Debian and I did:

git clone GitHub - RobertCNelson/bb-kernel bb-kernel-3.8

cd bb-kernel/
git checkout origin/am33x-v3.18 -b tmp
./build_kernel.sh

So, it is supposed to build a default kernel. The KERNEL/.config file is very similar to the config-3.8.13-bone63 from the Debian 7.6 bbb image.

To install the kernel on my bbb installed with a debian image I do the following things:

  • I copy the deploy folder in my bbb.
  • Install the kernel with this script.

export kernel_version=3.8.13-bone67.2

cp ${kernel_version}.zImage /boot/vmlinuz-${kernel_version}

mkdir -p /boot/dtbs/${kernel_version}/

tar xfv ${kernel_version}-dtbs.tar.gz -C /boot/dtbs/${kernel_version}/

tar xfv ${kernel_version}-modules.tar.gz -C /

  • Change uname_r from /boot/uEnv.txt to 3.8.13-bone67.2

After that, the bbb does not boot anymore.

The logs from the console are:

U-Boot 2014.07-00016-g329fca9 (Jul 28 2014 - 12:35:02), Build: jenkins-github_Bootloader-Builder-375

I2C: ready

DRAM: 512 MiB

NAND: 0 MiB

MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1

*** Warning - readenv() failed, using default environment

Net: not set. Validating first E-fuse MAC

cpsw, usb_ether

Hit any key to stop autoboot: 1 … 0

gpio: pin 53 (gpio 53) value is 1

Card did not respond to voltage select!

Card did not respond to voltage select!

gpio: pin 56 (gpio 56) value is 0

gpio: pin 55 (gpio 55) value is 0

gpio: pin 54 (gpio 54) value is 0

switch to partitions #0, OK

mmc1(part 0) is current device

gpio: pin 54 (gpio 54) value is 1

SD/MMC found on device 1

Checking for: /uEnv.txt …

Checking for: /boot.scr …

Checking for: /boot/boot.scr …

Checking for: /boot/uEnv.txt …

gpio: pin 55 (gpio 55) value is 1

361 bytes read in 21 ms (16.6 KiB/s)

Loaded environment from /boot/uEnv.txt

Checking if uname_r is set in /boot/uEnv.txt…

gpio: pin 56 (gpio 56) value is 1

Running uname_boot …

loading /boot/vmlinuz-3.8.13-bone67.2 …

5506944 bytes read in 371 ms (14.2 MiB/s)

loading /boot/dtbs/3.8.13-bone67.2/am335x-boneblack.dtb …

26098 bytes read in 39 ms (653.3 KiB/s)

Kernel image @ 0x82000000 [ 0x000000 - 0x540780 ]

Flattened Device Tree blob at 88000000

Booting using the fdt blob at 0x88000000

Loading Device Tree to 8fff6000, end 8ffff5f1 … OK

Starting kernel …

Uncompressing Linux… done, booting the kernel.

[ 0.177953] omap2_mbox_probe: platform not supported

[ 0.334311] tps65217-bl tps65217-bl: no platform data provided

[ 0.397815] bone-capemgr bone_capemgr.9: slot #0: No cape found

[ 0.434923] bone-capemgr bone_capemgr.9: slot #1: No cape found

[ 0.472030] bone-capemgr bone_capemgr.9: slot #2: No cape found

[ 0.509141] bone-capemgr bone_capemgr.9: slot #3: No cape found

[ 0.524682] bone-capemgr bone_capemgr.9: slot #6: BB-BONELT-HDMIN conflict P8.45 (#5:BB-BONELT-HDMI)

[ 0.534314] bone-capemgr bone_capemgr.9: slot #6: Failed verification

[ 0.541058] bone-capemgr bone_capemgr.9: loader: failed to load slot-6 BB-BONELT-HDMIN:00A0 (prio 2)

[ 0.557484] omap_hsmmc mmc.5: of_parse_phandle_with_args of ‘reset’ failed

[ 0.620740] pinctrl-single 44e10800.pinmux: pin 44e10854 already requested by 44e10800.pinmux; cannot claim for gpio-leds.8

[ 0.632437] pinctrl-single 44e10800.pinmux: pin-21 (gpio-leds.8) status -22

[ 0.639716] pinctrl-single 44e10800.pinmux: could not request pin 21 on device pinctrl-single

Can you tell me please, what I did wrong?

Thank your for your help.

By definition it is "booting"....

Remove "quiet" from your bootargs and please post your full serial boot log.

Regards,

Hi Robert,

In attachment the console logs.

The board stops booting at:
Waiting for root device /dev/mmcblk1p2…

Thank for your help.

console.log (20.8 KB)

Well the "drive" is:

mmcblk0

[ 2.210705] mmc1: BKOPS_EN bit is not set
[ 2.217351] mmc1: new high speed MMC card at address 0001
[ 2.223512] mmcblk0: mmc1:0001 MMC02G 1.78 GiB
[ 2.228495] mmcblk0boot0: mmc1:0001 MMC02G partition 1 1.00 MiB
[ 2.234890] mmcblk0boot1: mmc1:0001 MMC02G partition 2 1.00 MiB
[ 2.243176] mmcblk0: p1 p2
[ 2.247926] mmcblk0boot1: unknown partition table
[ 2.254434] mmcblk0boot0: unknown partition table

to fix it.. stick in a blank microSD card..

eMMC will now come up as mmcblk1

then run:

sudo update-initramfs -ck `uname -r`

shutdown, remove microsd card, then power up.

With the initrd generated above, u-boot will go back to uuid based
booting and find the eMMC properly..

*uuid's only work with an initrd..

by not creating an initrd for the newly installed kernel you broke
eMMC booting..

Regards,

Thank you very much, it works fine now.
I think, it might be usefull to indicate this in your web page.

Is it also possible to build the initrd during the building process?

Regards

If you build 'on' target you can generate the initrd... Just the way it is..

Regards,