NanoPi NEO Air使用一:介绍
NanoPi NEO Air使用二:固件烧录
NanoPi NEO Air使用三:OverlayFS、CPU温度和频率、wifi、蓝牙、npi-config
NanoPi NEO Air使用四:操作GPIO
NanoPi NEO Air使用五:安装Xfce和xrdp,实现远程访问
NanoPi NEO Air使用六:使用摄像头
NanoPi NEO Air使用七:获取并编译U-boot和Linux的源码
NanoPi NEO Air使用八:编写个简单的驱动和应用程序
NanoPi NEO Air使用九:使用Linux内核自带的LED驱动
NanoPi NEO Air使用十:自己编写驱动来控制LED
NanoPi NEO Air使用十一:编写SPI驱动点亮TFT屏幕,ST7789V

安装交叉编译器

访问此处下载地址的toolchain目录,下载交叉编译器arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz,然后解压编译器:

mkdir -p /opt/FriendlyARM/toolchain
tar xf arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz -C /opt/FriendlyARM/toolchain/

然后将编译器的路径加入到PATH中,用vi编辑vi ~/.bashrc,在末尾加入以下内容:

export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH
export GCC_COLORS=auto

执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:

. ~/.bashrc

这个编译器是64位的,不能在32位的Linux系统上运行,安装完成后,你可以快速的验证是否安装成功:

arm-linux-gcc -v
gcc version 4.9.3 (ctng-1.21.0-229g-FA)

编译U-boot

下载U-boot源码,并切换分支:

git clone https://github.com/friendlyarm/u-boot.git -b sunxi-v2017.x --depth 1

编译U-boot:

apt-get install swig python-dev python3-dev
cd u-boot
make nanopi_h3_defconfig ARCH=arm CROSS_COMPILE=arm-linux-
make ARCH=arm CROSS_COMPILE=arm-linux-


如果提示make命令找不到,使用sudo apt install make命令来安装

这里使用的配置文件nanopi_h3_defconfig可以支持友善电子所有的H3/H2+的开发板。
编译成功后会生成文件u-boot-sunxi-with-spl.bin。

更新TF上的U-boot:

执行如下命令更新U-boot:

cd u-boot
dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8
sync && eject /dev/sdX

/dev/sdx请替换为实际的TF卡设备文件名。
sync命令可以确保数据成功写到TF卡中,eject命令用于弹出TF卡。


可以根据U-boot的编译日期来判断U-boot是否被更新。

使用SCP在线更新U-boot:

当正在使用TF卡运行系统时,也可以先用scp命令拷贝u-boot-sunxi-with-spl.bin到开发板上,然后用dd命令更新SD卡上的U-boot:

scp u-boot-sunxi-with-spl.bin root@192.168.0.101:/boot/
dd if=/boot/u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8

如果是带有eMMC的开发板,当正在使用eMMC运行系统时,也可以先用scp命令拷贝u-boot-sunxi-with-spl.bin到开发板上,然后用dd命令更新eMMC上的U-boot:

scp u-boot-sunxi-with-spl.bin root@192.168.0.101:/boot/
dd if=/boot/u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8

NanoPi H3/H2+开发板的启动设备的设备节点总是/dev/mmcblk0。

编译Linux内核

下载Linux内核源码,并切换分支:

$ git clone https://github.com/friendlyarm/linux.git -b sunxi-4.14.y --depth 1

编译和更新Linux内核:

$ apt-get install u-boot-tools
$ cd linux
$ touch .scmversion
$ make sunxi_defconfig ARCH=arm CROSS_COMPILE=arm-linux-
$ make zImage dtbs ARCH=arm CROSS_COMPILE=arm-linux-

编译完成后会在arch/arm/boot/目录下生成zImage,并且在arch/arm/boot/dts/目录下生成dtb文件。

将TF卡插入PC中,使用df -h查看TF中boot分区所在路径

使用命令mkdir /mnt/tmp在/mnt下新建tmp文件夹
使用命令mount /dev/sdb1 /mnt/tmp把TF的boot分区挂载到/mnt/tmp

执行如下命令更新TF卡上的zImage和dtb文件:

$ cp arch/arm/boot/zImage /mnt/tmp
$ cp arch/arm/boot/dts/sun8i-*-nanopi-*.dtb /mnt/tmp

使用SCP在线更新内核

$ scp arch/arm/boot/zImage root@192.168.0.103:/boot
$ scp arch/arm/boot/dts/sun8i-*-nanopi-*.dtb root@192.168.0.103:/boot

编译和更新驱动模块:

$ cd linux
$ make modules ARCH=arm CROSS_COMPILE=arm-linux-

假设TF卡的rootfs分区挂载在/mnt/tmp,更新SD卡上rootfs的驱动模块:

$ cd linux
$ make modules_install INSTALL_MOD_PATH=/mnt/tmp ARCH=arm CROSS_COMPILE=arm-linux-

NanoPi NEO Air使用七:获取并编译U-boot和Linux的源码相关推荐

  1. linux编译安装的好处,Linux学习—源码安装

    源码安装--可以按照自己的需求安装,这是源码安装的好处,而二进制安装无法选择 大部分的源码安装步骤大致相同,具体细节可以参考解压缩之后的README和INSTALL README: 介绍了软件包的功能 ...

  2. NanoPi NEO Air使用十五:移植RTL8723BU驱动

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

  3. NanoPi NEO Air使用十一:编写SPI驱动点亮TFT屏幕,ST7789V

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

  4. NanoPi NEO Air使用十:自己编写驱动来控制LED

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

  5. NanoPi NEO Air使用九:使用Linux内核自带的LED驱动

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

  6. NanoPi NEO Air使用八:编写个简单的驱动和应用程序

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

  7. NanoPi NEO Air使用六:使用摄像头

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

  8. NanoPi NEO Air使用五:安装Xfce和xrdp,实现远程访问

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

  9. NanoPi NEO Air使用四:操作GPIO

    NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...

最新文章

  1. VINS-Mono:一种鲁棒且通用的单目视觉惯性系统
  2. 在博客园添加Lisp(或其它)代码高亮
  3. latex hyperref_LaTeX 使用心得
  4. 计算机改成服务器,旧电脑主机如何改成服务器
  5. rust笔记8 collections基础
  6. C#交错数组与多维数组区别
  7. TUIO+激光投影互动
  8. 在服务器上搭建Cadence16.6 CIS共享库
  9. 微信小程序后台服务器搭建
  10. 极客空间-MySQL实战45天-第四天
  11. [BZOJ4134][JZOJ4401]ljw和lzr的hack比赛
  12. 阿里 P9 用 500 多页手册完成双十一高并发秒杀系统,绝了
  13. 在visio中不借助公式编辑器在字母上方打波浪线
  14. 问卷星破除输入框粘贴限制的两种方法
  15. 用数组+链表实现哈希表
  16. 自制快速冒烟测试小工具--基于python多线程
  17. 解决win10开机后死机:您操作系统的MSXML组件版本过低,导致启动失败。请到微软官方网站升级该组件后重试。
  18. HDMI之InfoFrame
  19. USB PD芯片HUSB361实现15W~65W高效低耗的快充电源设计
  20. Bacnet4J订阅COV报文

热门文章

  1. android socket 收不到数据,android Socket服务端接收客户端数据问题
  2. android连接usb外设通讯_iOS App连接外设的几种方式
  3. mysql主主和F5高可用_MYSQL 主主热备高可用方案与实现
  4. BciPy: 一款基于Python用于BCI研究的开源软件
  5. 字节腾讯阿里罕见联手:发布直播技术新标准,要让手机直播像电视一样丝滑...
  6. 沐创密码芯片获奖!中国电子学会年度技术发明一等奖,颁给国产集成电路公司...
  7. 谷歌最新视频抠图术:影子烟雾都能抠,添加水印更顺滑,UP主剪辑利器 | 开源...
  8. Linux二十年产权官司告终:IBM赔偿近亿元,期间“熬死”一位起诉方
  9. 这块DIY墨水屏手表火了!外观可盐可甜,无线蓝牙计步闹钟一应俱全 | 开源
  10. 7小时44分最佳,睡多睡少都不好,养成习惯也没用