openEuler 20.03 LTS面向RK3399移植系列(4)—可运行在Firefly-Rk-3399上的openEuler镜像制作步骤

任务动机:根据openEuler社区任务要求,制作可运行在Firefly-RK-3399上的openEuler镜像。

任务描述:开发完成后,总结制作步骤形成文档。

1. 制作rootfs镜像

1.1 安装openEuler到树莓派

        参考https://gitee.com/openeuler/raspberrypi

1.2 构建rootfs

        确保树莓派与本地在同一局域网内:(树莓派通过网线与本地机连到同一路由器)

        (1)查看ip地址

image-20201021203627131

        (2)ssh连接

ssh root@192.168.15.71

image-20201021203810329

        (3)树莓派连接wifi(可不操作)

        获取无线网卡 wlan0信息

ip a

image-20201021204059159

        扫描可以连接的 wifi 信息

nmcli dev wifi

image-20201021204706142

        连接wifi

nmcli dev wifi connect 1106 password *********

        (4)创建 RPM 数据库

mkdir rootfs

mkdir -p rootfs/var/lib/rpm

rpm --root  /rootfs/ --initdb

        (5)下载安装 openEuler 发布包

rpm -ivh --nodeps --root /root/rootfs/ http://repo.openeuler.org/openEuler-20.03-LTS/everything/aarch64/Packages/openEuler-release-20.03LTS-33.oe1.aarch64.rpm

image-20201021205554254

        在/root/rootfs下生成3个文件夹:

image-20201021211115014

        (6)添加 yum 源

mkdir /root/rootfs/etc/yum.repos.d

curl -o /root/rootfs/etc/yum.repos.d/openEuler-20.03-LTS.repo https://gitee.com/src-openeuler/openEuler-repos/raw/openEuler-20.03-LTS/generic.repo

image-20201021211350800

        (7)安装dnf

dnf --installroot=/root/rootfs/ install dnf --nogpgcheck -y(多执行几次)

image-20201021213431983

        (8)安装必要软件

dnf --installroot=/root/rootfs/ makecache

image-20201021213622486

dnf --installroot=/root/rootfs/ install -y alsa-utils wpa_supplicant vim net-tools iproute iputils NetworkManager openssh-server passwd hostname ntp bluez pulseaudio-module-bluetooth

image-20201021214004513

        (9)添加配置文件

  1. 设置 DNS

    cp -L /etc/resolv.conf ${WORKDIR}/rootfs/etc/resolv.conf

    编辑添加 nameserver

    vim ${WORKDIR}/rootfs/etc/resolv.conf

    内容:

    nameserver 8.8.8.8
    nameserver 114.114.114.114

    2. 设置 IP 自动获取

mkdir ${WORKDIR}/rootfs/etc/sysconfig/network-scripts
vim ${WORKDIR}/rootfs/etc/sysconfig/network-scripts/ifup-eth0

        内容:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=851a6f36-e65c-3a43-8f4a-78fd0fc09dc9
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999
DEVICE=eth0

        (10)rootfs设置

        1. 挂载必要的路径

mount --bind /dev ${WORKDIR}/rootfs/dev
mount -t proc /proc ${WORKDIR}/rootfs/proc
mount -t sysfs /sys ${WORKDIR}/rootfs/sys

        2. run chroot

chroot ${WORKDIR}/rootfs /bin/bash

        3. 设置root密码

passwd root

        输入要设置的root密码。

        4. 设置主机名

echo openEuler > /etc/hostname

        5. 设置默认时区为东八区

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

        6. 退出

exit

       7. 取消临时挂载的目录

umount -l ${WORKDIR}/rootfs/dev

umount -l ${WORKDIR}/rootfs/proc

umount -l ${WORKDIR}/rootfs/sys

        (11)制作镜像

        1. dd创建镜像

dd if=/dev/zero of=rootfs.img bs=1M count=3000

image-20201026093237442

        2. 格式化镜像

mkfs.ext4 rootfs.img

image-20201026093338649

        3. 挂载镜像

mkdir rootfsimg
mount rootfs.img rootfsimg/
cp -rfp rootfs/* rootfsimg/

        4. 卸载镜像

umount rootfsimg/

image-20201026093909457

        5. 镜像压缩

e2fsck -p -f rootfs.img  
resize2fs -M rootfs.img

image-20201026094423666

        6. 镜像传到本地

        退出树莓派的ssh连接,切换到本地

scp root@192.168.15.71:/root/rootfs.img /home/wzq/rootfsimg

image-20201026095519578

2. 准备openEuler镜像刷写环境

        环境:Windows;AndroidTool2.58

        (1)工具

        AndroidTool2.58可以在官网直接下载工具,如果下载过RK3399镜像,那么在镜像的解压文件里也有。

image-20201102181357109

        (2)文件

        在rockdev文件夹中新建文件夹“image”

        将刚才制作的rootfs.img及RK3399需要的固件放在image文件夹下(其他文件可通过解包ubuntu18.04的镜像获得)

image-20201102191743026

        mkupdate.bat文件(rockdev文件夹下)

mklink /J Image ..\..\..\..\rockdev
Afptool -pack ./ Image\update.img

RKImageMaker.exe -RK330C Image\MiniLoaderAll.bin  Image\update.img update.img -os_type:androidos

rem update.img is new format, Image\update.img is old format, so delete older format
del  Image\update.img

pause 

       package-file文件(rockdev文件夹下)

# NAME		Relative path
#
#HWDEF		HWDEF
package-file	package-file
bootloader	Image/MiniLoaderAll.bin
parameter	Image/parameter.txt
trust		Image/trust.img
uboot		Image/uboot.img
boot		Image/boot.img
misc		Image/misc.img
recovery	Image/recovery.img
rootfs:grow		Image/rootfs.img
backup		RESERVED

3. 制作openEuler镜像

        双击运行mkupdate.bat文件

         rootfs.img较其他文件大,需要稍微等一下

image-20201102192413360

image-20201102192534795

       完成之后会在rockdev文件夹中生成update.img

image-20201102192628921

4. 烧写镜像

       (1)打开AndroidTool.exe工具,设备进入loader模式

       按住recovery,按一下reset,工具显示进入loader模式之后,松开recovery,大约2s

image-20201102193111404

        (2)选择生成的update.img,升级固件(固件加载需要一会时间)

image-20201102193226194

        注:关于AndroidTool.exe的使用可参考官方说明:http://www.t-firefly.com/product/rk3399.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值