logo资料库

Orange pi PC(H3)移植linux总结.pdf

第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
资料共16页,剩余部分请下载后查看
Orange pi PC(H3)移植 linux 总结 一、 编译前的准备 By BobLiang/QQ:106030169 on 2017-5-11 1) 安装 VMware Workstation 2) 安装 32 位 Ubuntu1604 3) 安装 VMTools 4) 安装特定版本的两种交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf,记住不 能 使 用 版 本 : arm-linux-gnueabihf-gcc-5 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 参考小撸的博客:https://0w0.pw/Mainline_U-Boot.html 新手都喜欢用最新版本的软件,如果已经了这个 5.4.0 版本改怎么办? 那就先看 apt-cache 有哪些版本,然后在指定安装非 5.4.0 版本 命令: apt-cache showpkg gcc-arm-linux-gnueabihf 安装指定版本的编译器(以下指定安装 4.8.2 版本,根据本地 apt-cache 选择不同 版本来安装) 命令:apt-get install gcc-arm-linux-gnueabihf=4:4.8.2-1 另外,这个交叉编译器 gcc-arm-linux-gnueabi 也不能用 5.4.0 命令:apt-get install gcc-arm-linux-gnueabi=4:4.7.2-1 不知道什么原因,交叉编译有时候会自动升级到最新版本。 5) 安装 jdk,安装过程网上很多,下面是使用的版本 二、 获取内核源码 git clone https://github.com/orangepi-xunlong/orangepi_h3_linux.git 这个是最新的内核源码,包含两个内核在里面,当然 u-boot 也在里面了。
里面有 u-boot 编译脚本,主线内核编译脚本和非主线内核编译脚本 三、 编译 u-boot ./build_mainline_uboot.sh pc 其他板子参考 README.md 文件,不过是英文的,幸亏我在蓝翔的时候学过一点英语。
u-boot 编译后界面: 提示没有文件:u-boot-sunxi-with-spl.bin,真是要命,u-boot-sunxi-with-spl.bin 文件才是我们 要 写 入 SD 卡 的 文 件 。 粗 略 看 了 下 u-boot 目 录 下 的 Makefile 文 件 , 发 现 在 转 换 为 u-boot-sunxi-with-spl.bin 的时候出错了。 Makefile 摘取: …… ifneq ($(CONFIG_ARCH_SUNXI),) u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img u-boot.dtb FORCE endif …… 其 中 u-boot-sunxi-with-spl.bin 是 另 外 一 个 文 件 .u-boot-sunxi-with-spl.bin.cmd , 主 要 是 用 binman 工具转换 xx_spl.bin 文件,其中的错误也不想深究了,于是不用脚本编译了,直接下 发命令编译。 1) 配置单板类型 $(call if_changed,binman) 命令: make CROSS_COMPILE=arm-linux-gnueabihf- orangepi_pc_defconfig 主要是目的是将默认配置文件 orangepi_pc_defconfig 去覆盖.config 2) 编译 u-boot 命令:make CROSS_COMPILE=arm-linux-gnueabihf- 用 arm-linux-gnueabi 也可以,两者只是浮点方案不一样。不用纠结这个了 3) 编译结果
于是得到了我们想要的文件 u-boot-sunxi-with-spl.bin 四、 烧写 u-boot-sunxi-with-spl.bin 到 SD 启动分区 1) 烧写之前,先将 SD 卡分区(其实烧写不一定要分区,只是我认为这个是一个好习惯) a) 查看设备: dmesg|tail -20 b) 看挂载点:df –l c) 卸载挂载
注意一定要卸载挂载,因为在 ubuntu1604 一旦连接 U 盘它就自动给你挂载了,如 果没有卸载挂载点,那么后面的分区无法保存成功,最后导致分区失败。我刚刚开 始的时候就踩到这个坑了。 d) 分区:sudo fdisk /dev/sdb
e) 修改分区格式:启动分区 100MB 为 FAT32,另外一个分区默认 ext,记得 w 保存退出
f) 格式化分区:sudo mkfs.vfat /dev/sdb1 和 sudo mkfs.ext3 /dev/sdb2
需要稍等,有点慢。。。 2) 用 dd 命令烧写 u-boot-sunxi-with-spl.bin 3) 测试 u-boot-sunxi-with-spl.bin 把 SD 卡安装在 H3 的板子上并上电,看看串口(波特率 115200)终端打印的信息: 五、 编译内核(主线内核)
分享到:
收藏