Going in addition to my previous blog post of installing and running Android 4.0 (Ice cream sandwich) on your x86 based system. I encountered an interesting infinite boot loader loop problem evident only if you install your Linux distribution (and GRUB) on top of a Windows 8 system using the new Windows 8 radical boot loader. This problem could be a nagging issue for users due to the annoyances caused by the Windows8 UEFI-ready new double-boot bootmenu, and could be more prevalent when Windows 8 become mainstream, especially if you are setup to tri-boot Windows 8, Windows 7 and Linux on the same machine.
The cool but rather annoying thing about Windows 8 the Microsoft new bootmenu which appears to act like a new boot loader interface, but is actually in-fact a mini operating system itself sitting in the MBR (root) partition which functions like a gatekeeper to boot into Windows 8, it even has it’s own optimized video and touch-friendly mouse drivers pre-loaded. I previously had Windows 8 and 7 installed on my machine. If multiple instances of Windows are detected on your partitions, it will invoke the bootmenu and list all the available compatible Windows OS and reboots the PC again after your selection.
This has major issues with pre-existent bootloaders, especially if you are looking to boot into an Linux environment or similar ext3 partition using GRUB for instance. The problem here is that you will get infinite restart loops. GRUB will catch the reboot again, terminating the Windows boot cycle, bringing you back to square one into the irritating Windows 8 bootmenu. It simply just makes you wonder what Microsoft is intending to get out of this, by implementing this together with their notorious Unified Extensible Firmware Interface (UEFI). Though bootloader signing and certification for UEFI is not evident here, we could see this being a major problem given the controversy Microsoft new UEFI BIOS will have against Linux platforms (or other platforms not signed by the manufacturers to work with the UEFI BIOS), especially in securing the BIOS and making the boot procedure largely closed-source.
Anyway back, fixing the bootloader loop is relatively simple, my weapon of choice means getting rid of the Windows 8 bootloader completely and reinstalling the Windows 7 bootloader. I choose the Windows 7 bootloader over GRUB on this laptop as I primarily run Windows on this machine anyway. This can be done by invoking the power of the new Window 8 “mini boot loader OS” which surprisingly has not only a in-built recovery tool system but a full working command prompt which you can repair your boot records with.
Start off by first selecting Windows 7 as your primary operating system. Then go into Windows 8 command prompt (under advanced) and type the following code to fix your MBR using boot recovery.
Or to make it simple, simply just completely rebuild the BCD using /rebuildBCD as shown in the code field below. If you feel that you’ve corrupted any of the MBR, just pop in your Windows 8 or 7 installation DVD or bootable flash drive, boot into the “repair my computer” option and access the command prompt from there.
This will be good enough to get you out of the infinite boot loop and into your production Windows environment again. Thereafter you can use a MBR modifier such as EasyBCD (freeware) or bcdedit (if you are a purist) on the command prompt, to clean up your boot records and add the additional Linux/Android ext3 partition as a additional Linux boot record.
Here you can choose to invoke your own instance of GRUB or use EasyBCD with it’s own in-built GRUB to boot into Linux/Android. Upon restart, you will be greeted with the clean default Windows 7 boot loader with the 3 simple selections in place. Pretty, simple and no ugly Windows 8 double-restarting boot loader.
Of course you can argue that GRUB does the exact same thing as well by adding Windows 7 and 8 to menu.lst, but it’s just a matter of choosing your sides I guess. Remember the old intel vs AMD flamewars? Yea you should get it.
The idea of Windows 8 running on ARM based tablets is unreal, but the idea of running Android on x86 based PCs is even cooler. Knowing the crazed Android platform developer and supporter I am, what’s the least I can do than to get it running on my x86-based tablet PC?
You can start off by grabbing the Android x86 sourcecode and building the image yourself. You have a choice of Honeycomb or Ice cream sandwich (ICS) flavors. This is courtesy of the guys on the Android x86 project who made everyone’s job easier by porting much of the needed original source code for runtime in the unconventional PC-based architecture. So do check out the Android x86 project, go ahead and give the guys a visit and drop them a tip or two if you appreciate the work the team had been putting in developing Android for PC. If you are new to this, the main development site has specific .iso files for Asus netbooks (Eee PCs), Viewsonic viewpads and few MSI netbooks which is convenient if you have those devices. Otherwise, you are quite out of luck if you are intending to get ICS running properly on your own system, let be on any system like my ultra-old-and-dated 8 year old Intel 915GM-based Fujitsu tablet which nobody supports at all.
So that pretty much kept me busy over the last few days, working on the x86 instance of Android 4.0 for my laptop and streamlining various old drivers and re-building the installer with many trail and errors. It gets really rewarding eventually when you finally manage to get the build to work, bringing a whole new life to my stoneage tablet PC.
In a matter of no time, I was zipping through the app tray and testing out various functionalities of ICS. I have the default market installed which was promptly updated to Google Play through my intel a/b/g card via my compatible wireless drivers. I’ve got touch support using my wacom-penabled touchscreen and the hardware keyboard working. Strangely, the laptop trackpad was automatically recognized as an optical trackpad (similarly found on the Desire range of HTC phones), which allows swipe based navigations and scrolling, but no hardware mouse pointer like those you get by plugging in a human interface device via USB Host. Hardware limitations on my digitizer and synaptics trackpad prevents any form of multi-touch interactions, so I am pretty much out of luck for pinch-to-zoom on the browser/maps or any form of on-screen gamepad interactions where 2 or more multi-touch points are required.
My clunky tablet PC, though in the heavy weight league of 2kg is not exactly what you will find in a standard Android tablet these days and is not exactly what I call “one-handed” portable without breaking your wrists in the process. But it’s a form factor I never knew could be realized at all, let be on a nearly decade old tablet PC. Is it how the eventual tablet PC is supposed to be idealized as? Maybe.
Come to think about it, my tablet PC may be one of the few ICS machines on the planet which doesn’t go with Google specs for Android, especially with the lack of an on-board camera- the camera app crashes on runtime due to the lack of a webcam. The absence of an accelerometer means that automatic screen rotation is non-existent and have to be toggled via a manual screen rotation app on the notification bar. Currently, the mounting of any SD cards via the Tablet’s SD reader or any external USB mass storage devices have to be done manually through terminal (yea for root!). I was not able to get the integrated DVD-burner drive working too.
Games such as Pocket God runs well on the system only that the market seems to recognize my device as a tablet, but I believe is not exactly sure of my device type or fingerprint. So it seems to be blocking several mainstream games I’ve bought and free ones such as Angry Birds or Fruit Ninja. This could be rectified by updating my product.device and build.fingerprint to a known similar tablet device type or simply just physically transferring the game .apk files over.
I was curious to find out the Quadrant scores on my unconventional system, but I wasn’t able to get Quadrant standard to run a full benchmark as presumably with the program freaking out and crashing after encountering my laptop’s GMA900 “GPU” (lawl) on the graphic testing portion of the benchmarking process.
I still yet have to test for extended battery life running ICS, but I reckon the increase in battery life will not be significant as processor don’t seem to throttle well between cycles, as felt with the system fan always abruptly speeding up and down presumably at 100% commit. I was not able to tweak the on-screen brightness too. Furthermore, my DVD drive goes into a random read-write cycle each time the screen goes off standby mode, it’s like as if you are booting the partition again each time to wake it, but then that’s how Android goes into standby anyway, so doing it on PC kinda counter-productive. Still, everything is still largely in the testing phase, so bugs are always evident, it’s always a work in progress!
In all, running ICS on my tablet will keep me busy with the ICS experience without the need of any emulation or SDKs for now, until I get a stable ICS build into my handphone at least. A poor student developer like me will have to suffice using an 8 year old 2kg laptop as an Android tablet until I can afford a proper Android tablet myself. Till then, happy Android x86-ing!
*noms on a Jellybean filled Ice cream Sandwich*
When the Metro interface was first announced for Windows 8, I had the humorous impression of it being Windows Phone for PC. We’ve seen the Metro interface already being implemented on the Xbox and the Windows Phone platform, knowing Microsoft’s enthusiasm on this rather unique interface, it will be only a matter of time before it finds it’s way into their flagship product.
Metro for Windows acts as in intermediary gateway for users to launch apps. In Windows, it serves as the new start menu between the desktop and “Apps”, positioning itself as a launching UI, allowing an out-of-the-box style of navigation via window boxes. Gone is the familiar start button on the task bar, invoking “Start” now means hovering your mouse on various “hotspots” on your screen or using the Windows button (which you will intuitively find yourself using more often now). With Metro comes with it’s own set of special shortcut keys allowing you to transition to various App listing via an Aero-like interface of sidebars, charms (window-C) and the start menu (windows button) itself.
Windows 8 still has the speed and capabilities to run on older machines. I had Windows 8 dual booting on a 7-year old single core Centrino-based Tablet PC, which was previously running Windows 7 Ultimate. Windows 8 is still largely based off Windows 7, so they should behave similarly performance-wise. Going with Metro has alway been thought to doubled edged decision for Microsoft, one which will usually make or break an OS, the change here is in-fact more drastic than the one we saw with Windows XP and the transition then to the more stable and “secure” NT file system.
The radical new interface runs like a charm. It’s both fresh, zippy and pleasant to the eye, and will definitely catch the attention of anyone. Microsoft has a strange obsession with buzzwords on their new OS, particularly the over used of the word “Apps” and “Charms” which I find hard to stick as names not representative in any of the elements on the UI. Microsoft claims that Metro is as intuitive to use on a tablet as well as trackpad based laptops, but I beg to differ even with tablet capabilities on my machine. I found the touch and swipe movements not as intuitive as that on Android or even iOS, the OS still retains much of the fixed, segmented tablet input structure we see in the previous version of windows, with weird scrollbars popping out of nowhere and Windows swipe gestures conflicting with the current touch interfaces. But I can attribute that now for the lack of refinement in the alpha release, as well as the lack of touch support drivers for my machine, which will be rectified on future releases.
Moreover, the speeds are excellent. Performance of Windows 8 will be best supplemented by a solid state harddisk (SSD), which has not only allowed me to breathe new life into this old system but prove that Windows 8 isn’t as slow as it was perceived to be. Movement swipes and transitions are fast and smooth and I hardly ever need to invoke high CPU usage in Metro too. Also, having an SSD also allows you to capitalize the extremely rapid boot and shutdown times the new OS is known for. I managed to get a 5s OS boot up after POST and 10 seconds shutdown, with the closing of running Apps on the shutdown phase the only reason for slowdowns. Quantifiable average boot times are roughly 3 times faster than Windows 7 on a similar setup on this early alpha release.
Metro has found a very nice spot between it’s bigger Android and iOS platform brothers, without invoking any design cues of any rivaling operating systems (which we can only see ending under a barrage of infringement claims in court). But I personally find the new interface frustrating to use, especially for power users who know their stuff around Windows well. Metro is simply eye candy which pokes into all your doings, I at times find it more of the hassle having to hover-wait over hotspots to invoke a start menu, or reaching out to the keyboard for the Windows button to get an App list up- tasks previously which can be done with a single click from a mouse in one hand. Also, what’s peculiar is that Windows 8 is trying be both a tablet and full-fledged operating systems in a single package, with many features we won’t need or use on either side. However, it is still good to know that deep down inside of Windows 8 lies pretty much a nearly identical version of Windows 7, if Metro is not to your liking, you can in-fact completely customize the OS to look just like the predecessor, but then there comes the question of even the need to upgrade from Windows 7.
There are still several evident quirks and nagging bugs on the Metro UI at this point of release, as well as the return of the glaring driver issues which we saw with Windows 7. For me, driver issues, especially for my old hardware usually means lots of wasted time writing and re-writing compatible drivers with an occasional forced BSOD. But these problems will be rectified in the next release as well as a more larger and complete driver library in the RTM. Metro is still an on-going development so changes are still planned in the pipeline until at least the beta stage.
But don’t get me wrong, Metro is an ingenious piece of kit. Windows 8 had received a mixed bag of contrasting opinions so far, but what is really most promising is the move from x64 and x86-based platforms to ARM or even Ti-opmap based platforms, where the true ability of Windows 8 can be realized by bringing desktop computing to tablets. The tablet PC of yesterday was clunky, heavy and simply just functions as a PC strapped onto a heavy photo frame. It does not have the instant-on capabilities and suave of today’s modern tablets.
Windows 8 could be Microsoft’s chance at redeeming their failed vision of the tablet PC, despite arguably, Microsoft could had taken the tablet PC further if they were to expand more on the now-defunct Windows Mobile for slate tablets 10 years ago- way before iOS was launched. Who would have thought of that? Maybe the consumer market just wasn’t ready for a tablet device then. Then again, who would even conceive the notion of Nokia and Microsoft teaming up to make phones a decade ago? It was something too-far fetched then.
So will we be seeing Windows 8 on your ARM-based Android phones or even iPhones in the future? That may not be too far fetched now.