Joined: 22 Mar 2013
|Posted: Thu Oct 31, 2013 2:22 am Post subject: Beaglebone Black with 3.12
I tried installing Gentoo on the Beaglebone black with the instructions in http://dev.gentoo.org/~armin76/arm/beagleboneblack/install.xml.
However, I couldn't get any output on my screen through the HDMI. I tried installing Arch, and it worked fine there. After a lot of fiddling around, I noticed Arch uses a 3.12 kernel, as opposed to the 3.8 used in the guide.
In summary, all I did differently was just the kernel compilation/installation:
|git clone https://github.com/beagleboard/kernel
git checkout origin/3.12 -b 3.12
wget "http://arago-project.org/git/projects/?p=am33x-cm3.git;a=blob_plain;f=bin/am335x-pm-firmware.bin;hb=HEAD" -O firmware/am335x-pm-firmware.bin
LOADADDR=0x80008000 make -j4 ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- uImage dtbs
# this assumes that /mnt/p2 is mounted (don't know if it's strictly necessary, but I would guess that yes)
make -j4 ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- modules
make -j4 ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- INSTALL_MOD_PATH=/mnt/p2 modules_install
Clarification on LOADADDR:
Unless I added that, uImage would not build:
| make -j4 ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- uImage dtbs
make: `include/generated/mach-types.h' is up to date.
Kernel: arch/arm/boot/Image is ready
Kernel: arch/arm/boot/zImage is ready
multiple (or no) load addresses:
This is incompatible with uImages
Specify LOADADDR on the commandline to build an uImage
make: *** [arch/arm/boot/uImage] Error 1
make: *** [uImage] Error 2
I gave 0x80008000 as a value, because that's what mkimage reported when building 3.8 like in the guide. I don't understand more than that as far as that goes.
I did get HDMI output just like in Arch, but I did not have the time to test it any further.
IMO the problem was a bug in the 3.8 kernel, I got a warning about a recursive dependency (concerning dri and fb if I remember correctly), but I did not save the output. I'll try to find it again later.