おのたく日記 YouTubeも始めました→
2006-07-01(Sat) [長年日記]
■ [iPod][VMware] Linux kernel 2.6.16-2でVMWare Guest OSでiPodを認識させる
6月22日の日記で書いたように、Linuxのカーネル2.6.8以降だと、VMWare for Linux 5.5で動かしているGuestOS(WindowsXP)のiTunesでiPodが認識されない。(ただのUSBストレージとして認識されてしまう)
Oh if it is SuSE 10 I have a good idea what is going on there.
The recent kernel change will force the device receive more side effect
IOs. There is no way I can solve it without change the kernel.
If you are brave, try the following patch on your kernel and see
if it helps.
[VMTN: Re: Synshronize itunes with Ipodより引用]
ってことで、kernelにパッチをすると、動くようになる情報があった。
そこで、Debian Backportsの最新カーネル 2.6.16-2にパッチを当てることにした。
■ [Debian]カーネルソースのコンパイル
まず、ソースのコンパイル必要なDebianパッケージを
# apt-get build-dep linux-image-2.6.16-2-em64t-p4-smp
で取得しておく。次にソースの取得 /etc/apt/source.listにdeb-srcを書いておいて、
$ apt-get source linux-image-2.6.16-2-em64t-p4-smp
でソースを手に入れる。
ソースへのパッチは、VMTNの情報では、usb.cにパッチするという事だったけど、usb.cには該当箇所が無くなっていたので、grepで探して、driver.cに有ることを発見したので、driver.cにパッチして再Buildした。手順は以下の通り
$ cd linux-2.6-2.6.16/
$ cd drivers/usb/core/
$ grep usb_unbind *.c
$ vi driver.c
$ cp -p driver.c driver.c.org
$ vi driver.c
$ cd ../../..
$ dpkg-buildpackage -us -uc -b -rfakeroot
ちなみにパッチは
--- drivers/usb/core/driver.c.org 2006-03-20 14:53:29.000000000 +0900
+++ drivers/usb/core/driver.c 2006-07-02 00:22:55.000000000 +0900
@@ -229,9 +229,11 @@
driver->disconnect(intf);
/* reset other interface state */
+#if 0 /* iPod Connect from VMWare Guest OS */
usb_set_interface(interface_to_usbdev(intf),
intf->altsetting[0].desc.bInterfaceNumber,
0);
+#endif
usb_set_intfdata(intf, NULL);
intf->condition = USB_INTERFACE_UNBOUND;
mark_quiesced(intf);
のようになった。
Buildに、すごい時間が掛かって(まちきれず寝たけど11時間半くらい掛かったのかも)「なんでだろう」と思ったら、em64t-p4-smpだけではなくて、xen用などすべてのカーネルを作成していた。必要なカーネルパッケージのみBuildする方法を探さなくては…
linux-doc-2.6.16_2.6.16-13bpo1_all.deb
linux-headers-2.6-amd64-generic_2.6.16-13bpo1_amd64.deb
linux-headers-2.6-amd64-k8-smp_2.6.16-13bpo1_amd64.deb
linux-headers-2.6-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-headers-2.6-em64t-p4-smp_2.6.16-13bpo1_amd64.deb
linux-headers-2.6-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-headers-2.6-vserver-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-headers-2.6-vserver-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-headers-2.6-xen-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-headers-2.6-xen-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-headers-2.6-xen-vserver-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-all-amd64_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-all_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-amd64-generic_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-amd64-k8-smp_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-em64t-p4-smp_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-vserver-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-vserver-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-vserver_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-xen-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-xen-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-xen-vserver-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-xen-vserver_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2-xen_2.6.16-13bpo1_amd64.deb
linux-headers-2.6.16-2_2.6.16-13bpo1_amd64.deb
linux-image-2.6-amd64-generic_2.6.16-13bpo1_amd64.deb
linux-image-2.6-amd64-k8-smp_2.6.16-13bpo1_amd64.deb
linux-image-2.6-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-image-2.6-em64t-p4-smp_2.6.16-13bpo1_amd64.deb
linux-image-2.6-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-image-2.6-vserver-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-image-2.6-vserver-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-image-2.6-xen-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-image-2.6-xen-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-image-2.6-xen-vserver-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-image-2.6.16-2-amd64-generic_2.6.16-13bpo1_amd64.deb
linux-image-2.6.16-2-amd64-k8-smp_2.6.16-13bpo1_amd64.deb
linux-image-2.6.16-2-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-image-2.6.16-2-em64t-p4-smp_2.6.16-13bpo1_amd64.deb
linux-image-2.6.16-2-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-image-2.6.16-2-vserver-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-image-2.6.16-2-vserver-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-image-2.6.16-2-xen-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-image-2.6.16-2-xen-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-image-2.6.16-2-xen-vserver-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-image-amd64-generic_2.6.16-13bpo1_amd64.deb
linux-image-amd64-k8-smp_2.6.16-13bpo1_amd64.deb
linux-image-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-image-em64t-p4-smp_2.6.16-13bpo1_amd64.deb
linux-image-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-image-vserver-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-image-vserver-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-image-xen-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-image-xen-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-image-xen-vserver-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-manual-2.6.16_2.6.16-13bpo1_all.deb
linux-modules-2.6.16-2-xen-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-modules-2.6.16-2-xen-em64t-p4_2.6.16-13bpo1_amd64.deb
linux-modules-2.6.16-2-xen-vserver-amd64-k8_2.6.16-13bpo1_amd64.deb
linux-patch-debian-2.6.16_2.6.16-13bpo1_all.deb
linux-source-2.6.16_2.6.16-13bpo1_all.deb
linux-support-2.6.16-2_2.6.16-13bpo1_all.deb
linux-tree-2.6.16_2.6.16-13bpo1_all.deb
|