Canonical Voices

Marcin Juszkiewicz

In 2002–2003 I was thinking about becoming Debian Developer as I had some experience with packaging, solving problems with it etc. But then 2004 came, I bought Sharp Zaurus SL-5500 PDA and started using OpenEmbedded…

Time passed, I got even more experience about packaging, different build systems used in FOSS projects and made good use of that in OE, Poky work. And as a result I went to Linaro (though Canonical) and started working on Ubuntu packages…

So now, when I have my own packages: android-tools and powerdebug the time came to finally start work on becoming Debian Developer to give back to community which gave me so much during last 13 years of my use of Debian.

My application on debian-newmaint ML.

Related content:

  1. OpenZaurus 3.5.4 released


All rights reserved © Marcin Juszkiewicz
Finally applied for Debian Maintainer was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

Few months ago one of my friends borrowed SheevaPlug from me. About two weeks later he gave it back — bricked… I did not had time to play with it so it landed on shelf.

Yesterday I took it and decided to get it back to live. Requirements:

  • bricked SheevaPlug (v1.0 without SATA)
  • power cable
  • mini usb cable
  • usb thumb drive
  • OpenOCD (“apt-get install openocd”)
  • cross compiler (“apt-get install gcc-arm-linux-gnueabi” under Ubuntu)
  • U-Boot sources (HEAD of mainline)
  • Linux sources (also HEAD of mainline)
  • serial terminal (picocom, minicom, screen etc)
  • few terminals or terminal multiplexer (I used tmux)

Then:

  • Connected power and mini usb cables to SheevaPlug. Desktop recognized usb-serial device as /dev/ttyUSB1.
  • Connected to it with serial terminal. Nothing appeared there of course ;)
  • Run OpenOCD: “cd /tmp/;sudo openocd -f /usr/share/openocd/scripts/board/sheevaplug.cfg -s /usr/share/openocd/scripts”. SheevaPlug was detected.
  • Connected to OpenOCD: “telnet localhost 4444″.
  • Built U-boot:
export CROSS_COMPILE=arm-linux-gnueabi-
make mrproper
make sheevaplug_config
make u-boot.kwb
  • Copied “u-boot” to “/tmp/uboot.elf” and used “reset;sheevaplug_init;load_image u-boot.elf;resume 0×00600000″ — landed in U-Boot ;)
  • There is “sheevaplug_reflash_uboot” macro but it was not working for me. So I used U-Boot to flash itself:
Marvell>> usb start
Marvell>> fatload usb 0:1 0x0800000 u-boot.kwb
Marvell>> nand erase 0x0 0xa0000
Marvell>> nand write 0x0800000 0x0 0xa0000
Marvell>> reset
export CROSS_COMPILE=arm-linux-gnueabi-
make mrproper
make kirkwood_config
make menuconfig (set INITRAMFS_SOURCE to /dev/initfs)
make uImage
  • Copied “arch/arm/boot/uImage” to USB thumb drive and inserted it into SheevaPlug.
  • Booted image:
Marvell>> set ethaddr 'c0:ff:ee:c0:ff:ee'
Marvell>> set bootargs 'console /dev/ttyS0,115200 rw'
Marvell>> usb start;fatload usb 0:1 0x800000 /uImage;bootm 0x800000
  • Landed in nice and small Ångström distribution image ;)
  • Went to Ångström online image builder and built console image (task-base based).
  • Built Linux kernel (this time without initramfs):
export CROSS_COMPILE=arm-linux-gnueabi-
make menuconfig (unset INITRAMFS_SOURCE)
make uImage
  • Copied “arch/arm/boot/uImage” to USB thumb drive and inserted it into SheevaPlug.
  • Prepare NAND for UBI:
# mount none /dev -t devtmpfs
# udhcpc eth0
# opkg-cl update
# opkg-cl install mtd-utils
# ubiformat /dev/mtd2
# ubiattach -p /dev/mtd2
# ubimkvol /dev/ubi0 -N rootfs -s 490MiB
# ubiupdatevol /dev/ubi0_0 /media/sda1/angstrom-task-base.ubifs
# mount -t ubifs ubi0:rootfs /media/rootfs
# chown -R root:root /media/rootfs
# cp /media/sda1/uImage /media/rootfs/boot
# sync
# reboot
  • Another reconfiguration in U-Boot:
Marvell>> bootargs 'console=ttyS0,115200 rw ubi.mtd=2 rootfstype=ubifs root=ubi:rootfs'
Marvell>> bootcmd 'ubi part nand0,2; ubifsmount rootfs; ubifsload 0x800000 /boot/uImage;bootm 0x800000'
Marvell>> mtdids 'nand0=orion_nand'
Marvell>> set mtdparts 'mtdparts=orion_nand:512k(uboot),4m@1m(kernel),507m@5m(rootfs)'
Marvell>> save
Marvell>> reset

And now my SheevaPlug is operational again. Boots from NAND with latest U-Boot and Linux. There is around 440MB free still on NAND (not counting 4MB partition where kernel was expected to be). I can put it back on shelf now.

The only parts which I needed to compile were U-Boot and Linux kernel. I could skip bootloader and use binary image from Internet but prefer to know what my machines run (and building U-Boot is really easy). Initramfs support in Linux is real live saver as I did not had to play with initrd etc — just build image and boot it. The only problem was that devtmpfs was not auto mounted (even if option in kernel was selected).

I could also use one of those “easy installers” made by PlugComputer community but I found such solutions more complicated (fetching binaries, finding requirements etc) than the one I used.


All rights reserved © Marcin Juszkiewicz
Unbricked my old SheevaPlug was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

Day has started as usual. Looked at my Google+, Facebook and Twitter streams and noticed new toy: ODROID-X developer board from HardKernel.

Is it interesting board? Yes, it is:

  • Quad core Exynos4412 CPU (ARM Cortex-A9)
  • 1GB ram
  • 6 x High speed USB2.0 Host port
  • 10/100Mbps Ethernet with RJ-45 LAN Jack
  • Audio codec with headphone jack and microphone jack
  • (micro)HDMI output with audio

Open Exynos4 Quad Mobile Development Platform

As usual some things to complain about:

  • 1.8V serial console with own connector (15USD for cable)
  • microHDMI connector when normal HDMI would fit
  • no Serial ATA (Exynos 4210 has controller, no docs for 4412)
  • 2GB ram would be lovely (Samsung Galaxy S3 has it in Korean version)

Anyway looks like during month I will check does someone from friends wants to buy it and get one for myself. May be good replacement for Pandaboard and/or MX53 Quickstart.


All rights reserved © Marcin Juszkiewicz
ODROID-X developer board was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

When I moved to Canonical and Linaro I stopped using OpenEmbedded. But recently I got some tasks which involved it. In short: there is a plan to use OE to bootstrap ARMv8 support in some Linux distributions.

2 years ago OE guys started creation of OpenEmbedded Core set of metadata. I have to admit that I never used it at that time but supported idea (first mentions of splitting recipes was at OEDEM 2006.

This time using layers is the only way. So I fetched OE Core, OpenEmbedded and Linaro layers and did some builds to find out how it looks today. Some time later Ken Werner left Linaro team so I took over maintenance of meta-linaro layer. Improved documentation a bit and started creating small LAMP like image.

There were issues with toolchain. I use Linaro branded GCC and found out issue with binutils and then with C++ headers — sent some patches and problems were solved by Khem Raj in a bit other way.

After some tests and patches I got LAMP image working out of box. So moved to some more advanced things…

First was update of qemuarmv7a machine to use Versatile Express emulation instead of hacked Versatile PB one. Ken did work for 3.2 kernel but in meantime Yocto moved to 3.4 one. I looked at issues and tried to get it working.

OMG… Now I know why people say that OpenEmbedded have exponentially steep learning curve… Getting kernel into usable state is nightmare. Years ago defconfig was nearly sacred — there were few small changes done to it in kernel.bbclass/linux.inc but it was easy to understand. Now there are KERNEL_FEATURES which may be ignored, big set of scripts, config parts which may be applied (or removed or something else)… I really tried to understand it but my brain decided to go away.

Maybe other day I will manage to understand this magic stuff or will just go for linux-yocto-custom.bb or will write old style linux_3.4.bb recipe without all that magic.


All rights reserved © Marcin Juszkiewicz
OpenEmbedded again was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

Another week of conference passed. This time I was at Linaro Connect q2.12 which took place in Hong Kong Gold Coast hotel.

As usual everything started with packing. I have a list for it so it is usually quick job but you know — I was going to Hong Kong, world capital of cheap electronics so better have some space available just in case. So I borrowed bigger bag from friend, put some Linaro stickers on it (to be able to find it at baggage claim) and put all my stuff inside. Of course travel things went to backpack (have to buy more comfortable one).

And then trip began… In short: car, bus, wait at airport, plane, wait at airport, plane, catch Rob Clark, taxi, hotel. Total time: 22 hours.

Hotel was nice. View from room at “15th” floor (which was 12th due to 4, 13, 14 missing):

View from hotel window

Monday went with meeting people, sessions (scheduled and random ones) and some hacking. At end of day we had usual “meet & greet” dinner which was rather “seat & eat” style as we had it in room where we has lunch and there was not enough space to walk and discuss with people. For this I prefer UDS style where you have few points with food/drinks, lot of walking space and some tables here and there so you can grab something to eat and chat with many people during one evening.

Speaking of food… It was great! Breakfasts offered wide choice of Chinese, Japanese, Singapore food with Western options available too (some sausages, boiled eggs, British beans). Add fruits, sweets and all what was there to make sandwiches… Lunches were even more mixed. Something local, something European, salads, sweets — all that made me a bit heavier on return trip :D

Many people were surprised by lack of soda options as only coffee, tea and bottled water were available daily. For me it was not a problem as coffee + water were more than enough.

But back to sessions. There were many ARMv8 (aarch64-gnu-linux) sessions. I attended one of them where we discussed about building cross compilers, bootstrapping distributions etc. As rest of ARMv8 ones this was not broadcasted or recorded. Rest of sessions used Google Hangouts for remote participation. It worked well even with last-minute changes from Google which terribly broke setup we used for earlier Connects. I was on session where leader (Wookey) was remotely so we had “big brother is watching you” effect:

Big Wookey is watching you

Have to admit that this method of remote participation helps as users can just ask questions instead of relying on someone following IRC channel. But it is also limited to who can join so no use for conferences like UDS.

For me interesting sessions were ones around CI process. We have few such systems and each has different use. There is LAVA which gives us ARM boards to run tests on, Jenkins to run builds on x86 instances (Amazon EC2 like). Toolchain Working Group has “cbuild” which they use to build and test toolchain on x86 and ARM machines. And then there is also Launchpad which has daily builds from selected Bazaar branches. We had discussions about merging them and/or sharing resources (like a way to borrow ARM boards from LAVA to run cbuild). Hope that we will get something interesting from it.

But sessions are not the only thing to do. There are also after work activities. We got coaches available on Tue/Wed/Thu to Tsim Sha Tsui (TST in short) district, The Peak (Tue only due to cloudy weather) and somewhere else. I went to TST on Tuesday and we just walked around it, got some food (chopsticks only so we decided to not ask for cutlery and handle it — we managed) and for fun visited one of those shops with “TAX FREE” signs (which in tourist language means “YOU DO NOT WANT TO BUY HERE”).

On next day I went with Zygmunt Krynicki to Golden Computer Shopping Center near the Sham Shui Po station. Lot of computer shops compressed in small area. Everything from SSDs, mainboards etc to normal and weird cables. In one shop I asked for 0.5m long HDMI cables and got them so expect soon post about adding HDMI switcher to my devboards setup. Decided to not spend money on anything more expensive as there is no warranty that it will work and I do not want to ship hardware back to Hong Kong when it fail.

Thursday we want for team dinner. But before we decided to take a ferry from Avenue of Stars to Hong Kong Island and go for ice cream there:

Ice cream selection at

I went for ginger and green tea flavours as both sounded crazy enough and I am sure that will not find them here in Poland. Ginger one was great (even if I do not like ginger) but green tea one was awful — tasted like concentrate of concentrated tea.

Hong Kong Island skyline

Me and Alexandros at Avenue of Stars

Then we went to “Spring Deer” restaurant. Crowdy, long queue (even with earlier registration). As usual in Hong Kong I had to watch my head in few places. When we got table it looked like disaster but got cleaned quickly and were served with food.

For start they give us some oiled peanuts so we had interesting challenge as a way of practising eating with chopsticks. We ordered some pork, fish, vegetables and duck.

Vegetables - no idea which Pork or fish Pork or fish

duck Lotus seeds Bananas

After dinner we were able only to grab taxis and go back hotel ;)

Friday was my last day there. During packing bag I realized that this is my first conference when do not have any extra hardware (cables do not count). But I hope that sooner or later I will put hands on some kind of ARM server hardware (maybe one node Calxeda board which I heard rumours about). As there were nearly no sessions I went to one of hacking rooms for coding and got my patches reviewed by Matthias Klose — have to work on few of them, some were described as “have to merge as look ok”.

After lunch we had usual “Demo Friday” where people presented work of miscellaneous Linaro (but not only) teams. One of interesting ones was comparison of ASOP build of Android 4.0.4 contra Linaro build which was present on two same Pandaboards. Both were running 0xbench and results were cleanly visible. Changes are in review and on a way to ASOP tree (due to usual “Upstream, upstream, upstream” philosophy of Linaro).

Day ended with dinner in Chinese style. Food was good and interesting — especially when we were trying to find out what menu entries mean ;) There was a show of Chinese “Bian lian” art with a guy changing his masks. I was wondering for a moment how we did that but did not bother with it too much.

20:15 was bus to airport. Then usual stuff: wait on airport, plane, wait on airport, plane, wait on airport, bus, car, home. This time 26 hours. Saturday evening was a bit hard but with a help of melatonin I managed to get rid of it with 8h sleep. So this is first trip without jet lag problems.


All rights reserved © Marcin Juszkiewicz
Linaro Connect q2.12 was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

During UDS-Q I bought 3TB Seagate disk in USB 3.0 enclosure. Today I finally connected it to my desktop, formatted as ext4 and mounted.

I am surprised by speed of USB 3.0 – 147MB/s according to hdparm test is more than rest of my hard drives have. If technology will increase that way my SSD may became obsolete at time when another hdd will join my setup.

What for 2.73TB drive someone may ask. I plan to use it for backup of my machines.


All rights reserved © Marcin Juszkiewicz
New hard drive was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

During my stay in Oakland, CA (due to Ubuntu Developer Summit) I decided to attend also Tizen Developers Conference. Not that I have any relations with this platform — just wanted to meet some friends from Maemo times. And I did not had plans for Tuesday evening while Tizen visitors had social event planned in The California Academy of Sciences.

For those which do not know what Tizen is a bit of history. Years ago Nokia made few internet tablet devices (770, n800, n810) and phone (n900) which were running Linux distribution named Maemo. It was loosely based on Debian. In meantime Intel created Moblin which was their distribution for mobile devices. Few years passed and they joined forces and MeeGo was born. Nokia released N9 phone with it, ASUS had netbook running MeeGo and maybe few other devices appeared on market. Then history repeated: MeeGo merged with LiMo and they created Tizen project.

It is hard to tell was conference success or not because I did not attended any sessions there — just opening keynote by Jim Zemlin. On first day I also came for technical showcase and partner demos. But they were squeezed in very small room so it was hard to discuss with people showing their work. Maybe next time organizers will give at least 4m² per demo — this should be a minimum.

But today I got Tizen Developer Platform device and thumbdrive with SDK on it. So decided to play a bit with it. It was not enjoyable experience.

First ugly part was Tizen SDK “so-called” installer. 823MB shell script… I thought that those times passed long time ago. Anyway tried to run it. All I got was message that 64bits systems are not supported. Good to know that, but my x86-64 systems are able to run x86 binaries without problems. Ok, I made workaround and then got message about missing qemu, rpm, libsdl packages. No, I will not install rpm on my Ubuntu systems.

So I decided to cut that crappy shell script and take a look at tarball. Fast “tail -n+122 tizen-sdk-0423.bin >tizen-sdk.tar.gz” and I was able to extract SDK. Got 26 zip archives.

One of them contains rootfs created from packages based on Debian/Ubuntu packages. Some are from times when dinosaurs ruled the Earth (debianutils 2.17 was released in 2006), some are more fresh (like gcc-4.5 based on version from May 2011). In other words tradition started by Maemo is continued in Tizen and developers are given mix of fresh tools with long time forgotten ones. And Scratchbox 2.

To connect with device there is “sdb” tool. It introduces itself as “Smart Development Bridge” but in past it was named “Samsung Development Bridge” (run ‘strings’ on binary). And it’s father has a name “Android Development Bridge” and has some more options.

Anyway if you want to connect to device then few steps are required:

  1. On device go to settings and set USB to ‘USB debugging’ mode. This will switch it into cdc_ether gadget.
  2. On host do “sudo ifconfig usb0 192.168.129.1″ to configure networking.
  3. Connect to device: “ssh root@192.168.129.3″

And then you can enjoy system which is a mixture of few Debian/Ubuntu versions. And forget about updates — unless you know how to get to 165.213.180.233 and know password of “kb0929.kim” user there (taken from /etc/apt/sources.list file).

Device uses Linux 2.6.36 kernel with unknown patches on top including CMA and Android ones. Quite old one but works. Hope to get newer one from someone.

What I do not like is availability of sources. There is review.tizen.org website with git repositories but I want to vomit when I see commits like “let’s add 2.6.36 kernel in one commit”. Lovely lack of ideas how to help developers.

What I will do with device? Not decided yet. Waiting for instructions how to get into bootloader to boot own kernels. Then who knows… replacing Tizen with Android or Ubuntu?


All rights reserved © Marcin Juszkiewicz
Tizen: first impressions was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

Another May, another Ubuntu Developers Summit. This time I am in Oakland, California, USA (even if my tweets shows Dallas, Texas as geolocation).

As usual with US trips this one took insane amount of time. But I was 3cm from not going here… Why? Because I got stuck in toilet at home. Hopefully with help from neighbour I was able to bash door out and get to the bus stop on time.

Then standard set of bus, plane, plane, train and finally arrived in hotel. As my room was not yet ready I got 30$ coupon to bar to not waste time on waiting. Free meal/beer ;)

My room is at 17th floor (which means 15th) and has a nice view in the evening:

IMG_20120505_224344.jpg IMG_20120505_224400.jpg IMG_20120505_224411.jpg

On Sunday I went to see San Francisco centre (I saw Golden Gate on earlier visit). Chinatown was interesting experience. Lot of people speaking language which I do not understand, shops full of food which I do not recognize.

Some random photos:

DSC09946.JPG IMG_20120506_092639.jpg IMG_20120506_114901.jpg

IMG_20120506_114920.jpg IMG_20120506_103517.jpg IMG_20120506_114851.jpg

After getting some souvenirs and refilling of my US T-Mobile sim card I decided to go to the cinema for ‘The Avengers’ movie. It was nice experience. Touchscreen operated ticket machines which allow to buy ticket in one minute (but people were standing in long queue to buy tickets in ‘normal way’) made it even better. As in Poland there was big amount of commercials before movie (including some in style “our Army/Navy is great, why not join us”) but what I liked was just-before-movie animation reminding about not talking/texting/tweeting during movie (made with characters from “Madagaskar” series). Have to admit that RealD 3D glasses were more comfortable than Dolby 3D ones used by Polish cinemas. Movie itself was great but I think that will have to see it in Poland due to my English ;D

During evening there was usual Canonical internal plenary and then dinner. I even managed to sleep 6 hours despite jet lag ;D

Monday started with interesting keynote and presentation of Calxeda ARM server using technology they were talking about at previous UDS. Photos:

IMG_20120507_095638.jpg IMG_20120507_095942.jpg

It is 2U case with 24 Serial-ATA discs and 12 nodes with 4 quad-core EnergyCore processors per node. The only cables inside are power ones as rest of connections is on pcb. Connection with world by four Ethernet connectors.

I went to “Create filesystems for embedded devices” session where we discussed how to make Ubuntu Core even smaller. People mentioned OpenEmbedded, OpenWRT, buildroot as usual, we got some strange use cases too. What will come from it? Time will show.

Plenaries were interesting. First Chris Kenyon told about cooperation with OEMs and ODMs and how it relates with Ubuntu. Laptop in a pizza box picture was nice — reminded developer boards. Then Bdale Garbee from HP shown us that there is no way to go though life without being served by HP technologies or hardware. Both talks were great and I hope that rest of plenaries will be like that.

After plenaries I went to San Francisco to register at Tizen conference and to meet some friends from Maemo times. Technical showcase and partner demos were boring and it was hard to feel that it is something innovative. But who knows… maybe Tizen will be yet another phone/tablet/ivi/etc OS even when Moblin, Maemo, MeeGo did not succeed.

During evening (back at UDS) there was ‘Meet & greet” social event. Our Linaro group (Amber, Ricardo, Paul, me) was showing member boards and replying to misc questions from audience.

What next? Sessions, social events, discussions about my patches with other developers, some sight-seeing.


All rights reserved © Marcin Juszkiewicz
UDS-Q was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

I always loved to read. In 6th class in elementary school I took fourteen books from school library at once (when only 3 were allowed). In 8th class I was going there only for required readings as there were no books there which could interest me (tough timing as I read all what liked and no money for new ones).

Basically during my school life I used several libraries and at most of them has a status of ‘frequent visitor’ which meant no need to say name during books exchange. Also booking of rare books was possible.

After studies I moved to other city then to another then to another… My amount of books was slowly growing because I wanted not to have too many things. Interesting new books were also usually expensive so compared to my income was not helping. And I somehow skipped searching for new libraries — instead were checking friends’ bookshelves.

Once I settled down in Pozna? and then in Szczecin my collection was slowly growing. And then, in November 2011 I bought myself Kindle Classic. Life got changed…

First I loaded it with some documents and books which I had on hard drive — technical, science fiction etc. Reading was pleasure. Then I loaded more and more…

Recently I started making use of promotions announced on “?wiat Czytników” website which resulted in more and more books in queue. Then evenings, travels, waiting in queues transformed into reading spaces ;)

It is good to read a lot again.


All rights reserved © Marcin Juszkiewicz
Thanks to Kindle I am back to reading was originally posted on Marcin Juszkiewicz website

Read more

  • GTD For Hackers
    David Allen's "Getting Things Done", or GTD for short, is a popular, powerful system for managing one's life. If you have trouble dealing with your e-mail inbox, or feel you're drowning under a flood of inputs and information, or just don't seem to have time to do everything you think you should be doing, or others want you to do, then GTD may be a good thing for you to consider. This book explains how author, a computer geek, has implemented it in my own life. It is aimed at everyone whose lives include a lot of computer use, and who know how to use their computers.
  • Non-DD to DD steps
    If you've been collaborating to Debian as a non-DD and then you become a DD with uploading rights, you have to do some changes in all your configurations.

Read more

  • Chip Overclock: Small Town Big City
    Since 2005 I have been passionately and aggressively pursing two goals. Find an economical hardware and software platform on which to teach embedded and real-time software development. It must support a gradual learning curve, accomodating beginners needing a gentle introduction, but also experienced developers who need to learn the advanced concepts used in bleeding edge commercial development environments. Demonstrate that the advanced object-oriented software techniques, idioms, patterns, and architectures that I have seen evolve for embedded software development over the past several decades can be applied to this small and inexpensive platform. This has resulted in a number of projects that long-time readers of this blog (if there should be any) will recognize.
  • Dmitry Grinberg
    It is common to see newbies asking in microcontroller forums if they can run Linux on their puny little 8-bit micro. The results are usually laughter. It is also common to see, in Linux forums, asked what the minimum specs for Linux are. The common answer is that it requires a 32-bit architecture and an MMU and at least a megabyte of ram to fit the kernel. This project aims to (and succeeds in) shatter(ing) these notions. The board you see on the right is based on an ATmega1284p. I've made one with an ATmega644a as well, with equal success. This board features no other processor and boots Linux 2.6.34. In fact, it can even bring up a full Ubuntu stack, including (if you have the time) X and gnome.

Read more
Marcin Juszkiewicz

Over year ago I wrote How to cross compile ARM kernel under Ubuntu 10.10 and this became one of most popular posts on my website. It may work still but it is terribly outdated so I decided that it is a time for update.

Users of Ubuntu 12.04 ‘precise’ have much simpler situation when it comes to cross compilation of Linux kernels than ones who use older releases. Everything is now in distribution, we have a lot of packages converted to multiarch so instruction is much shorter.

There are few steps to cross compile Linux kernel under Ubuntu 12.04 ‘precise’ (for “armhf” which is officially supported now):

  • Install cross compiler:

apt-get install gcc-arm-linux-gnueabihf

  • Fetch kernel source:

apt-get source linux-source-3.2.0

  • Install packages required to build kernel:

apt-get build-dep linux-source-3.2.0

  • Build kernel:

cd linux-3.2.0; dpkg-buildpackage -b -aarmhf

And that’s all. Linaro kernels will be as easy to build as Ubuntu one on next days as we have to update packaging to recent Ubuntu version.


All rights reserved © Marcin Juszkiewicz
Ubuntu 12.04 ‘precise’ and cross compilation of ARM kernels was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

I applied for MOTU (Masters Of The Universe) membership few days ago and today during Developer Membership Board meeting my application was part of agenda.

Becoming MOTU is more complicated than gaining PPU (Per Package Upload) permissions which I got during UDS-O in Budapest. Members of board asked me many questions — it took 45 minutes to get from introduction to voting.

But this is how it should be done — MOTU is responsibility for quite big amount of packages in Ubuntu. Anyway, we got to voting:

15:57 < meetingology> Voting ended on: Should Marcin Juszkiewicz become MOTU? 15:57 < meetingology> Votes for:5 Votes against:0 Abstentions:0

And now I am proud member of MOTU team! Looks like next thing to apply for would be Debian Membership. I planned to do it in 2004 but OpenEmbedded took my attention ;)


All rights reserved © Marcin Juszkiewicz
I joined MOTU team in Ubuntu was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

During last two weeks I was working on updating PPA with cross toolchain for Ubuntu. Current development branch (12.04 ‘precise’) got gcc 4.6.2 and 4.5.3, binutils 2.22, eglibc 2.15 and linux 3.2 headers.

Then I started work on getting those updates also for previous LTS (10.04 ‘lucid’) and for previous stable release (11.10 ‘oneiric’). Versions between those two (10.10 ‘maverick’ and 11.04 ‘natty’) are not supported but binaries built for ‘lucid’ should work just fine on them.

It is time-consuming cause I had to run many builds to make sure that everything is properly patched etc. I listed all required tasks in “Toolchain update for Linaro Toolchain Backports PPA for 12.03″ blueprint on Launchpad. Most time-consuming is waiting for PPA builders but at that phase I was just checking did they finished already due to working on other projects.

So if you are stuck on one of released versions of Ubuntu and need fresh cross compiler targetting “armel” (there is no “armhf” for this PPA) consider using PPA with cross toolchain for Ubuntu.

And do not forget to report any bugs found to armel-cross-toolchain-base and gcc-4.6-armel-cross (or gcc-4.5-armel-cross if you use older one).


All rights reserved © Marcin Juszkiewicz
Updated cross toolchain for Ubuntu was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

Please people… stop asking me about Raspberry/Pi. I do not want it, do not plan to buy one (when they will be finally available for normal people) and for sure do not plan to support it.

Raspberry/Pi may look as interesting hardware to you but it does not have to mean same to others. Want to run desktop? 256MB of memory means really crippled one (last time I saw this amount of RAM in desktop computer right before opening it to add 512MB stick). Sure, for 25-35 USD it is proper range as memory is probably the most expensive part. Device may be good for using it in more embedded environment where GPIO/I²C/I²S/SPI/UART matter — expansion connector provides those signals.

But I would rather buy BeagleBone to play with peripherials connected to such pins. Someone may ask “why? it is more expensive”. Reason is simple — it is in production, already has expansions which adds things like video output, touchscreens. And it has ARMv7 cpu which allows me to run any ARM distribution available today — so Debian ‘armel/armhf’, Ubuntu, Fedora, OpenSUSE, Ångström (which is preinstalled with great IDE to play with device already) or anything other.

I do not need small device which can run XMBC or Quake — have private PandaBoard which can do that too and has few things more than Raspberry/Pi.

And I do not think that companies which do software should start working on <100USD hardware like article at Techblaze suggests.


All rights reserved © Marcin Juszkiewicz
I am tired of Raspberry/Pi was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

So called ‘low cost’ developer boards (like BeagleBoard xM, PandaBoard, Snowball, MX53 Quick Start) do not have NAND flash on them so people are using SD/MMC cards as boot media and storage. So we, developers, went to shops and bought SD cards. Some got class4 ones cause budget was low already, some grabbed class10 ones hoping that they will be fast, other took class6.

I got some 4GB Transcend class10 ones. They worked, gave me 15MB/s on read and were fine. Until recently they started giving strange kernel output, MMC timeouts, I/O errors which resulted in filesystem going into read only mode. As I prefer to have working board then wondering how much time it will survive I trashed both cards. Good that I had some spare unknown 8GB microSD ones. But in last ~year I had to throw away 4 SD cards…

One of solution for it is moving rootfs to some more reliable storage. I did that with MX53 Quick Start — it has 320GB Serial-ATA harddrive connected. So for PandaBoards I could use 8-16GB thumb drives or USB connected hard drives. I had this in past when there was no mx53 hardware at my desk. But this means extra costs, additional cables, probably even another set of power cables…

Will have to check market for good reliable SD cards soon. 8-16GB ones so there will be space available for doing builds. Or will switch to old school NFS root which requires only 64MB cards — just to load bootloader, kernel, initrd. Other option is a network storage like NBD, AoE or iSCSI but this requires more configuration.


All rights reserved © Marcin Juszkiewicz
SD cards die was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

During last Linaro Connect I bought myself an Android tablet. After checking what is on market decided to buy Archos 80 G9 Turbo. According to Amazon product page it had to have 1.5GHz OMAP4460 cpu and 1GB of memory. But it did not…

Marketing droids from Archos company should be … and … then … and again … — after that … or … and finally … (put any ways of doing deadly harm into … and repeat any amount of times). Why? There is no such thing as “Archos 80 G9 Turbo” — nevermind that I have one of them on my desk. So far there are at least three models with this name:

  • OMAP4430 1.2GHz 512MB ram
  • OMAP4460 1.5GHz 512MB ram
  • OMAP4460 1.5GHz 1GB ram

You can easily buy first model. Best Buy has it, Adorama has it, J&R has it, Amazon sells it. Second model was expected to land on shelves in December 2011. According to XDA developers forum few of them were even sold as people have them. Last model is listed on Amazon (but first one is what you get) and according to one sources it will be released in March 2012, other says that there will not be such thing. Marketing mess is lightest description which I can write without swearing.

So I got first one. First though was “WTF?!?!!?!?!?!!!” as I got slowest option. Even started returning procedure but as all US shops had only this version I gave up and decided that even with this technical specification it is better tablet then I had before (which was Hannspad SN10T1). Fast cpu, 4:3 screen with 1024×768 resolution, quite good build quality, video output.

Tablet runs Android 3.2 ‘honeycomb’ and does it nicely. Upgrade to 4.0 ‘ice cream sandwich’ was announced to be done in this month. So from software perspective it is done properly. I had some problems with rooting procedure from XDA developers but once you do it in order (and take files from other thread to get 3.2.80 firmware) device will work just fine. Have to admit that system layout on device looks overcomplicated (175MB squashfs as / for example) but it works. Anyway I am waiting for developer firmware (I was told that they will be available ‘soon’ (for any definition of ‘soon’)).

During first days of using I noticed that some applications refuse to work properly on XGA screen, some are resized/rescaled but problems usually are with games or poorly written apps (like Facebook one). But it is visible that keeping Honeycomb under stone (aka ‘closed source’) resulted in many applications not ready to be used on tablets. Even Google+ looks like it does on a phone…

I am slowly moving to use Archos as a morning news device (Twitter, Facebook, Google+ and Google Reader) — it is perfect for it. Reading webpages in landscape or portrait modes is pleasure as device is easy to hold and screen is wide enough in any of them (which was my main complain with Hannspad).

Had to order miniHDMI -> HDMI adapter (normal size connector would even fit but it is too big for this form factor) cause they do not add it in a box. When it will arrive I will check how good movies are played after connecting to 42″ plasma capable of 1080p. OMAP4 cpu should decode any video at this resolution without problems but I wonder how device deals with 4:3 internal screen and 16:9 external one. Would be nice to watch Youtube videos fullscreen.

Playing games is fun. Fieldrunners finally does not need scrolling, Great Little War Game is also better than on my Nexus S. From “racing” games so far I tried Asphalt6 (available at XDA developers forum), Shine Runner and Reckless Getaway — all run and look cute but accelerometr based steering is not comfortable with tablet size. Also games like Mahjongg or Solitaire are possible (I consider such games unplayable on phone).

Battery life is better than on my Nexus S. Partially because lack of GSM and bigger battery, but I think that due to power management done better.

I will not tell how good it is when it comes to read e-books because I have Kindle for it already.

Back to hardware. There is USB socket for optional 3G stick. Plugged dongle from wireless keyboard/trackball combo there — not recognized due to not be USB 2.0 device. Plugged thumbdrive and got it recognized (first time I got some kernel oops and no access to storage, had to reboot tablet). Did not tried other devices.

There is just one speaker at back of device. Definitelly too small and lonely. Nokia N800 which was released 5 years ago had stereo speakers… So for gaming I strongly suggest headphones.

Ugly thing is that when you push back of case with left hand fingers screen will react to it — looks like something is pushing screen. It does not look professional…

Ending summary: so far I am satisfied. Maybe one day will try one of those crazy builds like Ubuntu ;D


All rights reserved © Marcin Juszkiewicz
Bought Archos 80 G9 Turbo tablet was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

From time to time I read posts where people wrote that their Efika MX Smartbook does not boot any more. The only thing which it does is white power led blinking about twice per second. Standard reply in such case is “send device back to Genesi”.

Some time ago a friend of mine borrowed Efika MX Smartbook from me. During his experiments he managed to get netbook into such state. I have serial/jtag debug dongle so decided to take a look at it (and unbrick device). I managed to fix it but also somehow broke serial port so can not check why my automate way does not want to work.

What needs to be done to get Smartbook back to live? Few things:

Needed steps:

  1. Repartition SD card. You can use any tool for it. All what has to be done is set up first partition at 1MB offset so we have space for U-Boot.
  2. Format partition (if needed) as FAT.
  3. Run “sudo dd if=u-boot.imx of=/dev/sdd bs=1k seek=1” (replace /dev/sdd with your SD card).
  4. Put card into SD slot of Efika MX Smartbook.
  5. Take out keyboard — you need to use small screwdriver to push holes near F1, F6, F10, End keys.
  6. Change DIP switches – they are in a middle of motherboard. You need to reverse default setup.
  7. Power on your Efika. There should be U-Boot output on screen. You may even get system loaded up at this step ;)
  8. Take out SD card and copy ‘boot.scr’ to it.
  9. Power off Efika, put SD card and boot.
  10. Old U-Boot will be stored into NOR flash (output will be visible on screen).
  11. Change DIP switches – they are in a middle of motherboard. You need to reverse them to default setup.
  12. Put keyboard back.
  13. Take out SD card.
  14. Boot your Efika MX Smartbook — operating system should load.

Some information:

  • old U-Boot got flashed because new one was not tested for NOR boot
  • finding out information for this how to took me few hours
  • this procedure can be done without Efika MX Smartbook serial/jtag dongle
  • similar procedure can be used for Efika MX Smarttop but as I do not have such I can not offer help

Thanks goes to:

  • Genesi for giving me free Smartbook and serial/jtag dongle
  • Marek Vasut for his work on mainlining U-Boot support for Efika MX devices
  • Matt Sealey for some hints on IRC


All rights reserved © Marcin Juszkiewicz
Flashing U-Boot on Efika MX Smartbook was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

During my trip to Linaro Connect 2012q1 I want to buy Android tablet for myself. But this time I decided to spend more time on choosing one to not end with crap like Hannspree Hannspad which I bought half year ago.

Also situation on market changed. There are cheap tablets worth checking but there are also cheap crappy ones. So let me list what I checked so far.

Kindle FireNook TabletArchos 80 G9 ClassicArchos 80 G9 Turbo
price (USD)199249259299
RAM size512MB1GB512MB512MB 1
resolution1024×6001024×6001024×7681024×768
screen size7″7″8″8″
internal storage8GB16GB 28GB16GB
external storagenonemicroSDmicroSDmicroSD
CPUOMAP4430 1GHzOMAP4430 1GHzOMAP4430 1GHzOMAP4460 1.5GHz 3
stock Android version2.3 customized2.3 customized3.2 (4.0 in February)3.2 (4.0 in February)
community Android version4.04.0not checkednot checked
locked bootloadernoyes (hacked)nono
USB Hostnonoyesyes
HDMI outputnonoyesyes

As you see my requirements are more or less simple:

  • dual core cpu (arm7)
  • 512MB ram (1GB preferred)
  • 1024×600 (or higher) resolution
  • 7-8″ screen size (I had 10″ and it was too big)
  • price below 300USD

During CES many vendors presented new tablets but I think that most of them will be released in Q2 or later. ASUS MeMo 370T looks nice for 250USD but it is not on market.

And I do not want 3G module in tablet — my phone has over 10GB of data limit to use for next months and so far I was not able to consume 1GB per month :)

Have I missed some devices? If yes then please share information in comments. Just remember that I do not want any of those NotionAdam/Viewsonic/Hannspad ones.


  1. rumours says 1GB in newer Turbo model 

  2. 13GB /data/ so it is hard to put own data over USB 

  3. if you are lucky and find them in store — OMAP4430 1.2GHz otherwise 


All rights reserved © Marcin Juszkiewicz
Want to buy Android tablet (again) was originally posted on Marcin Juszkiewicz website

Read more