summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Matt Colyer2009-03-24 10:01:25 -0700
committerGravatar Matt Colyer2009-03-24 10:01:25 -0700
commit0114d8da493e69f14bc2669ae0ec6b9813b237cf (patch)
tree08ecfcb23f61ffa4b1066da4c4a2367672ab31d1
parent127a5934b593ea7fd34b16477e6dd5619101bcb9 (diff)
downloadlibimobiledevice-0114d8da493e69f14bc2669ae0ec6b9813b237cf.tar.gz
libimobiledevice-0114d8da493e69f14bc2669ae0ec6b9813b237cf.tar.bz2
Added support for forcing the iPhone into configuration 3 through udev to allow automounting support.
-rw-r--r--Makefile.am2
-rw-r--r--configure.ac2
-rw-r--r--udev/89-libiphone.rules.in5
-rw-r--r--udev/Makefile.am12
-rwxr-xr-xudev/set-usb-configuration-3.sh3
5 files changed, 22 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index f103377..2b9ce9a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
AUTOMAKE_OPTIONS = foreign
-SUBDIRS = src include fdi $(DEV_SUB)
+SUBDIRS = src include fdi udev $(DEV_SUB)
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libiphone-1.0.pc
diff --git a/configure.ac b/configure.ac
index 7c31e2a..2cabe29 100644
--- a/configure.ac
+++ b/configure.ac
@@ -86,4 +86,4 @@ if test "$enable_largefile" != no; then
fi
AC_SUBST(LFS_CFLAGS)
-AC_OUTPUT(Makefile src/Makefile include/Makefile fdi/Makefile dev/Makefile libiphone-1.0.pc)
+AC_OUTPUT(Makefile src/Makefile include/Makefile fdi/Makefile udev/Makefile dev/Makefile libiphone-1.0.pc)
diff --git a/udev/89-libiphone.rules.in b/udev/89-libiphone.rules.in
new file mode 100644
index 0000000..48e9a16
--- /dev/null
+++ b/udev/89-libiphone.rules.in
@@ -0,0 +1,5 @@
+# Forces iPhone 1.0, 3G and iPodTouch 1 and 2 to USB configuration 3
+KERNEL=="?-?", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1290", ACTION=="add", RUN+="@bindir@/set-usb-configuration-3.sh"
+KERNEL=="?-?", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1291", ACTION=="add", RUN+="@bindir@/set-usb-configuration-3.sh"
+KERNEL=="?-?", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1292", ACTION=="add", RUN+="@bindir@/set-usb-configuration-3.sh"
+KERNEL=="?-?", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="1293", ACTION=="add", RUN+="@bindir@/set-usb-configuration-3.sh"
diff --git a/udev/Makefile.am b/udev/Makefile.am
new file mode 100644
index 0000000..27cc456
--- /dev/null
+++ b/udev/Makefile.am
@@ -0,0 +1,12 @@
+udevdir=$(sysconfdir)/udev/rules.d/
+udev_DATA=89-libiphone.rules
+
+edit = sed \
+ -e 's|@bindir[@]|$(bindir)|g'
+
+89-libiphone.rules:
+ rm -f $@ $@.tmp
+ $(edit) '$(srcdir)/$@.in' >$@.tmp
+ mv $@.tmp $@
+
+bin_SCRIPTS = set-usb-configuration-3.sh
diff --git a/udev/set-usb-configuration-3.sh b/udev/set-usb-configuration-3.sh
new file mode 100755
index 0000000..ace07f0
--- /dev/null
+++ b/udev/set-usb-configuration-3.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+echo 3 > /sys$DEVPATH/bConfigurationValue