Random notes from mg

a blog by Marius Gedminas

Marius is a Python hacker. He works for Programmers of Vilnius, a small Python/Zope 3 startup. He has a personal home page at http://gedmin.as. His email is marius@gedmin.as. He does not like spam, but is not afraid of it.

Wed, 12 Oct 2011

N9 Hackathon in Vienna

Last weekend I attended the N9 Hackathon in Vienna. Nokia kindly sponsored all food and accommodation costs and, at the very end, surprised me with an entirely unexpected gift of a N9 phone.

Vienna: great transportation system, delicious food (either that, or I was always extremely hungry when I ate), huge portions, restaurants open until midnight. Shame I didn't have time to see the city itself.

The N9 is a gorgeous phone; much more so in real life than in pictures.

After some hassle upgrading the Qt SDK (the provided upgrade tool managed to somehow remove the Qt Creator IDE while purporting to upgrade it; I had to reinstall the entire SDK) and flashing my N950 with Beta 2 firmware (Qt SDK 1.1.3 produces apps incompatible with the old Beta 1 firmware of the N950) I started prototyping a time tracking application in QML, while learning QML and the N9 design guidelines at the same time.

Converting the pretty pictures into QML was harder than I expected, but at the end of the second day I had something that looked like a native N9 application.

screenshot of the prototype

Most useful reference pages were:

Finally, workflow. QML is parsed at run time (application startup time, unless you delay the loading), which means no recompilation ought to be required to make changes, which means short development feedback cycles ought to be possible. So I was not happy about having to wait several seconds after hitting Run in Qt Creator, while it built a .deb, copied it to the device over wifi or USB networking, installed and ran it there. Deploying to the Qt Simulator is quicker, but not as much as I think it ought to be. Plus, the Qt Simulator apparently cannot simulate the landscape mode of the N9, and it lies about the default font size of QML Text elements (if you do not specify a pixelSize, text elements will look all right in the simulator, but ridiculously tiny on the N9).

In the end I cobbled up a shell script that rsyncs my updated QML files to the device and runs a short Python script (over ssh) to launch them. You need rsync and PySide installed on the device for this, obviously, as well as having SSH set up for passwordless logins. As a bonus, I can now do QML development during lunch, directly on the device, with vim, enjoying proper syntax highlighting. :)

Oh, and my code is up on Github.

posted at 14:25 | tags: , | permanent link to this entry | 4 comments

Fri, 29 Jul 2011

Porting FBReader to Meego 1.2 Harmattan

Andrew Olmsted built the first FBReader packages for Harmattan, after tweaking the build system a bit. The desktop version of FBReader already used Qt 4, and ran almost unmodified, but with some bugs (segfault on task switch) and ugly UI.

I started with the Ubuntu packages for FBReader, since they used a more sane build system for .debs (compared to upstream's funky shell script). Some tweaks were needed to make it build in Scratchbox: since GTK+ and Hildon libraries aren't available on Harmattan, I had to disable the building of -gtk and -maemo versions of libzlui. I also got to learn a new tool — quilt.

Fixing the segfault took a couple of days of debugging, studying the source code of both FBReader and Qt itself, and asking for help on IRC. Turns out FBReader was holding an active QPainter instance for too long, and its backing pixmap got destroyed (or, rather, converted from an OpenGL texture to a plain X11 pixmap) during a task switch, causing the crash. I'm probably describing this wrong BTW, but, in any case, adding QPainter::begin() and QPainter::end() calls in the paintEvent handler fixed the segfault.

Next, a small tweak in the .desktop file to make FBReader a single-instance application: change Exec=FBReader to Exec=single-instance /usr/bin/FBReader (I'm paraphrasing slightly).

Then, a more ambitious goal: making FBReader intercept volume keys and use them for scrolling. Google gave me a pointer to QmKeys, which was the wrong API to use here, but gave me a lead to qmkeyd2, which appears to be an open source daemon, which gave me a lead to sysuid, another open source daemon, which in turn gave me a lead to libresourceqt, and that was the right API at last.

Volume keys generate regular key events for XF86AudioRaiseVolume and XF86AudioLowerVolume, but they're also intercepted by qmkeyd2, which tells all subscribers (and sysuid is one) about them. Which subscriber gets to react is determined by the resource policy framework. So what I needed to do in FBReader was acquire the ScaleButtonResource when FBReader starts up or gets focus, and release it when FBReader quits or goes into background. That also required some IRC help until I discovered installEventFilter() and the ApplicationActivate/ApplicationDeactivate events. And QApplication::instance().

The various tools available in the developer firmware were invaluable: openssh, gdb, valgrind, strace, xev, xprop, lsof, netstat. Also, I would not have achieved my second goal without being able to look at the sources of Meego system components (qmkeyd, sysuid). Yay open source!

Here are my changes to the source code. You can find my modified Debian packaging files, as well as prebuilt binary packages (with full debug info, for gdb goodness), in my experimental harmattan apt repository. The UI is still ugly and non-native, but it doesn't matter much in fullscreen mode :) .

Note to self: when next building fbreader, make sure the 2 megabyte tags file doesn't end up in the .diff.gz. And speaking of crud in source packages, the vim package I built for Harmattan the other day contains the entire 50 meg .hg in the .orig.tar.gz. I need to figure out how to tell dh_make to omit it.

posted at 03:16 | tags: , | permanent link to this entry | 10 comments

Tue, 19 Jul 2011

Nokia N950

Last Thursday I received a package containing something called the Nokia N950 development kit. Sweet sweet hardware, shame it's not going to be sold to end users. The software is visibly an unfinished pre-release version, but shows great potential. There are almost no 3rd-party apps, which is why Nokia is loaning these N950s to random developers.

I intend to port GTimeLog to it. Although my more immediate need is to have FBReader, so that I can stop carrying both this one and my N900 with me everywhere. Also, vim would be nice.

I've already hacked up Lithuanian support to the virtual and hardware keyboards, thanks to the very nice design of Maliit. As a comparison, I've had my N900 for a year and a half, and I still can't type Lithuanian on it. XKB is not fun.

posted at 15:44 | tags: | permanent link to this entry | 10 comments

Wed, 21 Jul 2010

N900 connection sharing the hard way

My N900 has a SIM card with a flat-rate 3G data plan. My laptop hasn't. What do I do when I want to use the Internet on my laptop somewhere that doesn't have WiFi? Well, there are many options:

Option 1: N900 as a USB modem

Use the provided USB cable to connect the N900 to the laptop. Choose "PC Suite" mode on the N900 when you get the USB connection menu. The laptop now sees your N900 as a bog-standard USB 3G modem. Use Network Manager to connect to the internet.

Pros: no extra setup required. The N900 and the laptop can both access the Internet at the same time.

Cons: you have to use a USB cable (I hate cables). You cannot ssh into your N900 (and ssh is my primary file transfer protocol between the laptop and the M900).

Option 2: N900 as a Bluetooth DUN modem

Install Bluetooth DUN support from Maemo Extras. Then use it like you would any other phone that has Bluetooth DUN.

Pros: no cables.

Cons: Bluetooth is the worst technology ever. I never had it work reliably. Plus, Network Manager in Ubuntu 10.04 doesn't support Bluetooth DUN (it supports only Bluetooth PAN, as far as I know).

Option 3: N900 as a WiFi access point with Joikuspot

I haven't tried this.

Pros: simple (hopefully), no cables required.

Cons: Joikuspot is non-free. I'm not an absolute zealot, but I will avoid closed-source stuff when open-source alternatives are available.

Option 4: N900 as a WiFi access point with Mobilehotspot

I haven't tried this either.

Pros: it's an open-source app available from Maemo Extras. No cables required.

Cons: requires a non-standard kernel (or so I've heard). Way outside my comfort level.

Option 5: N900 as a WiFi access point with shell scripts

Here's the shell script I run on my N900: share-wifi. It sets up an ad-hoc WiFi network, and starts a DHCP and DNS server (dnsmasq). Sadly, it cannot set up connection sharing (NAT), so I rely on OpenSSH as a SOCKS5 proxy. The whole setup is like this:

  1. You want the latest firmware (PR 1.2) to avoid this bug.
  2. You need to have OpenSSH installed on the N900. Also, setting up key-based authentication makes it more convenient.
  3. The script assumes that you've set up sudo on the N900 so that you can run any command as root.
  4. You need to have wireless-tools installed. It's in the main SSU repository so you should be able to sudo apt-get install it (if it's not preinstalled; I don't remember).
  5. On the N900 run share-wifi in a terminal (optionally passing a WiFi channel number from 1 to 11, in case you need to avoid interference with nearby networks).
  6. On the laptop connect to the new n900 WLAN and run ssh -D 1080 user@n900. You will get a shell session; the SOCKS proxy will be active while it is open.
  7. Reconfigure your laptop to use a SOCKS5 proxy on localhost:1080. For GNOME systems I've a couple of shell scripts: proxy-on and proxy-off. For applications that do not use the GNOME proxy settings (such as Subversion access over SSH), use tsocks.
  8. When done, hit Ctrl-C on the N900 to terminate the sharing script.

Pros: no non-free software or custom kernel required. No cables.

Cons: complicated to set up. No WLAN power savings available for ad-hoc networks, so battery life is extremely poor (~2 hours). But, hey, no cables!

posted at 01:41 | tags: | permanent link to this entry | 16 comments

Wed, 03 Mar 2010

Oopsie

Sorry for flooding Planet Maemo -- it was a side effect of changing this feed's URL to only include posts tagged "maemo". I'm not sure if the fault is PyBlosxom's or the aggregator's

As a penance, here's a Terminal trick for you:

LABELS='[Tab,Esc,Enter,PgUp,PgDn,F2,VKB]'
KEYS='[Tab,Escape,KP_Enter,Page_Up,Page_Down,F2,Return]'
gconftool -s /apps/osso/xterm/key_labels --type list --list-type string "$LABELS"
gconftool -s /apps/osso/xterm/keys --type list --list-type string "$KEYS"

This changes the toolbar to have three extra keys (Enter, F2, and a key that acts like Enter when the hardware keyboard is open, and opens the virtual keyboard if the hardware keyboard is closed).

Update: added screenshot:

N900 Terminal with new toolbar buttons
Nokia N900 Terminal app with new toolbar buttons

posted at 19:45 | tags: | permanent link to this entry | 9 comments

Mon, 12 Oct 2009

Maemo Summit 2009

The second Maemo Summit is over.

Nokia surprised everyone on the first day by handing out 300 pre-release N900s to the participants. I'm so happy now that after a long period of wavering I finally decided to come to the summit! The device is much better than I expected/feared (and I haven't even put a SIM card in yet). We're supposed to provide feedback and will have to send the devices back to Nokia in 6 months. (Nokia insisted on loan contracts signed in blood, kidding, but there are contracts.)

The tiny pixels are beautiful. It's what, 266 pixels per inch? Even older 225 dpi devices spoiled me: both the first generation iPhone and the first generation Kindle displays seemed very coarse and pixellated.

The user interface is very smooth. Having a composition manager improves apparent responsiveness: even if the app is swapped out and not ready to redraw, switching between windows appears to be instant since the picture is cached. And there's no flicker while the apps are redrawing. (Flickering during redraw is one of the main reasons I did not buy a S60 phone and stayed with good old S40.) Speaking of swapping, it's barely noticeable. You can run more apps than fit in RAM without having to suffer. The flash memory is noticeably faster than in a N810. And there's more of it (32 gigs: 28 gig partition for user data, the rest for the system: swap, applications, config files, etc.)

The design and usability of the user interface have improved a lot since the N810. The UI is pretty. Many of the apps are now convenient to use. Pervasive kinetic scrolling is sweet (except when you have really long lists or web pages, then it takes forever to reach the end).

Finally there are PIM-y things people missed in older Maemo releases: calendaring, contacts that can record all kinds of information (such as phone numbers).

All right, enough gushing. There were some irritating things too. For example, Bluetooth support is buggy/incomplete in the pre-release firmware, so it's hard to transfer files. Calendar/contacts sync with S40 phones does not work either. GPS is utterly useless when you're offline (no maps, or at least I haven't found a way to pre-download and cache them; also very long fix times without network assistance). Since I have no desire to pay extortionist roaming charges of my provider (2.5 EUR per megabyte), and haven't had a chance to go look for a prepaid SIM card, I usually have either WiFi or GPS coverage, but not both.

As you can guess, playing the device diverted a part of my attention from the presentations somewhat. I tried to compensate for that by reporting on the talks on IRC (using xchat on the device). I think the strategy backfired; IRC is rather disruptive and the channel is quite busy lately.

posted at 01:22 | tags: | permanent link to this entry | 9 comments

Fri, 20 Mar 2009

Tying out Fennec Beta 1

Fennec, the mobile version of Firefox, released a new version (beta 1) for the Nokia N8x0 Internet Tablets recently. Here are my first impressions after about 15 minutes of use:

JFFS2, which is the file system used for internal flash memory on NITs, compresses all data, which makes free space comparisons weird. I had 5 megs free, freed up 20 more, then installed Fennec (which, the Aplication Manager assured me, required 10 megs) and ended up with 5 megs free.

I'd include a screenshot, but ad-hoc wifi doesn't work between my Thinkpad and my N810 for some reason.

posted at 22:47 | tags: | permanent link to this entry | 0 comments

Thu, 05 Feb 2009

E-books are the future

John Siracusa talks sense about e-books (via Charlie Stross):

Did you ride a horse to work today? I didn't. I'm sure plenty of people swore they would never ride in or operate a "horseless carriage"—and they never did! And then they died.

I like the bit about dedicated e-book reader devices missing the point. I'm a huge e-book fan (reading them almost exclusively since about 2002 on various handheld devices), but even I cannot justify to myself buying a bulky one-purpose piece of electronics for $lots for the sole purpose of reading books. Get something universal, like a Nokia N810 or (if you hate freedom) an iPhone. And stay away from DRM-ed stuff.

posted at 23:15 | tags: | permanent link to this entry | 0 comments

Mon, 13 Oct 2008

N810: death and rebirth

My beloved N810 died last Tuesday. Well, not died died, but the screen stopped working. The topmost plastic layer is fine, but the LCD is probably cracked underneath. This probably happened while I was in an Apple store watching a friend of mine buy an iPhone. Coincidence?

I ordered a new one from Amazon that evening, and it arrived on Thursday. It had the oldest possible OS2008 version (and an incorrectly-formatted internal flash card), so I had to reflash it, and then install the OS feature updates one at a time, with forced a reboot in between. Untimely breakage of extras-devel didn't help either, and neither did the broken maemo-mapper package in extras. (Both are fixed now.)

Almost all of my data was on the miniSD card (including a week-old backup). To get the rest I had to blindly get the old N810 online and open a browser page (measuring distances from the corner of the screen) to get past the hotel wireless nag screen, and then guess its IP address, so that I could ssh in.

It thought maybe I could use arping on its MAC address to get the IP, but had no luck there. It didn't respond to broadcast pings either. Finally I had to ping every IP in my subnet individually and then grep for the MAC address in my kernel's ARP cache. Oh, how I wish Maemo came with avahi-daemon preinstalled! ssh mg-n810.local would have been so much simpler!

I'll try to get the old one repaired.

Update: thp describes how to get avahi-daemon on the tablet.

Update 2: the old N810 is repaired (screen replacement cost me 510 LTL, which is ~200 USD, at the local Nokia service center). It now serves as an Internet Radio station at home.

posted at 03:19 | tags: | permanent link to this entry | 0 comments

Sat, 20 Sep 2008

Users and Developers

One recurring theme that I noticed during the Maemo Summit was people apologising for not being developers. A running joke during some of the talks on the first day was people describing themselves as disabled because they were not, themselves, developers.

That's just wrong. Users should not be ashamed for being users!

I'm a developer, but I often want to be just a user. I want software to just work. I wish there was no need for bug trackers. I wish users did not need to know about source packages or patches. I want to hack because I want to, not because I need to.

Until that becomes reality (if ever), I prefer the ability to make use of my developer experience to make things better. Hence my enthusiasm for open source, bug trackers, source packages and patches.

posted at 13:23 | tags: | permanent link to this entry | 0 comments

Maemo Summit 2008

Nokia kindly sponsored my trip to Maemo Summit in Berlin.

Unexpectedly was asked to give my LinuxTag presentation during the lightning talks. It did not go very well. Note to self: advance preparation helps, at least if you know you're going to present something.

Met PyPy folks (Maciej and Holger). Had a mutual "what on Earth are you doing here?" reaction. Learned a new quirk in the Python language (try: ... finally: does not set sys.exc_info()).

Impressed by one guy (sorry, but I'm really bad with names) giving a presentation from the N810, with OpenOffice.org Impress in a Debian chroot, over a SIS USB2VGA dongle. Apparently he created the whole setup in half an hour before the actual talk.

No free wireless at the hotel. Paid wifi options include 25 EUR for 24 hours or 30 EUR for 30 days. Can I have just the 29 days for the 5 EUR? No.

The WiFi at c-base was fast and almost flawless. Missed half of the talks while checking my email and blogs. I'm addicted to the Internet. :(

Still able to get up before 6 AM. The US trip has done wonders with my daily schedule.

posted at 10:33 | tags: | permanent link to this entry | 9 comments

Sat, 21 Jun 2008

Asus EeePC 900

I unexpectedly acquired an Asus EeePC 900 last weekend. Lovely piece of hardware.

The Xandros distro was okay at first (IceWM brought me fond memories of the year 2000, when I used it). Then I started longing for Firefox 3 and the aesthetics of GNOME applications. Finally, when apt-cache search told me there was no SSH server package available, I gave up and installed Ubuntu Eee from a SD card. The software selection is incomparable (Asus/Xandros: 870 packages available, according to apt-cache stats. Ubuntu: over 30,000 packages.) Also, yay rotating cube desktop!

Things I like about the Eee:

Things that are bad:

My workhorse, a 14" Lenovo T61W, now seems huge by comparison:

Nokia N810 on top of Asus EeePC 900 on top of Lenovo ThinkPad T61W

I'm not going to stop using my N810 (which fits in a pocket, has a much longer battery life, and is more convenient for e-books or NumptyPhysics). I'll stop lugging my T61W around instead and start leaving it at work. The EeePC is an almost-perfect travelling laptop.

The upcoming Asus EeePC 901 is going to fix the lack of internal Bluetooth and the battery life. I wonder when it will become available in Lithuania. (The 900 is displayed in almost every electronics shop here. Yay Asus. Boo Nokia for not doing this with its Internet Tablets.)

posted at 22:56 | tags: , | permanent link to this entry | 2 comments

Fri, 13 Jun 2008

Out of touch with reality

I used Windows at work until January 2002, when I changed jobs and went to Linux full-time. I barely remember what life was back then. Driver CDs you had to install before plugging in new hardware, shareware apps that you had to pay for and couldn't see how they worked, web pages full of blinking advertisements. Magic voodoo rituals you had to do to fix your IS when it broke down, that you had to do by rote without full understanding of how it all fit together.

These days I run Ubuntu. Hardware just works (or doesn't). Apps are an apt-get install away. Web pages I read mostly end in .org and rarely have obnoxious ads. The system breaks rather more often than I'd like, but at least there are no artificial obstacles in the way of debugging. Download the sources, recompile with debug symbols, go.

I am a programmer, and I've been one for many years now. I found something that works for me, and I'm mostly happy. I do not want to tell you how you should live your life, or what OS you should use on your laptop.

Recently I was hit on the head with the understanding that my point of view is somewhat atypical. As a programmer and a long-time Linux power user I have the skills and knowledge to download sources of applications, apply patches, and build packages. I don't view these tasks as development, because I'm not creating anything new. I'm just using the fruits of others' labour a bit earlier than I would have if I'd just waited for the next Ubuntu version to bring me the updated package in 6 months.

I want to apologize to timeless for expressing myself badly. I did not mean to complain or demand anything. I wanted to encourage transparency by disagreeing with a previous claim (which was that marking bugs as fixed was useless unless the developers provided updated packages for the current distro or released the next distro ASAP). But then I couldn't resist adding a poorly-written postscript and got the opposite reaction: timeless quoted my words as an example of How can people discourage transparency:

Personally, I'm disappointed that when a bug is closed as "fixed in diablo", as a user I've no idea how to get the updated package on my N810. I've got scratchbox handy, just point me at the new source package and I'll backport it -- but repository.maemo.org has no 'diablo' in dists/.

This is what I'm used to, with Ubuntu, and open-source software in general. When a bug is fixed, I get a choice: wait for the updated package, or dig out the fix from the publicly available version control system.

It's what I'd like to have, but not something that I demand of Nokia (or its employees). I do not think I have the right to demand it from anyone.

I should finally learn to think more and write less.

posted at 23:01 | tags: | permanent link to this entry | 0 comments

Sun, 01 Jun 2008

LinuxTag 2008, day 4

The last day. Saw a bunch of interesting talks about freedesktop.org, Ekiga, GNOME and Ubuntu. Jono Bacon's talk was very interesting. I think if Nokia is interested in building a healthy developer community, they would do well to talk to Jono about it.

Got a USB gender-bender from Kees Jongenburger -- now I can plug in USB devices to my N810, provided that they don't require too much power (extra software required: usbcontrol from Maemo Extras). I owe you one Kees!

Discovered that the GNOME booth does in fact have T-shirts for sale, they're just not out on display like in other booths. Sadly, since I discovered that during the last hour of the last day of the conference, only extra large T-shirts were left. Spent my last 10 EUR in cash on the T-shirt anyway. ;-)

Met MaryBeth Panagos from OpenMediaNow, learned about interesting happenings with Gnash, open media codecs and Ubuntu Mobile. Raised my hopes for a brighter future. Showed off my N810 and expressed my hopes for Gnash replacing the closed Adobe Flash player on it. It won't happen any time soon -- everyone wants it now!, but there are few developers actually working on it.

Went to a very geeky cafe/computer club c-base for the Ubuntu BBQ. Almost didn't find the place, but one of the LinuxTag guys happened to be going back at just the right moment to show me the path hidden behind the bushes.

Feeling content now. Well, missing free (or at least paid, but working -- boo, Swisscom, boo!) WiFi at the hotel, but other than that I've had a wonderful time.

posted at 16:23 | tags: | permanent link to this entry | 0 comments

Sat, 31 May 2008

LinuxTag 2008, day 3

After getting my presentation out of the way, I was finally able to relax and really enjoy LinuxTag. I hadn't realised quite how stressed I was about the talk. I'm really happy now that I agreed to come.

Watched an amazing demo in the LinuxMCE booth. I always though it was some kind of a media center app for watching movies, but it turns out to be a complete home automation system where you can control the lights, security cameras and, of course, multimedia, with a large variety of devices (remote controls, mobile phones, VoIP hardware phones, Nokia Internet tablets). Still, I'd have to get a house first.

After the conference I went out for a beer (or, rather, a cup of Earl Grey) in the city with Gary "lcuk" Birkett and Malgorzata Ciesielska, who is doing her PhD on Nokia/Maemo community organisation/collaboration. Had a really nice evening.

posted at 19:17 | tags: | permanent link to this entry | 0 comments

Fri, 30 May 2008

LinuxTag 2008, day 2

The day just flew by. We had all the Maemo community talks. Some people have asked me to put my LinuxTag presentation online, so here it is: What do I want from Maemo?.

In the evening we went to a nice outdoors cafe in a large and beautiful park (Tiergaten) and talked about various things until 1 AM.

My email is piling up, and Google Reader is overflowing.

posted at 13:55 | tags: | permanent link to this entry | 0 comments

Wed, 28 May 2008

LinuxTag 2008

Nokia kindly invited me to speak about Maemo at LinuxTag 2008.

WiFi is a bit problematic here. At the hotel there's no free wifi, you can buy some kind of access from Swisscom at silly prices (8 EUR for 1 hour, with a 100 MB download limit) with silly limitations, and besides my laptop refuses to associate with the AP and doesn't even get to the login page.

WiFi works at LinuxTag itself (at least in the conference rooms; the expo hall was spotty), but you have to visit a pointless and slow web page and press a button labeled 'Go' before they let you ssh around. I fail to see the point, but at least I can get my email now.

Everyone is very nice here. I only attended one talk by now (Cristoph Hellwig's interesting talk about xfs), but I hardly saw any open laptops in the audience.

The Berlin public transport system is not difficult to figure out. The N810's built-in GPS is not useful in practice. I got a fix exactly once after standing for about 10 minutes outside of the hotel. Maemo Mapper is useful for figuring out your actual location on the map, as you're listening to station names on the bus.

Met some people (hi, Dave!). My memory for names is still atrocious. My bad eyesight doesn't let me read badges easily, either. By the way, if you're designing badges that will hang from a lanyard, please print them with the same text on both sides.

posted at 14:18 | tags: | permanent link to this entry | 0 comments

Fri, 21 Mar 2008

Happiness is...

... not having a headache.

In other news, my Nokia N810 Internet Tablet finally arrived. It looks better in real life than in pictures.

Strange quirk: the 2 gigs of extra internal flash memory (formatted as FAT32) are mostly unused (according to df) while at the same time being three quarters full (according to du):

/media/mmc2 $ df -h .
Filesystem                Size      Used Available Use% Mounted on
/dev/mmcblk0p1            1.9G      8.0k      1.9G   0% /media/mmc2
/media/mmc2 $ du -sh .
1.5G    .

Ouch. Time to run fsck.vfat on it. Or perhaps just reformat, to avoid the other famous bug (attempt to access beyond end of device), which, let me check, yes, I also see:

[584959.868000] usb-storage: device scan complete
[584959.868000] scsi 3:0:0:0: Direct-Access     Nokia    N810              031 PQ: 0 ANSI: 2
[584959.868000] scsi 3:0:0:1: Direct-Access     Nokia    N810              031 PQ: 0 ANSI: 2
[584959.872000] sd 3:0:0:0: [sdb] 3932160 512-byte hardware sectors (2013 MB)
[584959.872000] sd 3:0:0:0: [sdb] Write Protect is off
[584959.872000] sd 3:0:0:0: [sdb] Mode Sense: 0f 00 00 00
[584959.872000] sd 3:0:0:0: [sdb] Assuming drive cache: write through
[584959.872000] sd 3:0:0:0: [sdb] 3932160 512-byte hardware sectors (2013 MB)
[584959.876000] sd 3:0:0:0: [sdb] Write Protect is off
[584959.876000] sd 3:0:0:0: [sdb] Mode Sense: 0f 00 00 00
[584959.876000] sd 3:0:0:0: [sdb] Assuming drive cache: write through
[584959.876000]  sdb: sdb1
[584959.880000]  sdb: p1 exceeds device capacity
[584959.884000] sd 3:0:0:0: [sdb] Attached SCSI removable disk
[584959.884000] sd 3:0:0:0: Attached scsi generic sg2 type 0
[584959.884000] sd 3:0:0:1: [sdc] Attached SCSI removable disk
[584959.884000] sd 3:0:0:1: Attached scsi generic sg3 type 0
[584960.240000] attempt to access beyond end of device
[584960.240000] sdb: rw=0, want=4013848, limit=3932160
[584960.240000] Buffer I/O error on device sdb1, logical block 501728

It would be interesting to know how this came to be. Do some N810s have more internal memory than others? Or was the filesystem image made too big for all of them by accident?

posted at 23:54 | tags: | permanent link to this entry | 0 comments

Tue, 22 Jan 2008

Discovery of the day

If you have python but not unzip (consider, e.g. a Nokia Internet Tablet), you can extract zip files with

python -m zipfile -e filename.zip .
posted at 14:08 | tags: , | permanent link to this entry | 0 comments

Fri, 21 Dec 2007

Nokia can has web server pls?

The inability of Nokia to provide reliable web servers for repository.maemo.org and tablets-dev.nokia.com is annoying. I am unable to build packages for N810 because the apt repository that contains build dependencies is down, and apparently has been down for a couple of days already.

posted at 01:33 | tags: | permanent link to this entry | 0 comments