A Half-Assed Guide to Linux on a TW100 WinBook Tablet (Updated 4/29/2015)

January 5th, 2015

Spoiler alert: I’m writing this on a WinBook TW100 using LibreOffice under Ubuntu 14.10 (UPDATE: now 15.04). I hope this post will encourage people to mess around with this system, which seems pretty well-priced. Read on…

IMPORTANT DISCLAIMER

I’m not responsible for anything you screw up by following these instructions–particularly the drive partitioning part, which could wipe out Windows 8.1, the Windows recovery partition, or both.

WELL-INTENTIONED ADVICE

I don’t recommend permanently installing Ubuntu on this device at the moment unless you are pretty confident with Linux hacking already. Newer users can, however, use these steps to boot into Ubuntu and get the wireless driver working without making any permanent changes to the original Winbook setup. By doing so you will discover that nothing works except the wireless driver and you’d be better off sticking to Windows 8.1 until the drivers mature.

OKAY OKAY OKAY

The TW100 has the following specs, which nearly doubles as a list of things that aren’t working under Linux:

  • CPU Type: Baytrail-TZ3735D Quad-Core 1.33GHz – 1.8GHz Burst – working
  • Operating System: Microsoft Windows 8.1 Bing Edition (“Bing Edition”? Seriously?)
  • Ram Memory: 2GB DDR3
  • Flash Storage: 32 GB
  • Expansion Slots: MicroSD – working!
  • Display Size: 10.1″ IPS LCD 1280×800 – working!
  • Touchscreen details: 5-Point Multi-Touch Goodix generic
  • Video Chipset: Intel Gen7 Graphics – working I think
  • Audio Recording: Integrated Microphone
  • Video Recording: 720p
  • Cameras: front 2 Megapixel HD, rear 2 Megapixel
  • Sensors: G-Sensor, Light Sensor
  • Speakers: Built-in stereo speakers
  • Wi-Fi Support: 802.11b/g/n – working, but not out-of-the-box with Ubuntu, and slightly unstable
  • Bluetooth Support: Bluetooth 4.0
  • Ports and Connectors
  1. 1 x Micro USB 2.0 ←- this is the power socket. It’s working.
  2. 1 x microSD Slot working
  3. 1 x Full size USB 3.0 working
  4. 1 x Micro HDMI untested because these cables are expensive
  5. 1 x 3.5mm Audio Headphone/Microphone Combo Jack
  6. 1 x Keyboard/Dock Port working (there’s no way in hell I would write this much on a touchscreen)
  • Battery: 1 Cell Lithium Polymer Battery – working, but not showing battery life in Linux
  • Unknown: thermal stuff maybe?

 

NEEDLESSLY OVERWROUGHT COMMENTARY

What masochism is it that compels me to try installing Linux on every new computer I acquire? Well in this case I can blame Windows 8, which suffers from what we might call Tablet Syndrome, the unwelcome pretense that we should be encouraged to live without keyboards. As a writer/software developer and a typist who has been clocked at 100 words per minute, I am strongly opposed to touchscreen keyboards. It’s hopeless to try touch-typing when there’s no tactile feedback, and software development frequently requires various typographical symbols, like pipes and backticks, that are relegated to sub-menus if you can find them at all. Nobody writes anything meaningful, or programs anything useful, on a tablet, so Windows 8.1 and Ubuntu’s Unity basically introduce interface changes that are very unhelpful. Windows 8.1’s habit of taking me to big goofy screens full of colored squares irritated me immediately. For your reading convenience I’ve just edited out three or more paragraphs of anti-Microsoft, anti-Apple, and all-around nutty ranting that have nothing to do with the matter at hand.

 

BASIC KNOWLEDGE

This information applies to the TW100 which is a 10” tablet sold exclusively by MicroCenter.

The procedures below will also probably work on the 8” tablet models (the TW800 and TW801) but I didn’t see keyboards for those. Do not try this without a keyboard. You can probably boot as far as X startup but at that point you’ll need some kind of input device to make anything happen.

 

A CRIPPLED TABLET? THIS OBVIOUSLY SUCKS, WHY BOTHER?

  1. First of all, for the sheer experimentation and learning value.
  2. Secondly, because the TW100, as with all the Atom tablets I’ve read about, ships with 32-bit Windows even though the Atom is a 64-bit chip. Where the other 32 bits at? I don’t really know what those 32 extra bits actually do, and 32-bit Windows 8.1 does run just fine, but I don’t ride my bicycle on one wheel like a unicycle, so why should I use only half my bits?
  3. The aforementioned masochism.
  4. Linux fanboy-ism. Rage against the machine. Etc. etc.

 

UH, OKAY, AND WHY AM I WRITING THIS?

So nobody else has to, to kickstart people who have considered trying but are scared or gave up, to provide at least one central place for discussion and development on this platform, and hopefully to spur along a few people who might take a stab at writing the unwritten device drivers. (Note: I have never written a kernel-level device driver and have no idea how anyone does it.)

 

PREREQUISITES

  • the TW100 itself, duh. Much of this will apply to other Intel Atom-based tablets, but I have no experience with them.
  • a keyboard– either the $39 case/keyboard combo MicroCenter is selling, which hooks in to the tablet directly, or a USB keyboard. If you go with the latter you’ll also need a USB hub of some kind (probably $8 or less) because you need at least one more USB port to boot Linux from. Oh, you’ll also probably want a mouse, but if you’re brave enough to hit Tab a million times you shouldn’t technically need one.
  • a USB storage stick of some sort in the 2GB+ range. That’s for the Linux self booting image.
  • another computer, with Internet access.

 

NON-PREREQUISITE THINGS THAT WOULD ALSO BE HELPFUL

  • any kind of USB networking device, especially if it’s at least 2 years old (pubescence in Linux driver years). The built-in WiFi chip for the TW100 can be made to work and the driver I have seems to be stable as of 4 Jan. 2015, but it is not included in any kernels of which I’m aware. I found that a Tenda W311 USB stick works nicely out of the box and is available at MicroCenter for about $10.
  • a second USB storage stick proved handy for getting the proper WiFi driver onto the machine, but you don’t actually need that– it just helps.

 

WHAT IS CURRENTLY WORKING (as of Jan. 4, 2014)

  • Screen: works beautifully as a display. Software brightness adjustment through the brightness applet works fine.
  • Battery power works fine. (In Ubuntu 15.04)
  • MicroCenter’s detachable keyboard/trackpad works fine (though the trackpad is a little touchy by nature and the whole keyboard feels pretty flimsy).
  • Volume Up/Down would work fine– you get an onscreen indicator– but since there’s no sound yet, that’s of limited value.
  • MicroSD slot: this works fine under Ubuntu. It did not work in an earlier attempt with OpenSUSE, but I’m sure the driver is available and I just didn’t spend enough time on SUSE to find it.
  • Wi-Fi: the latest version of the rtl8723as driver (which generates 8723bs.ko) seems to be working. This was flaky before mid-December but there seems to be active, successful development taking place. There’s a download link for that below.
  • Touchscreen: WORKING in Ubuntu 15.04. Initially it will operate upside down, but this is easily corrected with xinput-calibrator (see below).
  • ACPI power controls: WORKING in Ubuntu 15.04 (with a version 4 kernel). Prior to Ubuntu 15.04, reboot/shutdown would take me to the Ubuntu shutdown splash screen but the device would not power down or reboot reliably. Now it shuts down very quickly (so far, at least).

THINGS THAT ARE NOT WORKING:

  • Bluetooth: I tried probing every Bluetooth device driver that ships with Ubuntu, and it never came to life. The bluetooth is on the same chip as the wi-fi, but current versions of rtl8723bs (as of 4/29/2015) have no bluetooth support. Bluetooth does work with an external USB bluetooth adapter, but that’s hardly helpful.
  • Webcams: There are two of them, and neither is recognized by default. I have not made any effort to get them working yet.
  • Sound: these days it’s usually one of the easiest things to get working, but not for me. By renaming the firmware file /lib/firmware/intel/fw_sst_0f28.bin-48kHz_i2s_master to fw_sst_0f28.bin-i2s_master and rebooting, I was able to get ALSAmixer to show the full panoply of sound controls, but all I was able to actually get from the system was a high pitched whine when I unmuted one of the controls tucked far back in the list. I have no further useful information about sound. UPDATE: I was eventually able to get sound out of this thing in Ubuntu 14.04 by messing with those sound controls for a while, but it was weak and single-channel. There might be hope of figuring out some of the bewildering internal settings in Alsamixer and coming up with something that works. I could barely hear the sound in Windows anyway, since the speakers face the wrong direction…
  • Mic input: there does not seem to be microphone input support on the headphone jack (unlike most modern smart phones)… That’s not a Linux issue, FYI; it’s the hardware.
  • Hibernation: another frequent challenge with Linux. Given how many more important things are not working, I’m not holding my breath that this one will. The system boots pretty fast anyway.

All of those things work just fine with Windows 8.1 on this device, which is one of several reasons you’ll certainly want to set up a dual boot system instead of wiping Windows altogether. Not to mention that if you wipe it out (and the recovery partition), you’re throwing away $60.

 

DISTRIBUTIONS

The first thing you’ll need to do is prepare the USB boot stick. I tried three different ones. Here’s the long and the short of my findings, which I would skip if I was reading this instead of writing it:

  • OpenSUSE 13.2 had the most reliable installer, but I wasn’t a fan of SUSE in practice. I have no experience with it, and found the software installation process more complicated than Ubuntu’s. The default setup also takes up more space than Ubuntu does without providing all the necessary tools to compile the Wi-Fi module, requiring some trial-and-error installation of kernel sources and compiler tools from the boot ISO. The microSD card did not work by default and the “tablet” pattern package I installed didn’t seem to do much of anything. Overall I don’t recommend SUSE for this device, at least until someone else can simplify this process. .
  • Mint 17 (Qiana) is my distro of choice on all my other computers, but I was unable to complete an installation with it here. I kept running into squashFS errors towards the end of the installation. Supposedly this common problem has something to do with cruddy USB sticks, but I didn’t have problems with the other ISOs on the same stick, so I think it’s really a bug in Mint’s installation system. Mint is really just Ubuntu with a different window manager anyway. Just go with Ubuntu and switch from Unity to MATE or Cinnamon and you won’t even notice the difference.
  • Ubuntu 14.10: Inititally, I had installation problems with this too (which is what led me to SUSE) but I wound up trying again successfully. The first two times I installed, reboot dropped me into an initramfs shell, and I spent a long time trying to manually bootstrap it into working condition with no clear idea of what I was doing. The only differences I’m aware of regarding the successful attempt: I used EXT4 (I had been trying XFS before), and I activated the Wi-Fi before installing, instead of planning to use it later. This way you wind up with a slightly different kernel version and some packages which may be important. Or maybe it’s just a problem between GRUB and the other file system. Once I got it going, I was fairly pleased with the outcome.

So, in short, my advice is to start with an Ubuntu 14.10 ISO, which you can get here: http://www.ubuntu.com/download/desktop/thank-you?country=US&version=14.10&architecture=amd64

 

PREPARING THE BOOT STICK

I burned the image to my USB stick from RUFUS under Windows 8.1 (from the TW100 itself). You can get Rufus here: http://rufus.akeo.ie/ . Select the USB device and the Ubuntu ISO with a GPT scheme, FAT32, and a 64K cluster size. The other default options are fine. There are more detailed instructions here: http://askubuntu.com/questions/392719/32-bit-uefi-boot-support

When that’s done, before you reboot to the stick, download this file ( https://github.com/jfwells/linux-asus-t100ta/blob/master/boot/bootia32.efi ) and copy it into the EFI\BOOT directory on the USB stick. The short explanation for this step: the Atom-based tablets have a 32-bit UEFI in the BIOS. This has something to do with why they ship with Windows 8.1 32-bit version. I’ll spare the details, which are explained better by other people in other places, but the short version is that your TW100’s UEFI will not recognize the 64-bit boot loader at all, so you need one compiled with 32 bits, which does not come with the 64 bit ISOs. Again with the bit headaches! In theory this will be handled soon by some distribution, since varieties of these tablets are becoming commonplace.

Another thing you may want to put on the USB stick, if you can find a way to make room: the Wi-Fi driver. The catch here is that you need to get it from github, and I’ve never used git under Windows (though you could make it easy with Cygwin). I got the Wi-Fi driver onto a separate USB stick partitioned for ext4, from a different computer, which made things a lot simpler. However you do it (if you do it), here’s the site: https://github.com/hadess/rtl8723as – so if you were going to put that on a separate memory stick on a separate Ubuntu with working networking, you’d wind up doing this in a terminal:

cd ~
sudo apt-get git
git clone https://github.com/hadess/rtl8723as 
cp -r rtl8723as /wherever_your_usb_stick_is_mounted

BOOTING THE BOOT STICK

Hold down F2 at boot time and you can get into the Winbook’s BIOS configuration. You’ll want to arrange the boot order so the USB device ahead of the Windows Boot Manager. Also make sure SecureBoot is disabled if it isn’t already. Then save and exit.

Hopefully the reboot will find your USB stick and then an Ubuntu menu will fire up.

Once you’re in there, open a terminal and copy the rtl8723as files from the USB stick you put them on.

Now you have to compile the source:

cd ~
cp -r /wherever_you_have_placed_those_driver_files .
cd rtl8723as
make
sudo make install
sudo modprobe 8723bs 

At this point, if all is well, Ubuntu will recognize that you now have a wireless card available and you can configure it to connect via the applet in the panel. If you’re really lucky you’ll have a stable connection.

This concludes the portion of this that you need to see Ubuntu working on the Winbook, with networking. You can work normally, but nothing will be saved when you shut down.

You’ll also notice that practically nothing works.

 

INSTALLING UBUNTU

So you managed to get Ubuntu working (hopefully) and even though the device is now severely crippled, you still want to install Ubuntu permanently? Fine, but from this point on I’m going to assume you are a power-user/masochist and not get too immersed in details. The main reason is that you shouldn’t do it. The second reason is that a month has passed since I first got this working, so I’ve forgotten the details anyway.

You can proceed with the installation normally, by clicking on the “Install Ubuntu” icon.. Note that the Wi-Fi driver you just compiled is not going to be installed automatically, so later you will probably want to do that part again. But at least you have networking for now, which seems to be a requirement for a successful installation.

When Ubuntu asks what you want to do, pick “Something else” unless you really want to wipe out Windows 8.1. I am not responsible for any screwups. This is the only potentially irreversible step in this entire guide. You should repartition your drive by shrinking the Windows partition and adding one for Ubuntu and one for linux swap space. The drive you’ll work on will most likely appear as /dev/mmcblk0 (the internal, non-removable SD card).

My partition set-up was as follows:

  • Partition 1: 100M EFI system (leave this as it is)
  • Partition 2: 128M Microsoft reserved (leave this as it is)
  • Partition 3: 14.2 GB for Microsoft (shrunken to make space for Ubuntu and a few GB of free software).
  • Partition 4: 9.9 10.9 GB for Ubuntu as ext4 (created from the space cleared by shrinking Windows 8.1).
  • (1 MB of Free space – for whatever weird reasons partition tables do this kind of thing.)
  • Partition 5: 1 GB linux swap space. I don’t know if swap is necessary anymore except for hibernation, but old habits die hard. UPDATE: I’ve done away with my swap partition as it apparently puts a lot of wear on the internal SD card, which has proven increasingly flaky. 
  • Partition 5 (formerly 6): 4.9 GB Windows recovery environment (left as it is and *where* it is on the microSD drive)

Side note– I don’t know why, but ever since I repartitioned, when I boot into Windows 8.1 I get a brief “Windows is scanning your disk for errors”-type message on the splash screen. It doesn’t add much time so I haven’t made any real attempt to fix it, beyond CHKDSK (or was it SCANDISK?), and that didn’t do anything.

Once you’ve repartitioned, you can begin the installation, which involves clicking “Next” a bunch of times, entering your hostname and time zone, etc etc etc. When it comes time to install grub, install it to /dev/mmcblk0p1 (your EFI partition).

Don’t reboot when you get to the end, because there’s still a couple last steps.

 

GETTING THE BOOTIA32.EFI file in there

Remember copying the bootia32.efi file to your USB stick? Now you want to get it into the EFI directories on your actual hard drive.

sudo bash
mkdir /media/efi
mount /dev/mmcblk0p1 /media/efi

Now you can either copy the file off the USB stick’s EFI directory (which you will need to mount) or just download it again through the browser (see link above) and copy it that way. In the latter case:

cp ~/Downloads/bootia32.efi /media/efi/EFI//Boot

If you reboot now and manage to get to grub, it will probably launch you into its weird, unpleasant shell, at which point you’d need to provide the path to the kernel, initrd image, and boot partition/path.

I had a happy outcome after trying the following steps:

sudo bash
blkid

Find the UUID of the EFI partition (presumably /dev/mmcblk0p1) in the blkid output. Mine was 7049-4894; update the UUID= below for yours:

mkdir /new_ubuntu
mount /dev/mmcblk0p4 /new_ubuntu
sudo chroot /new_ubuntu
echo “UUID=7049-4894 /boot/efi vfat defaults 0 1” >> /etc/fstab
cd /boot
mkdir efi
mount -a
mv grub old_grub_64_bit
ln -s /boot/efi/boot/grub grub

Now you’ve got the boot partition automatically mounting and the /boot/grub directory in Ubuntu symlinked to the one on your EFI partition, which will make your life a bit simpler. When you get kernel updates, update-grub will automatically update your boot menu with the new options.

I also had to fix up /boot/grub/grubenv for some reason. It should look like this:

# GRUB Environment Block

#######################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

Now you can reboot and remove the USB stick. At this point you will probably need to reorganize the boot order again and put Grub’s EFI system into the mix. With a little luck (as I’ve probably left out steps without realizing it) you’ll be able to boot into Ubuntu.

If things still aren’t working, boot into Windows 8.1 and install Refind, which will give you a nice boot selection screen with lots of options. You can also try repeating the pre-installation steps to load Ubuntu off the USB stick, and try using Boot Repair.

 

FIXING THE TOUCHSCREEN (Added 4/29/2015)

sudo apt-get install xinput-calibrator

xinput_calibrator

Copy and paste the output as directed to /usr/share/X11/xorg.conf.d/99-calibration.conf

 

PROBLEMS I AM HAVING WITH THE TW100 (Added 4/29/2015)

– frequent lockups in both Windows and Linux. In Linux I can see dmesg reporting a -110 block device error on the SD device, usually when doing a serious file write such as installing a big .deb file. In fact, it took me about twelve tries just to successfully install it. I can’t seem to fix this no matter what I do– I think this cheap computer uses cheap internal SD cards which wear out quickly. I may try some kernel options and see if I can make this go away. In Linux, the system hangs, usually functional for apps in memory but unable to do anything involving SD reads or writes. I can’t tell if the cause of Windows lockups is the same. Either way, I’m not betting on a long life for my TW100.

– for that matter, my first TW100 (used to write the original version of this article) burnt out and never started again; attempts to charge it were unsuccessful. I was able to get a replacement free, since I was still under warranty at MicroCenter. I do not think that problem had anything to do with Linux. This is just a cheaply manufactured machine.

– It’s not hard to crack open the TW100, but as with most modern electronics, you’d have to be a soldering superhero to make any repairs. I don’t think you can replace the internal SD card with a more durable one, either; would’ve been nice, but no dice.


SOME OTHER STUFF TO TRY AFTERWARDS

  • Write device drivers for all the stuff that isn’t working, and put them on github, and tell me.
  • Put comments below about instructions in this document that I screwed up, or that are too vague, so I can write snarky responses about how to use Google… well, I will try not to do that, but edits are always appreciated.
  • Buy Barbarians: A Handbook for Aspiring Savages. It changed my life!

 

 

Some useful hacks for the Samsung Gravity Smart

December 13th, 2011

Last night I nearly eliminated everything that was pissing me off about my Samsung Gravity Smart, which is a great phone that some boardroom turned into trash by loading it with bloatware and dumb social networking features. Here’s some of the things worth doing if you, like me, have been tempted to toss it into a garbage disposal now and then, but still need a useful phone.

Some aspects that seem mildly annoying when you start using it, and gradually increase until you sort of want to fly over to T-Mobile and start smashing skulls:

1) the aforementioned bloatware, including demo versions of games, an unnecessary map tool, an unnecessary photo gallery tool, and a whole bunch of other crapola I never even ran but which kept popping up notifications at random.  I don’t like being forced to view advertisements on my phone.  FIXABLE.

2) having keys on the keyboard for launching Facebook, a browser, email, etc., instead of cursor keys.  Maybe somebody uses these launch buttons, but I only pressed them by accident.  Having them instead of cursors is just cruel.  FIXABLE.

3) lack of an off-screen notification light.  There is an app called No Led or something to alleviate the pain, but it’s a battery drain and not worth the trouble. NOT FIXABLE, but not worth fixing if you would pretty much have notifications all the time anyway, in which case you just learn to pace yourself and let e-mails and SMSes wait a little instead of responding instantaneously.  (Or you can listen for the chimes like a drooling hound in a psych experiment.)  I am currently looking for apps compatible with this phone which will allow me to use the camera flash LED as a notification device (I’ve found two, but Google Market claims they are incompatible with the Samsung Galaxy Smart, so I can’t even install them).

4) Installing a quality SMS program like Handcent winds up giving you TWO text message indicators.  FIXABLE.

5) Lack of storage space.  Honestly, someone was smoking crack when they designed this phone.  For some reason, it is constantly bitching about low disk space, even if you plug in a 8 GB SD card.  FIXABLE.

The solutions to these complaints, other than the LED light problem, are all below.

 

1) ROOT IT.  I was resistant to rooting my Samsung because I was worried about being able to return it to T-Mobile if it falls apart, which my last two phones did (Motorola CLIQs both, and T-Mobile was kind enough to let me switch since they were out of CLIQs).  There is probably a way to revert your phone back to the original firmware anyway. I got pretty familiar with the process on the CLIQs, but it’s a bit of a pain, so I hope I never need to do that with the Gravity Smart.  Rooting it is a trivial process.  Download the Samsung drivers and the latest version of Super One Click Root.  Install the drivers, then install SOCR.  Plug your phone into your computer via USB, run it, and click Root.  Wait about 30 seconds.  You are now rooted.  That’s right– it’s a simple process, and there’s nothing to fear except voiding your warranty.  Now you can delete the bloatware.  I don’t recommend doing that mindlessly though, as you can make your system unusable (a.k.a. bricked), or at least render it difficult to fix without advanced tricks, or shamefully apologizing to T-Mobile with tears running down your face, feeling like an asshole.  What rooting provides, for the layman, is “Superuser” privileges.  Which you oughta have anyway since you bought the damn thing and own it.  When you’re not a Superuser, it’s like you’re just borrowing your phone.  Once you’re a Superuser you can tell your telco, T-Mobile, to fuck off.  Of course, most people don’t care because they don’t realize they are getting screwed.  You, however, are not content to be a marionette controlled by the telecommunications industry.

Paranoia and misanthropy aside, there’s a fine guide for the rooting process here: http://www.addictivetips.com/mobile/root-t-mobile-samsung-gravity-smart-how-to-guide/

2) BACKUP your stuff from the SD card, and repartition it.   The next few sentences may sound arcane; relax, there’s a link to a more complete guide coming up.  Once you’ve rooted the phone you can install Titanium Backup and backup all your data onto the SD card, and copy the SD card contents elsewhere.  Then repartition your SD card into a FAT32 primary partition followed by a smaller ext2 partition (that’s a Linux file system, if you’re curious).  Later you’ll set up LINK2SD which tells apps to use the second partition as additional storage space instead of making you run out of space all the time.  It takes a LOT of SMS messages to fill 512 MB.  I won’t explain this in any more detail this since it’s all very well covered here: http://forum.xda-developers.com/showthread.php?t=1320187&page=4 .  I did everything in the guide, except I used a different firmware.  (I used AMS, which I gather is a fork off the one actually listed.  I used AMS 0.3 since someone in the forum said AMS 0.4 had problems, but I had identical minor problems with AMS 0.3 so you may as well just use AMS 0.4.)

3) INSTALL AMS 0.3 or 0.4 or another custom ROM.  AMS can be downloaded from the links in this forum (via MegaUpload or whatever).  The instructions are the same except you want to rename AMS04.zip to update.zip and put it in the root of your SD card.  DO NOT UNZIP THE FILE.  Installing this pre-made firmware saves a lot of hassle as someone else took the time to remove the bloatware and test it, more or less.  Firmware installation is quick and painless, but be sure you’ve got everything backed up first.  Note one complication here: I get a couple of error messages when I startup the phone (“com.android.phone has stopped unexpectedly”– it sounds much worse than it actually is).  Opera Mini (replacing the built-in browser) did not work initially either, but I re-installed it and then it worked (and later I upgraded to Opera Mobile). I found re-installing some apps to be handy.  The important thing is that the non-software features of the phone all work fine (calls, messaging, sound, etc) and the error messages go away when you click OK and don’t come back, so it’s only something you need to deal with once in a while, when you reboot the phone.  UPDATE: I later installed AMS 0.4 and the results were identical.

4) LINK2SD
is now installed on there, if you indeed installed AMS.  You want to launch it and configure it for using the surplus space.  Same story; just use the instructions at that other link.

5) INSTALL HANDCENT SMS
and uninstall the built-in Messaging application (you can use Titanium for this).  I was worried that uninstalling the Messaging app would break Handcent as well, but my worries were for naught.  Now I only get one notification; no more double-beeps, and two notifications icons on the notification bar, etc.

6) EDIT THE KEYBOARD LAYOUT FILE
.  To be honest, this is the only step that I couldn’t find explained in real detail elsewhere.  Launch the File Expert app.  You’ll find the keyboard layout under “Phone Internal Storage” in /system/usr/keylayout/gt2_keypad0.kl .  This is a pretty human readable file.  File Expert lets you mount the drive “Read Write” which will enable you to change the file using the text editor.  (I actually wound up using the terminal and the vi editor, but I’m not about to write instructions on using vi.)  Find the lines for the following keys (note, they’re not actually bunched together like this):

key 215 ENVELOPE WAKE_DROPPED
key 217 (whatever it used to be)
key 150 (whatever)
key 218 (whatever)

change them to say:

key 215 DPAD_LEFT
key 217 DPAD_DOWN
key 150 DPAD_UP
key 218 DPAD_RIGHT

Save it.  You can leave out the WAKE_DROPPED parts. I assume that means that pressing the key will not light up the screen, and who cares.  When you reboot the phone, you’ll have cursor keys: praise the lord!  Your keyboard just became about 100x more useful.  Based on the physical layout, it looks like the keyboard was designed this way originally and some asshole with a clipboard and a clip-on-tie sabotaged it (odds are he worked for T-Mobile, not Samsung).  If you can’t launch Facebook, the browser, messaging, or whatever the other key did, without popping out the keyboard and pressing the big green buttons, you won’t get anywhere near this step… most likely you aren’t searching for “useful hacks for the Samsung Gravity Smart” to begin with.

By the way, you’ll probably have to edit this file again after any future firmware upgrades, so you might want to make a copy to your SD card or someplace else, so you can just copy-and-paste it instead.

7) YOU MAY NEED (OR WANT) TO CONFIGURE SOME OTHER SETTINGS.  You’ll find that you have a few more of them.  Settings aside, the above steps solved 95% of the issues I’ve had with this phone, the notification thing being a write-off.  It’s also faster (I can’t tell if the No Frills CPU step from the original instructions had any impact, it seemed to be faster right after I flashed AMS).  I do not yet know if there was an impact on the battery life, but I suspect it will be a negligible loss or a slight improvement.  The best way to prolong the battery, in my experience, is to turn the brightness down, disable WiFi, and to turn off the data refresh (the thing that loads your gmail messages and such).  Another thing I restored from T-Mobile is Lookout, which provides some [presumably false] sense of malware security when it isn’t shilling for the premium version.  Probably better than nothing, especially once you start downloading Android apps from Zurblecchistan off MegaUpload…

8) Oh, one other thing you should know if you want to unlock your phone.  You can always request the unlock code from T-Mobile.  Go on live chat from their website and tell them you’re going overseas (Brazil is where I went) and they’ll e-mail you the code the next day.  I wish I’d done that instead of paying $30 for the identical code from cell unlockers dot net.   And supposedly you can cancel your plan by telling them you’re moving to an area with no T-Mobile coverage.  (Note, I haven’t actually tried that last part, but best of luck.)

 

New problems:

UPDATED: loss of 3G.  I didn’t notice this until doing everything else in this article.  Then I started freaking out.  It turns out you just need to add in your APN settings (Settings -> Wireless Networks -> Mobile Networks -> Access Point Names) and you’ll be good for 3G data and MMS.  I used the second one that some angel posted here.

– The phone app has crashed warning, see above.  Very minor unless you’re rebooting your phone often.  UPDATE: I was able to get rid of this error by using Titanium Backup to remove the system app “CSC 1.0”.  No idea what it does (although CSC has something to do with country-specific codes).  SECOND UPDATE: on second thought, don’t do that.  THIRD UPDATE: final verdict: it seems okay to remove but I wouldn’t do it unless you have witnessed the com.android.phone errors.  I also think this could be resolved by reinstalling “Web 2.2.2” but I was unable to get Titanium to do that successfully (it kept hanging during the reinstall).

– I also get warning messages from WiFi Tether that seem to be equally meaningless, as WiFi works fine.  UPDATE: I uninstalled Wifi Tether altogether using Titanium, and replaced it with OpenGarden Wifi Tether, which appears to work.  Not sure if this will make any difference, but I doubt it.  So, problem solved.

– AMS includes “GO Launcher”, which seems like a better launch platform than the default that ships with the phone.  But for some reason I found it only worked after being run manually; after a reboot, it was back to the old launcher.  Not a serious issue either, just mildly disconcerting.  I’ve done no additional homework on this since I really don’t care.

– You may need to reconfigure your phone to use the correct ringtones.  I had to, but I think that’s because I used to have an application called “Tone Picker” so I could use MP3s instead of the default Android selection.  I didn’t reinstall Tone Picker, so after the above steps, wherever I’d originally used Tone Picker the ringtones got changed.  This problem may not happen to anyone but me.

– I think GO Launcher might have a few bugs, but it was 4 am when I saw them and now I forget what they were.

Good luck!

 

microdia USB 0c45:627b in Ubuntu 11.04 Natty Narwhal

April 30th, 2011

Ok, this is not a tech blog, but I am a techie, and I discovered something today that hopefully helps someone someplace.

I just upgraded to the latest Ubuntu 11.04 on an old laptop with a built-in webcam.  The official kernel driver for the webcam sucks, but you can get a good one here:

git clone http://repo.or.cz/r/microdia.git

You’ll have to make this yourself.  There’s a link to to do that below.  First note, however, that the files reference an include file that no longer ships with Ubuntu.  That is videodef.h — an include file for V4L version 1, which is no longer supported.

So , you’ll need to edit out a line in sn9c20x-queue.c.

Change:

#include <linux/videodev.h>

to

/* #include <linux/videodev.h> */

(i.e. comment it out).

Then follow the rest of these instructions:  http://ubuntuforums.org/showpost.php?p=7456689&postcount=4

You’ll also need to remove the standard-issue sn9c20x driver (gspca_sn9c20x) from /lib/modules/(linux kernel version)/kernel/drivers/media/video/gspca:

sudo rmmod gspca_sn9c20x

I just moved it to my homedir so it wouldn’t be probed:

mv /lib/modules/(whatever)/kernel/drivers/media/video/gspca_sn9c20x.ko  ~

And put the sn9c20x.ko driver in:

cp /(wherever you ran make)/sn9c20x.ko /lib/modules/(whatever)/kernel/drivers/media/video

depmod -ae

Voila.  Webcam works again.  Whatever videodev.h provides has been replaced elsewhere.  For Skype you’ll still want to use compatibility libraries, running it this way:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype

Hope that helps someone!

#!/bin/bash
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype

Barbarian Movie Review: Ironmaster (1983) by Umberto Lenzi

March 4th, 2011

The Ironmaster review has been moved to here: http://www.skullbasher.com/2011/08/30/barbarian-movie-review-ironmaster-1983/

 

Barbarian Movie Review: Hundra (1983) by Matt Cimber

February 13th, 2011

My review of Hundra (1983), directed by Matt Cimber and starring Laurene Landon, has been moved here: Barbarian Movie Review: Hundra (1983)

I’m not quite dead

November 29th, 2010

So what if I haven’t posted anything here in eight months? I’ve been a little too busy. I have a book coming out. More to come…

More exciting news

May 24th, 2010

– I haven’t been updating this blog much, but nobody is going to read it anyway, so who cares?  I have been writing, however, in-between week-long bouts of having to go to work.

– One Ben Chadwick story will be published in an upcoming issue of the print journal “Fat & Happy”, edited by Monica Russo.

– I didn’t make the top 10 at Storysouth, in the end, but hey, not everything is to everyone’s tastes.  Literature contests are arbitrary, so I have no bitterness.

Diary of a Frustrated Writer

April 14th, 2010

Just thought I’d post a link to an enjoyable semi-fictional vignette about a frustrated writer.  These are the problems all writers must face.  Writing is sort of a religious experience.  You are visited by some celestial creative muse, much like a prophet.  Then you apply this creativity into your next masterpiece, drop it in the mail, and pray.  Then you hear no response.  You start to question your sanity– and rightly so. I expect a pile of acceptance notices to arrive as I lay in my deathbed, the postman bounding up the staircase to hand-deliver the mail as the electrocardiogram flatline tolls.  The postman declares how ironic this is, and in my dying breath, I grunt, “It isn’t ironic, it’s just annoying…”

Ich bin ein Notable

April 2nd, 2010

I made the first cut at StorySouth and the judges have declared– more than one of them, apparently– that The Power of Fiction is a Notable Story of 2009!  The Million Writers Notable Stories of 2009 are listed here. Ben Chadwick likes this.

This is different from the previous post, in which I was merely nominated.  I think this is worthy of a new blog post, despite my concerns about running out of precious disk space.

I am a StorySouth Million Writers 2010 Nominee!

February 22nd, 2010

Exciting news from Rough Copy— my story “The Power of Fiction” has been nominated for the 2010 StorySouth Million Writers Award!  The award goes to stories which first appeared online.  Wish me luck!  (Is it too late to make some edits?)