在放着4个版本的MeeGo优盘上再加上一个android-x86-2.2-generic.iso。方法跟MeeGo的一样的操作过程,同时对启动参数也做了一些小修改。结果如下:
 
android-x86-2.2-generic.iso解压到/android目录内,然后把/android/isolinux/目录下的isolinux.cfg做点修改后命名为/boot/android.cfg。同时把/android/isolinux/android-x86.png拷贝成/boot/android-x86.png。U盘目录树如下:
卷 MULTIBOOT 的文件夹 PATH 列表
卷序列号为 00000002 FE48:50E4
H:\
│    splash.xpm.gz
│    syslinux.cfg
│    mkisofs.sh
│    menu.lst
│    
├─boot
│    │    grub.exe
│    │    vesamenu.c32
│    │    splash.jpg
│    │    android-x86.png
│    │    android.cfg
│    │    
│    ├─hst
│    │            initrd.img
│    │            initrd0.img
│    │            vmlinuz0
│    │            
│    ├─ivi
│    │            initrd.img
│    │            initrd0.img
│    │            vmlinuz0
│    │            
│    ├─nb2
│    │            initrd.img
│    │            initrd0.img
│    │            vmlinuz0
│    │            
│    └─nbk
│                    initrd.img
│                    initrd0.img
│                    vmlinuz0
│                    
├─cdl
│    │    bzImage
│    │    initrd
│    │    
│    ├─boot
│    │            memdisk.gz
│    │            memtest.bin.gz
│    │            menu.lst
│    │            splash.xpm.gz
│    │            stage2_eltorito
│    │            
│    ├─doc
│    │            AUTHORS
│    │            CHANGELOG
│    │            COPYING
│    │            README
│    │            RELNOTES
│    │            
│    ├─extra
│    │            README
│    │             base-cdl.md
│    │            basex-cdl.md
│    │            
│    ├─lang
│    │    │    README
│    │    │    
│    │    └─zh
│    │                    zh-cdl.md
│    │                    
│    ├─local
│    │            README
│    │            example-cdl.tgz
│    │            
│    └─settings
│            │    README
│            │    hardware-e6d624dff569ffc69ee08d093ded3f89-cdl.tgz
│            │    
│            └─0
│                            user-cdl.md
│                            
├─sdk
│    │    README.deps
│    │    
│    ├─packages
│    │    │    meego-sdk.repo
│    │    │    community.repo
│    │    │    url.ffmpeg
│    │    │    url.mplayer
│    │    │    
│    │    ├─utils
│    │    │            wget-1.12-8.1.i586.rpm
│    │    │            yum-3.2.27-13.2.noarch.rpm
│    │    │            yum-metadata-parser-1.1.4-9.14.i586.rpm
│    │    │            gpgme-1.2.0-4.12.i586.rpm
│    │    │            pygpgme-0.1-13.12.i586.rpm
│    │    │            python-iniparse-0.3.1-2.7.noarch.rpm
│    │    │            rsync-3.0.7-2.11.i586.rpm
│    │    │            yum-utils-1.1.27-1.2.noarch.rpm
│    │    │            repomd.xml.key
│    │    │            
│    │    ├─sdk
│    │    │            meego-sdk-armv7l-1-2.1.noarch.rpm
│    │    │            arm-2009q1-203-2.1.i586.rpm
│    │    │            madde-0.7.57-3.1.i586.rpm
│    │    │            libdgles2-1.3.0+git18+6f42a5f-1.1.i586.rpm
│    │    │            meego-qemu-ia32-3-1.1.i586.rpm
│    │    │            meego-sdk-1-1.1.noarch.rpm
│    │    │            meego-sdk-libqtdeclarative4-4.7.0-3.1.i586.rpm
│    │    │            meego-sdk-i586-toolchain-1.1-3.1.i586.rpm
│    │    │            meego-sdk-ia32-2-2.1.noarch.rpm
│    │    │            meego-sdk-libqtcore4-4.7.0-3.1.i586.rpm
│    │    │            meego-sdk-libqtsql4-sqlite-4.7.0-3.1.i586.rpm
│    │    │            meego-sdk-libqtdesigner4-4.7.0-3.1.i586.rpm
│    │    │            meego-sdk-libqtgui4-4.7.0-3.1.i586.rpm
│    │    │            meego-sdk-libqthelp4-4.7.0-3.1.i586.rpm
│    │    │            meego-sdk-libqtnetwork4-4.7.0-3.1.i586.rpm
│    │    │            meego-sdk-libqtscript4-4.7.0-3.1.i586.rpm
│    │    │            meego-sdk-libqtsql4-4.7.0-3.1.i586.rpm
│    │    │            meego-sdk-libqtxml4-4.7.0-3.1.i586.rpm
│    │    │            meego-sdk-qt-creator-2.0.1-8.2.i586.rpm
│    │    │            meego-sdk-qt-qmake-4.7.0-3.1.i586.rpm
│    │    │            meego-sdk-qt-qmlviewer-4.7.0-3.1.i586.rpm
│    │    │            mpc-0.8.1-3.1.i586.rpm
│    │    │            mpfr-2.4.1-4.11.i586.rpm
│    │    │            qemu-arm-0.12.50+git21+5820b99-1.1.i586.rpm
│    │    │            qemu-gl-0.12.4+git5+627446a-1.1.i586.rpm
│    │    │            qt-tools-4.7.0-2.2.i586.rpm
│    │    │            utfs-server-1.959-3.1.i586.rpm
│    │    │            
│    │    └─mplayer
│    │                    a52dec-0.7.4-16.i586.rpm
│    │                    aalib-libs-1.4.0-0.19.rc5.i586.rpm
│    │                    cdparanoia-libs-10.2-10.i586.rpm
│    │                    dirac-libs-1.0.2-4.i586.rpm
│    │                    enca-1.13-2.i586.rpm
│    │                    faac-1.28-1.i586.rpm
│    │                    faad2-libs-2.7-1.i586.rpm
│    │                    fribidi-0.19.2-3.16.i586.rpm
│    │                    gpm-libs-1.20.6-1.i586.rpm
│    │                    lame-libs-3.98.4-1.i586.rpm
│    │                    libcaca-0.99-0.11.beta17.i586.rpm
│    │                    libdca-0.0.5-6.i586.rpm
│    │                    libdv-1.0.0-10.i586.rpm
│    │                    libdvdnav-4.1.4-0.2.svn1184.i586.rpm
│    │                    libdvdread-4.1.4-0.3.svn1188.i586.rpm
│    │                    libmp4v2-1.5.0.1-9.16.i586.rpm
│    │                    libmpcdec-1.2.6-7.i586.rpm
│    │                    librtmp-2.3-1.i586.rpm
│    │                    libvdpau-0.4.1-1.i586.rpm
│    │                    libvpx-0.9.1-1.i586.rpm
│    │                    libXvMC-1.0.5-3.16.i586.rpm
│    │                    libXxf86dga-1.1.1-3.16.i586.rpm
│    │                    lirc-libs-0.9.0-0.1.pre1.i586.rpm
│    │                    live555-0-0.28.2010.04.09.i586.rpm
│    │                    lzo-2.03-7.9.i586.rpm
│    │                    mencoder-1.0-0.119.rc3.i586.rpm
│    │                    mplayer-1.0-0.119.rc3.i586.rpm
│    │                    mplayer-common-1.0-0.119.rc3.i586.rpm
│    │                    mplayer-doc-1.0-0.119.rc3.i586.rpm
│    │                    mplayer-tools-1.0-0.119.rc3.i586.rpm
│    │                    openal-soft-1.12.854-2.i586.rpm
│    │                    opencore-amr-0.1.2-2.i586.rpm
│    │                    schroedinger-1.0.9-1.i586.rpm
│    │                    slang-2.2.2-4.21.i586.rpm
│    │                    twolame-libs-0.3.12-5.i586.rpm
│    │                    x264-libs-0.0.0-0.28.20100706gitd058f37.i586.rpm
│    │                    xvidcore-1.2.1-1.i586.rpm
│    │                    
│    └─media
│            │    Happy_Wake_Up_VP8.mkv
│            │    0079op_vp8.mov
│            │    Hareta_Tokei.webm
│            │    hanaop_vp8.avi
│            │    
│            ├─Sintel.2010.SURROUND.x264-VODO
│            │            Sintel.2010.SURROUND.x264-VODO.mp4
│            │            vodo.nfo
│            │            
│            ├─Sintel.2010.x264-VODO
│            │            Sintel.2010.x264-VODO.mp4
│            │            vodo.nfo
│            │            
│            └─Sintel.2010.Theora.Ogv-VODO
│                            Sintel.2010.Theora-VODO.ogv
│                            vodo.nfo
│                            
└─android
        │    initrd.img
        │    install.img
        │    kernel
        │    ramdisk.img
        │    system.sfs
        │    
        └─isolinux
                        android-x86.png
                        isolinux.bin
                        isolinux.cfg
                        vesamenu.c32
                        
 
注:目录树上可以看到sdk下有mplayer相关的东东和一些媒体文件,这实际上就是昨天做的MeeGo中mplayer和webm/vp8的试验。MeeGo的SDK做得实在是不友好,回头还得弄弄。现在还差一个播放器外壳,不过网上有代码,抄一个过来编译用用就行了。回头写完一个功能够用的就开源。
 
在原先的syslinux.cfg上加上如下代码:
label android
    menu label Android-x86 Live & Installation CD 2.2
    kernel /boot/vesamenu.c32
    append /boot/android.cfg
 
以下是/boot/android.cfg的内容:
default /boot/vesamenu.c32
timeout 60

menu background /boot/android-x86.png
menu title Android-x86 Live & Installation CD 2.2
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffff00 #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ffffff00 #ff000000
menu color hotkey 7 #ffffff00 #00000000

label liveh
  menu label Live CD - ^Run Android-x86 without installation (HDPI)
  kernel /android/kernel
  append initrd=/android/initrd.img root=/dev/ram0 androidboot_hardware=generic_x86 acpi_sleep=s3_bios,s3_mode video=-16 quiet SRC=android DATA= DPI=240

label livem
  menu label Live CD - ^Run Android-x86 without installation (MDPI)
  kernel /android/kernel
  append initrd=/android/initrd.img root=/dev/ram0 androidboot_hardware=generic_x86 acpi_sleep=s3_bios,s3_mode video=-16 quiet SRC=android DATA= DPI=160

label vesa
  menu label Live CD - ^VESA mode
  kernel /android/kernel
  append initrd=/android/initrd.img root=/dev/ram0 androidboot_hardware=generic_x86 acpi_sleep=s3_bios,s3_mode video=-16 quiet vga=788 SRC= DATA=

label debug
  menu label Live CD - ^Debug mode
  kernel /android/kernel
  append initrd=/android/initrd.img root=/dev/ram0 androidboot_hardware=generic_x86 acpi_sleep=s3_bios,s3_mode video=-16 vga=788 DEBUG=1 SRC= DATA=

label install
  menu label Installation - ^Install Android-x86 to harddisk
  kernel /android/kernel
  append initrd=/android/initrd.img root=/dev/ram0 androidboot_hardware=generic_x86 acpi_sleep=s3_bios,s3_mode video=-16 INSTALL=1 DEBUG=

label mainmenu
  menu label ^Back to Main Menu
  kernel /boot/vesamenu.c32
  append /syslinux.cfg
 
启动参数的修改,只是对原先的append行修改SRC=为SRC=android,即指定资源文件所在,可以避免比较长时间的检测尝试。
 
我用的测试机是Lenovo ThinkPad X301【感谢宫俊鹤兄弟的革命支持】。在Android-x86中触摸板不能用,鼠标可以。不过进去系统后很快就休眠,然后就唤醒不了。这个比较诡异,回头再弄了。先跟媳妇去趟超市当搬运工,回来继续捣鼓。先前怀疑是否与acpi_sleep有关,但是去掉试了试,是不行的。估计得深入了解机制,大不了改改代码。到了代码这个级别,估计今天是不好搞定的了。明天没法干活,因为大年初一家里人不让干活了。:D 【2011-02-02 17:15:xx更新:经查锁屏是由于screen_off_timeout的缘故。解决方法有代码修改的和临时设置的。代码层的改变现在没有时间改。临时设置的至少用sqlite3手工修改目前是未生效,可能是应用已经启动,读入内存了的缘故。在代码级变更之前还得再试试其他修改设置的办法。可以试试以下搜索关键字:android 超时锁屏 screen_off_timeout sqlite3】
 
进入系统后如何启动Android应用这个还是一个问题,回头再捣鼓了。
 
貌似还看到一个Damaged SD Card的提示。呵呵……