全志H3编译Linux-4.14 BSP

学习笔记-全志H3编译Linux-4.14 BSP


1 安装交叉编译器

访问此处下载地址的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编辑~/.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)
2 下载和编译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-

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

更新SD上的U-boot:
将SD卡插入PC中,然后执行如下命令:

$ 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卡。

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

$ scp u-boot-sunxi-with-spl.bin root@192.168.1.230:/root/
$ dd if=/root/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.1.230:/root/
$ dd if=/root/u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8

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

3 下载和编译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文件。

假设SD卡的boot分区挂载在/media/SD/boot/,更新SD卡上的zImagedtb文件:

$ cp arch/arm/boot/zImage /media/SD/boot/
$ cp arch/arm/boot/dts/sun8i-*-nanopi-*.dtb /media/SD/boot/

也可以用scp命令通过网络更新:

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

编译和更新驱动模块:

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

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

$ cd linux
$ make modules_install INSTALL_MOD_PATH=/media/SD/rootfs/ ARCH=arm CROSS_COMPILE=arm-linux-
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
全志H3是一款基于ARM架构的处理器,它广泛应用于嵌入式系统和物联网设备中。要进行H3的Linux移植,可以按照以下步骤进行操作: 1. 准备开发环境:首先需要搭建好交叉编译环境,包括安装交叉编译工具链和相关的开发工具。 2. 获取内核源码:从全志官方或其他可靠的渠道获取H3的内核源码。 3. 配置内核:根据具体的硬件平台和需求,对内核进行配置。可以使用全志提供的配置文件作为基础,如引用[3]中的env.cfg文件。根据实际情况,可以修改配置文件中的参数,如设置启动参数、分区大小等。引用[1]和[2]中的内容提供了一些具体的配置示例。 4. 编译内核:使用交叉编译工具编译内核源码,生成可执行的内核镜像文件。 5. 烧录内核:将编译生成的内核镜像文件烧录到目标设备的存储介质中,如SD卡或闪存。 6. 配置启动参数:根据具体的启动方式,配置引导加载程序(如U-Boot)的启动参数,以正确加载和启动内核。 7. 测试和调试:将烧录好的设备连接到目标设备上,进行测试和调试,确保系统正常启动并能够运行所需的应用程序。 需要注意的是,以上步骤只是一个大致的指导,具体的移植过程可能因硬件平台和需求的不同而有所差异。在实际操作中,可能还需要进行一些额外的配置和调整。建议参考全志官方提供的文档和社区中的讨论,以获取更详细和准确的移植教程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坂田民工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值