Estimated read time: 1 minutes
We will give a talk about LPSP and CMIS with Cedric at FOSDEM2012. If you wonder what LPSP and CMIS are:
See you in Brussels!
Estimated read time: 1 minutes
We will give a talk about LPSP and CMIS with Cedric at FOSDEM2012. If you wonder what LPSP and CMIS are:
See you in Brussels!
Estimated read time: 1 minutes
Quick node about this useful project I packaged two days ago. It has a long FAQ - I was interested in how can one access the builtin nand storage on an arm board using it.
First, check your dmesg, you should see something like:
Creating 3 MTD partitions on "orion_nand":
0x000000000000-0x000000100000 : "u-boot"
0x000000100000-0x000000500000 : "uImage"
0x000000500000-0x000020000000 : "root"
As the names say, the three items here are the bootloader, the kernel and the root filesystem. To access and mount the last one, you need:
ubiattach /dev/ubi_ctrl -m 2
mount /dev/ubi0_0 root
... hack hack hack ...
umount root
ubidetach /dev/ubi_ctrl -m 2
Estimated read time: 4 minutes
I recently got a GuruPlug. It has Debian
by default, and it’s apt config is set to stable, while in fact at the moment
what’s the factory default is considered as oldstable by upstream. So if you
blindly do a few apt-get install foo, soon you’ll have newer userspace than
kernel, and your device will no longer boot (based on true story - and yes,
this is not Debian’s fault). Moreover, I was interested in how to install
Frugalware on this device, so here is a quick howto.
First you need to bootstrap Frugalware from Debian. It’s a good idea to install Frugalware on a USB stick, so you can switch back to Debian in case you messed up something and start from scratch again.
Partitioning is up to you, you’re recommended to have a small FAT (type: 0x0b)
partition (32MB for example) at the beginning, we’ll use that later. The second
can be the rest, ext4 or so.
Format and mount it (your device name may differ!):
mkfs.ext4 /dev/sda2
mkdir -p /mnt/sda2
mount /dev/sda2 /mnt/sda2
Then install our pacman-g2 binary to the Debian system, so you can bootstrap:
wget http://ftp.frugalware.org/pub/frugalware/frugalware-stable/frugalware-arm/pacman-g2-3.8.3-2mores2-arm.fpm
unxz pacman-g2-3.8.3-2mores2-arm.tar.xz
cd /
tar xf /path/to/pacman-g2-3.8.3-2mores2-arm.tar
rm .CHANGELOG .FILELIST .PKGINFO
Installing the required packages is a single command, as described here:
pacman-g2.static --noconfirm -Sy core base -r /mnt/sda2/
Once the rootfs is ready, you need a new bootloader that will be able to boot our vanilla kernel.
You need a JTAG Board, so you can access the serial console. If you connect the USB cable to you PC, you can use for example
screen /dev/ttyUSB0 115200
to access the device.
Given that we want to boot a vanilla kernel, we need a vanilla bootloader as well. Before you mess with the bootloader, it’s a good idea to make a backup of its config (there is a 3 second timeout during boot - if you press any key there, you get the Marvell prompt). Here is my config:
Marvell>> printenv
bootcmd=${x_bootcmd_ethernet}; ${x_bootcmd_usb}; ${x_bootcmd_kernel}; setenv bootargs ${x_bootargs} ${x_bootargs_root}; bootm 0x6400000;
bootdelay=3
baudrate=115200
x_bootcmd_ethernet=ping 192.168.2.1
x_bootcmd_usb=usb start
x_bootcmd_kernel=nand read.e 0x6400000 0x100000 0x400000
x_bootargs=console=ttyS0,115200
x_bootargs_root=ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs
ethact=egiga0
bootargs=console=ttyS0,115200 ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs
ipaddr=10.10.10.10
serverip=10.10.10.179
ethaddr=F0:AD:4E:00:CE:C3
stdin=serial
stdout=serial
stderr=serial
The only semi-unique part is the MAC address of the network interface(s).
If you want to update the bootloader, a possible way is to put the new binary to a pendrive. Given that the default bootloader does not support ext*, we need a fat filesystem. So format the first small partition we created already (the device name may be different in your case!):
mkdosfs /dev/sda1
Till Frugalware 1.6 is released, support for GuruPlug is available in Frugalware -current only, so download the binary package from there, extract the u-boot.kwb file from the guruplug directory, put it to the new partition. (A few other models are explained here).
Before you reboot, copy also /boot/uImage to the fat partition, you may have
problems problems with reading the kernel from the ext4 partition with u-boot.
Once copying the kernel is done, reboot and in the u-boot shell do:
usb start
fatload usb 0:1 0x0800000 u-boot.kwb
nand erase 0x0 0x60000
nand write 0x0800000 0x0 0x60000
reset
You can verify the updated bootloader with the version command:
Marvell>> version
U-Boot 2011.12 (Jan 03 2012 - 16:55:38)
Marvell-GuruPlug
gcc (Frugalware Linux) 4.6.2
GNU ld (GNU Binutils) 2.22
If Frugalware is mentioned, that’s a good sign. :)
Now you can boot your new rootfs:
usb start
fatload usb 0:1 0x00800000 /uImage
setenv bootargs console=ttyS0,115200 root=/dev/sda2 rootdelay=5
bootm 0x00800000
If it booted fine, you may want to make this the default:
setenv bootargs 'console=ttyS0,115200 root=/dev/sda2 rootdelay=5'
setenv bootcmd_usb 'usb start; fatload usb 0:1 0x00800000 /uImage'
setenv bootcmd 'run bootcmd_usb; bootm 0x00800000'
saveenv
The rest is up to you:
setting up a root password
setting up network by default using netconfig
and so on… you know this already, nothing arm-specific.
For the reference, here is the tested CPU and Frugalware version:
$ cat /proc/cpuinfo
Processor : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS : 1191.11
Features : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant : 0x2
CPU part : 0x131
CPU revision : 1
Hardware : Marvell GuruPlug Reference Board
Revision : 0000
Serial : 0000000000000000
$ cat /etc/frugalware-release
Frugalware 1.5 (Mores)
Estimated read time: 1 minutes
BitlBee: a patch for skyped got merged, helping to avoid the cryptic openssl error messages when the certificate is missing.
openSUSE: the mutt package now contains one more patch from Frugalware’s mutt-ng package, which means my mutt config can be used unmodified (no more unknown config settings)
jBPM and bpm-console: these were part of my MSc thesis, github branches are available, upstreaming is in progress (on IRC they confirmed that they are interested in the feature, at least)
Estimated read time: 1 minutes
There was an old Calc bugreport about this, and it was an interesting challenge, since I never touched Calc code before.
First, the references:
Given that there is no easy way to enter Ctrl-Shift-";" using a Hungarian keyboard, the Hungarian equivalent is Ctrl-Shift-".".
Actually, once this feature will be implemented, not sure how the Hungarian users will access it. :)
Estimated read time: 1 minutes
This will be similar to my mysql post.
In case you do duplex printing, select:
long side: in general
short side: if the PDF already contains a 2 pages per sheet
Estimated read time: 1 minutes
So Lennart already had great slides about what is the preferred attitude when you’re hacking Free Software (don’t expect gratefulness && be grateful), but recently there was such a great example, I wanted to mention it. :)
So I saw there is a new etckeeper release and I checked its changelog, mentioning me. What the hell? I didn’t contribute anything to that project in the past 3 years! It turned out it was a patch that was considered "too new" at that time, but now got merged. ;) Remember, if you contribute, usually integration takes much less time, so no need to whine about it.
Estimated read time: 1 minutes
One typical migration people do when changing phones is migration of contacts and calendar items. In case of mine, this is about migrating data from an S40 phone to Google apps, where every smartphone can sync from.
Migrating calendar items is easy: gammu can save the data from the phone to a
.ics file and Google Calendar can just import that. The situation is a bit
harder for the phonebook, as Google Contacts would take a .csv, while gammu
as its own ini-like format for storing this data.
Estimated read time: 1 minutes
SCM commit mailing lists are handy in case you want to comment others' commits in an email. OTOH they are problematic, as they generate a lot of mails, and in case I subscribe to the list, usually I don’t read those commits at all. (In case you have time to read them, that’s a different use case.)
So here is an example how to reply properly — without having to subscribe.
Estimated read time: 1 minutes
More than 3 years ago I gave a talk on Frugalware, and part of that was a comparison to various other distributions, including SUSE. My argument against SUSE was its closed development process.
Times change, earlier this year they even renamed their build system to signal its open nature.
I wanted to try it out how open they are so I made an experiment.
First, I created a cpm package in OBS to get familiar with the packaging process a bit. (Note that anyone can just register and use the build system to share their binaries-- sadly we don’t have resources in Frugalware to provide something similar.) Then I happily noticed that their mutt package already contains my favorite sidebar patch, though the edge of the sidebar looked awful. So on Monday I mailed the maintainer of the mutt pkg if he would take a patch, fixing this issue. I got a positive reply today, submitted a patch and in minutes it got accepted.
So it looks like they are really open, which is just cool. :)