1. 程式人生 > >將linux或安卓系統刷到開發板

將linux或安卓系統刷到開發板

刷機原理

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命令列

[[email protected]]#

5>fastboot刷機

確保:usb線以及連線

a>在uboot的shell中執行fastboot

[[email protected]]# fastboot

b>在電腦上執行刷機命令

[[email protected]]# sudo fastboot devices

[[email protected]]# sudo fastboot flash ubootpak ./ubootpak.bin

[[email protected]]# sudo fastboot flash boot ./boot.img

[[email protected]]# sudo fastboot flash system ./rootfs.ext2

c>切換到minicom

minicom中執行Ctrl+C

[[email protected]]#

6>修改環境變數

目的:告訴告訴開發板核心和根的位置

注意:以下命令在開發板上(也就是minicom中)執行

bootloader啟動後3s如果沒有敲鍵盤則bootloder會預設執行環境變數bootcmd指定的操作

[[email protected]]# set bootcmd "ext4load mmc 2:1 0x48000000 uImage;bootm 0x48000000"

解釋:ext4load 命令  從emmc中把檔案載入到記憶體

     uImage 被載入的檔案

     mmc 固定

     2:1  2代表第二個裝置 板子上有三個mmc裝置(sd0, sd1, emmc)

     0x48000000 開發板的記憶體地址

     bootm 命令 啟動核心

注意:接下來要告訴核心根的位置

[[email protected]]# set bootargs root=/dev/mmcblk0p2 tp=gslx680-linux

注意:如果是mipi介面的螢幕,需要增加一個引數lcd=wy070ml

解釋:bootargs這個環境變數的值最終會傳給核心

     root 指定根的位置

     /dev/mmcblk0p2

核心啟動後會識別emmc,emmc被識別為/dev/mmcblk0

兩個分割槽分別被識別為/dev/mmcblk0p1 /dev/mmcblk0p2

     tp執行觸控式螢幕的型別

注意:環境變數修改後需要儲存

[[email protected]]# save

7>重啟開發板

如果正常的話會進入linux系統

在開發板的螢幕上會出現基於QT5的介面

minicom中會出現要求登入的介面(使用者名稱root,密碼123456)

Android系統:

1>在開發板執行fastboot命令

[[email protected]]# fastboot

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

  [[email protected]]# sudo fastboot flash ubootpak ubootpak.bin

  [[email protected]]# sudo fastboot flash boot boot.img

  [[email protected]]# sudo fastboot flash system system.img

  [[email protected]]# sudo fastboot flash userdata userdata.img

  [[email protected]]# sudo fastboot flash  cache cache.img

3>修改環境變數

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

[[email protected]]# set bootargs lcd=vs070cxn tp=gslx680

[[email protected]]# save

[[email protected]]# reset

Android安裝軟體

adb 可以通過usb控制android系統

安裝adb:

[[email protected]]# sudo apt install android-tools-adb

利用adb給Android系統安裝軟體:

[[email protected]]# adb devices

[[email protected]]# adb install 100Project.apk