1. Let’s take a look at ARM boards again

    Over year ago I wrote post in which I complained about cheap developer boards but concentrated on ones supported by Linaro. This time I want to write about boards which I did not even had occasion to play with.

    Most popular one was Rasperry/Pi. But as I already wrote why I’m tired of it I prefer to not discuss it too much. In short: old cpu core (ARM11), not enough memory (256MB), requires closed binaries even to boot (the GPU binary also contains the first stage bootloader).

    Then we have a lot of boards based on AllWinner A10/A13 cpus. Single core Cortex-A8, no Linux kernel support in mainline. Fun is that there is Serial ATA controller in SoC but most of the boards does not offer that so users have to use SD or USB storage which is slower. Example devices: Hackberry, Cubieboard, Mele A1000.

    Fun stuff starts to appear from Freescale area. i.MX6 cpu has potential and many options available. There are Wandboard, Sabrelite with second one providing interesting addons like mini PCI-Express slot (with PCIe signals) or small board with buttons (Android oriented).

    Quad A9 boards are also available with Samsung s3c4412 cpu — like ODroid-X which I described when it was released. But no Serial-ATA in this processor.

    So which one to choose? All depends what you want to do with it. Few days ago on debian-arm mailing list someone asked “Workstation based on ARM motherboard, good idea ?” which got me to conclusion that it possible to setup low specification desktop today with ARM cpu.

    I wonder how much would I have to pay for mini-ITX compatible board (can be smaller but has to be mountable to normal PC case) with 2-4GB of memory (SO-DIMM preferred) with quad core cpu and Serial ATA. So I could connect usb mouse/keyboard, monitor though HDMI, speakers with 3.5mm jack, Ethernet (1GbE preferred) and boot Debian/Ubuntu straight from SATA hard drive or ssd. 2D/3D acceleration working and recent (max 2 versions old) Linux kernel working with not insane amount of patches. But such day probably will not happen.

    UPDATE: Looks like VIA had such idea with their APC board. Neo-ITX format but components few years old ;(

    Written by Marcin Juszkiewicz on
  2. Switched blog theme again

    Long, long time passed since last time I changed theme on my blog. What you see this time is Twenty Twelve from Wordpress team. Maybe it is not yet finished but it works better than Carrington which I had before. Not to mention that previous theme was not updated for long time (I did few updates by hand with code from their Subversion repository but it was not comfortable).

    This theme looks good on desktop, phone, tablet and I will use it for probably quite long time. Will update it to released version once there will be such one ;D

    Written by Marcin Juszkiewicz on
  3. Finally applied for Debian Maintainer

    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.

    Written by Marcin Juszkiewicz on
  4. Unbricked my old SheevaPlug

    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 0x00600000” — 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
    
    • Went to Ångström online image builder and built small busybox based image.
    • Unpacked tarball into /tmp/initfs, added /dev/ttyS0 node.
    • Built Linux kernel:
    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.

    Written by Marcin Juszkiewicz on
  5. ODROID-X developer board

    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
    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.

    Written by Marcin Juszkiewicz on
  6. OpenEmbedded again

    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.

    Written by Marcin Juszkiewicz on
  7. Linaro Connect q2.12

    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
    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
    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 Scream" place
    Ice cream selection at “I Scream” place

    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
    Hong Kong Island skyline
    Me and Alexandros at Avenue of Stars
    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
    Vegetables - no idea which
    Pork or fish
    Pork or fish
    Pekin duck
    Pekin duck
    Lotus seeds
    Lotus seeds
    Bananas
    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.

    Written by Marcin Juszkiewicz on
  8. New hard drive

    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.

    Written by Marcin Juszkiewicz on
Page 40 / 105