Είναι πιθανό ότι τα πράγματα έχουν αλλάξει και υπάρχει πλέον καλύτερος τρόπος για να πετύχει κανείς το ίδιο αποτέλεσμα.
Iphone & Linux
Η μόνη λύση σε Linux για να μπορέσουμε να εκμεταλλευτούμε τις δυνατότητες του iphone είναι το itunes που είναι διαθέσιμο για windows και mac.
- Εγκαθιστούμε το VirtualBox 2 full edition προσθέτοντας στo αρχείο /etc/apt/sources.list το παρακάτω (για debian lenny ή sid):
deb http://download.virtualbox.org/virtualbox/debian lenny non-free
- Επειτα ενημερώνουμε την apt για τα νέα repositories και εγκαθιστούμε το virtualbox:
apt-get update apt-get install virtualbox
Σ'αυτο το σημείο αν η εγκατάσταση του πακέτου αποτύχει λόγω αδυναμίας μεταγλώττισης του module, δεν πειράζει.
- Προετοιμάζουμε το σύστημά μας για να μπορεί το virtualbox να μεταφέρει τα usb devices στα guest λειτουργικά. Στο αρχείο /etc/init.d/mountkernfs.sh Ψάνχουμε τις γραμμές:
if [ -d /proc/bus/usb ] then domount usbfs usbdevfs /proc/bus/usb usbfs -onodev,noexec,nosuid fi
- Και τις αλλάζουμε ώστε να δείχνουν:
if [ -d /proc/bus/usb ] then domount usbfs usbdevfs /proc/bus/usb usbfs -onodev,noexec,nosuid,devgid=46,devmode=664 fi
(Οπου gid 46 το group του plugdev.)
- Ανοίγουμε με το αγαπημένο μας editor (το vim φυσικά) το αρχείο permissions.rules μέσα στο /etc/udev/rules.d:
vim /etc/udev/rules.d/*permissions.rules
Στην παρακάτω γραμμή:
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \ MODE="0664"
- Προσθέτουμε το group usbusers:
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \ GROUP="usbusers",MODE="0664"
- Δημιουργούμε το group usbusers και προσθέτουμε τον χρήστη που θα τρέχει το virtualbox (πχ user) μέσα εκει:
groupadd usbusers usermod -G usbusers user
- Δυστυχώς θα χρειαστούμε να μεταγλωτίσουμε εναν kernel απ'την αρχή. Εγω προτίμησα να δοκιμάσω τον 2.6.27. Κατεβάζουμε απο εδω τα sources και τα κάνουμε extract:
cd /usr/src wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2 bunzip2 < linux-2.6.27.tar.bz2 | tar xvf - ln -sf /usr/src/linux-2.6.27 /usr/src/linux cd linux-2.6.27
- Ανοίγουμε με εναν editor το αρχείο ./drivers/usb/core/devio.c και τροποποιούμε την παρακάτω γραμμή:
#define MAX_USBFS_BUFFER_SIZE 16384,/pre> σε: <pre> #define MAX_USBFS_BUFFER_SIZE 131072
- Αν είμαστε εξοικοιομένοι κάνουμε τη μεταγλώτηση του πυρήνα μας με τον τρόπο της αρεσκείας μας. Διαφορετικά κάτι απλό είναι το εξής:
cp /boot/config-`uname -r` .config make make modules_install
- Αν όλα πήγαν καλά μεταφέρουμε τον πυρήνα μας και δημιουργούμε τα links για τον boot manager:
cp arch/`uname -m | sed -e s/686/386/`/boot/bzImage /boot/vmlinuz-2.6.27 cp .config /boot/config-2.6.27 cp System.map /boot/System.map-2.6.67 mv /vmlinuz /vmlinuz.old mv /initrd.img /initrd.img.old ln -sf /boot/vmlinuz-2.6.27 /vmlinuz
- Φτιάχνουμε το initrd:
update-initramfs -c -k 2.6.27 /boot/initrd-2.6.27 ln -sf /boot/initrd-2.6.27 /initrd.img
- Σε περίπτωση που ο boot manager που χρησιμοποιουμε είναι ο lilo, τρέχουμε την εντολή:
lilo -v
- Διαφορέτικα, προχωράμε κατευθείαν σε reboot
- Αν όλα πήγαν καλά [1] και ξεκινήσαμε με τον νεό μας kernel, κάνουμε login στο γραφικό και τρέχουμε την εντολή:
dpkg-reconfigure virtualbox
Η οποία θα μας φτιάξει τα modules του virtualbox για τον νέο μας κέρνελ.
- Τέλος, ανοίγουμε το virtualbox .
- Στις ρυθμίσεις του guest λειτουργικού, στο usb προσθέτουμε ενα empty φίλτρου. (Το φίλτρο επιλέγει ποιές usb συσκευές θέλουμε να είναι ορατές απ'το guest os, εμείς του λέμε όλες.
- Ξεκινάμε τo guest os, συνδέουμε το iphone και ανοίγουμε το itunes[2] και το απολαμβάνουμε.
[1] Αν το γραφικό δεν ξεκινήσει σωστά, τότε έχουμε κάρτα γραφικών nvidia. Κατεβάζουμε τους drivers και τους τρέχουμε:
wget http://us.download.nvidia.com/XFree86/Linux-x86/177.80/NVIDIA-Linux-x86-177.80-pkg1.run
(Για 32bit λειτουργικο)
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/177.80/NVIDIA-Linux-x86_64-177.80-pkg2.run
(Για 64 bit λειτουργικο)
chmod +x NVIDIA-Linux-x86-177.80-pkg1.run sh NVIDIA-Linux-x86*
[2] Μή δοκιμάσετε να τρέξετε restore μέσα απ'το itunes ή να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα για jailbrake κτλ. Δεν θα δουλέψει και πιθανόν να κλειδώσετε το τηλέφωνό σας. To δοκίμασα εγώ για σας :-D
αυτα.