**** BEGIN LOGGING AT Sun Jan 31 02:59:57 2010 Jan 31 16:01:24 Is there anyone that can talk to me briefly about cross compiling on 9.10(x86) for 9.10(arm)? Jan 31 16:02:14 Specifically, I want to know if there's an established toolchain/way to setup the codesourcery toolchain. Jan 31 16:11:23 who_: The codesourcery toolchain can be used as usual Jan 31 16:11:51 lool: as usual doesn't mean a huge amount to me ;) it's not something I 'usually' do. Jan 31 16:12:20 who_: What's your overall goal? Jan 31 16:12:58 I have an IGEP2 board (like a beagle). I have made myself a 9.10 rootfs, and I want to be able to compile some apps not in the repositories for it Jan 31 16:13:13 I would recommend you do native builds then Jan 31 16:13:36 I don't want to have to compile on the hardware and I because of the 256mb mem requirment on qemu (as far as I can see) - it's pretty slow Jan 31 16:13:55 I wrote some patches to qemu to be able to use more than 512m Jan 31 16:14:03 It's usually enough Jan 31 16:14:32 Another route you might follow is using qemu syscall emulation to build under x86; this is very fast, much faster than qemu machine emulation Jan 31 16:14:59 In this latter case, you can have as much as your host, but probably limited to 4GB; didn't try it out Jan 31 16:15:30 lool: that sounds more like what I'm looking for Jan 31 16:15:45 lool: so I could, for example, point it at my rootfs and get it to link against that? Jan 31 16:16:09 lool: the packages in the repositories: how are they built? Jan 31 16:17:18 We build natively, on real hardware Jan 31 16:17:24 lool: out of interest, do the qemu patches need to be applied to qemu and to the kernel I want to use with qemu? and are they in some rcs somewhere? Jan 31 16:17:29 who_: You could point at your rootfs and link against that Jan 31 16:17:42 lool: sounds excellent. Jan 31 16:17:57 If you want to use the patches, these are for machine emulation; they target the realview and versatile boards Jan 31 16:18:15 We actually some of the versatile ones to our Ubuntu versatile kernel Jan 31 16:18:21 But I didn't get that kernel to work yet Jan 31 16:18:34 We actually *applied Jan 31 16:18:44 But you don't need any patch for syscall emulation Jan 31 16:19:11 lool: okay, I guess I'll try that route first Jan 31 16:19:22 The only thing to keep in mind is that it's a very unperfect emulation; stuff might or might not run and your software might detect host features which your target doesn't have Jan 31 16:19:29 But when it works it's the best option Jan 31 16:19:40 lool: any reason you suggest that over codesourcery? Jan 31 16:19:55 or, in fact, some other cross compilation system? Jan 31 16:20:17 If you're using karmic, just install the qemu-arm-static package, and copy /usr/bin/qemu-arm-static to your rootfs' /usr/bin, and you're done Jan 31 16:20:41 Cross compilation is harder to get to work with Debian/Ubuntu packages Jan 31 16:21:08 lool: at first, I will probably be just compiling new code I'm writing or things I'm porting... Jan 31 16:21:10 It creates many issues of its own which you wont get without xcompilation, and the output is not identical to native compilation Jan 31 16:21:40 basically, cross-compilation adds a layer of complexity and uncertainty and degrades output slightly Jan 31 16:22:25 lool: thanks. that makes sense. Jan 31 16:22:49 so what _is_ qemu-arm-static? Jan 31 16:23:54 A package shipping a static binary of qemu-arm, that's the syscall emulation one Jan 31 16:31:12 sorry, I mean, /usr/bin/qemu-arm-static - what is in that file an for what purpose do I need it on my rootfs? I assume it only needs to be there for when I'm running on the x86 machine, not that any applications compiled using syscall emulation actually require it to be there? Jan 31 16:32:59 lool: also - can you tell me anything about this supposed xcompile toolchain? http://alone-in-the-light.zenvoid.org/2009/11/cross-toolchain-for-arm-ubuntu-910.html Jan 31 16:34:16 who_: It only needs to be there while you're using the rootfs on your x86 host; it's needed for binfmt Jan 31 16:34:47 who_: First time I see that link, no idea what's in there Jan 31 16:35:38 lool: okie :) I'll have a bit of an explore myself. I'm in that stage where I don't yet quite know enough to assess these things/avoid naive mistakes :S. I'm sure I'll get there Jan 31 16:37:41 Try the simple instructions I mentionned earlier, it should get you started immediately Jan 31 16:40:48 lool: you're referring to the instructions about copying qemu-arm-static to the rootfs and using qemu syscall emulation? That's what I think I'll try first. Jan 31 16:41:46 Yes Jan 31 16:46:01 thanks very much for your help :) Jan 31 16:46:21 some questions in passing. Are there arm builds for ppas? Jan 31 16:46:54 and what hardware do you use for the compilation of the entire repositories!? Jan 31 16:53:12 who_: We don't have public armel PPAs; I'm not 100% sure about current hardware, but I think only Freescale i.MX51 based boards are in use ATM Jan 31 17:02:42 lool: so I assume then most people using ubuntu-arm 'in anger' are compiling natively and/or using only things int he repositories? One thing I'd like to try on by board but don't really want to have to compile is Chrome (the browser) - know if there are any packages around? google doesn't seem to have helped me. Jan 31 17:03:15 who_: https://launchpad.net/ubuntu/+source/chromium Jan 31 17:03:39 ISTR it requires NEON though Jan 31 17:04:08 that one's a game not a browser "Chromium is a top down fast paced high action scrolling space shooter which uses the SDL libs." Jan 31 17:05:13 https://launchpad.net/ubuntu/+source/chromium-browser seems to be built for Lucid though... Jan 31 17:06:26 when I get to my desk tomorrow I'll see if it depends on things I don't have... Jan 31 17:08:42 who_: Oh sorry Jan 31 17:09:19 who_: https://launchpad.net/ubuntu/+source/chromium-browser Jan 31 17:09:31 who_: But you can see it's built for x86, x86-64 and ARM Jan 31 17:10:53 yea, I found that (see above), hopefully the lucid package will work on Karmic without too much trouble :S? Jan 31 17:11:06 lool: otoh, it's not that important - just an experiment really. Jan 31 17:50:09 hahaha Jan 31 17:50:15 lool: so a game, uh? :D Jan 31 22:20:09 Hey, I have a couple questions if anyone is around and wants to humor me Jan 31 22:20:35 I have a beagle board that I have used rootstock to build a 9.10 image for. Most stuff works pretty well but I need access to GPIOs and UART2 on the expansion connector, the later requiring changing the way the OMAP has the pins muxed. What is the best way to change the pin muxing? Jan 31 22:21:30 It looks like my options are to recompile either uboot or the kernel, however it does not seem that the process for building an ARM kernel on my x86 machine is going to be too much fun. Jan 31 22:22:13 Secondly, I get a "Permission denied" error when attempting to access the GPIOs (user LEDs to be specific) on the OMAP. Even as root. Is this a kernel issue or am I just doing something wrong? Jan 31 22:24:41 pdxspork: You could build the kernel natively; it might be painful once, but if you use ccache the next builds should be ok Jan 31 22:25:00 pdxspork: Otherwise, you could build within a qemu-syscall chroot or cross-compile Jan 31 22:47:47 lool: Yeah, I'm looking towards using a cross-compile Jan 31 22:48:46 I have a lot of x86 horsepower, no reason to wait an eon for the beagle to compile it when I've got a dual xeon box sitting here Jan 31 23:14:00 pdxspork: Cross-building the kernel is probably easiest then; just add it to you path and pass CROSS_COMPILE=your-compiler-binaries-prefix- to the build Jan 31 23:14:17 e.g. CROSS_COMPILE=arm-linux-gnueabi- **** ENDING LOGGING AT Mon Feb 01 02:59:56 2010