deepin arm linux gcc,arm-gcc-path

arm-gcc-path

系统要求

Linux 64位+(deepin其实很好用)

50GB+ 存储空间

8G+ 内存(最好,不是一定)

jdk 1.8 + (不要用9或者10)

一些说明

配置,开源的,但并不代表这就会很成功的完成工作,适用于kernel build

环境配置

0. /home/USER_NAME/.bashrc,动态环境配置,在这里配置gcc和用户的环境(比etc/profile方便点吧)*.这是一个隐藏文件

1. 一定要在在前或者后加上$PATH,加上后就会在原有的PATH上新加环境变量,不然会替代默认的PATH,后果很严重

export PATH=/xxx/xxx:$PATH

export PATH=$PATH:/xxx/xxx

2. 下载arm-linux-gcc,解压,修改.bashrc就能添加gcc环境,

需要32位和64位

source /home/USER_NAME/.bashrc

#The is x86

export PATH=$PATH:/home/USER_NAME/arm-gcc/arm/arm-linux-androideabi-4.9/bin/

#The is x64

export PATH=$PATH:/home/USER_NAME/arm-gcc/aarch64/aarch64-linux-android-4.9/bin/

*.USER_NAME:指你的用户名,这个目录也就是你的用户根目录

2.1..export PATH=$PATH:/home/USER_NAME/gcc目录/bin/

3.终端上:

arm-linux-android,然后按下tab键,就能看到一大堆

arm-linux-androideabi-addr2line arm-linux-androideabi-ld.gold

arm-linux-androideabi-ar arm-linux-androideabi-nm

arm-linux-androideabi-as arm-linux-androideabi-objcopy

arm-linux-androideabi-c++ arm-linux-androideabi-objdump

arm-linux-androideabi-c++filt arm-linux-androideabi-ranlib

arm-linux-androideabi-cpp arm-linux-androideabi-readelf

arm-linux-androideabi-dwp arm-linux-androideabi-size

arm-linux-androideabi-elfedit arm-linux-androideabi-strings

arm-linux-androideabi-g++ arm-linux-androideabi-strip

arm-linux-androideabi-gcc arm-linux-androidkernel-ar

......

4.查看arm-gcc版本:

arm-linux-androideabi-gcc -v

aarch64-linux-android-gcc -v

5.配置/kernel/Makefile ,指定arm-linux-命令,和平台(后面不能有空格)

#32位配置

ARCH?= arm:平台

CROSS_COMPILE?= arm-linux-androideabi-:配置GCC命令(来自上面配置的命令除去-gcc那一段)

#64位配置

ARCH?= arm64

CROSS_COMPILE?= aarch64-linux-android-

6.make menuconfig进行配置内核 (图形化界面好看)

make menuconfig出现缺少cures.h,是因为缺少ncurses devel套件

sudo apt-get install libncurses5-dev

7.make menuconfig

实际上是用于生成配置文件,使用方式内核配置 -> 4

8.缺少的组件

sudo apt-get install libssl-dev

内核配置

1. PATH是如何配置环境变量,这里记录如何配置内核

2. make命令

#配置

make menuconfig

#加载编译配置

make

make O=

#编译,输出到out目录

make -j$(nproc --all)

make O=out -j$(nproc --all)

#清除所有编译结果

make distclean

make mrproper

make O=out mrproper

3. /kernel/msm-4.4/arch/arm64/configs

有个sdm660-NX611J_defconfig是配置好的

make sdm660-NX611J_defconfig

#生成默认配置

4. 也可以通过make menuconfig生成,*.config,魔改内核

将内核源代码里的.config文件复制到arch/arm64/configs/

重命名FILE_NAME_defconfig

然后在进行make FILE_NAME_defconfig

#生成配置

*.make menuconfig将更改保存到内核源代码中的.config文件中。 您需要将该文件复制到arch/arm64/configs/

问题

**1.**

可能会出现一堆inclued 的引用问题,明明xxx.h就在文件目录下,这个问题不清楚原理

解决方案就是通过把配置文件.confg,编译的o文件,都集中到out文件夹

使用out文件作为编译目录的编译方式:

清理1:make O=out clean

清理2:make O=out mrproper

配置到out:make O=out xxx_defconfig

编译到out:make O=out -j$(nproc --all)

*.$(nproc --all)可以改成一段数字,-j6,6个线程编译

**2.**

我不知道为什么,使用了sdm660_nx611j_perf_defconfig就会编译失败,只要带perf

*.带perf报的错误内容是,某个函数或某个参数第一次在该函数内使用,这个错误一般来自于内核配置问题

切记:在不是魔改内核的情况下,使用sdm660-NX611J_defconfig,不带perf性能这个的

打包

内核会输出在kernel/msm-4.4/out/arch/arm64/boot里

dts,Image,Image.gz,Iamge.gz-dts

**1.**

1.取一个官方boot.img

2.放到mkboot文件夹下

3.cd mkboot

4.解压这个内核:./unpackimg.sh .img

5.找到split_img下的boot.img-zImage

6.重命名Iamge.gz-dts为boot.img-zImage

7../repackimg.sh

8.找到unsigned-new.img重命名为boot.img,刷入

目标

来自于https://translate.googleusercontent.com/translate_c?depth=1&hl=zh-CN&prev=search&rurl=translate.google.com.hk&sl=en&sp=nmt4&u=https://forum.xda-developers.com/android/software-hacking/reference-how-to-compile-android-kernel-t3627297&xid=17259,15700023,15700124,15700149,15700168,15700186,15700190,15700201,15700208&usg=ALkJrhg6cIYeUqDKbK5tT8nJPtUDbgBcOw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值