将linux或安卓系统刷到开发板

来源:互联网 发布:怎么用c语言输入n个数 编辑:程序博客网 时间:2024/06/06 11:00

刷机原理

1.板子首次启动需要sd卡启动

2.sd中的bootloader启动后运行fastboot命令进入刷机模式

3.pc把刷机rom发送给开发板,开发板的fastboot把收到的镜像文件写到emmc的合适位置

 

刷机

刷机Linux系统:

Linux系统rom:/home/zyli/6818/s5p6818sdk_lzy1/Linux/images

S5P6818如果从sd卡启动,会从sd卡的第二个扇区读取bootloader

sd{512bytes|bootloader [--------------------][-----------------]}

  /dev/sdx             /dev/sdx1      /dev/sdx2

 

1>建立sd分区

参考<建立sd卡分区.mp4>

2>把bootloader烧写到sd卡

sudo dd if=./ubootpak.bin of=/dev/sdx seek=1

3>配置minicom

安装:sudo apt-get install minicom

配置:sudo minicom -s

           +-----[configuration]------+

                | Filenames and paths      |

                | File transfer protocols  |

                | Serial port setup        |

                | Modem and dialing        |

                | Screen and keyboard      |

                | Save setup as dfl        |

                | Save setup as..          |

                | Exit                     |

                | Exit from Minicom        |

                +--------------------------+

   选择Serial porthangh setup

    +------------------------------------------+

         | A -    Serial Device      : /dev/ttyUSB0 |

         | B - Lockfile Location     : /var/lock    |

         | C -   Callin Program      :              |

         | D -  Callout Program      :              |

         | E -    Bps/Par/Bits       : 115200 8N1   |

         | F - Hardware Flow Control : No           |

         | G - Software Flow Control : No           |

         |                                          |

         |    Change which setting?                 |

         +------------------------------------------+

运行:sudo minicom

 

4>在开发板上运行uboot,在minicom中观察启动过程

a>运行minicom

b>把sd卡插入卡槽(前提是在sd卡中烧写了bootloader)

c>给开发板上电(或者重启),在minicom中观察启动过程

d>在启动后,minicom中会有倒计时,在倒计时完成前敲键盘的任意键

e>敲任意键后板子会进入uboot提供的shell命令行

[zyli@Uboot]#

5>fastboot刷机

确保:usb线以及连接

a>在uboot的shell中执行fastboot

[zyli@Uboot]# fastboot

b>在电脑上执行刷机命令

[ubuntu@Ubuntu]# sudo fastboot devices

[ubuntu@Ubuntu]# sudo fastboot flash ubootpak ./ubootpak.bin

[ubuntu@Ubuntu]# sudo fastboot flash boot ./boot.img

[ubuntu@Ubuntu]# sudo fastboot flash system ./rootfs.ext2

c>切换到minicom

minicom中执行Ctrl+C

[zyli@Uboot]#

6>修改环境变量

目的:告诉告诉开发板内核和根的位置

注意:以下命令在开发板上(也就是minicom中)执行

bootloader启动后3s如果没有敲键盘则bootloder会默认执行环境变量bootcmd指定的操作

[zyli@Uboot]# set bootcmd "ext4load mmc 2:1 0x48000000 uImage;bootm 0x48000000"

解释:ext4load 命令  从emmc中把文件加载到内存

     uImage 被加载的文件

     mmc 固定

     2:1  2代表第二个设备 板子上有三个mmc设备(sd0, sd1, emmc)

     0x48000000 开发板的内存地址

     bootm 命令 启动内核

 

注意:接下来要告诉内核根的位置

[zyli@Uboot]# set bootargs root=/dev/mmcblk0p2 tp=gslx680-linux

注意:如果是mipi接口的屏幕,需要增加一个参数lcd=wy070ml

解释:bootargs这个环境变量的值最终会传给内核

     root 指定根的位置

     /dev/mmcblk0p2

内核启动后会识别emmc,emmc被识别为/dev/mmcblk0

两个分区分别被识别为/dev/mmcblk0p1 /dev/mmcblk0p2

     tp执行触摸屏的类型

 

注意:环境变量修改后需要保存

[zyli@Uboot]# save

7>重启开发板

如果正常的话会进入linux系统

在开发板的屏幕上会出现基于QT5的界面

minicom中会出现要求登录的界面(用户名root,密码123456)

 

Android系统:

1>在开发板运行fastboot命令

[zyli@Uboot]# fastboot

2>在PC上依次执行如下命令

  [ubuntu@Ubuntu]# sudo fastboot flash ubootpak ubootpak.bin

  [ubuntu@Ubuntu]# sudo fastboot flash boot boot.img

  [ubuntu@Ubuntu]# sudo fastboot flash system system.img

  [ubuntu@Ubuntu]# sudo fastboot flash userdata userdata.img

  [ubuntu@Ubuntu]# sudo fastboot flash  cache cache.img

3>修改环境变量

[zyli@Uboot]# set bootcmd "ext4load mmc 2:1 0x48000000 uImage;ext4load mmc 2:1 0x49000000 root.img.gz;bootm 0x48000000"

[zyli@Uboot]# set bootargs lcd=vs070cxn tp=gslx680

[zyli@Uboot]# save

[zyli@Uboot]# reset

Android安装软件

adb 可以通过usb控制android系统

安装adb:

[ubuntu@Ubuntu]# sudo apt install android-tools-adb

利用adb给Android系统安装软件:

[ubuntu@Ubuntu]# adb devices

[ubuntu@Ubuntu]# adb install 100Project.apk

阅读全文
0 0
原创粉丝点击