I’ve been Ubuntu’d, have you?

Ubuntu Logo

So I have finally made the full time switch to Ubuntu as OS X just doesn’t cut it for me any longer on this 2008 13″ MacBook Pro

Now I will miss things like the OS X trackpad integration and usability, OS X’s easy Internet Sharing and podcast tools such as LadioCast, CamTwist and Soundflower but I can always boot into OS X when it is needed thanks to rEFIt.

Some notable happiness items since I’ve switched from OS X to Ubuntu

  • Home, End, Page Up, Page Down now all work as they are supposed to (or rather as I’m used to)
  • The ease of window management by alt+dragging windows to move them is just so easy
  • Compiz Fusion plugins such as Wobbly windows and Ring Switcher and GUI tweaks/eye candy that I just can’t seem to get enough of. I don’t usually like eye candy for eye candy sake, but I guess it makes me happy (which I guess is what some people get from using OS X, but sadly I’m not one of them)
  • Compiz Fusion plugins such as scale and zoom that mimic OS X’s Expose and desktop zoom are nice usability features to have along with the Opacity plugin that let’s you make any window transparent. I use this quite a bit: to see text in the browser when I have the command lind / terminal full screen
  • The general speed and responsiveness is such a joy
  • Much faster sleep and wake times
  • Upgrade apps or the OS by just “apt-get upgrade” or “apt-get dist-upgrade” is just so convenient

Now not everything is all fine and dandy and some issues are:

  • Battery life taking a hit. This is probably due to Compiz Fusion effects but also that Linux is not typically good at power management.
  • Trackpad usability has taken a step down from OS X (right clicking with 2 fingers works but is not perfect and touch to click has a slightly longer delay than I would like
  • General lack of application support: no SugarSync / Evernote native clients
  • All in all, I think I’m a happier computer user not having to wait all the time for the operating system to catch up to me and beach balling me all the time. I would highly suggest everybody try Ubuntu, even if it is just for the fun of it (you can burn it to a CD or copy it to a USB drive and boot from there without needing to install it).

    Ubuntu 11.04, Natty Narwhal, has been released

    The first version of Ubuntu for this year has been released. It is dubbed Natty Narwhal or for easier date reference 11.04. Check out the release naming scheme on the Wiki that includes the history of this naming convention. But in all seriousness the main new change is that they have changed to the Unity as the desktop environment instead of Gnome. This brings a refreshed look to this Linux distribution as well as providing added functionality. Check out OMG! Ubuntu’s guide to Natty Narwhal and Ubuntu’s own “What’s New” page.

    Summary for UI changes as well as naming convention:

    • Unity: a new desktop environment which could be described as the desktop / user interface that the user sees when they log in. It is comprised of the Launcher, the Dash and the Panel
    • The Launcher: This seems more like OS X’s dock than WIndows task bar. You can launch applications from from it and open windows should shown in the launcher
    • The Dash: similar to the Window’s Start button (or now the Windows button), this will allow you to look through and launch any application installed
    • The Panel: situated at the top of the screen, this acts as a global menu bar just like OS X, but also integrates with other applications through the indicator area (similar to Windows’ notification area)

    Go try it out and download it now. You don’t even have to install it, just burn it to a CD or install it to a USB drive and boot straight from it to see how your hardware handles it. For the computer enthusiast there is no reason not to give Ubuntu a try and delve into the world of Linux.

    Playing Nice with Filesystems

    If you have played around with any 2 of the 3 major operating systems (Windows, OS X and Linux) and start transferring files to and from external hard disk you will probably run into an issue with the type of filesystem you choose for your hard disk. Windows likes NTFS, OS X likes HFS and Linux likes ext. As you can see none of them are the same. Being different is not so much an issue, but being compatible and accessible to all is.

    Based on default system settings:

    • NTFS is readable on all operating systems, but not writable on OS X. Most modern Linux distributions can write to NTFS drives
    • HFS is readable on OS X and modern Linux distributions, and not writable on Windows or Linux
    • ext is only readable on Linux and not writable on Windows or OS X.

    or to put it based on operating system

    • Windows can only read and write to NTFS, nothing else
    • OS X can read and write to HFS and read NTFS
    • Linux can read and write to ext and NTFS and read HFS

    Take note that there is also the older FAT32 filesystem that is fully supported for reading and writing by all operating systems but due to limitations of FAT32, I rather not consider this. Basically the main issues with FAT32 is that the maximum file size is 4GB and the maximum partition size is 32GB (actually Windows can’t format a FAT32 partition greater than 32GB but can read FAT32 partitions of more than 32GB. Use GParted or just filter this Google search to be able to create and format a partition of 32GB). If these are limitations you can deal with, for the sake for interoperability stick with FAT32.

    Now to solve the problem of support for each filesystem in each operating system:

    NTFS:

    • OS X: NTFS-3G + MacFUSE
    • Linux: NTFS-3G
    • I’ve been using NTFS-3G in Linux for many years and haven’t had any problems with it and so far it’s working well with OS X too
    • On another note if the NTFS drive is not unmounted properly or there are some issues with the file system integrity, it is necessary to use Windows scan disk to rectify the problem. Thus this requires a copy of Windows to fix the filesystem.

    ext:

    • Windows: Ext2 Installable File System for Windows
    • OS X: Mac OS X Ext2 filesystem
    • I’ve had issues of only being able to mount an ext2 partition in Linux and it gave a mount error in Windows and OS X and was due to an inode issue as new Linux distributions create the file system with inodes of 256 bytes but Ext2 fs only supports the older version with 128 bytes. And the only solution is to back up the files, and reformat partition with inodes of 128 bytes (-I 128) and restore the files.
    • Filesystem integrity issues should be able to be fixed with “fsck” from a Linux distribution / live CD. The great thing about this is that you can get a Linux distribution for free and this recovery can be done with out any strings attached.

    HFS:

    • Windows: MacDrive (US$50, read and write), Paragon HFS for Windows (read only)
    • Linux: Enabling HFS writing in Ubuntu
    • Note: I have not personally tested these so I cannot give first hand experience of how well it works or what issues can be had with this.
    • I believe that HFS+ journal
    • I would believe any filesystem repairs would have to be done in OS X (similar to NTFS and Windows) and if so this enforces that you have OS X at hand, and in order to have OS X you must have Apple hardware or a Hackintosh either way this is very restrictive.

    So it is pretty easy to get full read and write support of all 3 default file systems on the 3 major OS’s but there are issues. So far I’m inclined to stick with ext2/ext3 just due to the fact that it has no restrictions in terms of filesystem repair. I’ve had many NTFS issues related to damaged filesystems that required Windows and the inconvenience of taking the drive out of my box to find a Windows box was too much.

    Using your phone as a Bluetooth modem in Linux

    Software Package Requirements:

    • wvdial
    • bluez
    • bluetooth

    Install packages for Ubutun/Debian systems
    sudo apt-get install wvdial bluez bluetooth

    Steps to get your Bluetooth modem working

    1. Turn phone’s Bluetooth connection and set to discoverable mode
    2. Scan for your device:
      sudo hcitool scan
      Result:
      Scanning ...
      00:11:22:33:44:55 MyPhone
    3. Search device to see if supports Dial-Up Networking (DUN) for use as a modem. Look out for RFCOMM channel
      sdptool search --bdaddr 00:11:22:33:44:55 DUN
      Result:
      Searching for DUN on 00:11:22:33:44:55 ...
      Service Name: Dial-Up Networking
      Service RecHandle: 0x1000f
      Service Class ID List:
      "Dialup Networking" (0x1103)
      Protocol Descriptor List:
      "L2CAP" (0x0100)
      "RFCOMM" (0x0003)
      Channel: 4
      Language Base Attr List:
      code_ISO639: 0x454e
      encoding: 0x6a
      base_offset: 0x100
      Profile Descriptor List:
      "Dialup Networking" (0x1103)
      Version: 0x0100
    4. Bind the modem on the RFCOMM Channel to a device
      sudo rfcomm bind /dev/rfcomm0 00:11:22:33:44:55 4
    5. Dial and connect (ensure your wvdial configuration is correct, for sample see below)
      sudo wvdial dstbt
      Result:
      --> WvDial: Internet dialer version 1.60
      --> Cannot get information for serial port.
      --> Initializing modem.
      --> Sending: ATZ
      ATZ
      OK
      --> Sending: AT+CGDCONT=,,"dst.internet"
      AT+CGDCONT=,,"dst.internet"
      OK
      --> Modem initialized.
      --> Sending: ATDT*99#
      --> Waiting for carrier.
      ATDT*99#
      CONNECT
      ~[7f]}#@!}!} } }2}#}$@#}!}$}%\}"}&} }*} } g}%~
      --> Carrier detected. Waiting for prompt.
      ~[7f]}#@!}!} } }2}#}$@#}!}$}%\}"}&} }*} } g}%~
      --> PPP negotiation detected.
      --> Starting pppd at Wed Aug 19 23:45:04 2009
      --> Pid of pppd: 17558
      --> Using interface ppp0
      --> local IP address 10.84.2.128
      --> remote IP address 10.6.6.6
      --> primary DNS address 202.152.64.27
      --> secondary DNS address 202.152.64.28
    6. You’re connected! Surf and enjoy the Internet!

    Sample wvdial configuration file

    • Stored in ~/.wvdialrc
    • Change “dst.internet” to your provider’s APN

    [Dialer dstbt]

    Modem = /dev/rfcomm0 # modem device
    Baud = 115200 # 921600 / 460800 / 115200 / 57600

    Init = ATZ # far card with no PIN
    # Init = ATZ+CPIN=”0000″ # for card with PIN, replace 0000 with your PIN

    # If you know your ISP’s APN, specify it instead of YOUR_ISP_APN below.
    # There’s also an APN table at https://wiki.ubuntu.com/NetworkManager/Hardware/3G .
    # use one of the following 3 options. change to your providers APN
    Init2 = AT+CGDCONT=,,”dst.internet”
    #Init2 = AT+CGDCONT=1,”IP”,”YOUR_ISP_APN”
    #Init2 = AT+CGDCONT=1,”IP”

    # Most services/devices dial with *99# . A few seem to require *99***1#
    Phone = *99#

    # These often suffice, but your ISP might require different details. They’re
    # often dummy details used for all users on the ISP, frequently the ISP’s
    # name, but some ISP’s do require you to use a real username and password.
    # any details possible
    Username = internet
    Password = internet

    PS: bmobile customers change APN to “bmobilewap”

    A reason to dislike GTK applications

    Bug 135056 – Alt-Tab doesn’t work during drag-and-drop (nor does workspace switch, etc.)

    See http://bugzilla.gnome.org/show_bug.cgi?id=390312 for gtk side of this problem. GTK grabs keyboard at the moment but that can be fixed. QT applications do not grab keyboard on DND right now if you need to test it without newest patched GTK.

    I just find it the ultimate annoyance after being used to it for so long. So for those would be Linux users be wary of Gnome and other GTK based applications

    Powered by ScribeFire.

    Mp3 Support with Amarok in Kubuntu Edgy

    Just a few moments ago I was granted with the following popup message as I tried to play a few podcasts I downloaded
    Amarok cannot play Mp3s

    I know Kubuntu doesn’t support MP3 playback by default due to copyright/licensing/patent/legal issues, as seen from this part of the ubuntu documentation

    Ubuntu strives to make every piece of software available under the licensing terms laid out in the Ubuntu License Policy. Patent and copyright restrictions complicate free operating systems distributing software to support proprietary formats.

    Ubuntu’s commitment to only include completely free software by default means that proprietary media formats are not configured ‘out of the box’.

    It’s cool that they’ve automated it though: click the install button, supply your password, wait for the package to download and install, restart amarok and it’s all good.
    Adept downloading Mp3 support
    Kudo’s to programmers, and bleh to non-free standards

    SMC 2862W-G on Linux!

    To be exact the SMC 2862W-G EZ Connect g 802.11g Wireless USB 2.0 Adapter which I got a year or two ago finally works in Linux (Kubuntu Edgy). Details below for those whoever run into the same problem. Now I have 2 Linux compatible USB dongles, sweet! So now I can finally set up my other Linux box right beside me thats been here for months haha.

    lsusb output

    Bus 005 Device 014: ID 0707:ee13 Standard Microsystems Corp. EZ-Connect 802.11g Adapter

    Requirements: curl and git-core package. Code below only for Debian based distros.

    apt-get install curl git-core

    Building the driver

    git clone http://islsm.org/~jb/islsm/islsm.git softmac
    cd softmac
    make
    make load

    Kudos to vlsoft for posting it here. Having late nights like this reminds me of the times I was up trying to configure X11 for my old Toshiba laptop. Ahhhh the memories. I was in my cluster kitchen when I finally got it to work if I remember correctly. Hehe.

    Edit. Revisited this on my newest and oldest comp in my room: an old Pentium 233 with 32MB of RAM. Found out I left out 1 part which is copying the firmware as stated here

    If you have a second-generation device, please use this firmware: 2.5.8.0 firmware and copy it to /usr/lib/hotplug/firmware/isl3887usb_bare.

    And yes I should sleep as I have training at 9am. Man but I want to play with my Linux….

    Edit2. Last night I tried to compile this on a fresh install of Ubuntu 7.04 Feisty Fawn (kernel: 2.6.20-16-generic) and found compile errors. The worse part was the site seemed to be down thus I couldnt search the forums for any help. Thus I did what I could do, actually read the errors and try to fix them. And viola! After a few minutes I managed to get it to compile! Now thats what Open Source is about. Something’s wrong so go ahead and fix it! Anyway changelog below

    ================================================================================
    Changelog
    ========================================
    Modified by Timothy Lim Sheng Hwee
    on 1st July 2007
    ========================================
    Tested on Ubuntu 7.04, Feisty Fawn (uname -r output: 2.6.20-16-generic)

    File changes
    --------------------------------------------------------------------------------
    islsm_netdev.c
    --------------------------------------------------------------------------------
    line 30:
    #include <linux/config.h>
    changed to
    #include <linux/version.h>
    #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
    #include <linux/config.h>
    #endif
    --------------------------------------------------------------------------------
    islsm_dev.c
    --------------------------------------------------------------------------------
    line 27:
    #include <linux/config.h>
    changed to
    #include <linux/version.h>
    #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
    #include <linux/config.h>
    #endif
    --------------------------------------------------------------------------------
    islusb_transport.c
    --------------------------------------------------------------------------------
    line 23:
    #include <linux/config.h>
    moved to line 28 and changed to
    #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
    #include <linux/config.h>
    #endif
    --------------------------------------------------------------------------------
    islusb_init.c
    --------------------------------------------------------------------------------
    line 23:
    #include <linux/config.h>
    changed to
    #include <linux/version.h>
    #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
    #include <linux/config.h>
    #endif
    --------------------------------------------------------------------------------
    islsm_uart.c
    --------------------------------------------------------------------------------
    line 29:
    add
    #include <linux/poll.h>
    --------------------------------------------------------------------------------
    islpci_dev.c
    --------------------------------------------------------------------------------
    line 1254:
    INIT_WORK(&priv->reset_task, islpci_do_reset_and_wake, priv);
    changed to
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
    INIT_WORK(&priv->reset_task, islpci_do_reset_and_wake);
    #else
    INIT_WORK(&priv->reset_task, islpci_do_reset_and_wake, priv);
    #endif
    --------------------------------------------------------------------------------
    islusb_net2280.c
    --------------------------------------------------------------------------------
    line 284:
    INIT_WORK(&p54u->int_bh, p54u_new_int_bh, islsm);
    changed to
    #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
    INIT_WORK(&p54u->int_bh, p54u_new_int_bh);
    #else
    INIT_WORK(&p54u->int_bh, p54u_new_int_bh, islsm);
    #endif

    Update (2009/12/3): It seems that the cold is no longer working and no longer available. Managed to get the USB dongle working in Debian with 2.6.26-2-686 kernel via the instructions here (basically just need to copy the firmware over to /lib/firmware and it worked)