Archive for the ‘Uncategorized’ Category

The new BeagleBone Black and Gentoo

April 28, 2013

Hi all, long time no see.

Some weeks ago I got an early version of the BeagleBone Black from the people at Beagleboard.org to create the documentation I always create with every device I get.

Like always i’d like to announce the guide for installing Gentoo in the BeagleBone Black. Have a look at: http://dev.gentoo.org/~armin76/arm/beagleboneblack/install.xml . Feel free to send any corrections my way.

This board is a new version of the original BeagleBone, known in the community as BeagleBone white, for which I wrote a post for it: http://armin762.wordpress.com/2012/01/01/beaglebone-and-gentoo/

This new version differs in some aspects with the previous version:

  • Cheaper: 45$ vs 89$ of the BeagleBone white
  • 512MB DDR3L RAM vs 256MB DDR2 RAM of the BeagleBone white
  • 1GHz of processor speed vs 720MHz of the BeagleBone white, both when using an external PSU for power

Also it has more features which the old BeagleBone didn’t had

  • miniHDMI output
  • 2GB eMMC

However the new version has missing:

  • Serial port and JTAG through the miniUSB interface

The reason for missing this feature is cost cutting measures, as can be read in the Reference manual.

The full specs of the BeagleBone Black are:
# ARMv7-A 1GHz TI AM3358/9 ARM Cortex-A8 processor
# 512MB DDR3L RAM
# SMSC LAN8710 Ethernet card
#
# 1x microSDHC slot
# 1x USB 2.0 Type-A port
# 1x mini-USB 2.0 OTG port
# 1x RJ45
# 1x 6 pin 3.3V TTL Header for serial
#
# Reset, power and user-defined button

More info about the specs in BeagleBone Black’s webpage.

For those curious as me, here’s the bootlog and the cpuinfo.

I’ve found two issues while working on it:

  1. The USB port doesn’t have a working hotplug detection. That means that if you plug an USB device in the USB port, it will be only detected once, if you remove the USB device, the USB port will stop working. I’ve been told that they are working on it. I haven’t been able to find a workaround for it.
  2. The BeagleBone Black doesn’t detect an microSD card when plugged in when its been booted from the eMMC. If you want to use a microSD card for additional storage, it must be inserted before it boots.

I’d like to thank the people at Beagleboard.org for providing me a Beaglebone Black to document this.

Have fun!

Beaglebone documentation updated

October 12, 2012

Hi all,

I’ve got some reports that my Beaglebone guide is outdated and giving some troubles regarding the bootloader and kernel.

While as of vanilla kernel 3.6.1 doesn’t support the beaglebone, U-Boot 2012.10-rc3 does support it, so i’ve tested all thechanges and updated the guide accordingly.

You can find it in http://dev.gentoo.org/~armin76/arm/beaglebone/install.xml
Some changes i’ve noticed in almost a year since i did the documentation:

  • The bug (by design they said) which made the USB port stop working after unplugging a device (check my post about the Beaglebone) is now fixed
  • CPU scaling is working, although the default governor is ‘userspace’. The default speed with this governor is:

a) 600MHz if powering it using a PSU through the 5V power connector, remember that the maximum speed of the  Beaglebone is 720MHz

b) 500MHz if powering it using the mini-USB port

Have fun

Pandaboard documentation and overlay updated

May 5, 2012

Hi all,

After some months of people asking me to update the documentation of the pandaboard, i’ve finally done it. The previous documentation was a bit outdated since the Pandaboard ES came into scene.

The problem was on the bootloader part, which didn’t work because they stopped developing X-Loader and integrated it to U-Boot. With an updated U-Boot this problem is solved.

Also on the drivers part, ubuntu released ubuntu 12.04, precise pangolin, with updated packages for the graphics part and a new kernel version. I follow whats stable on ubuntu, so if there’s some problem one could reproduce it with ubuntu and then complain to ubuntu developers :P After all, TI developers don’t get paid to support Gentoo but to support Ubuntu…

Anyway, ubuntu 12.04 switched from softfp toolchain to hardfloat toolchain(which Debian and Ubuntu call armhf), this means that the graphics drivers which are closed-source must have their binary blobs+libraries built as hardfloat. This means that if you want to use the new versions, you must reinstall your system with a hardfloat stage3…

More on the graphics part…until now since some libraries provided by the package collided with the ones from mesa, i had to remove them. Thanks to lu_zero, eselect-opengl now supports dynamic switching of those libraries, however i still have to fix the ebuild to use this new function.

The new guide is here: http://dev.gentoo.org/~armin76/arm/pandaboard/install.xml … its the same link as the older one :)

I’d like to thank to the different people that reported me what they had to do to make it work with the Pandaboard ES, since i don’t have one. Thanks!

TrimSlice and Gentoo

September 4, 2011

Hi,

In this post i’ll speak about putting Gentoo on the trimslice.

Months ago the people from Trimslice.com kindly sent me a devkit for the purpose of documenting and supporting Gentoo on it. It took me a while because i’ve had a lot of stuff going on at work, and because Stephen Klimaszewski(steev) started documentating it, but since he doesn’t have time to finish it, i decided to do it myself.

Therefore i’d like to announce the guide for installing Gentoo on the Trimslice. Check it out at: http://dev.gentoo.org/~armin76/arm/trimslice/install.xml and feel free to send corrections to my way, either by mail or by putting a comment on this post.

Regarding the hardware provided by the pandaboard, here’s what i got:
-Audio(non HDMI): Works fine.
-Bluetooth: No bluetooth on the devkit.
-Wifi: No wifi on the devkit.
-SD slot: Works fine
-Ethernet: Works fine
-Video: Works fine

Let me remind you about the overlay for Tegra devices, which includes the video drivers and libraries for Tegra, based on the L4T released by Nvidia.

I’d like to thank the people at TrimSlice.com for their support and the hard work they’re doing with the open source community and dealing with Nvidia for us.

Also, probably you’ve heard about hardfloat graphics drivers for the TrimSlice or Tegra-based devices. They’re real, although Nvidia has said they’ll build them but won’t support them, it hasn’t been clear about the licensing. You can find them on the images of Meego and ArchLinux ARM for the Trimslice.

These hardfloat drivers can be integrated into an image, but the tarball can’t be published as of now. Thats why i can’t create ebuilds for them on Gentoo.

Have fun!

NVIDIA Tegra2 overlay available

July 16, 2011

Hi,

It’s been a long time since i’ve wrote something. I’ve got a lot of things going at work and its taking all the energy from me. However i still spend time with Gentoo on weekends.

Anyway, some days ago NVIDIA published the updated Linux For Tegra(previously known as L4T) Linux development kit. The main difference with the previous one is that it uses a 2.6.38 kernel from the Chromium OS. Another thing is that the stupid nvrm daemon isn’t needed anymore, it was needed before to get audio and cpufreq functionality, and who knows what else. Also, NVIDIA was kind enough releasing the X.org drivers for the GPU in the tegra SoC. It also released them for different ABIs, which is appreciated.

I’ve done the ebuilds for it(it was really easy) and i’ve pushed them to the overlay: http://git.overlays.gentoo.org/gitweb/?p=proj/tegra.git;a=summary
The overlay should be available on layman too.

The ebuilds provide the libraries+drivers for the X.org driver, nothing else as far as i know…

Sheevaplug vs Efika MX vs Nvidia Tegra2 vs TI OMAP4 Pandaboard: benchmarks

January 29, 2011

Hi everyone,

I’m writing this post just to publish some results of benchmarks i’ve done lately on the ARM devices i have. They seem pretty popular, so i guess i could publish them on my blog so other people have it easy to find them.

== memcpy ==

The most popular one is the memcpy benchmark. It was written by a gentoo user and friend Siarhei Siamashka (ssvb is his nick on irc.freenode.net). He published it on: http://sourceware.org/ml/libc-ports/2009-07/msg00000.html
I simply ran it on the devices i have.

You can get the latest results of this benchmark on the devices i’ve been able to run the benchmark on the following page: http://dev.gentoo.org/~armin76/arm/memcpy-neon_result.txt

== Gentoo build times ==

If you’ve read my blog before, you’ll know i have a page where i list the buildtimes of different basic packages(binutils, gcc, glibc and portage) on different kind of machines to compare it. The page is here: http://dev.gentoo.org/~armin76/arm/buildtimes.xml

Unfortunately those results have a problem, i only did a part of them myself, the rest were provided by other people, and as you can see they were using different kind of storage… so last year i decided i could do a new page where all the build times were using the same storage (USB stick), same package versions and same configuration…

The result is this one: http://dev.gentoo.org/~armin76/arm/nwbuildtimes.xml

Hope you find them useful.

ARM hardfloat and Gentoo

December 9, 2010

Hello,

Since gcc-4.5.0, the option for a hardfloat toolchain has been available for ARM. I’m not going to duplicate the information about hardfloat on ARM, since its really well explained here: http://wiki.debian.org/ArmHardFloatPort

Summarizing, using hardfloat over softfp and softfloat, provides a better performance. However there is a “problem”. Almost all the devices using ARMv5 processors don’t have VFP, so for the users of those devices it won’t make a difference. With ARMv7 there’s no problem, because as far as i know, there’s no ARMv7 processor which doesn’t have VFP(correct me if i’m wrong).

Anyway, focusing on the Gentoo part, back in July, Siarhei Siamashka (ssvb) bootstraped a hardfloat ARMv7 stage3. For which i’d like to thank him. I worked with Siarhei on getting the changes needed for getting a hardfloat toolchain in Gentoo if -hardfloat- is used in the CHOST, among other things.

Last month i released a hardfloat stage3, so anyone who wants to use it, is free to do so. However keep in mind that since gcc-4.5.0 is not stable(stable is 4.4.4-r2 as of this writing), you need to have this in your package.keywords file, so portage won’t downgrade gcc and diffutils:

sys-devel/gcc
sys-apps/diffutils

You can download the stage3 from here:
http://distfiles.gentoo.org/releases/arm/autobuilds/current-stage3-armv7a_hardfp/

Those stages have been built using:
-CHOST=”armv7a-hardfloat-linux-gnueabi”
-CFLAGS=”-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16″

The “-mfloat-abi=hard” is implied by the hardfloat string in CHOST using the Gentoo eclasses.

Have fun and happy testing!

Update: I forgot to say that binary blobs won’t work with hardfloat if they’re not built using a hardfloat toolchain. That means that if you’re using a video driver(f.ex, pvr drivers for OMAP hw) that is built as binary, it won’t work.

Pandaboard and Gentoo: Part Two (Running Gentoo!)

November 27, 2010

Hi,

This is the second post on Pandaboard and Gentoo, after the first one with the unpack and specifications. In this one i’ll speak about putting Gentoo on it.

First i’d like to announce the guide for installing Gentoo on the Pandaboard. Check it out at: http://dev.gentoo.org/~armin76/arm/pandaboard/install.xml and feel free to send corrections to my way, either by mail or by putting a comment on this post.

I’d like to thank my coworker Jordi Inglés for providing me an 8GB SDHC to use with the pandaboard.

Secondly here are my impressions about it. Installing Gentoo on it was easy as always, one of the first problems i encountered was that there was no information about what x-loader/uboot/kernel should everyone use, as the vanilla kernel.org doesn’t work yet(or thats what i’m being told).

After i found the correct/updated x-loader/uboot/kernel i was able to boot gentoo on it, using 1GB of RAM. After doing some heavy compiling, for example when building gcc, i encountered random segfaults and sigbuses. Of course, this wasn’t documented either(Ubuntu is not Linux). There’s a bug in the kernel for the pandaboard, which gives those issues when using more than 716MB of RAM, check this link.

Regarding the hardware provided by the pandaboard, here’s what i got:
-Audio(non HDMI): Works fine with an updated kernel
-Bluetooth: Needs external tools to be able to use it.
-Wifi: The pandaboard uses a TI WL1271, but the driver in the mainline kernel doesn’t support the pandaboard yet. For now you need to use an external driver and external tools(to load the firmware) which i haven’t been able to do yet.
-Video: Haven’t had time to test it, obviously needs an external driver for full acceleration.
-SD slot: Works fine
-Ethernet: Works fine

Regarding the buildtimes, i compared it with the other Cortex A9 hardware i have, which is the Nvidia Tegra2 devkit. I used an 8GB USB stick(with an ext2 filesystem) to do the “benchmarking”, using the same stage3 and portage snapshot on both boards. The results are the following
-glibc: 1h24m <- the tegra was 13 minutes faster
-gcc: 2h6m <- the tegra was 15 minutes faster
-binutils: 12m7s <- the tegra was 5 seconds slower
-portage: 1m10s <- the tegra was 8 seconds faster

Also i'd like to announce the pandaboard overlay, for all the stuff needed to use the hardware integrated in the pandaboard. Please keep in mind that for now i've only got bluetooth to work.

Have fun!

Pandaboard and Gentoo: Part one (unpacking and specs)

October 28, 2010

Hello,

Like i did with the Nvidia Tegra2, i’m going to talk about the Pandaboard which i received two days ago.

The story begins at late september, once the brand-new Pandaboard got announced. Before it was announced how much it would cost and before you could buy it, the Pandaboard Early Adopter Program (PEAP) was available. This program allowed(the two phases are now over) developers to submit their project and be allocated a Pandaboard if the project was among the most voted ones. The first phase selected the top5 projects and the second one the top10.

I submitted my proposal for the first phase, and luckily enough my project and another one were tied with 5 votes, which was the maximum any project achieved.
My project is mainly about documenting the installation of Gentoo on the Pandaboard and provide everything needed to install it. Also to help users install it as well. After i have done everything, the board will be used to test/build packages and keep testing new kernels/applications made by OMAP developers.

Let’s go with the specs. The Pandaboard has a OMAP 4430 Dual-Core ARM Cortex-A9 processor @ ~1GHz, 1GB of DDR2-800(400MHz) RAM, audio input/output, Bluetooth(through TI WiLink 6.0 solution), 802.11b/g/n Wi-Fi(through TI WiLink 6.0 solution), 10/100Mb USB-based ethernet(SMSC LAN95xx), HDMI, DVI-D(using an HDMI port), 2 USB ports, 1 USB OTG port and 1 SD slot. You can expand the specs in their official webpage: http://pandaboard.org/content/platform

One of the things i should add regarding the specs, is that there are two revisions publicly available to the board: the EA1 and A1. The EA1 are the boards that were available through the PEAP program i talked above, the A1 are the ones that you can buy. The difference between them is that the EA1 boards use 2.0 silicon and the RAM is clocked at 200MHz(DDR2-400). The A1 boards use 2.1 silicon and are clocked at 400MHz(DDR2-800). That means that you can’t compare any benchmark i can do, since the RAM of my panda is slow compared with a panda you can buy, which after all is the real product.

Here’s the cpuinfo:


Processor : ARMv7 Processor rev 2 (v7l)
processor : 0
BogoMIPS : 2013.49

processor : 1
BogoMIPS : 1963.08

Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x1
CPU part : 0xc09
CPU revision : 2

Hardware : OMAP4430 Panda Board
Revision : 0010
Serial : 0000000000000000


dmesg is here

For more information you can check the official webpage and the wiki page made available for it. Until i create the documentation for installing Gentoo, you can install either Ubuntu, Android, or a minimal Angstrom distribution following the instructions in the wiki. Obviously you can also install Gentoo by yourself :)

Have fun!

New ARM CFLAGS/CXXFLAGS on Gentoo

October 9, 2010

Hi everyone,

Keeping with the previous post, i’m announcing the following changes for ARM stage3s.

The optimization flag on the default CFLAGS/CXXFLAGS will be changed from -Os to -O2 as of this month stage3.

This is a change we’re doing so we don’t hit bugs undiscovered until we hit them like bug 331641 which only ocurred when using -Os and was reported by Gentoo users. Also that way we use the same optimization flag used on the rest of the arches and distributions.

If you still want to use -Os you’re free to do so, like whatever CFLAGS you want to use.


Follow

Get every new post delivered to your Inbox.