So - jetzt hab' ich es auch hin. Mit swap und iptables. Hier meine Notizen, falls jemand selbst kompilieren will kann's ja hilfreich sein. Dateien sind hier:
Code:
http://81.89.105.192/linux-2.6.27-galaxy.patch.lzma
http://81.89.105.192/initrd-galaxy-2.6.27-GT-i7500I7500VIAIG6I7500XXIG8I7500XXIG8_500.tgz
Dieser Text bezieht sich auf
http://img.kr.samsungmobile.com/imag...OpenSource.zip. Hinweis: alle ASCII-Dateien in diesem ZIP haben CRLF als Zeilenende. Konvertierung mit "find -type f | xargs sed -i -e '/\r//g'" (das erwischt auch ein paar Binärdateien, diese sollten für das Kompilieren aber nicht wichtig sein).
70e0eb7961110ff6a01eff8781333c8d GT-I7500_OpenSource.zip
Hinweise: der Samsung-Kernel ist ein Stock-2.6.27, allerdings wurde ein "Infinite Retry Loop in IP-Config" mit einer Änderung behoben (aus 2.6.27.14, siehe LKML 9d8dba6c979fa99c96938c869611b9a23b73efa9). Außerdem sind die Kernel-Sourcen wohl über einen Windows-Rechner gegangen, es fehlen großgeschriebene Dateien z.B. net/netfilter/xt_TCPMSS.c (das gibts auch als kleingeschriebene Datei net/netfilter/xt_tcpmss.c im Kernel-Tree und ein typisches Windows überschreibt dann).
* Den Kernel linux-2.6.27.tar.bz2 von kernel.org herunterladen. Auspacken und den Patch anwenden (der Patch enthält nur die Unterschiede vom Stock-2.6.27er Kernel auf das oben angeführte ZIP-Archiv):
tar xvjf linux-2.6.27.tar.bz2
lzcat linux-2.6.27-galaxy.patch.lzma | patch -p1 -d linux-2.6.27
* Vom Telefon die Konfiguration ziehen (bin faul und mache als "
root" weiter):
sudo bash
cd linux-2.6.27
adb pull /proc/config.gz .
gunzip config.gz
mv config .config
* Die Initrd holen, auspacken und den Pfad in der .config eintragen, z.B. CONFIG_INITRAMFS_SOURCE="initrd/". Meine Initrd habe ich aus GT-i7500I7500VIAIG6I7500XXIG8I7500XXIG8_500.zip (später zurückgezogenes Update aus Aug 2009). In der Datei "/default.prop" sind außerdem die Einstellungen auf "ro.secure=0" und "ro.debuggable=1" geändert, damit der "
root"-Zugriff funktioniert.
* Kompilieren, dabei 2 * mit [Return] den Benutzer "
root" fuer die Initrd bestätigen:
make CROSS_COMPILE=/usr/src/android/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
* Aufspielen mit "fastboot":
(Galaxy an USB stoepseln)
fastboot flash:raw boot arch/arm/boot/zImage
(Fastboot wartet, Galaxy ausschalten)
(Warten bis die Ladeanzeige die volle Batterie zeigt)
(Mit der Tastenkombination Annehmen + Powertaste halten und damit einschalten)
(Schwarzer Bildschirm, das Fastboot beginnt mit dem
Flashen, 5 Sekunden)
(Mein Galaxy startet und läuft ganz normal [freu])
* Jetzt kommt die Kür: "make menuconfig", einschalten was man haben will. Wirklich wichtig: General/SWAP[*], Net/Opt/Netfilter[*], Net/Opt/Netfilter/Adv[ ] ("Advanced" ausschalten schaltet die einfachen Sachen automatisch als Modules ein). Konfiguration speichern und aufräumen mit "make CROSS_COMPILE=[siehe oben] clean". Dann noch einmal Kompileren/Aufspielen.
* Nun noch ein Swapfile. SSH in das Galaxy und dann:
dd if=/dev/zero of=/sdcard/swap.img bs=1048576 count=96
mkswap /sdcard/swap.img
swapon /sdcard/swap.img
Das wars, meine Kiste läuft...
Code:
localhost:/sdcard# free -m
total used free shared buffers cached
Mem: 93 92 1 0 0 22
-/+ buffers/cache: 69 24
Swap: 95 0 95 * Jetzt noch die Module hochladen (rfs.ko fehlt...!):
adb remount
for i in drivers/net/wireless/broadcom/bcm4325.ko drivers/dpram/dpram.ko drivers/dpram/multipdp.ko;do
adb push $i /system/libmodules/;done
* Dann noch meine zusätzlichen Module für mein Debian hochladen:
tar cvzf /tmp/bla.tgz $(find -name "*.ko")
adb push /tmp/bla.tgz /tmp/
(zur Debian-Shell auf dem Galaxy wechseln)
mkdir /lib/modules/$(uname -r)/
cd /lib/modules/$(uname -r)/
tar xvzf /tmp/bla.tgz
depmod -a
iptables -nvL
(sollte die iptables-Module laden und was anzeigen)