Patch für Realtek r8168 unter Linux 3.8

dkms install -m r8168 -v 8.035.00 -k 3.8-6.dmz.1-liquorix-amd64

diff -ur r8168-8.035.00.org/r8168_n.c r8168-8.035.00/r8168_n.c
— r8168-8.035.00.org/r8168_n.c    2012-12-19 11:38:56.000000000 +0100
+++ r8168-8.035.00/r8168_n.c    2013-04-14 08:43:08.000000000 +0200
@@ -14541,7 +14541,7 @@
spin_unlock_irqrestore(&tp->phy_lock, flags);
}

-static int __devinit
+static int
rtl8168_init_board(struct pci_dev *pdev,
struct net_device **dev_out,
void __iomem **ioaddr_out)
@@ -14711,7 +14711,7 @@
goto out;
}

-static void __devinit
+static void
rtl8168_init_sequence(struct rtl8168_private *tp)
{
void __iomem *ioaddr = tp->mmio_addr;
@@ -14964,7 +14964,7 @@
};
#endif

-static int __devinit
+static int
rtl8168_init_one(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
@@ -15128,7 +15128,7 @@
return 0;
}

-static void __devexit
+static void
rtl8168_remove_one(struct pci_dev *pdev)
{
struct net_device *dev = pci_get_drvdata(pdev);
@@ -17649,7 +17649,7 @@
.name        = MODULENAME,
.id_table    = rtl8168_pci_tbl,
.probe        = rtl8168_init_one,
–    .remove        = __devexit_p(rtl8168_remove_one),
+    .remove        = rtl8168_remove_one,
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,11)
.shutdown    = rtl8168_shutdown,
#endif

Linux Server auf Android MK808

Linux lässt sich auf dem MK808(b) auf zwei unterschiedliche Arten installieren:

Chroot:

  • PRO: Hardwarebeschleunigung bleibt erhalten
  • CONTRA: keine Linux-GUI per HDMI (VNC möglich)

Picuntu (http://ubuntu.g8.net/):

  • PRO: GUI direkt per HDMI
  • CONTRA: noch keine Hardwarebeschleunigung

Da ich mein neues Spielzeug (MK808b) gerne auch als Server nutzen würde, aber auch nicht auf die Multimedia-Fähigkeiten verzichten möchte, hier mal eine Anleitung zur Installation eines Linux Servers auf den MK808 in eine chroot-Umgebung.

Voraussetzung:

  • MK808 ( bzw. jedes andere rooted Android-Gerät)
  • Speichermedium (SD, USB, HDD,..), falls man – wie ich – nicht mit den paar GB onBoard haushalten kann.

Los gehts (per SSH oder Console)

  1. Vorbereiten des Speichermediums mit ext4
    1. Verbinden des Speichermediums per USB
    2. Mittels „dmesg“ den Namen der neuen Gerätedatei finden.
      (In meinem Fall war es „sde“ – entsprechend Befehle abändern)
    3. Eine große Partition mit „fdisk /dev/block/sde“ erstellen (o, n, p, <enter>, <enter>, w, q)
    4. Formatieren dieser Partition mit „mkfs.ext4 /dev/block/sde1“
    5. UUID mit „blkid“ bestimmen
    6. Folgendes Script in „/data/local/mount_hdd.sh“ erstellen:
    7. #!/system/bin/sh
      #
      # UUID entsprechend der Ausgabe von blkid ersetzen
      #
      UUID="3c77bdb1-a675-4711-ae3e-e4f5bb703bfc"
      mkdir -p /mnt/sdcard/HDD/
      mount -t ext4 $( /system/bin/blkid | grep $UUID | grep -v 'vold' | cut -d ':' -f 1 ) /mnt/sdcard/HDD/
      
    8. Script mittels „chmod 700 /data/local/mount_hdd.sh“ ausführbar machen.
    9. „/data/local/mount_hdd.sh“ ausführen
  2. Installation des Linux-Systems
    1. Linux-Depoy-App installieren (https://play.google.com/store/apps/details?id=ru.meefik.linuxdeploy
    2. App starten und oben rechts auf den „Download“-Button klicken.
    3. Hier die Einstellungen für Debian/Wheezy.
      Screenshot_2013-04-07-11-26-37
    4. „Install“ auswählen und warten.
  3. Abschließend kann der Linux-Server gestartet werden. Ab sofort ist unter der IP des MK808 u.a. ein SSH-Server erreichbar (Benutzer: android, Passwort: changeme)

Nach jedem Reboot oder umstecken des Speichermediums muss das Script „/data/local/mount_hdd.sh“ erneut gestartet werden.