RK3399 Linux tools/update.img unpack and pack/mkupdate Linux host for ARM64/Ubuntu18

36 篇文章 0 订阅
13 篇文章 0 订阅

Refer to https://blog.csdn.net/hushui/article/details/97771341 

for RK3288/Linux 

 

Update for RK3399/Linux/202004 

 

1. tools for mkupdate/unpack

https://github.com/rockchip-linux/tools.git

 

2. RK3399  branch 

[lake@localhost tools]$ git checkout  remotes/origin/rk3399
Note: checking out 'remotes/origin/rk3399'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 059959f... rk3399: update tools to 20180418
 

[lake@localhost tools]$ cd linux/Linux_Pack_Firmware/rockdev/


[lake@localhost Linux_Pack_Firmware]$ ls
rockdev.zip
[lake@localhost Linux_Pack_Firmware]$ unzip  rockdev.zip
Archive:  rockdev.zip
   creating: rockdev/
  inflating: rockdev/mkupdate.sh
  inflating: rockdev/package-file
  inflating: rockdev/unpack.sh
  inflating: rockdev/readme.txt
  inflating: rockdev/afptool
  inflating: rockdev/rkImageMaker
   creating: rockdev/Image/
[lake@localhost Linux_Pack_Firmware]$
 

[lake@localhost Linux_Pack_Firmware]$ ls
rockdev  rockdev.zip
[lake@localhost Linux_Pack_Firmware]$ cd rockdev/
[lake@localhost rockdev]$ ls -l
total 1708
-rwxr-xr-x. 1 lake lake 1398134 Apr  2  2018 afptool
drwxr-xr-x. 2 lake lake    4096 Apr  9  2018 Image
-rwxr-xr-x. 1 lake lake     537 Apr  9  2018 mkupdate.sh
-rwxr-xr-x. 1 lake lake     620 Apr  8  2018 package-file
-rwxr-xr-x. 1 lake lake     407 Apr  9  2018 readme.txt
-rwxr-xr-x. 1 lake lake  325822 Jan 22  2018 rkImageMaker
-rwxr-xr-x. 1 lake lake     470 Apr  2  2018 unpack.sh
[lake@localhost rockdev]$
 

3. AIO-3399C-UBUNTU18.04-GPT-20190304-1225.img.tar.gz

 $tar zxf AIO-3399C-UBUNTU18.04-GPT-20190304-1225.img.tar.gz
[lake@localhost Rockchip]$ ls -l pack/
total 2354136
-rw-rw-r--. 1 lake lake 2410611160 Mar  4  2019 AIO-3399C-UBUNTU18.04-GPT-20190304-1225.img
drwxrwxr-x. 4 lake lake       4096 Mar  4  2019 AndroidTool
drwxrwxr-x. 2 lake lake       4096 Mar  4  2019 commit
drwxrwxr-x. 2 lake lake       4096 Mar  4  2019 Linux_Upgrade_Tool
-rw-rw-r--. 1 lake lake       1009 Mar  4  2019 README.txt
[lake@localhost Rockchip]$

 

 

4. unpack 

 

[lake@localhost rockdev]$ ln -s ~/Rockchip/pack/AIO-3399C-UBUNTU18.04-GPT-20190304-1225.img   update.img

[lake@localhost rockdev]$ ls -l
total 1716
-rwxr-xr-x. 1 lake lake 1398134 Apr  2  2018 afptool
drwxr-xr-x. 2 lake lake    4096 Apr  9  2018 Image
-rwxr-xr-x. 1 lake lake     537 Apr  9  2018 mkupdate.sh
-rwxr-xr-x. 1 lake lake     620 Apr  8  2018 package-file
-rwxr-xr-x. 1 lake lake     407 Apr  9  2018 readme.txt
-rwxr-xr-x. 1 lake lake  325822 Jan 22  2018 rkImageMaker
-rwxr-xr-x. 1 lake lake     470 Apr  2  2018 unpack.sh
lrwxrwxrwx. 1 lake lake      68 Apr 19 21:20 update.img -> /home/lake/Rockchip/pack/AIO-3399C-UBUNTU18.04-GPT-20190304-1225.img


[lake@localhost rockdev]$ ./unpack.sh
start to unpack update.img...
********RKImageMaker ver 1.66********
Unpacking image, please wait...
Exporting boot.bin
Exporting firmware.img
Unpacking image success.
Android Firmware Package Tool v1.62
Check file... OK
------- UNPACK ------
package-file    0x0000000000000800      0x00000000000000F3
Image/MiniLoaderAll.bin 0x0000000000001000      0x000000000004394E
Image/parameter.txt     0x0000000000045000      0x0000000000000188
Image/trust.img 0x0000000000045800      0x0000000000400000
Image/uboot.img 0x0000000000445800      0x0000000000400000
Image/boot.img  0x0000000000845800      0x000000000137B800
Image/rootfs.img        0x0000000001BC1000      0x000000008DEEB800
Unpack firmware OK!
------ OK ------
Unpacking update.img OK.
Press any key to quit:
[lake@localhost rockdev]$

[lake@localhost rockdev]$ ls -l output/
total 284
drwxrwxr-x. 2 lake lake   4096 Apr 19 21:20 Image
-rw-rw-r--. 1 lake lake 276814 Apr 19 21:20 MiniLoaderAll.bin
-rw-rw-r--. 1 lake lake    243 Apr 19 21:20 package-file
-rw-rw-r--. 1 lake lake    392 Apr 19 21:20 parameter.txt
[lake@localhost rockdev]$ ls -l output/Image/
total 2353572
-rw-rw-r--. 1 lake lake   20428800 Apr 19 21:20 boot.img
-rw-rw-r--. 1 lake lake 2381232128 Apr 19 21:20 rootfs.img
-rw-rw-r--. 1 lake lake    4194304 Apr 19 21:20 trust.img
-rw-rw-r--. 1 lake lake    4194304 Apr 19 21:20 uboot.img
 

 

5. mkupdate.sh 

Note    default rockdev/package-file is for Android, NOT for Linux. 

[lake@localhost rockdev]$ mv output/package-file   .
[lake@localhost rockdev]$ mv output/MiniLoaderAll.bin  output/parameter.txt  output/Image/*  Image/
[lake@localhost rockdev]$ ls
afptool  Image  mkupdate.sh  package-file  readme.txt  rkImageMaker  unpack.sh
[lake@localhost rockdev]$ ls -l Image/
total 2353848
-rw-rw-r--. 1 lake lake   20428800 Apr 19 21:20 boot.img
-rw-rw-r--. 1 lake lake     276814 Apr 19 21:20 MiniLoaderAll.bin
-rw-rw-r--. 1 lake lake        392 Apr 19 21:20 parameter.txt
-rw-rw-r--. 1 lake lake 2381232128 Apr 19 21:20 rootfs.img
-rw-rw-r--. 1 lake lake    4194304 Apr 19 21:20 trust.img
-rw-rw-r--. 1 lake lake    4194304 Apr 19 21:20 uboot.img

5.1  Replace boot.img/new build 

 

[lake@localhost rockdev]$ cp ~/Rockchip/boot.img Image/
[lake@localhost rockdev]$ ./mkupdate.sh
start to make update.img...
Android Firmware Package Tool v1.62
------ PACKAGE ------
Add file: ./package-file
Add file: ./Image/MiniLoaderAll.bin
Add file: ./Image/parameter.txt
Add file: ./Image/trust.img
Add file: ./Image/uboot.img
Add file: ./Image/boot.img
Add file: ./Image/rootfs.img
Add CRC...
Make firmware OK!
------ OK ------
********RKImageMaker ver 1.66********
Generating new image, please wait...
Writing head info...
Writing boot file...
Writing firmware...
Generating MD5 data...
MD5 data generated successfully!
New image generated successfully!
Making update.img OK.
[lake@localhost rockdev]$
 

5.2  mkupdate

[lake@localhost rockdev]$ ./mkupdate.sh
start to make update.img...
Android Firmware Package Tool v1.62
------ PACKAGE ------
Add file: ./package-file
Add file: ./Image/MiniLoaderAll.bin
Add file: ./Image/parameter.txt
Add file: ./Image/trust.img
Add file: ./Image/uboot.img
Add file: ./Image/boot.img
Add file: ./Image/rootfs.img
Add CRC...
Make firmware OK!
------ OK ------
********RKImageMaker ver 1.66********
Generating new image, please wait...
Writing head info...
Writing boot file...
Writing firmware...
Generating MD5 data...
MD5 data generated successfully!
New image generated successfully!
Making update.img OK.
[lake@localhost rockdev]$
 

 

5.3  resize2fs  rootfs.img to get more space for docker app inside

 

[lake@localhost Image]$ e2fsck -f rootfs.img
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
rootfs: 95977/97696 files (0.3% non-contiguous), 2321326/2325422 blocks
[lake@localhost Image]$  resize2fs   -p rootfs.img   2511497
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on rootfs.img to 2511497 (1k) blocks.
Begin pass 2 (max = 12)
Relocating blocks             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 284)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on rootfs.img is now 2511497 blocks long.

[lake@localhost Image]$ sudo mount rootfs.img   /mnt/loop/
[lake@localhost Image]$ cd /mnt/loop/
[lake@localhost loop]$ sudo  tar zxf ~/Rockchip/ubuntu18-arm64-rk3399-docker.tgz
[lake@localhost loop]$ df  |grep loop
/dev/loop0       2496525  2473847         0 100% /mnt/loop
[lake@localhost loop]$

[lake@localhost loop]$ cd  -
/home/lake/Rockchip/tools/linux/Linux_Pack_Firmware/rockdev/Image
[lake@localhost Image]$ sudo  umount  /mnt/loop
[lake@localhost Image]$ cd ..
[lake@localhost rockdev]$ ./mkupdate.sh
start to make update.img...
Android Firmware Package Tool v1.62
------ PACKAGE ------
Add file: ./package-file
Add file: ./Image/MiniLoaderAll.bin
Add file: ./Image/parameter.txt
Add file: ./Image/trust.img
Add file: ./Image/uboot.img
Add file: ./Image/boot.img
Add file: ./Image/rootfs.img
Add CRC...
Make firmware OK!
------ OK ------
********RKImageMaker ver 1.66********
Generating new image, please wait...
Writing head info...
Writing boot file...
Writing firmware...
Generating MD5 data...
MD5 data generated successfully!
New image generated successfully!
Making update.img OK.
[lake@localhost rockdev]$ mv Image/update.img  ~/Rockchip/AIO-3399C-UBUNTU18.04-GPT-20190419-docker.img
[lake@localhost rockdev]$

##############################

###########  Note  Ubuntu ARM has resize2fs.service for the 1st boot.

Refer to  

[lake@ qemu_static_ubuntu18-arm]$ cat  ubuntu18-desktop-arm64/lib/systemd/system/resize2fs.service
# Khadas resize2fs service - From Armbian
# Resizes partition and filesystem on first/second boot
# This service may block the boot process for up to 5 minutes

[Unit]
Description=Khadas filesystem resize service
Before=basic.target
After=sysinit.target local-fs.target
DefaultDependencies=no

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash /etc/init.d/resize2fs start
TimeoutStartSec=5min

[Install]
WantedBy=basic.target
[lake@galaxy nfs]$
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值