0
点赞
收藏
分享

微信扫一扫

Linux产品封装发布​

Linux产品封装发布

SD卡启动设备(本地挂载根文件系统)​

SD卡连接虚拟机linux中

用linux中的GParted软件分区和格式化

需要先卸载设备挂载才能对设备进行分区操作

格式化为ext4文件系统

根文件系统拷贝sd卡

如果sd卡没有自己挂载需要自己手动挂载

用GParted软件或用mount指令

根文件拷贝sd卡

sudo cp /home/wbyq/rootfs/* /sd目录 -rap

一定要要指令保存属性复制界面复制对库文件无效

设置uboot环境变量

setenv bootargs root=/dev/mmcblk0p1 rootfstype=ext4 console=ttySAC0,115200 init=/linuxrc ctp=2 skipcali=y lcd=S702

saveenv

注意mmcblk0p1 k0 表示启动设备 p1表示第一的分区

emmc启动设备(本地挂载根文件系统)​

2.1 烧写sd卡中的u-boot到emmc​

emmc open 1;movi r f 0 40000000;movi w z f 1 40000000;movi r b 0 40000000;movi w z b 1 40000000;movi r u 0 40000000;movi w z u 1 40000000;movi r t 0 40000000;movi w z t 1 40000000;emmc close 1;

中间不能有空格

2.2 查看EMMC卡基本信息​

emmc启动uboot

TINY4412 > mmcinfo 0

Device: S5P_MSHC4

Manufacturer ID: 15

OEM: 100

Name: M4G1Y

Tran Speed: 0

Rd Block Len: 512

MMC version 4.0 //mmc版本,4.0

High Capacity: Yes

Size: 3728MB (block: 7634944)

Bus Width: 8-bit //数据总线宽度,8位

Boot Partition Size: 2048 KB


2.3 给emmc分区​

我们分为3个分区:

TINY4412 > fdisk -c 0 3000 200 200

Count: 10000

Count: 9999

Count: 9998

fdisk is completed

partion # size(MB) block start # block count partition_Id

1 193 7100016 395274 0x0C

2 3000 134244 6145392 0x83

3 200 6279636 410190 0x83

4 200 6689826 410190 0x83

我们在命令下只是输入3个分区大小,得到的这3个分区是exte3格式分区。


2.3 格式化各个分区​

格式化第一个分区fat分区,作为系统分区使用:

TINY4412 > fatformat mmc 1:1

..................

TINY4412 >


第二、三、四分区作为用户分区使用:

TINY4412 > ext3format mmc 1:2

..................

TINY4412 > ext3format mmc 1:3

..................

TINY4412 > ext3format mmc 1:4

..................

TINY4412 >

一定要对emmc进行分区,如果不分区格式化不能启动fastboot

2.4 Uboot启动fastboot​

TINY4412 # fastboot

[Partition table on MoviNAND]

ptn 0 name='fwbl1' start=0x1000A len=N/A (use hard-coded info. (cmd: movi))

ptn 1 name='bl2' start=N/A len=N/A (use hard-coded info. (cmd: movi))

ptn 2 name='bootloader' start=N/A len=N/A (use hard-coded info. (cmd: movi))

ptn 3 name='tzsw' start=N/A len=N/A (use hard-coded info. (cmd: movi))

ptn 4 name='kernel' start=N/A len=N/A (use hard-coded info. (cmd: movi))

ptn 5 name='ramdisk' start=N/A len=0x6800(~27262976KB) (use hard-coded info. (cmd: movi))

ptn 6 name='system' start=0x1000A len=0x2EE2B8(~-1148526592KB)

ptn 7 name='userdata' start=0x1000A len=0x32127(~210017280KB)

ptn 8 name='cache' start=0x1000A len=0x32127(~210017280KB)

ptn 9 name='fat' start=0x1000A len=0x30405(~202380288KB)

OTG cable Connected!

时候电脑会把开板识别为手机。

micro USB插上开发板与电脑连接然后桥接到虚拟机linux中

2.5 安装fastboot驱动​

Linux产品封装发布​_linux


网络的建议自动跟新驱动

fastboot的usb驱动是usb_driver.zip解压出来

Linux产品封装发布​_sd卡_02


Linux产品封装发布​_linux_03


Linux产品封装发布​_开发板_04



如果安装过程出现签名不对,那么需要关闭的驱动签名

如果是Windows 8上系统,需要关闭驱动数字签名操作步骤如下:

管理员方式运行cmd终端,输入以下命令:

bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS

使用管理员的身份打开CMD命令行,然后输入上面的命令并执行,完成之后重新启动计算机。


如果安装过程中弹出Win8安装驱动时提示“哈希值不在指定的目录文件中

如下图:

Linux产品封装发布​_sd卡_05


解决办法如下

1、Windows键+C,或鼠标屏幕右下角

2、设置→更多电脑设置

3、左边选常规,右下角重新启动

上面3个步骤也可用这个方法替代:

Windows键+R

输入: shutdown.exe /r /o /f /t 00

然后点击“确定”(注意确定后系统会重启)


4、等几秒钟会出现三个选项,选择疑难解答

5、高级选项→启动设置→重启

6、重启的时候就出来安全模式列表→选择“禁用强制驱动程序”



OK,重新开机后,驱动程序可以正常安装

Linux产品封装发布​_linux_06



2.6 烧写emmc​

桥接到linux 虚拟机

在虚拟机linux终端中输入命令

sudo fastboot devices //查看fastboot设备

SMDKEXYNOS-01 fastboot


BL1

sudo fastboot flash fwbl1 /home/wbyq/E4412_N.bl1.bin //路径根据自己的实际位置填写

..................

烧写BL2

sudo fastboot flash bl2 /home/wbyq/bl2.bin //路径根据自己的实际位置填写

..................

烧写uboot

sudo fastboot flash bootloader /home/wbyq/u-boot.bin //路径根据自己的实际位置填写

..................

烧写uboot加密文件

sudo fastboot flash tzsw /home/wbyq/E4412_tzsw.bin //路径根据自己的实际位置填写

..................

烧写内核

sudo fastboot flash kernel /home/wbyq/zImage //路径根据自己的实际位置填写

..................



制作根文件系统压缩包

sudo make_ext4fs -s -l 3000M /home/wbyq/rootfs.ext4 /home/wbyq/rootfs


make_ext4fs命令行解释:

语法:make_ext4fs -s -l <长度> <输出> <目录>

-s 表示制作压缩型的镜像(sparse_image_file),这个参数很重要,不然如果不压缩,data分区有5Gb大小,刷不进手机;

-l <长度> ,指定分区的大小;


烧写根文件包

sudo fastboot flash system /home/wbyq/rootfs.ext4 //路径根据自己的实际位置填写

..................


烧写完成

emmc启动uboot设置环境变量

TINY4412 # setenv bootargs root=/dev/mmcblk0p2 rootfstype=ext4 cnotallow=ttySAC0,115200 init=/linuxrc ctp=2 skipcali=y lcd=S702

TINY4412 # save

mmcblk0p2这个参数很重要

k0表示启动的设备

p2表示第二块分区


至此sd和emmc都能用直接启动。

三、EMMC挂载方式二​

1. 下面代码将SD卡的内核与U-BOOT拷贝到EMMC里。

需要设置开发板为SD卡启动,在U-BOOT启动的命令行输入以下代码。

movi r f 0 40000000;emmc open 1;movi w z f 1 40000000;emmc close 1;

movi r b 0 40000000;emmc open 1;movi w z b 1 40000000;emmc close 1;

movi r u 0 40000000;emmc open 1;movi w z u 1 40000000;emmc close 1;

movi r t 0 40000000;emmc open 1;movi w z t 1 40000000;emmc close 1;

movi r k 0 40000000;movi w k 1 40000000;


注意:完成了上面步骤---以下开发板都从EMMC启动-->:


2. 格式化EMMC为ext3

fdisk -c 0 320 2057 520

fatformat mmc 0:1

ext3format mmc 0:2

ext3format mmc 0:3

ext3format mmc 0:4


3. 为了把文件系统烧写到EMMC的第三个分区,先回到虚拟机里,把根文件系统打包为压缩文件。

[xiaolong@localhost XL4412_root]# tar -cf all.tar ./*


4. 因为需要在虚拟机里拷贝文件系统压缩包到emmc的第三分区,所以需要先用网络方式挂载文件系统,修改uboot中的bootargs环境变量。

set bootargs root=/dev/nfs nfsroot=192.168.18.3:/work_User/BUSYBOX/XL4412_root ip=192.168.18.123:192.168.18.3:192.168.18.1:255.255.255.0::eth0:off init=/linuxrc cnotallow=ttySAC0 lcd=s70

设置完环境变量记得保存,saveenv

  1. 开发板从EMMC卡启动,复位开发板,引导内核启动,挂载文件系统。
  2. 把EMMC第三分区(/dev/mmcblk0p3)挂载到/mnt目录下。

Xiaolong /# mount /dev/mmcblk0p3 /mnt


7.拷贝压缩之后的文件系统到emmc第三个分区。

进入到mnt目录里,拷贝之前压缩的文件系统压缩包。

Xiaolong /mnt# cp /all.tar ./


8.拷贝成功后,解压压缩包

Xiaolong /mnt# tar xvf all.tar


9.解压成功后,设置bootargs启动路径

set bootargs noinitrd root=/dev/mmcblk0p3 rootfstype=ext3 cnotallow=ttySAC0,115200 init=/linuxrc ctp=2 lcd=S70


  1. 拔掉网线,设置开发板从EMMC启动,复位开发板。观察串口打印的信息,是否成功挂载文件系统。


举报

相关推荐

0 条评论