Category: Cell
Alive again
During August I was supposed to prepare something new for the LScube project.
I was supposed to do a bit more for the Summer of Code (Sorry Keiji and Seraphim) and the FFmpeg project (libswscale isn't yet in shape I know).
Sadly I spent about a month with a bad pneumonia and just now I'm starting to catch up really. (I hoped to stay better before but, as my 2 miss on council meetings shown, wasn't ok yet)
Diego is doing a wonderful job rationalizing LScube suite, Ale almost finished his Flux (started as a way to show me that C++ isn't the problem, just people misusing it), Michael decided to make libswscale the default in FFmpeg forcing more people taking care about it.
What now?
Well first I'll try to not miss new council meetings (and I'll ask Chrissy and Diego to back me up when happens I cannot be there).
I have some pending stuff about libswscale that will end up having a better structure to provide arch specific optimizations, once they hit I'll try to do again a witch hunt over ffmpeg using applications to provide the new libavcodec in portage.
Hopefully the next feng (and friends) release will hit portage and the stale fenice and libnemesi will be replaced accordingly ^^;
There is plenty of new stuff on the CELL land to be tried and provided (like mars)
I'll try to take some time to merge the openmoko patches to the new (and gcc-4 building) qemu so I won't have to provide an qemu-openmoko to help people interested in getting Gentoo on the freerunner (openrc could help a bit the boot time possibly and bitbake is a bit annoying from time to time)
Last but not least Syoyo is getting his blazing fast renderer Lucille to be usable even by common people.
Lots is happening (with and without me) =)
What news?
Lately I started to test some stuff, after hammering openrc inside bsd jails I started to use it on my laptop, the ps3 and the new phenom I bought recently. So far I hadn't anything to complain but just minor glitches that got promptly addressed by Roy. With the help of the other testers and developer you'll get baselayout 2 soon and in a pretty good shape.
Feng and felix got quite an overhaul and hopefully I'll release them once I cleaned up the code:
- felix had lots of experimental stuff added and you may not want it nor look at it right now.
- feng is getting the eventloop reshaped so that you can understand what's doing w/out losing your sanity.
I'm still waiting for more SoC applications (in particular people willing to learn CELL seems fewer than we'd like) you have this week left to apply!
gcc-4.3 landing and other random stuff
gcc-4.3 seems to be released and I already started building it (right now spu-elf target being built while the powerpc64-unknown-linux-gnu quickpkg is being uploaded to the devspace for the people needing it). I got my alubook back and seems working fine, many thanks to
http://www.pixel.it/ for being that quick in fixing it. Now I'm waiting for the battery replacement and I should be more or less back on business.
The stuff I'm doing at LScube is shaping up nicely and I hope to have the next feng release, sporting the lighttpd and other major changes, out soon (It's nice to have shared configuration across services ^^
. Soon I'll update the efika setup and I'll ask you to hammer it again ^^
Alive, hopefully
You may wonder what I'm doing since has been a long time since the latest blog item, well I was busy trying to do too many thing, searching, traveling and so on.
Here a summary:
- I eventually released feng as you can see on http://live.polito.it
That involved getting the website up, writing lots of documentation (that hopefully someone will read), hacking the code to be in the right shape and making the whole bundle bearable for people with less understanding of autotools and dependencies... I hope the first release isn't that ugly and I thank dario and alessandro for their help =)
- The ffmpeg bug tracker is taking shape eventually, hacking roundup isn't the simplest thing in the world
mostly because examples and alternate templates aren't available; the documentation saves the day most of the times anyway. you may see it on https://roundup.mplayerhq.hu/roundup/ffmpeg/
- On the cell side I started hacking a bit the build system in order to have it working for me (using gentoo, standard paths and stock gcc toolchain) and for the ones that are using the IBM sdk/fedora (bogus paths, shortened prefixes) I hope the people in charge of deciding what would be the standard for writing and running spu code would provide a sane default. Hopefully one I'll have more time I'll start writing something on my own, so far I'm just testing pathes and contributions by others ^^;
- the vorbis and theora rfc are proceedings and currently feng and gst are interoperable, I hope to complete the standardization and move to something else, it's taking too much!
- my altivec work on cairo is still on hold, I hope to get enough time to push an update (since the ibm/sony mathlib has an implementation of vector integer division I could rip it and add some more vector ops in pixman).
- the SoC with ffmpeg has already started, so far I'm receiving some good feedbacks from my student and I'm trying to find the time to reread the dirac spec in order to follow him better.
That's more or less all, the keyword of the whole document is TIME, lately the lscube involvement took a bit too much mostly because you cannot manage the time well if you have your plans spoiled every by unexpected priorities appearing out of the blue.
Misc updates again
I spent much of my time trying to get the whole LScube project more alive, so far it's just a slow start:
I moved the development to git ( https://live.polito.it/gitweb ) and now I'm trying to update the website to a newer drupal and with more documentation. Since the forums are just a spam magnet I guess I'll nuke them, if you want to contact us just use irc or email =P
I put the efika in use to stress test the streaming server, you can watch
rtsp://130.192.86.166/tc.mov
or
rtsp://130.192.86.166/ed.mov
(both streams are h264+mp3, not many clients could handle that... Yet)
Hopefully a Feng release will appear soon.
That's for the streaming stuff.
Now, I have a ps3 working and eventually managed to configure and install it, I already found something itchy: git's ppcsha1+64ul == KaBOOM, I hope it's just due my test with bleeding edge compilers but I'm afraid not. So far I'm quite impressed by the ps3, just a pity I'm slow in doing something nice there...
More will follow
lu
something new, well not so much
Just a quick update :
- got the ps3 running and well, I must say that its quite cool
- got swamped in many other things and so I'm slowly configuring my network to get the ps3 on, in the process I managed to brick my first access point (a belkin that now I'll have to hack a bit to recover if possibile...)
- the lscube tasks are proceding nicely, currently we eventually ironed out some bugs due mp3 and the compositing layer, for the ones not following: I'm working on a new streaming server called Feng, currently it streams h264 and mp3 and let you either just point an url to a container and automagically provide a sdp or, more interesting, let you define a special editlist so you can just provide a simple textfile with the files and the start and stop time and have aggregated streams on the fly, pretty interesting if we manage to complete it and then make it usable =)
- I still have to fix B frames support in h264 and then move on improving those framers or eventually implement vorbis and theora, the gst crew beat me at it but I'd like to be at least a close second ^^;
- I hope to cleanup the roundup setup and the site restyle for lscube soonish once the previous task got addressed since I'd like to get more people involved and the current framework still has some rough edges...
- I'll start probably hacking on the bfin due a course I'm attending, I cannot say I really like the arch since is a bit irregular, still much nicer than x86 (expect ffmpeg patches about it soon^^)
- last but not least I have my laptop eventually back!
that said I guess you may know why I'm not much reactive on bugs (I promise I'll try at least the blender ebuild and to provide updates to ffmpeg and mplayer ones during the week end) and I less than lively...
PS: Cocoa programming isn't that nice...
Drive failure, ps3, other news...
It was quite a busy week, we (me and dario) eventually end up gaining full access to our lab and got all the duties our previous mentor and colleagues had at lscube.
We had been at ONU for our first webcast in Geneva. The place was quite nice and the people were absolutely great =). Once we got back in Italy we spend some time preparing the feed for storage and preparing a new release for fenice (did we tell the 1.12 was the last? well not really since felix was missing....) and felix, the live feeder.
Hopefully tomorrow I'll set up everything for a proper release and then move to fenice-ng or fe.ng and libnemesi, while we were travelling I eventually fixed the h264 packetizer so now fe.ng can stream h264 and mp3 correctly =) Once I get also libnemesi supporting it I'll do at least as rc snapshot. Dario worked quite hard to improve the scheduler in order not to choke on certain bad behaviours from a certain well known client...
Now I have a big news: I eventually got a ps3 =) It is japanese model sony graciously lent me for a while ^^ Sadly the label on says 100V~3.8A 50/60Hz and that means that I have to get a voltage converter... Luckily Geert pointed me a nice german shop with good prices, http://www.thiecom.de, I hope what I ordered (correcting at the last minute a product mismatch, I hope the order change email reached otherwise I'd get a 110to220 that is exactly the opposite I need...) will arrive next week since I want to check myself the new livecd and maybe complete the step by step docs.
I eventually complete the fbcompose altivectorization in cairo (check the mailing list for the patch) and hopefully now there is enough to start benchmarking it...
Now the sad news: my Alubook hd died, I'm trying to recover as much as possible and then send it for repair (this time I have a full applecare and I'm going to use fully ^^ ), so I won't as much available as I was before for more or less 2-3 weeks, hopefully.
I guess that's more or less all.
Building on/for Cell/SPU
One of the most annoying things I'm starting to see are bogus way to check for presence of compilers or lib for SPU support...
Since it is almost the last day of the year here the top annoying pratices list:
- misnaming: ppu- isn't a valid prefix, powerpc64-unknown-linux-gnu- is, anyway if is the native compiler gcc would do perfectly, if isn't someone would provide it to configure so. PLEASE AVOID PPU-
- misnaming: spu- could be a partially valid prefix, _maybe_ spu-elf- is the correct one . TREAT SPU AS A CROSS TARGET, ALWAYS.
- bad assumption: I may have a valid spu compiler but _MAYBE_ I didn't registered elfspe or elfspe2 on binfmt so I cannot automagically run spu binaries or maybe I don't have spufs mounted. TREAT SPU AS A CROSS TARGET, ALWAYS.
- picking cflags from env: the spu-elf-gcc and the native gcc may not share the same cflags, make sure your configure could pick CFLAGS_{powerpc,powerpc64,spu} as they fit.
- hardcoding paths: the ibm and the sony sdk are for non native system with non default cross paths, I know beside gentoo and few other crazy people nobody is using alternate paths, still since maybe native system should be expected and _maybe_ less custom paths could appear, please do not hardcode /opt/${STI_SDK}/blah as include/lib path in your applications or applications patches (like the one for lame). PLEASE KEEP THINGS CLEAN.
Here a top5, luckly there aren't that many annoyances =)
Have a great new year.
who cares about fortran?
Ok, flamebait title....
Now with the new newlib release I'm pleased to announce that I'm just 2 steps from having a working out of box spu toolchain.
all you need currently is just to:
- patch the toolchain.eclass https://bugs.gentoo.org/show_bug.cgi?id=158495
- disable fortran useflag (since it won't build because of a upstream issue)
and then just issue a crossdev --l 1.15.0 --g 4.3.0_alpha20061216 spu
and you'll have a a full toolchain (including spu-elf-g++)
Many thanks to my fellow testers and to Shine for the ssh account over his box =)
spe-samples builds!
Ok, it shouldn't be a important news in itself but creating an ebuild for it helped me getting a better idea on which are the pitfalls and issues of:
- autotools usage: probably would be better avoid that many configure and call the spu ones as they were cross building
- paths and prefixes: ppu- and plain spu- aren't that correct IMHO and seems config.sub shares my opinion...
- forcing -m{32|64} could be wrong when you try to embed spulets in ppc{32|63} elfs
- you shouldn't feed spu-elf-gcc with CFLAGS_ppc64 ...
Hopefully I'll try to get some of those issues clarified from upstream and/or fixed in an eclass or in the toolchain.
Cell/SPU support almost there
Ok, well I think you already know that gentoo is working pretty fine on ps3 and we are working on getting a quick install route for it (basically figure better how kboot works and make it do what we want)
Today I eventually got a shell on a ps3 and spent some time fixing the libspe2 ebuild (testing it in first person eventually =)), you can find it in my overlay, to get SPU stuff working you need the _VERY_LATEST_ gcc binutils and newlib and just issue a crossdev spu --stage3 to have a (hopefully) good toolchain.
Many thanks to Shine, that is also already starting to code something useful (that I'll rip for mplayer once I have the time to start working on it) http://forums.ps2dev.org/viewtopic.php?t=7209
In the other news I got the efika eventually and, well, it's _really_ tiny, I bought a 60GB hd and I start gather the rest of the components to play with it, I hope next week to assemble everything and have something to tell even about it =)
Misc news
If you check the overlaytimeline you could see some minor updates (new libspe1 and ps3pf_utils tentative ebuild)
I hadn't written much lately but quite a lot is happening on #gentoo-ppc64 thanks to quite a lot of ps3 owners willing to help testing and to ranger and JoseJX that are preparing something interesting (I won't tell what since we are working on that right now and probably I'll leave Brent the pleasure to be the first writing about it once it's ready^^).
I'm still following what's happening in the toolchain and kernel sides and looks like all the pieces are coming together nicely.
I guess that's all.
PS: I read on a certain site complaints about having some patches to support ps3 merged in the .20 kernel and other complaints about not having access to certain features like the gfx right now.
Well, considering how the other PowerPC consoles aren't supported at all and how hard the Sony+IBM people are working, I'd suggest you to quit complaining and be a bit more supportive... Maybe IF the experiment goes well IBM or Sony or Toshiba could come up with more Cell based hardware for the workstation/desktop market...
step by step...
Looks like booting linux on the ps3 is more or less easy once you figure out the right kernel and the right configuration.
So far http://whitesanjuro.googlepages.com/ got the system booting first using the .16 sources while others acting as guineapig are help me figuring out what is missing and what to do about ps3 and more recent kernels.
Hopefully newlib fixes to build with gcc-fsf will get committed soon and people could start playing with spu coding using the mainline gcc.
there are two new section on powerdeveloper
http://www.powerdeveloper.org/forums/viewforum.php?f=49
http://www.powerdeveloper.org/forums/viewforum.php?f=50
I hope to get some success post and/or inquiries there =)
That's all for today
Bad news = good news?
Today with the help of a lucky owner of a ps3 I managed to discover (reading the kboot script would lead to the same knowledge, note to self) that kboot is a real shell after all, so installing gentoo should be easy, BUT:
- gcc-4.1.1 seems to deplete all the memory -> I'll provide a build of it
- glibc-2.5 needs a patch to build with gcc-4.3 (the dreaded extern inline issue)
- newlib got coded using a gcc that let you do things you shouldn't, gcc-fsf as usual is more strict... (I hopefully fixed it already and I'll post a patch for it soon)
- gcc-4.3 seems to be almost ok beside a nice ICE while building newlib (I'm trying to create a testcase right now)
In short, gentoo almost installed on a ps3 today, BUT I'll have to figure out why gcc is depleting that much memory and why enabling swap isn't helping at. [edit: swap wasn't enabled ...]
In the mean time I'll try to build some tbz2 you could use to avoid the memory depletion issue. (note to sony, have a memory expansion for non-game usage)
Digging the kboot for playstation3
Probably some of us already read about how the playstation3 firmware runs linux (the "OtherOS")
Some insight:
1- it uses as bootloader a very minimal linux system that then loads the right kernel using the kexec call (yai!, after the gamecube the other ppc platform with kexec implemented is the playstation3...)
2- the instructions obviously are scarce and seems to point out that the provided loader has a nice script to install just one kind of distro (I'll let the reader the exercise of guessing witch) and doesn't seem to provide anything useful if you happen to prefer something else...
3- [update] you can access the busybox shell from kbuild and just install gentoo the usual way (suggested using recent ppc64 stage3 and then build a cell-sources kernel using the cell_defconfig)
The kboot is quite neat in itself: it has a great deal of features (like ssh or tftp) and uses pretty standard tools (busybox, linux, kexec-tools, dropbear) plus something specific (the ps3pf-utils).
I'll add the ps3pf-utils once I have them mirrored on powerdeveloper and maybe adding an unofficial svn/git for it and libspe2 (since looks like they will be improved a lot in the next weeks and keeping track fo the patches is a bit easier this way)
Playstation 3!
Some lucky people in Japan got their already, us pitiful European will have to wait a bit more...
Anyway with the release some new toys had appeared already and I already started packaging them =)
Currently my overlay has already ebuilds for the spe-examples, the documentation and some updated kernel sources (arnd sources vanilla for now).
Other useful stuff are the patches to support the Playstation 3 bootloading system (that is quite interesting it itself) and obviously the boot image (provided as iso)
Congratulations to everybody responsible to this timely release, I'm looking forward new surprises (and the rest of the updated toolchain =))
(PS: if somebody with a ps3 is willing to be an early specimen^W ehm, tester for gentoo please contact me and I'll try to produce a quick test image with the minimal stuff with the tools we have now, edit: some more at http://overlays.gentoo.org/dev/lu_zero )