1. How to update Chrubuntu 12.04 to Ubuntu 13.04

    There are many users of so-called Chrubuntu which have Ubuntu 12.04 running on their Samsung ARM Chromebooks. And I do not support them with any updates so they wonder how to upgrade to 13.04 release. So I decided to spend some time and help with it.

    For this I installed Chrubuntu 12.04 on SD card (not on internal as I have own installation of Ubuntu there) and I will go though upgrade to 13.04 and document all steps here.

    First thing: if your Chrubuntu installation fails on fetching 4.7MB of “ubuntu-1204-binak.bz2” file then you probably started script with “sh” instead of “bash”. Abort process and run it with “bash” — it really needs it.

    But ok, you got your Chromebook booted to Ubuntu desktop (running Unity 2D). Remember: your password is “user”. Open terminal (Ctrl+LAlt+t), get root and edit APT sources so they will point to “raring” instead of “precise”. Now refresh APT data and run distro upgrade (I used “apt-get dist-upgrade).

    There may be some issues during upgrade. I had to run “apt-get -f install” and it removed some packages including “unity” and “ubuntu-desktop”. To get them back I needed “apt-get install ubuntu-desktop gnome-control-center nautilus nautilus-share nautilus-sendto eog unity libgnome-desktop-3.4 gnome-settings-daemon” command.

    Next step is adding ARM Chromebook hackers PPA: “sudo add-apt-repository ppa:chromebook-arm/ppa” and again updating APT cache.

    Now it is time to install Ubuntu kernel and tools: “apt-get install cgpt vboot-kernel-utils linux-image-chromebook. During installation you will get “Warning: root device does not exist” message during creation of initrd image. Just ignore that and then remove “flash-kernel” package.

    Time to sign kernel. Create file with kernel command line. I suggest “console=tty1 printk.time=1 quiet nosplash rootwait root=/dev/mmcblk1p7 rw rootfstype=ext4″ but you can adapt it as you want. Sign kernel: “vbutil_kernel --pack /tmp/kernel-to-boot-ubuntu --keyblock /usr/share/vboot/devkeys/kernel.keyblock --version 1 --signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk --config CMDLINE_FILE --vmlinuz /boot/vmlinuz-3.4.0-5-chromebook --arch arm. And do not forget to write it to SD: “dd if=/tmp/kernel-to-boot-ubuntu of=/dev/mmcblk1p6 bs=4M.

    Time to reboot to 13.04. Less kernel messages on console then before but blue screen instead of Unity desktop ;( Good that “Ctrl-LAlt-1” switches us to text console.

    Login as “user” (password is “user” as I mentioned earlier), gain root and install “chromium-mali-opengles” package. Now “restart lightdm” and check how X11 looks this time. Still blue? Switch back to text console then.

    Now it is time to enable “universe” part of repository (I though that it is enabled by default). Edit “/etc/apt/sources.list” file and uncomment proper lines. Now we can install “armsoc” X11 display driver. Here you can curse at me — package in repository lacks Exynos5 part of xorg.conf ;(

    But this does not change situation — still no Unity. At this moment I can recommend XFCE instead. Install “xubuntu-desktop” (181MB of disk space needed).

    Ok, time to switch default session to Xubuntu one. Edit “/etc/lightdm/lightdm.conf” and set “user-session” to “xubuntu”. Save and “restart lightdm. Now you should land in XFCE session.

    Are icons broken? If yes then you probably need to complete distribution upgrade. I had 725 packages to process… Once it done — restart X11 session.

    So now I have working XFCE desktop with latest kernel. OpenGLES is not working but I have to check why.

    Was it hard?

    UPDATE: fixed OpenGL ES package name and improved formating so -- were preserved. UPDATE 2: fixed PPA name and partition number.

    Written by Marcin Juszkiewicz on
  2. Spending whole day with just Chromebook

    Today I work from Berlin (visiting Daniel Holbach) and took only Chromebook with me to check how bad/good it works as laptop replacement for me.

    First issues appeared during first minutes. It was keyboard. Or rather keys which are missing there. XFCE terminal (my main tool) switches between tabs with Ctrl-PgUp/PgDn but I lack those keys. Good that I can edit GTK shortcuts. But remove of them is possible only with Delete key. And guess what — Chromebook lacks it as well ;D So I used some crazy Emacs like shortcuts (Ctrl-LAlt-Shift-something).

    Good thing is support for 5GHz WiFi. I have to consider such change at home and provide not only 2.4GHz but also 5GHz network (I have around twenty 802.11g ones at home).

    Terrible issue is power plug detection. I took Chromebook from backpack, booted it and got “97% charged, AC connected” message during work on battery. It is serious problem as no one likes to have random shutdowns just because battery went flat.

    So there are few things to do:

    • better keymap
    • fixed power state detection

    And then I can go to Hong Kong (for Linaro Connect Asia) with Chromebook only.

    Written by Marcin Juszkiewicz on
  3. How to install Ubuntu 13.04 on Chromebook

    Installing recent Ubuntu on Samsung ARM Chromebook is not rocket science. All you need is following steps.

    So which steps there are? Note that I will describe only installation on SD card and assume some level of knowledge from reader — that’s why there are steps where exact commands are not given as you can use different tools.

    1. Partition SD card with GPT. First partition needs type “7f00” (ChromiumOS kernel) and 4MB is enough. Second is “8300” type and should be enough to fit rootfs (or bigger).
    2. Create ext4 filesystem on second partition.
    3. Create rootfs — debootstrap, multistrap etc. You can do it directly to SD card partition to save copying later. You can also fetch any existing one.
    4. Chroot into rootfs (you can do it from terminal under Chrome OS).
    5. Add “Samsung Chromebook (ARM) support packages” PPA into APT sources.
    6. Install “cgpt”, “vboot-utils”, “linux-chromebook”, “xserver-xorg-video-armsoc” packages.
    7. Create file with kernel command line. I suggest “console=tty1 printk.time=1 quiet nosplash rootwait root=/dev/mmcblk1p2 rw rootfstype=ext4” but you can adapt it as you want.
    8. Sign kernel: “vbutil_kernel —pack /tmp/kernel-to-boot-ubuntu —keyblock /usr/share/vboot/devkeys/kernel.keyblock —version 1 —signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk —config CMDLINE_FILE —vmlinuz /boot/vmlinuz-3.4.0-5-chromebook —arch arm”
    9. Write kernel to SD: “dd if=/tmp/kernel-to-boot-ubuntu of=/dev/mmcblk1p1 bs=4M”.
    10. Mark kernel as good: “cgpt add -S 1 -T 5 -P 12 -i 1 /dev/mmcblk1”
    11. Copy WiFi firmware from Chrome OS — it is /lib/firmware/mrvl/sd8797_uapsta.bin file.
    12. Last chance to burn your speakers cause Ubuntu will not give that functionality…
    13. Reboot.
    14. Press Ctrl-U at that scary white screen.
    15. Enjoy your Ubuntu system.
    16. You may also add symlink for Samsung media framework: “cd /lib/firmware/;ln -sf s5p-mfc/s5p-mfc-v6.fw mfc_fw.bin”. But so far nothing uses it.

    Note that you may have different results due to other rootfs used. I ran “debootstrap” and then chrooted, installed “xubuntu-desktop” and lot of other packages I use for development.

    Written by Marcin Juszkiewicz on
  4. Looks like I have to test that Chrubuntu thing

    Recently I got more and more questions how to upgrade from Chrubuntu to Ubuntu 13.04 to get my updates. So I think that it is a time for me to check how to do it.

    I will book some time during weekend for playing with Chrubuntu installation on SD card and upgrading it to latest and greatest packages. Will post how it went and which bugs I got during process and how to fix/workaround them.

    As usual I will not cover sound cause I do not have speakers in Chromebook.

    Written by Marcin Juszkiewicz on
  5. Nine years of embedded Linux

    Nine years ago I bought Sharp Zaurus SL-5500 as my first Linux PDA. And due to this I am where I am.

    I could say that it started two years earlier when I saw PalmOS devices at local geek meetings. But it took me over year before Palm m105… Then was Sony Clie SJ30 — gorgeous device. High resolution, memory card, 16bit colour. Too bad that applications did not make use of it.

    So I went for Linux. There were two options: Zaurus or iPaq. Went for former one as it had keyboard. It was good choice.

    Quickly started development of packages and joined OpenEmbedded team. Then became one of OpenZaurus developers. After year or something took over release maintenance and released few last versions. 3.5.4(.1) were the best tested releases of OZ ever — I had over hundred testers for each RC image and they provided installation reports, bug reports and fixes. And it had unified installer for whole range of devices (took me several months to get it polished and few guys added own tweaks). When Ångström distribution started I was the one who officially ended OpenZaurus development.

    And all that was in free time. But in mean time I created my consulting company. CELF was my first customer ;)

    One nice evening I got question on irc and due to that I left dark side of IT and went from PHP programming to embedded Linux full-time. OpenedHand had interesting projects and clients with many devices. Imagine operating system + kernel + Python + GStreamer in 16 megabytes of flash… And I managed to get it done. While working for them I used proper developer boards (not only customer devices) and there were funny moments…

    When we worked with ST Microelectronics on NDK-15 (later replaced by NHK-15 from ST Ericsson) I had to merge two kernel trees from two separate teams. Took me 2 days of mangling 20-30MB diffs but got it done. There are people at ST-E which reminded me this during one of Linaro Connects ;D

    Also on GUADEC 2007 when we presented new interface for Openmoko phones NDK-15 had to wait for me as no one at stand was able to get it running (U-Boot config needed changes).

    But then Intel acquired OpenedHand… The craziest trip of my life was return from London to my parents place. For three months I even had @linux.intel.com email but never used it due to problems with Intel corporate network and Linux (do not ask).

    Next was Bug Labs and their BUG device. I cleaned their Poky trees, migrated to latest version and later to use OpenEmbedded directly. Less challenges but I also had few other customers at that time to keep me busy. Some of them were OH customers before and went to me for help.

    Time passed, 2010 came. One day Canonical made another attempt to seduce me and this time I decided that it looks like good opportunity so I accepted. Sent BUG 2.0 prototype back to NYC and few weeks later I made crazy train trip to small nowhere near Brussels to meet my new coworkers from NewCore. 1-2 weeks later we got our current name: Linaro.

    Total change… From embedded devices to ‘Yes, it is ARM. So what?’ kind as we support(ed) devices powerful enough to run normal desktop software. Many changes for me — from OpenEmbedded where you can (cross) build everything in few hours to Ubuntu packaging where sending package for inclusion into archive meant few hours of buildd queue and then few of build. But I learnt a lot here and met another set of hackers including grey beards ones ;)

    And all that because I bought Sharp Zaurus SL-5500 nine years ago…

    Written by Marcin Juszkiewicz on
  6. My wife has a new laptop

    Few days ago was my wife’s birthday. As a gift I gave her new laptop — Acer Aspire One 722. With last released version of Ubuntu on it (with XFCE desktop).

    As I got device two weeks earlier I had some time to play with it and do setup. Installed full XFCE desktop (xubuntu-desktop), LibreOffice, XBMC with set of plugins for Polish VOD services, VLC etc. No games as requested. Firefox + Thunderbird as default browser and MUA.

    And then there was a day. I gave Ania laptop box with some Belgium chocolates inside (instead of computer) and when we stopped laughing I gave her new notebook in useful case. After coffee I started to migrate her configuration from Dell D400 she used before (with Microsoft Windows XP). Firefox, Thunderbird, OpenOffice and then documents etc. Easy stuff.

    Configuration phase was funny — I connected our printer/scanner and before I found where to add printer I got notification “EPSON Stylus DX4000 printer configured”. OK, so maybe scanner needs configuration… Nope — Simple Scan just started scanning instead of complaining (which it did when I bought it few years ago).

    Connected netbook to TV and Meta-p gave me choice which display I want to run on (my 42” Panasonic does not like 1366x768 so cloning does not work).

    There are few things which I still have to find out:

    1. How to remove “something has crashed” notifications. My wife will rather not report bugs directly.
    2. How to make audio switching automatically to HDMI when on cable insertion.
    3. How to make internal microphone working.

    But other than those I did not have problems. And it is a strange feeling when you take new device, boot Linux on it and it just works.

    Written by Marcin Juszkiewicz on
  7. Chromebook support lands in 13.04

    Today I got email that ‘xf86-video-armsoc’ landed in Ubuntu 13.04 ‘raring’. I also sent ‘linux-chromebook’ into archive.

    Next step would be ‘vboot-utils’ which are now in NEW queue in Debian. Once it lands I will sync it into Ubuntu so we can sign kernels. What else needs to go into archive? Maybe OpenGLES driver. I have 0.45 packaged but need to fix showing the license.

    What with support of older Ubuntu releases? I do not care about them and have a feeling that those who run them on their Chromebooks does not care as well (no one checked UCM profiles which were for verification).

    So if you want to have good working Ubuntu on your Samsung ARM Chromebook then update to 13.04 or take care of backporting updates or ‘talk to the hand’.

    Written by Marcin Juszkiewicz on
  8. FOSDEM 2013

    Year ago we had Linaro Connect right after FOSDEM so I decided to skip and walk to Golden Gate instead. But this year there were no conflicts!

    Months before we had discussion on SzLUUG mailing list about who goes for FOSDEM. There were about 9 people wanting and we ended with five. So on Friday morning friends arrived near my house, I jumped into car, we grabbed 4th one (Tomek was in London at that time) and went to Berlin Schönefeld airport for 07:00 Easyjet flight.

    And we missed it… 5-10 minutes late we were ;( 75€ per person and 10 hours later he took off from SXF airport.

    But that 10h was not wasted. Berlin has very nice Technical Museum with many trains, cars, planes and other exhibitions. And they had Trabant 601 as well:

    My first time in Trabant
    My first time in Trabant

    Then trip to shops (Saturn, Media Markt) in search for HTC Desire X case (Magda) and LG Nexus 4 (me). Avoid Saturn — they do not handle credit card payments at Alexanderplatz so I had to walk to the ATM. Two S-Bahns later we passed security check and went to the gate early enough to fly.

    BRU airport… I think that (with exception of SXF/TXL) it is my most visited airport as it was my 5th FOSDEM and there was UDS-M around as well. But this time we took a bus instead of a train. 14€ ticket works for 72 hours so cover all trips perfectly. Few hours later we were joking that this multi country journey was exhausting as we were in Berlin, Brussels, went though Geneve (bus stop) to Luxembourg (square) and passed near London (restaurant) ;D

    Hotel, drop stuff, connect chargers, went for beer event. Crowdy as usual it was. But I managed to meet some friends (but also missed lot of them) and grabbed few beers. Good spent time. Too bad that I was so tired that went back to hotel just right after midnight.

    Saturday

    Breakfast in St. Nicolas hotel maybe is not the best but provides enough energy to survive a day. Met several guys there, Philip gave me Kindle Paperwhite which I bought few days before (with delivery to his house to lower price) and his famous Belgium/Holland/Luxembourg guidebook. I also got Beagle pendrive from Koen.

    Beagle pendrive
    Beagle pendrive

    Then overcrowded bus 71 and FOSDEM! I told Bartek where things are (but at that time I had no idea of K building) and we split. In AW building I met friends manning OpenEmbedded stand just right in front of building entry.

    OpenEmbedded stand
    OpenEmbedded stand

    Circuitco had Beaglebone stand right to it:

    Beaglebone robot
    Beaglebone robot

    That robot was great example what you can do with enough signals available to drive all those motors. And what you can do with 3D printers ;D

    I do not know is it due to crisis or something but AW building had just half of a space for stands used…

    Then I went for talks:

    • Embedded distro shootout: buildroot vs. Debian” — wasted time. Long discussion about Emdebian + short info that Buildroot works in other way. Could be nice talk if done in other way.
    • Porting Fedora to 64-bit ARM systems” — talk done by Jon Masters and his clone. As usual first “what the hell is 64-bit ARM” and then how Fedora bootstraps itself. Nice talk, got some new stuff. Have to dig for Cavium SDK.
    • Porting OpenJDK to AArch64” — interesting it was. Two speakers, lot of technical details.
    • ARMv8, ARM’s new architecture including 64-bit” by Andrew Wafaa. Mostly to catch speaker in easy way ;D
    • Bootstrapping Debian-based distributions for new architectures” - I was lazy to go somewhere else but it was good talk.
    • Bootstrapping the Debian/Ubuntu arm64 ports” by Wookey. Kind of recycled talk from Barcelona but I like his presentations. Also first one without “what the hell is armv8” introduction.

    I also had nice discussion with Jolla guys about their system/device and would I like to test it once they will have something ready for complains. Played a bit with Firefox OS on their reference developer platform and on Nexus S and was not impressed — for example it looked like they have to learn about DPI

    Then I met OE crew and few other guys and when finally noticed that it is time to go to the hotel and drop gear there. Once arrived it was a bit to late to go somewhere and search for some event so I joined SzLUUG team and we went for a meal, chocolates and then some drinking.

    Sunday

    Breakfast, packing gear and go for a bus which was less crowded than day before (but we are a bit late as well). As we had to leave after 14:00 I managed only two talks:

    • systemd, Two Years Later” — some Ubuntu trolling and project status. Nice talk.
    • Porting applications to 64-Bit ARM Architecture” by Riku Voipio (main AArch64 porter at Linaro). Good discussion in a room, some nice hints and suggestions. Read his recent blog post about ARMv8 porting

    Then walk, tram, bus and security check. This time I did not have to take developer boards from backpack as I gave them away during event. We arrived in Berlin and (due to Michał’s fosdem flu) I drove us back home.

    Summary

    It was great event as usual. But distance between K building and rest was too big for sessions which are one after another. I dropped some entries from my calendar just because it would be H->K->H->K switching.

    Android application for schedule was ok. Would be nice to make a bigger effort and update it to cover K building as well and add a way to see what is going on in each building/room to reduce time before sessions.

    Funny part

    On Saturday I realized that for some reason I may remind Jon Masters… That’s due to hardware I had with me:

    • two developer boards
    • two phones
    • two tablets
    • 3 USB chargers
    • 4 microUSB cables

    The good thing is that they were not of same type (except some cables) :D

    Written by Marcin Juszkiewicz on
Page 35 / 105