Today with my paycheck Canonical reminded me that I started working at Linaro 35 months ago…
Time flies fast and things are changing even faster. I am working in the same team as started but it has 4th or even 5th name with most of first members gone or moved to other teams. 3rd manager at Linaro (and first one not from Canonical) and 5th or 6th at Canonical (depends on how to count).
At the same time Linaro grown from 20-25 people who met at private meeting on first day of UDS-M in Belgium to a much bigger number. I lost track long time ago as it is hard to remember everyone especially when people move into Linaro and then go back to member companies, switch teams, companies (like going from member company to Linaro directly).
I will have to make such decision in next 1-2 months as I am one of the few reminding Canonical ones…
This site is using cookies. Some of them are to track you as I use Google Analytics. Other may keep your name/email/website when you write comments on my blog.
We have new law here in European Union that visitors should get notification when website is using cookies. You know — privacy stuff etc. Lot of people does not even have any idea what this whole noise is about. There are websites for them with all that not even needed information — your search engine will point you there (and use few cookies in meantime).
I do not plan to add any of those annoying popups which will tell that there are cookies in use. Once you see such one you get cookie — cause website needs a way to remember that you clicked “yes, I know, get off my screen” button. You will not see such one here.
There is a text box in right column about cookies — go, read, decide would you read my blog or not. It is your choice and always was.
PS. I added tags into post just to get this post shown on each RSS aggregator I am/was listed.
Second day in a row I managed to get 8 hours of sleep like I was not able at Linaro Connect Asia 2013. There was no time for sleeping as so many things had happened.
This time I decided to go to Hong Kong on Friday to have whole Sunday for shopping or sight seeing etc. Also to make things different I went though Helsinki (was Istanbul in 2012). It was interesting experience to hear English language with Finnish accent. There were moments when during in-flight announcements I was not able to recognize when they ended Finnish part and started English one ;D
HEL was cold but only outside so once I got to terminal it was fine. Rushed though, passed biometric passport gate and got a seat with electricity to charge my Chromebook and phone. Flight was “fine” as usual but as it was during night I tried to catch some sleep.
Finnair’s crew had some problems getting in-flight entertainment system working so we could watch how Linux booted on those NSC Geode GX2 based devices. Due to copyright note in bootloader (redboot) I assumed that it is not older than 9 years. Very slow boot anyway with lot of text printed. They should show some splash + potential progress bar instead. But finally it started working. Provided in-ear headphones are much better than ones on Lufthansa flights.
Landed, got prepaid sim from “3” network, met Andrea Gallo and we went to hotel. I had plans to go to the city center but was too tired for it. I also lacked HKD due to other layout of keypad in ATM :D
On Sunday we grouped and went to Shim Shui Po to do some electronics related shopping. Prices in Hong Kong are similar/worse than in Europe so I bought only few things which I had problems finding in low price at home: mini-ITX case (16€), Nexus 4 back cover (6.5€), case for Samsung Chromebook (7.5€) and some cables. There are still no USB 3.0 cables in wide selection ;( I also bought crappy dual sim phone for 10€ as I needed one to get my Polish sim on network.
I also did some shopping on Tuesday — this time on Ladies’ Market. It is one long street with lot of sellers with clothes, wallets, toys, phone covers, headphones and other gift like things of unknown quality. I left there all money I had but got gifts for everyone I wanted. Haggling there is a must as 40% of starting price is easy to get. And you do not even need to tell anything to get price lowered…
We also went to Shenzen, China for one afternoon but that’s story for separate post.
But I went there for connecting with people. And to discuss/present our work done in last cycle and to be done in next ones.
Each day started with keynote (Friday one had Linaro awards). And we got speakers from outside of Linaro:
Jon Corbet (LWN)
Lars Kurth (Citrix)
Jason Taylor (Facebook)
Greg Kroah-Hartman
Each talk was interesting. Jon shown Linaro developers that Big.Little switcher should be taken for community review earlier, Lars presented Xen on ARM (v7, v8), Jason told about how Facebook handles servers and where is a space for ARM ones. Greg’s talk was best — he told why he does not want our code, what kind of mistakes people do in sent patches and gave us story how one code submission can break whole set of devices due to lack of testing. I wonder how Linaro Kernel WG will handle Greg’s new requirement of having all Linaro patches signed by senior kernel developer.
This was also first conference where I was fully ARMed. I left my x86 laptop at home and took Samsung Chromebook instead. Ubuntu runs fine on it, speed is comparable but size (13.3” contra 11.6”) and weight differ. This also gave me few more occasions to talk with other developers.
I spoke with Citrix guys about Chromebook kernel changes and their Xen backport will probably be merged into “linux-chromebook 3.4” package. Also had some discussions with ARM Mali developers which resulted in removal of OpenGLES packages from Chromebook support PPA due to licence issues (I do not have redistribution permission).
We also had meeting about hacking Samsung Chromebook where ChromeOS, Debian, Linaro, OpenSUSE, Ubuntu developers had discussion about what we can expect, where we are, how to get some things fixed etc. After that Nicolas ‘Charbax’ Charbonnier from armdevices.net shot video about it:
I remember that Charbax tried to make interview with me at one of earlier Linaro Connects but I always rejected that idea. This time he went for help… And I could not refuse to Zack Pfeffer :) How it went? You tell me:
Hong Kong was great. Weather was perfect with +25°C, sun and no rain. Someone told me March is the last moment for being there :)
But then I had to leave. Problem with return flights is that they usually are around midnight. Add lack of sleep during previous nights and result is not nice mix. So we spent some time in airport lounge to charge batteries (our and devices) and then squeezed in economy class for 11 hours. Took a nap, watched movie in English with Finnish subtitles (learnt new word even) and read “Amiga, the future was here” book.
Imagine weather change when we landed in Helsinki… -13°C and snow. As I left my spring jacket in checked-in baggage (but I had sweater) those few minutes from airport -> bus -> plane were cold ones. Similar few hours later in Berlin. But I had some time for shopping. Skipped salmiakki cause it is hard to know which ones will be hardcore just enough but got some other things.
Szczecin was nice on Saturday. Cold, but spring was visible. Winter came during night:
Next Linaro Connect will be in Dublin, Ireland. See you there!
There will be Linaro Connect Asia next week. Which means: I am going to Hong Kong today. 21-22 hours trip like usual. This time through Helsinki ;)
But recently I started to count and got quite long list of Linaro events I attended so far:
2010.05 UDS/M - Brussels, Belgium
2010.07 Ubuntu/Linaro sprint in Prague, Czech Republic
2010.10 UDS/N - Orlando, FL, USA
2011.01 Ubuntu/Linaro sprint in Dallas, TX, USA
2011.05 LC + UDS/O - Budapest, Hungary
2011.07 Ubuntu/Linaro sprint in Dublin, Ireland
2011.10 LC + UDS/P - Orlando, FL, USA
2012.02 LC - Redwood City, CA, USA
2012.05 LC - Hong Kong, China
2012.11 LC + UDS/R - Copenhagen, Denmark
The “Linaro Connect” name is quite young and I do not remember which event got this name first. There will be three of them this year: Asia, Europe, US. But when and where? Do not ask me cause so far it was not announced yet.
So if any of my readers will be in Hong Kong next week — please say hi. And there will be Chromebook hacking session on Tuesday at 15:00 in Fountain 1 room (but please check schedule/ask me if not changed).
That day had to come. It was just a matter of time. Debian bootstrapped new architecture port using just own tools and packages…
It was long trip. During last few years we saw bigger amount of work spent in Debian/Ubuntu on cross building packages. Then were Google Summer of Code projects on bootstrapping Debian and one for multiarch cross toolchains. And we had Wookey with his ideas, knowledge and abilities to get one thing to work on for months in a way that managers were agreeding that it needs another month and another ;)
And today I found an email from Wookey about AArch64 port. I suggest you to read it as it has a lot of information. You can find ready to use rootfs there which (connected with kernel from OpenEmbedded) boots to fresh Ubuntu 13.04:
Ubuntu Raring Ringtail (development branch) localhost ttyAMA0
localhost login: root
Last login: Thu Jan 1 00:07:37 UTC 1970 on ttyAMA0
Welcome to Ubuntu Raring Ringtail (development branch) (GNU/Linux 3.8.0 aarch64)
* Documentation: https://help.ubuntu.com/
root@localhost:~# uname -a
Linux localhost 3.8.0 #1 SMP Wed Feb 20 14:31:07 CET 2013 aarch64 aarch64 aarch64 GNU/Linux
You need to have patience as Upstart needs to run lot of stuff before it gives login prompt.
Still lot of work required as there are many patches to packaging waiting for being merged but I think that it is a big day for Debian and all distributions derived from it.
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.
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.
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.
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).
Create ext4 filesystem on second partition.
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.
Chroot into rootfs (you can do it from terminal under Chrome OS).
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.
Write kernel to SD: “dd if=/tmp/kernel-to-boot-ubuntu of=/dev/mmcblk1p1 bs=4M”.
Mark kernel as good: “cgpt add -S 1 -T 5 -P 12 -i 1 /dev/mmcblk1”
Copy WiFi firmware from Chrome OS — it is /lib/firmware/mrvl/sd8797_uapsta.bin file.
Last chance to burn your speakers cause Ubuntu will not give that functionality…
Reboot.
Press Ctrl-U at that scary white screen.
Enjoy your Ubuntu system.
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.