环境:
HelperA64开发板
Linux3.10内核
时间:2019.01.11
目标:编译helloword模块
![](https://i-blog.csdnimg.cn/blog_migrate/05e9e2577699492bf7e05a24261d8d20.png)
1.当出先下面错误时候,查找问题,命令dmesg |tail查看下打印LOG。
![](https://i-blog.csdnimg.cn/blog_migrate/f02e9ad00682bf3db9e8479dfce167a5.png)
问题为Make的时候默认为PC-X86的编译器,所以我们需要切换为arm编译器来交叉编译。
![](https://i-blog.csdnimg.cn/blog_migrate/0816b959db72aa4b263fefe578ba8c8f.png)
2.切换为arm交叉编译环境:
方法一:修改/etc/bash.bashrc文件(此文件只对当前用户适用):$sudo vi /etc/bash.bashrc
export PATH=~/helpera64/lichee/out/external-toolchain/gcc-aarch64/bin:$PATH
方法二:修改/etc/profile文件(此文件属于系统级别的环境变量,设置在里面的东西对所有用户适用):$sudo vi /etc/profile
export PATH=~/helpera64/lichee/out/external-toolchain/gcc-aarch64/bin:$PATH
立即使新的环境变量生效,不用重启电脑:
对应方法一:$ source /root/.bashrc
对应方法二:$ source /etc/profile
测试是否安装成功
$ aarch64-linux-gnu-gcc -v
![](https://i-blog.csdnimg.cn/blog_migrate/6b25a10e2da6b85ddd6ee2042bdc114c.png)
3、直接编译内核和模块:
交叉编译内核:make -C ~/helpera64/lichee/linux-3.10/ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
交叉编译编译模块:make -C ~/home/helpera64/lichee/linux-3.10/ M=$PWD modules ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
![](https://i-blog.csdnimg.cn/blog_migrate/cb708bb89f3ee68e4500c9c3182a8c27.png)
4、helloworld对应的makefile:
![](https://i-blog.csdnimg.cn/blog_migrate/d813810834c118bbf8f7467033d1ee32.png)
5.开启ssh:将网络打开ifconfig eth0 up,然后执行udhcpc如下图,之后执行/etc/init.d/S50sshd restart,打开ssh。
![](https://i-blog.csdnimg.cn/blog_migrate/fe9aaafa33910728325088a13fb660ec.png)
5.结果
![](https://i-blog.csdnimg.cn/blog_migrate/23ca6fbe6d01c34fecb227b0123fbb33.png)