S5P6818开发板刷Linux和Android系统

一、Andriod系统和Linux系统
Android手机
emmc{bootloader uImage ramdisk [system][data][cache][storage]}
bootloader---->uImage---->ramdisk(内存)
/system 系统软件
/data 用户自己安装的软件\通讯录\配置
/cache
/storage 用户软件产生的数据
Android系统的rom:
bootloader
uImage
ramdisk
system.img
userdata.img
cache.img

针对我们的开发板:
emmc{bootloader [uImage ramdisk][system][data][cache][storage]}
Android系统的rom:
bootloader
boot.img
system.img
userdata.img
cache.img

Linux系统:
emmc{booloader uImage [rootfs]}
Linux系统的rom:
bootloader

uImage
rootfs.img
针对我们的开发板:
emmc{booloader [uImage][rootfs]}
Linux系统的rom:
bootloader 
boot.img
rootfs.img
=========================================================
二、刷机原理
1.板子首次启动需要sd卡启动
2.sd中的bootloader启动后运行fastboot命令进入刷机模式
3.pc把刷机rom发送给开发板,开发板的fastboot把收到的镜像文件写到emmc的合适位置

三、刷机
刷机Linux系统:
Linux系统rom:/home/arm/6818/s5p6818sdk_lzy1/Linux/images
S5P6818如果从sd卡启动,会从sd卡的第二个扇区读取bootloader
sd{512bytes|bootloader [--------------------][-----------------]}
 /dev/sdx       /dev/sdx1        /dev/sdx2

1>建立sd分区

一. 查看sd卡设备
 
在这里sda是我的电脑硬盘,sdbsd卡的设备文件


.卸载sd卡分区
 


.查看sd卡原有分区

 

.删除sd卡原有分区



.建立新的分区



.设置文件系统类型

 


.格式化新分区

 

2>bootloader烧写到sd卡

电脑端进入Linux系统所在目录,执行:
sudo dd if=./ubootpak.bin of=/dev/sdx seek=1

注:sdx不同电脑可能不同,如我得我电脑是mmcblko;
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 port 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>开发板和电脑使用串口转USB线连接
d>给开发板上电(或者重启),在minicom中观察启动过程
d>在启动后,minicom中会有倒计时,在倒计时完成前敲键盘的任意键
e>敲任意键后板子会进入uboot提供的shell命令行
[llm@Uboot]#

5>fastboot刷机
确保:usb线以及连接
a>在uboot的shell中执行fastboot
[llm@Uboot]# fastboot
b>在电脑上执行刷机命令

注:前提是进入linux系统所在目录
[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
[llm@Uboot]#
6>修改环境变量
目的:告诉告诉开发板内核和根的位置
注意:以下命令在开发板上(也就是minicom中)执行
bootloader启动后3s如果没有敲键盘则bootloder会默认执行环境变量bootcmd指定的操作
[llm@Uboot]# set bootcmd "ext4load mmc 2:1 0x48000000 uImage;bootm 0x48000000"
解释:ext4load 命令 从emmc中把文件加载到内存
      uImage 被加载的文件
      mmc 固定
      2:1  2代表第二个设备 板子上有三个mmc设备(sd0, sd1, emmc)
      0x48000000 开发板的内存地址
      bootm 命令 启动内核
注意:接下来要告诉内核根的位置
[llm@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执行触摸屏的类型
注意:环境变量修改后需要保存
[llm@Uboot]# save
7>重启开发板
如果正常的话会进入linux系统
在开发板的屏幕上会出现基于QT5的界面 
minicom中会出现要求登录的界面(用户名root,密码123456)

Android系统:

注:系统存放在/home/arm/6818/s5p6818sdk_lzy1/Andriod/release
1>在开发板运行fastboot命令
[zyli@Uboot]# fastboot
2>在PC上依次执行如下命令

注:前提是进入Android系统所在目录
  [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

猜你喜欢

转载自blog.csdn.net/qq_40618124/article/details/80912034
今日推荐