Wednesday, September 24, 2008

Windows Vista, Ubuntu Linux, and Media Direct on DELL XPS M1330

My laptop, DELL XPS M1330, was broken two days ago! The machine refused to boot, even the bios screen was not coming up. Thanks to the quick and decent services from Dell, they quickly replace my laptop motherboard the next business day and my laptop is back to work. I think this is the good side of Dell as many suggest, their services. But I wonder why my laptop was broken, although I just purchased it less than a month ago.

Anyways, I just found out that my media direct (small "home" button) stop working. It just goes directly to the same GFXGrub boot screen that I installed for my Ubuntu + Windows dual boot. At first, I thought that this is the doing of replaced motherboard, some internal nvram or something might be changed. So I follow many guides spread in the internet to use "rmbr" command supplied with MediaDirect CD to fix the problem.

The rmbr tool is actually a tool to instruct the machine to boot from a partition when power button is pressed, and boot from another partition when mediadirect button is pressed. The command is like
rmbr DELL 2 4
Where "DELL" is my manufacturer model, 2 is the number of partition for power button, and 4 is number of partition for mediadirect button. I believe what it really does is, modify MBR to boot from partition #2, and put "something" in some place to boot from #4 when mediadirect is pressed. (I think the "something" is actually goes into MBR as well after some experiments below, and also according to many web sites in the internet.)

I expermented a bit with rmbr. It really crashed the whole partition table if the number of partition exceed 4 (aka. use it on non-primary partition). I had to use testdisk to recover my partition. Somehow testdisk recovered the wrong order of my partition, which was because the odd structure of my partition due to MediaDirect partition. But testdisk can also change the type of any partition from logical to primary as well. So now my last partition is MediaDirect although the numbering is 4 (I got 7 partitions).

Because of the lost of partitions, I have to modify my Grub menu.lst, fix Windows using restore DVD supplied with my Notebook (using "Repair" functionality, a small link on the bottom of the screen that show "Install NOW"), then manually fix boot.ini in MediaDirect partition (it was actually FAT32, with partition type set to 0xc to hide it).

After a bit of experments, I found that the culprit is actually GFXGrub. I managed to make everything back to works as it should without grub. However, once GFXGrub was installed, media direct will boot to Grub instead of MediaDirect. So I just add a new menu option to my Grub to boot to MediaDirect. It works now, although not neatly.

I believe that once my laptop can boot to Grub from power button, and boot to MediaDirect directly using mediadirect button. Don't sure if that happened when I use normal Grub, or after I replace it with GFXGrub. Anyways my everydays works are in Vista|Ubuntu, not MediaDirect, so the priority goes to that.

Sunday, September 07, 2008

Sharing Thunderbird between Vista & Ubuntu

ปัญหาอย่างหนึ่งที่ตะก่อนผมเจอระหว่างการใช้ Windows กับ Linux สลับๆกันก็คือเรื่อง Mail คือเพราะใช้ Thunderbird บน Windows มาตลอด เวลาจะส่งเมล์ต้องกลับไปส่งใน Windows ตลอดเลย จำได้ว่าตอนนั้นพยายามลองใช้วิธี share profile ข้าม OS กันแต่ปรากฎว่าไม่ค่อยจะเวิร์ค จำไม่ได้ว่าเพราะอะไร แต่คงเป็นเพราะเวอร์ชันมันต่างกันมาก (บนวินโดวส์เวอร์ชันล่าสุด บน Linux ใช้ของที่มีอยู๋ตอนนั้นไม่ได้เอามาลงเอง) แต่นั่นมันก็นานแล้วตั้งแต่สมัย Fedora Core 2 ได้ ตอนนี้ HDD ที่พอแล้วหันกลับมาลอง เทคนิคเดิมระหว่าง Vista กับ Ubuntu 8.0.4.1 ปรากฎว่าเวิร์คดี แถมใช้ Profile ที่อยู่บน NTFS ซะด้วย

วิธีแก้ง่ายๆก็ใช้วิธีเรียก
thunderbird -profilemanager
แล้วก็ลบ profile เก่า เลือกอันใหม่ แล้วบอก directory เก็บ Profile แค่นี้ก็เรียบร้อย แถม add-on ก็มาหมดด้วย หรือจะใช้วิธีไปแก้ไฟล์ profiles.ini ก็ได้ อย่าลืมเปลี่ยน IsRelative เป็น 0

จริงๆแล้ววิธีนี้ควรจะใช้ได้กับ Firefox ด้วย แต่ลองแล้วปรากฎว่า
  1. FoxyProxy ไม่ค่อยเวิร์ค เพราะเก็บ path ที่ชี้ไปที่ database แบบ absolute เลย เป็น /D:/Doc/xxx อะไรยังงี้
  2. อันนี้น่ากลัวกว่า คือมันมี add-on ของ Ubuntu โผล่เข้าไปผสมด้วย (Ubuntu Firefox add-ons)
ผมเลยตัดสินใจไม่ใช้ firefox profiles ร่วมกันละกัน ไม่เป็นไรเท่าไหร่แค่ browsing history ปกติก็ไม่ได้เก็บ bookmark ไว้ในเครื่องอยู่แล้ว

Thursday, September 04, 2008

DELL XPS M1330

พึ่งได้โน้ตบุ้คใหม่มากำลังเห่อ Dell XPS M1330 ซื้อจากคนในเว็บบอร์ด Overclockzone.net ครับ ราคาได้พิเศษพอสมควร แถมด้วยประกันสามปีด้วย

เมื่อวานนั่งพยายามทำให้มันลงได้ทั้ง Vista + Hardy Heron + Media Direct พร้อมๆกัน Media Direct นี่เป็น OS ตัวเล็กๆของ Dell (จริงๆคือ WindowsXP) ที่ทำหน้าที่ทำให้โน้ตบุ้คกลายเป็นเครื่องเล่น DVD ได้โดยไม่ต้องเข้าวินโดวส์ ไหนๆก็มีฟีเจอร์นี้แล้วก็ขอใช้บริการมันสักหน่อย ปัญหาคือเจ้า Media Direct นี้มันฟิก คือต้องลงเป็น partition สุดท้ายของ HDD

วิธีง่ายๆที่ผมใช้ก็คืออาศัย CD ของตัว Media Direct มาช่วย Reinstall โดยบอกว่าจะมี 2 partition นอกจาก media direct เสร็จแล้วค่อยไปลบ partition ที่สอง แล้วแตกออกเป็น Linux กับ Swap เอาอีกที ก็เวิร์คดีครับ

ถัดมาก็คือ GFX Grub บน Ubuntu แบบว่าไม่ชอบหน้า Grub ดำๆอ่ะ (ใช้ fedora มาก่อน) เลยหา gfxboot มาลง
- How to : Install GFX Grub In Ubuntu. « Tux Enclave.
ก็เวิร์คดีนะ ตอนนี้ขอลง Driver ต่างๆบน Windows ก่อนเอาให้ใช้งานได้เหมือนเดิมก่อน รอก่อนนะ mbpurple

Monday, September 01, 2008

autoconf + Mingw is not working on Windows

Today I try to merge Makefile and Makefile.mingw on #mbpurple project. At first I thought it should be easy, since I had some experience with automake + autoconf + libtool. Somehow it turn out unsuccess because of few things
  1. Pidgin use Mingw. Mingw has a separate system tree from Cygwin. It doesn't understand /home/username, which is only available through Cygwin shell. So all include header files which use absolute path failed. Relative path is a must.
  2. From #1, many internal command of automake and libtool assume absolute path, so the path generated from these tools are unusable by makefile itself. For example, dependencies generated in .Plo contains c:\Cygwin\blah\blah, Cygwin Makefile treat this as "multiple target presence", then failed.
  3. The speed of execution on Windows is slow. automake will invoke config.sub and missing when something's changed. Sometimes perl just crash. This has almost no effect on Linux since execution of libtoolize && aclocal && autoheader && automake && autoconf is quick enough, but not the case for Windows.
So I decided to revert back to just plain Makefile and have a variable to detect for Cygwin. Maybe this is another reason that Pidgin on windows is built using Makefile only.