个人工具

UbuntuHelp:PortableDevices/iPhone/iTunesVirtualBox

来自Ubuntu中文

跳转至: 导航, 搜索
  1. title Using iTunes via Sun Virtualbox running Windows

Introduction

This technique allows you to sync using the official iTunes application. All functionality is available, although this author hasn't tried firmware updates. <!> This method uses a number of proprietary components, and therefore isn't free. Do not do this unless you have a legitimate Windows license and agree with the licensing to all the software: Windows XP, Virtualbox etc. This information is sourced from a number of locations - thanks to these contributions:

Steps

  1. Add the Virtualbox repository and key as detailed on this page. Select the repository matching your distribution and add to `/etc/apt/sources.list` file. For example, the Intrepid Ibex line is:
    deb http://download.virtualbox.org/virtualbox/debian intrepid non-free 
    
    Now add the key for this repository.
     
    wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add - 
    Now update your apt cache:
    sudo apt-get update
  2. Remove the package `virtualbox-ose`:
    sudo apt-get autoremove virtualbox-ose 
    Now install the latest Virtualbox
    sudo apt-get install virtualbox 
  3. Add your username to the `vboxusers` group. Don't forget to substitute your username:
    sudo gpasswd -a `ls ~/..` vboxusers 
  4. We need a new entry in the file '/etc/fstab' to correct USB permissions. To do this, first you need to know what the group id (GID) is for the group `vboxusers`. Run this command:
    sed '/vboxusers/!d;s/vboxusers:x:\(.*\):.*/\1/' /etc/group
    The output should be a number. Now edit `/etc/fstab` and add the following line, but make sure you set the `devgid=` number to the output of the previous command.
    none /proc/bus/usb usbfs devgid=123,devmode=664 0 0 
  5. You can now start up Virtualbox, located under SystemSun Virtualbox . Create a new machine; the wizard will guide you, the details are outside of the scope for this howto. Within the settings for the machine, ensure both "Enable USB Controller" and "Enable USB 2.0 (EHCI) Controller" are ticked. You can also add a filter to make the iPhone/iTouch automatically pass thru here, otherwise you will have to manually select and enable it when plugged in.
  6. Install Windows and iTunes in the VM. Windows XP and iTunes 8 is known to work. The Virtualbox guest addons are also recommended for performance and integration, but are not explicitly required. Again, the details of this are outside of scope, but are straightforward.
7. Boot the VM, plug in iPhone (and select it to be passed thru via the VM menu if you didn't add a filter before) and confirm iTunes detects it. All systems go for iLaunch!

Note: I (JIMIneitor) tested this myself, and tested everything, even restoring, and I can say that everything works excellent but restoring, you can sync, back-up, install apps, remove apps, everything, but you won't restore it using VirtualBox.

Troubleshoot

iTunes error 0xe8000035

Windows sees the iPhone correctly, and attempts to download pictures, but iTunes doesn't connect correctly. One cause of this is `MAX_USBFS_BUFFER_SIZE` being too small in `/drivers/usb/core/devio.c`. The author had this problem in Hardy Heron. Here is how to recompile "only" this module for Hardy (thanks to remainder comment 2008-09-21 04:22:26):
cd /usr/src
sudo apt-get build-dep linux-source-2.6.24
sudo apt-get install linux-source-2.6.24 build-essential
tar -jxvf /usr/src/linux-source-2.6.24.tar.bz2
cd linux-source-2.6.24/drivers/usb/core
sudo perl -pi.bak -e 's/16384/131072/' devio.c
make -C /lib/modules/`uname -r`/build/ M=`pwd` modules
strip --strip-debug usbcore.ko
sudo install -m644 -b usbcore.ko /lib/modules/`uname -r`/kernel/drivers/usb/core
sudo depmod -ae
sudo update-initramfs -u
sudo reboot
You could instead modify `/drivers/usb/core/devio.c` and recompile|the whole kernel if you wanted to. Note that this error can also occur for lots of other reasons, including bad cables, 3rd party docks etc. Ask Google about this error for lots of other possibilities.

VM Locks up at boot

The VM seems to lock up at boot if an iPhone is plugged in at boot time. Try booting without the iPhone plugged in!

See Also