2010

Wow another year ended and I’m being just to quite busy concluding with my master degree and doing part time open source projects. From March I begin working on Linux board bring up for several FPGA platforms under the umbrella of the Linux foundation and Google, as a GSoC project. By concluding my participation on GSoC represented the first of my goals for 2010 being a GSoC student; The second goal was to conclude with my studies which I did just a few weeks a go. The third one was getting back to professional labor market and GSoC counts, and from September I’ve been collaborating for a secret company which have many associates around the world and is so secrecy that we don’t know each other, well not exactly.

Working on both projects was quite challenging, in my school GSoC was perceived as a distraction, at some point it reach a critical point since part time activities are not allowed. Some school polices are obsolete and prevent collaboration between universities and companies, far from any other countries where participation in programs similar to GSoC are encorage and students can receive credits for their participation. On top of that in the first semester I was taking 3 courses, GSoC and thesis wow I was with just to much activities to do, I quit with my sport activities just to recover some time and increase my workdays to weekends, by the second semester I was concluding with GSoC and starting doing the heavy work of my thesis, still no weekends free until late September when I decide to celebrate with some friends and went to a nice place to have a few drinks which ended in nothing good I was victim of alcohol check points mafia in Mexico city and end up in jail for the weekend :(.

In November I attend to Linux Plumbers conference at Boston, where I meet a lot of people like some Ubuntu developers, Yocto project contributors and kernel hackers, well I need to continually attend this type of events since is where I can learn from others, working from home and living in a large city without a decent Linux user group does not help.

The only negative aspect in this year is that I don’t plan to continue participating in open source conferences in Mexico city, is hard when you have to deal with people that thinks that are free software contributors because they use open office. Imagine Debian community polices and apply it to a group with some technology knowledge but can’t write a line of code, um not exactly better wording is people that use open software but in any form they contribute to its development.  Most Mexico city Lugs are just to elitist, and the “elite” group just sucks! So what can be done to form a decent LUG? That’s another blog story.

Reusing portable media player with Rockbox

I’m a music lover all types indy rock, reggae, hiphop even k-pop; So hanging around with an broken ipod isn’t fun; I was tempted on getting a new media player but just looking that I have a few more media players around I decide to bring them back to live with Rockbox starting with Go-gear mp3 player that had a broken micro drive which I replace it with compact flash card increasing the storage space from 6Gb to 32Gb :).

I had a lot of trouble restoring the firmware even using Phillips recovering tools until I found good references at Rockbox wiki [1]; The next step is to actually replace vendor firmware with Rockbox, there are some driver issues that I can look as a side pet project but firstly I need a battery replacement and can find it in Mexico so I need to order one from a global battery vendor.

[1] http://www.rockbox.org/wiki/GoGearHDD6330

Openembedded on xilinx virtex 4,5 support

In this lasts weeks I’have been working on Openembedded
for generic support for Xilinx virtex4, virtex5; Only u-boot and the
Linux kernel needs attention to be configured for the final target arch
since it can be Powerpc 405, 440 or Microblaze. Final arch settings needs
some user configuration in local.conf file it should be set the target
board options:

# Generic Powerpc 440 based board
MACHINE = “xilinx-virtex5”
TARGET_ARCH = “powerpc”
TARGET_CPU = “440”
TARGET_TUNE = “ppc440”
# Hardware project options
XILINX_BSP_PATH = “${HOME}/workspace/ppc44x/xilinx-ml507”
XILINX_BOARD = “ml507”

The machine can be xilinx-virtex4, xilinx-virtex5 or xilinx-mb-gen (generic microblaze)
the final arch can be override by setting TARGET_* values, for example for virtex5
family board targeting microblaze
TARGET_ARCH = “microblaze”
TARGET_CPU = “microblaze”
TARGET_TUNE = “microblaze”
I know that this is kind of odd but until I fix how to override this values inside conf
machine files this would be useful for testing stage.

The logic for setting the target options for u-boot and the kernel are handled in
xilinx-bsp.class where I add some logic for the configure settings based on the
TARGET_ARCH and XILINX_BOARD values, a similar approach is needed in config machine
files to do the black magic on setting the default options for a particular target
board.

I had problems with running any ace file (fpga bitstream + elf executable) from compact
flash on ML405 target board, on power-up the board was just flashing a led indicating an
error on compact flash read, and to solve the problem I had to add an option on
`etc/bitgen.ut` file

-g Match_cycle:NoWait

I’m not sure but it seems that my compact flash is the problem;

There’s a lot still to be done specially for Microblaze support, where I have to still
deal with glibc or uClibc to be integrated in OE, or to get working an external toolchain
Also fully test Angstrom on ml405 board since it’s failing when running init scripts it
complains about permissions errors.

The OE code changes can be found at http://gitorious.org/oe-microblaze

GSoC first week

I start working on OE microblaze support and is kind of tricky,
there are several efforts on updating gcc, binutils, glibc, and
I’m integrating from Xilinx repos since they are the most updated
versions available for microblaze; Still glibc build is failing
due to a mis configuration in binutils; So I have to options,
add a prebuild toolchain in OE or fix glibc; the exact error occurs at
linking the final objects ld complains about “unsupported emulation” to
workaround this there’s an run-time variable that can be used to set the
emulation mode `LDEMULATION` but fails in a later stage, so the error
roots are in binutils configuration.
OE changes are stored at http://gitorious.org/oe-microblaze/oe-microblaze

Xilinx provide me some target platform (ML405, ML507), for testing/validation
one of my concerns was import taxes from Mexican customs, but I provide the
paperwork to claim professional development usage to be extent of pay taxes,
well that’s one good thing of Mexican custom regulations, and I didn’t pay a
single dollar :). Thanks John and Grant for making possible to have some
hardware at home, that would free the only single ML507 board from my
school.

From Google every student is still waiting on welcome package and payment
cards, they are estimated to be delivered in two weeks, well lets wait and
see if Google is generous and send us a cool nexus one ;).

My PC on fire!

Well almost; I upgrade my computer that I use for openembedded [1] builds with a
quad core processor, once I remove the old processor and put back everything in
place I turn on the computer and star a build from scratch to generate an
x11-sato-image [2], when I saw that the build process start I left to take dinner with
my parents and come back like two hours later, to my surprise a burning smell in
my room! so I brutally turn off my computer.

Once my computer cold down a little I open the case and everything look OK,
no wires around the CPU fan no apparent damage in the motherboard, so the
problem must be on the power supply, um strange my first tough is a brand
know power supply and it provides more that enough watts necessary to
power-up all my system, please don’t be the power supply (they are expensive
in Mexico) its out of warranty, it has more than 4 years, oh well let’s open it and
find out if I can fix it; And I did the fix was simple the fan got damage so I replace
it reassemble and plug everything back turn on and restart the build processes.

Power supply fix

This problem got me thinking that the high price on technology products are and
obstacle in order to generate our own innovations, I do spend a lot of money on
computers and gadgets which I pay the best case scenario like 20% over of their
price in a first world class country in some cases the deferential is up to the 100%.

2010

For me 2009 passed really fast, I complete almost the 70% of credits needed to graduate;
Participate in a couple of Linux events in Mexico city, giving some Fedora project talks;
Enjoy a summer job where I had the chance to travel to South Korea, I had to deal whit job
commitments and parting at Seoul which was the hard part :P; Work on my thesis which
I have an 10% of progress; Resist the tentative to leave school for many interesting job offers.
For this year the priority is school I need to cover the rest of my credits and work harder on
my thesis, for this I’m getting the right tools a new lap and a book `Essential Linux device drivers`
which by the way is pretty complete and has a must read chapter ‘Kernel facilities’ that deal with
kernel threads, linked list, hash list that for a newbie like me must be aware about the built
in helper APIs.
I would like to assist to CELF at San Francisco but reality always imposes, I’m short of covering
the expenses, Mexico did’t do a good job to deal the economical crisis we have a new increase
on taxes and basically a cost increase on everything, my scholarship will suffer a reduction,
thanks blind politicians! Actually around my classmates I feel a very high pessimism, is like
where are going to grow the unemployment rate once we finish whit our studies;
Thankfully they are several immigrant friendly countries.

Summer plan

I just receive and email from gsoc program regarding the status of my application, unfortunately my proposal was not accepted, I think that a nice uml diagram was missing, where I could added some details on my proposal on the work that I’m going to do. I can’t think on any thing else missing. Any way I’m still going to work on GstEditor since is part of my project for OOP course that I’m taking.

On the other hand I decide that around August I will be back on the labor force working and continuing with my studies on part time, over the moths I had receive several job proposals and I have certain degree on negotiation for a job where I could get some time to do school work while receiving a paycheck.

———————————————————————————————————————

Acabo de recibir la respuesta sobre mi proyecto en Gsoc, mi propuesta fue rechazada, lo único que siento que hizo falta en mi reporte fue la inclusión de diagramas uml  donde se plasmaran algunos detalles de la implementaciones que voy a realizar, de cualquier forma voy a continuar trabajando en GstEditor ya que parte del proyecto semestral de la asignatura de POO que estoy cursando.

Por otra parte he decidido que alrededor de Agosto estaré de nuevo participando en el mercado laboral a la par de continuar con mis estudios, en los últimos meses he recibido un buen numero de propuestas laborales, tengo cierto grado de negociación para obtener un trabajo que me permita estudiar medio tiempo y recibir una buena remuneración.