NanoPi NEO Air使用七:获取并编译U-boot和Linux的源码
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的源码相关推荐
- linux编译安装的好处,Linux学习—源码安装
源码安装--可以按照自己的需求安装,这是源码安装的好处,而二进制安装无法选择 大部分的源码安装步骤大致相同,具体细节可以参考解压缩之后的README和INSTALL README: 介绍了软件包的功能 ...
- NanoPi NEO Air使用十五:移植RTL8723BU驱动
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
- NanoPi NEO Air使用十一:编写SPI驱动点亮TFT屏幕,ST7789V
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
- NanoPi NEO Air使用十:自己编写驱动来控制LED
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
- NanoPi NEO Air使用九:使用Linux内核自带的LED驱动
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
- NanoPi NEO Air使用八:编写个简单的驱动和应用程序
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
- NanoPi NEO Air使用六:使用摄像头
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
- NanoPi NEO Air使用五:安装Xfce和xrdp,实现远程访问
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
- NanoPi NEO Air使用四:操作GPIO
NanoPi NEO Air使用一:介绍 NanoPi NEO Air使用二:固件烧录 NanoPi NEO Air使用三:OverlayFS.CPU温度和频率.wifi.蓝牙.npi-config ...
最新文章
- VINS-Mono:一种鲁棒且通用的单目视觉惯性系统
- 在博客园添加Lisp(或其它)代码高亮
- latex hyperref_LaTeX 使用心得
- 计算机改成服务器,旧电脑主机如何改成服务器
- rust笔记8 collections基础
- C#交错数组与多维数组区别
- TUIO+激光投影互动
- 在服务器上搭建Cadence16.6 CIS共享库
- 微信小程序后台服务器搭建
- 极客空间-MySQL实战45天-第四天
- [BZOJ4134][JZOJ4401]ljw和lzr的hack比赛
- 阿里 P9 用 500 多页手册完成双十一高并发秒杀系统,绝了
- 在visio中不借助公式编辑器在字母上方打波浪线
- 问卷星破除输入框粘贴限制的两种方法
- 用数组+链表实现哈希表
- 自制快速冒烟测试小工具--基于python多线程
- 解决win10开机后死机:您操作系统的MSXML组件版本过低,导致启动失败。请到微软官方网站升级该组件后重试。
- HDMI之InfoFrame
- USB PD芯片HUSB361实现15W~65W高效低耗的快充电源设计
- Bacnet4J订阅COV报文
热门文章
- android socket 收不到数据,android Socket服务端接收客户端数据问题
- android连接usb外设通讯_iOS App连接外设的几种方式
- mysql主主和F5高可用_MYSQL 主主热备高可用方案与实现
- BciPy: 一款基于Python用于BCI研究的开源软件
- 字节腾讯阿里罕见联手:发布直播技术新标准,要让手机直播像电视一样丝滑...
- 沐创密码芯片获奖!中国电子学会年度技术发明一等奖,颁给国产集成电路公司...
- 谷歌最新视频抠图术:影子烟雾都能抠,添加水印更顺滑,UP主剪辑利器 | 开源...
- Linux二十年产权官司告终:IBM赔偿近亿元,期间“熬死”一位起诉方
- 这块DIY墨水屏手表火了!外观可盐可甜,无线蓝牙计步闹钟一应俱全 | 开源
- 7小时44分最佳,睡多睡少都不好,养成习惯也没用