本文主要是介绍NanoPi M2编译Debian步骤详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
为Nanopi编译debian系统的方法在官方的手册上已经有详细的介绍,但从linux新手的角度,不仅应该会编译,还可以尝试下理解其每一步的含义。环境与准备:
1、Ubuntu kylin 16.0( 64位!!! )
2、Git
3、 https://github.com/friendlyarm 中的各个文件
零、安装git
如果小伙伴完全是新手,刚刚安装好乌班图,为了日后方便可以先安装Git。
首先在Ubuntu下打开终端(ctrl+alt+t),输入以下代码:
sudo apt-get install git-core
apt-get install:从软件源安装
一、安装交叉编译链
编译系统实际上是将相关的源码(如uboot、linux内核)转换为可执行的文件。
交叉编译:是A机器(我们的电脑)上编译生成,运行在B机器(Nanopi)上。两个机子有不同的机器指令。
工具链:一般由编译器、连接器、解释器和调试器组成。
首先在Ubuntu (有图形界面的) 下打开终端(ctrl+alt+t),输入以下代码获得交叉编译链。不过过程可能比较漫长。如果小伙伴还没有完全脱离Windows以及图形界面,可以直接使用浏览器前往该页面使用迅雷等工具下载。
git clone https://github.com/friendlyarm/prebuilts.git
sudo mkdir -p /opt/FriendlyARM/toolchain
-p:mkdir的参数,意思为建立上层目录
/opt/FriendlyARM/toolchain:新创建的目录的路径
接着输入( 注意这是一行命令而不是两行 ) :
sudo tar xf prebuilts/gcc-x64/arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz -C /opt/FriendlyARM/toolchain/
prebuilts/gcc-x64/arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz:被解压文件的路径
-C:参数,意思是改变解压后的路径
/opt/FriendlyARM/toolchain/:解压后的文件路径
然后将编译器的路径加入到PATH中,方法如下:
使用nano文本编辑器编辑.bashrc
nano ~/.bashrc
.bashrc:这个文件主要保存个人的一些个性化设置,如命令别名、路径等。
在文件的末尾(拼命按page down或者下光标)加入以下内容:
export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH
export GCC_COLORS=auto
/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH:编译工具所在的目录
按组合键ctrl+o保存,按组合键ctrl+z退出nano。
执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:
. ~/.bashrc
arm-linux-gcc -v
Using built-in specs.
COLLECT_GCC=arm-linux-gcc
COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolchain/4.9.3/libexec/gcc/arm-cortexa9-linux-gnueabihf/4.9.3/lto-wrapper
Target: arm-cortexa9-linux-gnueabihf
Configured with: /work/toolchain/build/src/gcc-4.9.3/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=arm-cortexa9-linux-gnueabihf --prefix=/opt/FriendlyARM/toolchain/4.9.3 --with-sysroot=/opt/FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root --enable-languages=c,c++ --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3 --with-float=hard --with-pkgversion=ctng-1.21.0-229g-FA --with-bugurl=http://www.friendlyarm.com/ --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libsanitizer --with-gmp=/work/toolchain/build/arm-cortexa9-linux-gnueabihf/buildtools --with-mpfr=/work/toolchain/build/arm-cortexa9-linux-gnueabihf/buildtools --with-mpc=/work/toolchain/build/arm-cortexa9-linux-gnueabihf/buildtools --with-isl=/work/toolchain/build/arm-cortexa9-linux-gnueabihf/buildtools --with-cloog=/work/toolchain/build/arm-cortexa9-linux-gnueabihf/buildtools --with-libelf=/work/toolchain/build/arm-cortexa9-linux-gnueabihf/buildtools --enable-lto --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --enable-threads=posix --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-gold --disable-multilib --with-local-prefix=/opt/FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root --enable-long-long
Thread model: posix
gcc version 4.9.3 (ctng-1.21.0-229g-FA)
二、编译u-boot 首先下载u-boot源码,两种方法参考上文,这里就不重复了。
git clone https://github.com/friendlyarm/uboot_nanopi2.git
cd uboot_nanopi2
git checkout nanopi2-lollipop-mr1
make s5p4418_nanopi2_config
make CROSS_COMPILE=arm-linux-
三:编译内核
安装mkimage:
sudo apt-get install u-boot-tools
下载内核源码,这里就不赘述了:
git clone https://github.com/friendlyarm/linux-3.4.y.git
cd linux-3.4.y
git checkout nanopi2-lollipop-mr1
make nanopi2_linux_defconfig
创建文件:
touch .scmversion
如果fileA不存在,touch指令会在当前目录下新建一个空白文件fileA。 编译内核:
make uImage
若要更改内核或者编译其他内核就要各位小伙伴自行探索了。笔者也是新手,望各位大牛提出宝贵建议或意见,O(∩_∩)O谢谢
这篇关于NanoPi M2编译Debian步骤详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!