android 内核构建(第一次)
android kernel build (first time)
好的,首先,
我是 android 开发人员的新手。这是我第一次尝试任何形式的内核任何东西。我对 java 和 python 了解有限,但没有 C.
我有一个 galaxy tab 4 sm-t330nu 运行ning 4.4.2。它 运行 使用高通金鱼草 400 msm8226 cpu。我现在只是想用香草内核做一个测试构建。 (我的构建环境也是最新的 kali 1.1,我大致遵循 https://github.com/offensive-security/kali-nethunter/wiki/Porting-Nethunter 的教程)
所以我拥有所有必需的依赖项(我希望),并且我从 samsung opensource 下载了我的源代码。解压缩并浏览可用的 defconfigs。在找到 "msm8226-sec_milletwifiue_defconfig" 之后,我决定它是我平板电脑最有可能的候选者。 (在进行自定义恢复时,我记得它是“philz touch milletwifiue something”)
我已经完成导出 (arch= subarch= cross_compile=) 并且一切似乎都很好。当我 运行 完全按照教程所说的进行构建时(在他们的示例中使用 defconfig 作为测试),我收到一条错误消息 "must define variant_defconfig"。所以我改为 "make variant_defconfig=msm8974_sec_defconfig",它构建得很好。
现在问题:
当我将 "msm8974_sec_defconfig" 更改为我的实际 msm8226 时,我在每个构建中都收到一个错误,我似乎无法解决。 (缩小尺寸)
CC arch/arm/kernel/armksyms.o
CC arch/arm/kernel/module.o
AS arch/arm/kernel/sleep.o
CC arch/arm/kernel/suspend.o
CC arch/arm/kernel/io.o
arch/arm/kernel/io.c: In function '_memcpy_fromio':
arch/arm/kernel/io.c:14:3: error: implicit declaration of function 'nop' [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[1]: *** [arch/arm/kernel/io.o] Error 1
make: *** [arch/arm/kernel] Error 2
我的确切 bash 行是
make VARIANT_DEFCONFIG=msm8226-sec_milletwifiue_defconfig
任何帮助解决这个问题的人都会很棒
编辑
虽然我不熟悉 c,但在我看来,'_memcpy_fromio' 是错误所在。我的 google 搜索告诉我错误是函数在未声明的情况下被使用。但是我不知道 memcpy 是否是一个函数?或者是 class memcpy 中的函数(不知道 c 是否有 classes 只是我所知道的最接近的等价物)我如何调试这段代码并声明需要声明的内容(更重要的是,如果这个是成千上万台设备使用的库存内核,它怎么可能有未声明的功能?
/编辑
找到答案了!需要
#import linux/modules.h
#import linux/kernel.h
好的,首先, 我是 android 开发人员的新手。这是我第一次尝试任何形式的内核任何东西。我对 java 和 python 了解有限,但没有 C.
我有一个 galaxy tab 4 sm-t330nu 运行ning 4.4.2。它 运行 使用高通金鱼草 400 msm8226 cpu。我现在只是想用香草内核做一个测试构建。 (我的构建环境也是最新的 kali 1.1,我大致遵循 https://github.com/offensive-security/kali-nethunter/wiki/Porting-Nethunter 的教程)
所以我拥有所有必需的依赖项(我希望),并且我从 samsung opensource 下载了我的源代码。解压缩并浏览可用的 defconfigs。在找到 "msm8226-sec_milletwifiue_defconfig" 之后,我决定它是我平板电脑最有可能的候选者。 (在进行自定义恢复时,我记得它是“philz touch milletwifiue something”)
我已经完成导出 (arch= subarch= cross_compile=) 并且一切似乎都很好。当我 运行 完全按照教程所说的进行构建时(在他们的示例中使用 defconfig 作为测试),我收到一条错误消息 "must define variant_defconfig"。所以我改为 "make variant_defconfig=msm8974_sec_defconfig",它构建得很好。
现在问题: 当我将 "msm8974_sec_defconfig" 更改为我的实际 msm8226 时,我在每个构建中都收到一个错误,我似乎无法解决。 (缩小尺寸)
CC arch/arm/kernel/armksyms.o
CC arch/arm/kernel/module.o
AS arch/arm/kernel/sleep.o
CC arch/arm/kernel/suspend.o
CC arch/arm/kernel/io.o
arch/arm/kernel/io.c: In function '_memcpy_fromio':
arch/arm/kernel/io.c:14:3: error: implicit declaration of function 'nop' [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[1]: *** [arch/arm/kernel/io.o] Error 1
make: *** [arch/arm/kernel] Error 2
我的确切 bash 行是
make VARIANT_DEFCONFIG=msm8226-sec_milletwifiue_defconfig
任何帮助解决这个问题的人都会很棒
编辑
虽然我不熟悉 c,但在我看来,'_memcpy_fromio' 是错误所在。我的 google 搜索告诉我错误是函数在未声明的情况下被使用。但是我不知道 memcpy 是否是一个函数?或者是 class memcpy 中的函数(不知道 c 是否有 classes 只是我所知道的最接近的等价物)我如何调试这段代码并声明需要声明的内容(更重要的是,如果这个是成千上万台设备使用的库存内核,它怎么可能有未声明的功能?
/编辑
找到答案了!需要
#import linux/modules.h
#import linux/kernel.h