Archive for the ‘Uncategorized’ Category

New ARMv7 CFLAGS/CXXFLAGS on Gentoo

October 4, 2010

Hello everyone,

From this month(October) the default ARMv7 CFLAGS/CXXFLAGS used to built ARMv7 stages are going to change from:
CFLAGS="-Os -march=armv7-a -mfpu=vfp -mfloat-abi=softfp -pipe"
to
CFLAGS="-Os -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -pipe"

The vfpv3-d16 option was included in gcc-4.4, and since thats what its stable, we’ll change the CFLAGS. This doesn’t affect current installations, but users are recommended to change their CFLAGS and rebuild the system.

Of course like always you’re free to use any other CFLAGS that suit better your system. You can use vfpv3 or neon if your system has those options. Those CFLAGS i mention is just for the armv7a stages we build, which target the “worst” possible armv7 processor.

Architectures and Gentoo (Part 1)

October 3, 2010

Hi,

In gentoo we support 13 different architectures: alpha, amd64, arm, hppa, ia64, m68k, mips, ppc, ppc64, s390, sh, sparc and x86. Although amd64 and x86 are the most common and popular, they are only 2 architectures of the total 13 we support, so i thought i could write about the rest of the architectures and their status on Gentoo.

I’ll do it in parts because i’ll get burned out too easily!

I think its sad to see a lot of that architectures that were so popular being discontinued, but i guess thats whats the progress is about :) The main problem of arches getting discontinued is that the hardware is slow compared with new hardware, less users because they replace their old alternative architecture computer with an standard amd64/x86 PC. That makes that there’s less users of said architecture, which makes less interesting for linux distributions to support them, then there’s no developers…and then the architecture really dies. IMHO its sad, but thats the way it is.

Alpha

The alpha processor was phased out by Compaq in 2004, being replaced by ia64. That means that you can’t buy any new hardware that has alpha processors(as to my knowledge). Of course there is some alpha hardware that wasn’t ever used, so you can say there is ‘new’ hardware, as in unused, but there’s no alpha processor manufactured after 2004. There were both workstations and servers.

The alpha status on Gentoo is good, there is three developers on the team: Tobias Klausmann (klausman, Blackb|rd on IRC), Matt Turner (mattst88) and myself. There was a lot of distributions supporting alpha back in 2001, when alpha was well and alive. But as of today, Gentoo is one of the few distributions that support it officially(guess we’re crazy :D ).

AMD64

Well, i don’t think i need to comment on this one…

ARM

ARM is one of the architectures that its level of activity is the same as amd64/x86 thanks to its fast-growing use on embedded devices. You can even find notebooks with ARM processors(called smartbooks), phones and NAS(Network Attached Storage) running Linux, WinCE and Android. Everytime they are getting more powerful, at the moment you can find dual-core processors at 1GHz, and thats not going to stop.

The status of ARM on Gentoo is good. We’re five developers: maekke, xmw, dagger, vapier and me. Also there are some users on #gentoo-embedded(irc.freenode.net) which are really helpful. We provide stage3s for a handful of CHOSTS: armv4l, armv4tl, armv5tel, armv6j and armv7a. Which covers most of the devices available. One of the bad things of ARM is that every device available is almost completely different, that means we can’t have install guides of each device if we don’t have the device itself…

HPPA

HPPA is another of the dead architectures that we support at Gentoo. It was an architecture designed by HP, and was phased out in 2008. It was replaced by ia64 as well. There was both workstations and servers.

The status on Gentoo is good. There is two developers: jer and GMsoft. I can’t speak too much about it because i’m not in the team, but i know its supported and doesn’t have too many issues(at least gentoo-related).

Hope you liked the first part :)

Nvidia Tegra2: Getting wifi(atheros 6002) working

May 24, 2010

Hi,

So i finally got working wifi(yay!) on the Nvidia Tegra2 250 Developer board.

I found this atheros ar6k repository by mistake, so i decided to try if i was able to compile the driver and get it working. It works, but you need to modify the sourcecode to replace the paths of the firmware, since they are defined for android, before compiling the driver. I’m also writing this post so i don’t forget how i compiled the driver :)

So let’s start supposing you’ve followed my tegra2 Gentoo installation guide or you at least have an ARM crosscompiler, know how to use it, and you use it to compile your tegra2 kernel.

  1. First you need GIT in your system *AND* a compiled kernel source(and an ARM crosscompiler).
  2. Then checkout the ar6k repository from here:
    # git clone git://nv-tegra.nvidia.com/3rdparty/atheros.git
    This will checkout the repository into the directory you are right now.
  3. cd into the atheros/ar6k_sdk/host directory, and fix the firmware path:
    # cd atheros/ar6k_sdk/host
    # sed -i -e 's:/system/lib/hw/wlan/:/lib/firmware/:g' os/linux/ar6000_drv.c
  4. Now we compile the module, but you probably need to change the variables definitions to suit your system. For example in my case, the compiled kernel source is at /root/tegra/linux-2.6/ and my crosscompiler is called armv5tel-softfloat-linux-gnueabi-

    # make ATH_LINUXPATH=/root/tegra/linux-2.6/ ATH_CROSS_COMPILE_TYPE=armv5tel-softfloat-linux-gnueabi-

If everything went right, you now have a file called ar6000.ko in your os/linux/ . Copy it to your nvidia tegra board.
You’ll also need to copy the firmware files located in atheros/ar6k_sdk/target into the /lib/firmware directory on your tegra system.

Once you’ve copied everything, you can do a ‘insmod ar6000.ko’ in your tegra2 board and some messages will show up on dmesg and a wlan0 interface should appear.

The driver seems to work fine, i was able to connect to my WPA/WPA2 802.11g AP.

Have fun

Update:
Magnus Damm on the comments commented about getting the driver to compile with a >=2.6.35-rc kernel. He says that you need to have CONFIG_WIRELESS_EXT enabled and he also thinks that CONFIG_WEXT_PRIV is also needed.
Thanks Magnus!

I can’t try it since the tegra kernel is stuck on 2.6.29, but its good to know :)

Request for a S390 VM for Gentoo

May 20, 2010

Hello everyone,

This is a post for s390 users to help Gentoo. Since some months ago the S390 VM’s we were using for maintaining the s390/s390x port were stopped due to a problem with the air conditioner on the room where the machine was running.

So if you or your company are able to provide us an S390 VM, it would be greatly appreciated by the s390 team.

We would need the following:
- SSH access
- At least 10GB of disk space

Thanks

PS: The Hercules emulator is NOT an option, so please don’t suggest that.

Update: I’ve added the requirements we need.

New sh4/sh4a stages available

April 4, 2010

Hello everyone,

Just wanted to let you know that i’ve put new sh4/sh4a stages on the mirrors. You can find them at http://distfiles.gentoo.org/releases/sh/autobuilds/current-stage3/

The last ones date from last year, and i didn’t update them until now since i had some troubles with upgrading to gcc-4.3, then with glibc-2.9. Had to check that everything worked fine after both upgrades. Had to fight with stuff that broke after upgrading gcc, then rebuild world, then update glibc, rebuild gcc(takes 1 day), rebuild world again, and rebuild again to make sure everything worked fine.

The problem is that it takes almost one week to build the two stages, so that delayed me a lot.

Have fun!

Nvidia Tegra2 and Gentoo: Part Two (Running Gentoo!)

April 3, 2010

Hi,

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

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

Its been a week already since i’ve been testing the Nvidia Tegra 250 Developer kit, and i can say its pretty rock solid. The only issues i’ve had are USB issues(which i guess my 8G USB stick is to blame), and that the stable Xorg server(1.6.5) didn’t work. I tried the unstable Xorg and that one worked fine. I need to say that i’m not a video person. Mainly because i don’t have a spare monitor or KVM(i should get one…as this not the first time i’ve needed something like that. Are there cheap USB+VGA KVMs?), so if i have serial, that makes me happy enough.

Regarding the hardware integrated on the board, this is what i’ve got:
-Audio: Gets detected(check dmesg), but doesn’t work(driver not working/broken?)
-Wifi: Uses Atheros 6002, no driver available for Linux yet.
-Bluetooth: Uses CSR BC6, haven’t got it to work(not detected?)
-Video: Only fbdev works, no Xorg driver. Check Xorg.0.log for more info. VGA works fine, don’t have HDMI to test.
-SD/MMC slot: Both external/internal slot detects an SD card
-Ethernet: Works fine.

So, regarding Gentoo, it was really easy to boot Gentoo, the only difficult part is getting a kernel to boot :) Apart from that, its pretty much the standard way to put Gentoo on this kind of devices.

Let’s talk about the compile times, this is by far the most fast ARM device i’ve seen. Its obvious, with its 2x1GHz cores.

Here are the buildtimes, compare them with the buildtimes page:
gcc-4.3.4: Mon Mar 29 10:49:06 2010: 1 hour, 51 minutes, 49 seconds
binutils-2.19.1-r1: Sun Mar 28 19:10:15 2010: 9 minutes, 59 seconds
portage-2.1.7.17: Sun Mar 28 18:07:56 2010: 1 minute, 36 seconds
glibc-2.10.1-r1: Mon Mar 29 08:42:44 2010: 1 hour, 19 minutes, 32 seconds

Hope you appreciate this information :) Let me know if you have any question.

Nvidia Tegra2 and Gentoo: Part one (unpack and specs)

March 27, 2010

Remember the post i wrote about ARM SoCs? Back in the day I said i wouldn’t comment on Nvidia Tegra since they said they weren’t interested on Linux. Although i updated that when they said they were working on support for it.

Well, that has changed after Google Android has developed so well. Nvidia now officially supports both Windows CE and Android. Since the Linux support is in the works, we already can see some bits, like the kernel on Nvidia’s GIT.

Fortunately i got ahold of a Nvidia Tegra 250 Developer kit, and it has arrived today. Its a pretty nice board, has Dual-Core ARM Cortex-A9 processor @ ~1GHz, 1GB of DDR2-667 RAM, 512MB NAND, audio input/output(Wolfson WM8903 L Codec), Bluetooth(CSR BC6), 802.11g Wi-Fi(Atheros 6002, so that means the ar6k driver, which isn’t on kernel upstream), 10/100Mb USB-based ethernet(SMSC LAN9514, still no Gigabit ethernet on ARMv7 except Marvell Dove), VGA, HDMI, 3 USB, 2 SD slots, 2 mini PCI-e and USIM slot. It can have a lot of optional stuff I don’t have. Anyway, you can find all the features here: http://tegradeveloper.nvidia.com/tegra/tegra-devkit-features.

On this post I’ll talk about the specifications.

Cpuinfo:

Processor : ARMv7 Processor rev 0 (v7l)
processor : 0
BogoMIPS : 1998.84

processor : 1
BogoMIPS : 1998.84

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

Hardware : Tegra generic
Revision : 0000
Serial : 0000000000000000

Regarding missing NEON on features…here’s a reason: http://tegradeveloper.nvidia.com/tegra/forum/tegra-250-devkit-hw-documentation#comment-546

dmesg is here

Fore more information you can check Nvidia Tegra Forums and the Linux subforum.

One of the bad things at the moment is that it doesn’t use U-Boot, so you need to use fastboot to put the kernel on it.

On the next post i’ll provide some more info like what devices got it working, build times, and putting Gentoo on it. Meanwhile, you can check how to put Ubuntu(putting another Linux distribution is exactly the same way) written by ianr on the Tegra forums: http://tegradeveloper.nvidia.com/tegra/forum/workaround-run-ubuntu-now.

Have fun!

armv4l/armv4tl/armv5tel/armv6j/armv7a Gentoo stages

February 23, 2010
  • armv4l-unknown-linux-gnu
    For the Rebel NetWinder, HP Armada and other devices having an ARMv4 processor, which is only capable of running the old ABI. Nevertheless it should work on newer CPUs.
  • armv4tl-softfloat-linux-gnueabi
    For the OpenMoko FreeRunner and other devices using an ARMv4T processor. Uses the new ARM EABI and software floating point by default.
  • armv5tel-softfloat-linux-gnueabi
    For almost all ARM NAS, devices based on the Marvell Orion and Marvell Kirkwood, Marvell Sheevaplug, Marvell OpenRD, Guruplug, Dreamplug, QNAP TS109/TS209/TS409/TS119/TS219/TS419, Buffalo Linkstation/Kurobox PRO, HP mv2120, HP iPAQ, Linksys NSLU2 and other devices using an ARMv5TE processor. Uses the new ARM EABI and software floating point by default.
  • armv6j-unknown-linux-gnueabi
    For Nokia N800/N810, Smart Q7, OMAP2-based devices and other multimedia devices using an ARMv6 CPU and VFP. Uses the new ARM EABI and hardware floating point by default
  • armv7a-unknown-linux-gnueabi
    For OMAP3-based devices(Beagleboard, IGEPv2, Devkit8000, AlwaysInnovating Touchbook, Nokia N900), OMAP4-based devices(Pandaboard), Freescale i.MX515-based devices(Efika MX, Babbage Board, Lange Board…) Marvell Dove/Armada, Nvidia Tegra2-based devices(Toshiba AC100, Toshiba Folio), ST-Ericsson NOVA A9500-based devices(Snowball) and other devices using an ARMv7-A processor. Uses the new ARM EABI and generic(not NEON) hardware floating point by default
  • armv7a-hardfloat-linux-gnueabi
    The same as armv7a-unknown-linux-gnueabi, but this one uses hardfloat instead of softfp. Read more about it here: http://wiki.debian.org/ArmHardFloatPort

You can find them on your favourite mirror or clicking on the links above.

ARMv7 SoCs: Freescale i.MX51 Babbage, TI OMAP3, Marvell Dove/Armada, Qualcomm Snapdragon…

February 14, 2010

This is a continuation of the ARMv7 post i wrote last year.

(WARN: long post)

I find some searches that arrive to my blog regarding Marvell Dove boards, which I believe are because Ubuntu announcing support for them while Marvell didn’t even released them. So since some months ago I was in the same position, not knowing what kind of devices were it, i’m going to try explain what ARMv7 SoCs are available/announced and which hardware is using them. All the info I’m going to write is publicly available on the net(I will link to the sources) and i definitely could be wrong. Feel free to send corrections to me.

Let’s start with the one that has less info on the net.

  • Marvell Dove/Armada
    The Armada SoCs are a continuation of the Marvell Orion and Kirkwood(this one is used by the popular Sheevaplug/OpenRD) SoCs. The Marvell Dove is the codename of a SoC of the Marvell Armada series which features an ARMv7-compliant processor. However not all the Armada SoCs are ARMv7-compliant…As far as i’ve been told, the Dove is the Armada 500 series. One of the cons of Armada 500 is that it lacks NEON support.

    So what is a Marvell Dove board Ubuntu talks about? It’s just a developer board, that contains a video chip, SATA controller, SD slot and audio. It also seems it runs at 800MHz(WARN: big file, grep for cpuinfo) and has 512MB or 1GB of RAM. In other words, is a smartbook development platform. In fact there was a Marvell smartbook for display at CES2010 running Ubuntu.
    Hope that makes it clear. It’s simply a developer board for a product that you can’t buy yet.

    Devices using it: Prototype

  • Freescale i.MX51
    This one is also a continuation of the i.MX SoCs, while the previous i.MX3 SoCs were ARMv6, the i.MX51 are ARMv7 Cortex-A8.

    Ubuntu also announced support last year for the Babbage board, which is also a development board for a smartbook platform. It runs up to 800MHz. But like the Marvell Dove, there aren’t any smartbooks using this SoC(yet), just prototypes/reference designs. One exception is the Sharp Netwalker. At CES2010 there was also a “Smartbook Reference Design” which could be converted into a tablet.
    Devices using it: Prototype, Efika MX, Sharp Netwalker.

  • Qualcomm Snapdragon
    The Qualcomm Snapdragon is also an ARMv7-compliant SoC which is very popular and i can’t say why. A lot of manufacturers are using it: Lenovo with the Lenovo Skylight, Google with the Nexus One… and a lot of smartbook manufacturers which showed their devices at CES2010, yet none of them is for sale at the moment.

    According to the cpuinfo of the Nexus One, it has NEON support and also has a FPU. The ARMv6 processors of Qualcomm lacked FPU, so thats a nice step :)

    Devices using it: Lenovo Skylight, Google’s Nexus One, HP Smartbook, HTC Dragon…

  • TI OMAP3
    This is a pretty popular one, since there are a lot of devices that use it. Its mostly famous for being the SoC the Beagleboard uses, which has been in the market for some years already. There’s only one smartbook as far as i know, the Always Innovating Touchbook which can also be converted on a tablet.

    Devices using it: Always Innovating Touchbook, Nokia N900, Beagleboard, Devkit 8000, IGEP v2, Motorola Droid, Palm Pre, Bug Labs Bug2.0, Archos 5/7, Gumstix Overo(and other Gumstix boards)…

  • Nvidia Tegra
    Since as far as I know, Nvidia is not interested on Linux, i won’t talk about this one. However latest reports(thanks Arie) say that Nvidia is working on Linux support…we’ll see…

Probably we’re going to see more stuff at the Mobile World Congress 2010, and definitely during the rest of the year, or so say the manufacturers. And by the way, anyone has a Mobile World Congress pass for me?

Update: Added Motorola Droid, Palm Pre, Bug Labs Bug2.0, Archos 5/7 to OMAP3 devices. Thanks Jason!
Update 2: Added Nvidia Tegra links and possible Linux support. Thanks Arie!

>=emacs-23 fails to compile on ARM EABI (Update: Fixed upstream)

February 14, 2010

As what the subject says, >=emacs-23 fails to compile on ARM EABI.

The error happens with a clean system, and happens on Gentoo and Debian. So you can’t say its Gentoo’s problem, like people tend to say :)

The problem is this one:
armv4tl-softfloat-linux-gnueabi-gcc -nostdlib `./prefix-args -Xlinker -z
nocombreloc` -Wl,-O1 -Wl,-znocombreloc -o temacs pre-crt0.o /usr/lib/crt1.o
/usr/lib/crti.o dispnew.o frame.o scroll.o xdisp.o menu.o window.o charset.o
coding.o category.o ccl.o character.o chartab.o cm.o term.o terminal.o xfaces.o
emacs.o keyboard.o macros.o keymap.o sysdep.o buffer.o filelock.o insdel.o
marker.o minibuf.o fileio.o dired.o filemode.o cmds.o casetab.o casefiddle.o
indent.o search.o regex.o undo.o alloc.o data.o doc.o editfns.o callint.o
eval.o floatfns.o fns.o font.o print.o lread.o syntax.o unexelf.o bytecode.o
process.o callproc.o region-cache.o sound.o atimer.o doprnt.o strftime.o
intervals.o textprop.o composite.o md5.o terminfo.o lastfile.o vm-limit.o
-lgpm -lncurses -lm -lgcc -lc -lgcc /usr/lib/crtn.o
/usr/lib/gcc/armv4tl-softfloat-linux-gnueabi/4.3.4/libgcc.a(bpabi.o):(.ARM.exidx+0x0):
undefined reference to `__aeabi_unwind_cpp_pr0'
/usr/lib/gcc/armv4tl-softfloat-linux-gnueabi/4.3.4/libgcc.a(_divdi3.o):(.ARM.exidx+0x0):
undefined reference to `__aeabi_unwind_cpp_pr0'
/usr/lib/gcc/armv4tl-softfloat-linux-gnueabi/4.3.4/libgcc.a(_udivdi3.o):(.ARM.exidx+0x0):
undefined reference to `__aeabi_unwind_cpp_pr0'
collect2: ld returned 1 exit status
make[1]: *** [temacs] Error 1
make[1]: Leaving directory
`/var/tmp/portage/app-editors/emacs-23.1-r2/work/emacs-23.1/src'

Builds fine on ARM OABI.

I found a patch from an openembedded repository(thanks to whoever did it!), and it works fine. Gentoo developer Ulrich Müller (ulm), who is part of the Gentoo Emacs team, applied the patch and now we have >=emacs-23 stable on ARM.

I filed a bug upstream as well, with no answer so far:

http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=5518

Update: upstream has fixed it


Follow

Get every new post delivered to your Inbox.