PROCEDURA:
- Installate Linux (e.g. Ubuntu, Linux Mint)
- Installare Android SDK
- Installare la toolchain:
sudo apt-get install gcc-arm-linux-gnueabi
- Scaricate e decomprimete il kernel da QUI supponiamo in ~/android/u8825-1_3.0.21_kernel
- Collegate il device alla USB e assicuratevi che sia connesso:
adb devices
- Scaricate la configurazione con i comandi:
cd ~/android
adb pull /proc/config.gz
gunzip config.gz
mv config ./u8825-1_3.0.21_kernel/.config
- Salvate questa patch nel file ~/android/gcc-4.7-arm-linux-gnueabi.patch:
codice:
diff -uNr kernel.huawei/arch/arm/include/asm/swab.h kernel.patched/arch/arm/include/asm/swab.h
--- kernel.huawei/arch/arm/include/asm/swab.h 2013-02-16 02:28:59.000000000 +0000
+++ kernel.patched/arch/arm/include/asm/swab.h 2013-06-30 16:17:50.454997000 +0100
@@ -15,6 +15,8 @@
#ifndef __ASM_ARM_SWAB_H
#define __ASM_ARM_SWAB_H
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+
#include <linux/compiler.h>
#include <linux/types.h>
diff -uNr kernel.huawei/arch/arm/mach-msm/board-msm7627a-io.c kernel.patched/arch/arm/mach-msm/board-msm7627a-io.c
--- kernel.huawei/arch/arm/mach-msm/board-msm7627a-io.c 2013-02-16 02:28:34.000000000 +0000
+++ kernel.patched/arch/arm/mach-msm/board-msm7627a-io.c 2013-06-30 16:18:00.319927000 +0100
@@ -11,6 +11,8 @@
*
*/
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
#include <linux/gpio_event.h>
diff -uNr kernel.huawei/arch/arm/mach-msm/board-msm7x27a.c kernel.patched/arch/arm/mach-msm/board-msm7x27a.c
--- kernel.huawei/arch/arm/mach-msm/board-msm7x27a.c 2013-02-16 02:28:33.000000000 +0000
+++ kernel.patched/arch/arm/mach-msm/board-msm7x27a.c 2013-06-30 16:18:14.202866000 +0100
@@ -9,6 +9,9 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
+
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/gpio_event.h>
@@ -1489,7 +1492,9 @@
msm7x2x_init_host();
msm7x27a_pm_init();
register_i2c_devices();
+#if (defined(HUAWEI_BT_BLUEZ_VER30) || defined(HUAWEI_BT_BTLA_VER30) || (!defined(CONFIG_HUAWEI_KERNEL)))
msm7627a_bt_power_init();
+#endif
msm7627a_camera_init();
msm7627a_add_io_devices();
/*7x25a kgsl initializations*/
diff -uNr kernel.huawei/arch/arm/mm/dma-mapping.c kernel.patched/arch/arm/mm/dma-mapping.c
--- kernel.huawei/arch/arm/mm/dma-mapping.c 2013-02-16 02:28:24.000000000 +0000
+++ kernel.patched/arch/arm/mm/dma-mapping.c 2013-06-30 16:18:21.698612000 +0100
@@ -9,6 +9,9 @@
*
* DMA uncached mapping support.
*/
+
+#pragma GCC diagnostic ignored "-Warray-bounds"
+
#include <linux/module.h>
#include <linux/mm.h>
#include <linux/gfp.h>
diff -uNr kernel.huawei/drivers/md/dm.c kernel.patched/drivers/md/dm.c
--- kernel.huawei/drivers/md/dm.c 2013-02-16 02:32:05.000000000 +0000
+++ kernel.patched/drivers/md/dm.c 2013-06-30 16:18:36.946233000 +0100
@@ -5,6 +5,8 @@
* This file is released under the GPL.
*/
+#pragma GCC diagnostic ignored "-Wunused-value"
+
#include "dm.h"
#include "dm-uevent.h"
diff -uNr kernel.huawei/drivers/md/dm-table.c kernel.patched/drivers/md/dm-table.c
--- kernel.huawei/drivers/md/dm-table.c 2013-02-16 02:32:05.000000000 +0000
+++ kernel.patched/drivers/md/dm-table.c 2013-06-30 16:18:30.895208000 +0100
@@ -5,6 +5,8 @@
* This file is released under the GPL.
*/
+#pragma GCC diagnostic ignored "-Wunused-value"
+
#include "dm.h"
#include <linux/module.h>
diff -uNr kernel.huawei/drivers/media/radio/radio-tavarua.c kernel.patched/drivers/media/radio/radio-tavarua.c
--- kernel.huawei/drivers/media/radio/radio-tavarua.c 2013-02-16 02:34:12.000000000 +0000
+++ kernel.patched/drivers/media/radio/radio-tavarua.c 2013-06-30 16:18:42.589053000 +0100
@@ -10,6 +10,9 @@
* GNU General Public License for more details.
*
*/
+
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+
/*
* Qualcomm Tavarua FM core driver
*/
diff -uNr kernel.huawei/drivers/video/msm/mdp.c kernel.patched/drivers/video/msm/mdp.c
--- kernel.huawei/drivers/video/msm/mdp.c 2013-02-16 02:33:33.000000000 +0000
+++ kernel.patched/drivers/video/msm/mdp.c 2013-06-30 16:18:52.850181000 +0100
@@ -15,6 +15,8 @@
* GNU General Public License for more details.
*/
+#pragma GCC diagnostic ignored "-Wsequence-point"
+
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/sched.h>
diff -uNr kernel.huawei/net/ipv4/netfilter/nf_nat_amanda.c kernel.patched/net/ipv4/netfilter/nf_nat_amanda.c
--- kernel.huawei/net/ipv4/netfilter/nf_nat_amanda.c 2013-02-16 02:34:49.000000000 +0000
+++ kernel.patched/net/ipv4/netfilter/nf_nat_amanda.c 2013-06-30 16:18:58.813161000 +0100
@@ -8,6 +8,8 @@
* 2 of the License, or (at your option) any later version.
*/
+#pragma GCC diagnostic ignored "-Waddress"
+
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/skbuff.h>
diff -uNr kernel.huawei/net/ipv4/netfilter/nf_nat_h323.c kernel.patched/net/ipv4/netfilter/nf_nat_h323.c
--- kernel.huawei/net/ipv4/netfilter/nf_nat_h323.c 2013-02-16 02:34:49.000000000 +0000
+++ kernel.patched/net/ipv4/netfilter/nf_nat_h323.c 2013-06-30 16:19:02.683096000 +0100
@@ -9,6 +9,8 @@
* Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
*/
+#pragma GCC diagnostic ignored "-Waddress"
+
#include <linux/module.h>
#include <linux/tcp.h>
#include <net/tcp.h>
diff -uNr kernel.huawei/net/ipv4/netfilter/nf_nat_irc.c kernel.patched/net/ipv4/netfilter/nf_nat_irc.c
--- kernel.huawei/net/ipv4/netfilter/nf_nat_irc.c 2013-02-16 02:34:49.000000000 +0000
+++ kernel.patched/net/ipv4/netfilter/nf_nat_irc.c 2013-06-30 16:19:07.529518000 +0100
@@ -10,6 +10,8 @@
* 2 of the License, or (at your option) any later version.
*/
+#pragma GCC diagnostic ignored "-Waddress"
+
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/tcp.h>
diff -uNr kernel.huawei/net/ipv4/netfilter/nf_nat_standalone.c kernel.patched/net/ipv4/netfilter/nf_nat_standalone.c
--- kernel.huawei/net/ipv4/netfilter/nf_nat_standalone.c 2013-02-16 02:34:49.000000000 +0000
+++ kernel.patched/net/ipv4/netfilter/nf_nat_standalone.c 2013-06-30 16:19:14.541022000 +0100
@@ -5,6 +5,9 @@
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
+
+#pragma GCC diagnostic ignored "-Waddress"
+
#include <linux/types.h>
#include <linux/icmp.h>
#include <linux/gfp.h>
diff -uNr kernel.huawei/net/netfilter/xt_qtaguid.c kernel.patched/net/netfilter/xt_qtaguid.c
--- kernel.huawei/net/netfilter/xt_qtaguid.c 2013-02-16 02:34:37.000000000 +0000
+++ kernel.patched/net/netfilter/xt_qtaguid.c 2013-06-30 16:19:27.875687000 +0100
@@ -8,6 +8,8 @@
* published by the Free Software Foundation.
*/
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+
/*
* There are run-time debug flags enabled via the debug_mask module param, or
* via the DEFAULT_DEBUG_MASK. See xt_qtaguid_internal.h.
- Applicate la patch con il comando:
cd ~/android/u8825-1_3.0.21_kernel
patch -p1 < ../gcc-4.7-arm-linux-gnueabi.patch
- Compilate il kernel con il comando:
cd ~/android/u8825-1_3.0.21_kernel
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make
- Al termine della compilazione, l'output mostrerà (non necessariamente nella parte finale):
Kernel: arch/arm/boot/Image is ready
Kernel: arch/arm/boot/zImage is ready
ATTENZIONE! L'autore del topic non si assume nessuna responsabilità dei danni o problemi che potrete riscontrare seguendo la procedura descritta.