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