php網(wǎng)站搭建長尾關(guān)鍵詞搜索網(wǎng)站
1、開發(fā)環(huán)境及工具準(zhǔn)備
Rockchip Linux 軟件包:linux-5.10-gen-rkr4
主機(jī):
-
安裝VMware搭建虛擬機(jī),版本為Ubuntu 20.04 (硬盤容量大于100G)
-
安裝遠(yuǎn)程連接工具M(jìn)obaXterm(可連接虛擬機(jī)方便文件傳輸)
2、SDK編譯環(huán)境搭建
2.1、安裝庫和工具集:
sudo apt-get install git ssh make gcc libssl-dev liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev libgucharmap-2-90-dev bzip2 expat gpgv2 cpp-aarch64-linux-gnu time mtd-utils
2.2、創(chuàng)建工作目錄
mkdir ~/RK3588
2.3、拷貝SDK至工作目錄
可通過MobaXterm實現(xiàn)PC與虛擬機(jī)之間傳輸文件
2.4、解壓SDK
解壓命令:
cat linux-5.10-gen-rkr4.tar.gzaa* | tar xzvf -
2.5、檢查和升級軟件包
- 檢查make版本(要求make 4.0及以上版本)
make -v
GNU Make 4.2
Built for x86_64-pc-linux-gnu
- 升級make版本
git clone https://github.com/mirror/make.git
cd make
git checkout 4.2
git am $BUILDROOT_DIR/package/make/*.patch
autoreconf -f -i
./configure
make make -j8
sudo install -m 0755 make /usr/bin/make
- 檢查lz4版本(要求安裝 lz4 1.7.3及以上版本)
lz4 -v
*** LZ4 command line interface 64-bits v1.9.4, by Yann Collet ***
refusing to read from a console
- 升級lz4版本
git clone https://github.com/lz4/lz4.git
cd lz4
make
sudo make install
sudo install -m 0755 lz4 /usr/bin/lz4
- 檢查和升級git版本
git clone https://github.com/mirror/make.git --depth 1 -b 4.2
cd make
git am $BUILDROOT_DIR/package/make/*.patch
autoreconf -f -i
./configure
make make -j8
install -m 0755 make /usr/local/bin/make
2.6、git配置
在~/RK3588/linux-5.10-gen-rkr4目錄下
git config --global user.name "your name"
git config --global user.email "your mail"
2.7、安裝repo
mkdir ~/bin
export PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo
chmod a+x ~/bin/repo
3、編譯SDK
可參考 device/rockchip/common/README.md 編譯說明。
3.1、SDK編譯命令查看
make help
3.2、SDK配置:
可通過make lunch
或者./build.sh lunch
進(jìn)?配置,其他功能的配置可通過make menuconfig
來配置相關(guān)屬性
3.3、全自動編譯
進(jìn)?~/RK3588/linux-5.10-gen-rkr4目錄執(zhí)?以下命令?動完成所有的編譯:
./build.sh all # 只編譯模塊代碼(u-Boot,kernel,Rootfs,Recovery)
# 需要再執(zhí)?./mkfirmware.sh 進(jìn)?固件打包
./build.sh # 編譯模塊代碼(u-Boot,kernel,Rootfs,Recovery)
# 打包成update.img完整升級包
# 所有編譯信息復(fù)制和?成到out?錄下
默認(rèn)是 Buildroot,可以通過設(shè)置壞境變量 RK_ROOTFS_SYSTEM 指定不同 rootfs。
RK_ROOTFS_SYSTEM ?前可設(shè)定三種系統(tǒng):buildroot、debian、 yocto 。
比如需要生成debian的命令如下:
export RK_ROOTFS_SYSTEM=debian
./build.sh
3.4、模塊編譯
./build.sh uboot
./build.sh kernel
./build.sh recovery
./build.sh rootfs
...
4、燒寫固件
4.1、安裝燒錄工具
-
Windows 驅(qū)動安裝助手:
~/RK3588/linux-5.10-gen-rkr4/tools/windows/DriverAssitant_v5.12.zip
-
Windows 燒寫?具:
~/RK3588/linux-5.10-gen-rkr4/tools/windows/RKDevTool_Release_v3.15
4.2、打包工具
主要?于各分?固件打包成?個完整的update.img固件?便升級。
生成固件路徑:/tools/linux/Linux_Pack_Firmware/rockdev
./mkupdate.sh
4.3、燒錄固件
運(yùn)行DriverAssitant_v5.12里面的DriverInstall.exe,先選擇驅(qū)動卸載,然后再選擇驅(qū)動安裝。
打開RKDevTool.exe工具,給開發(fā)板上電并且用Type-C線與PC端連接,工具能識別到開發(fā)板的三種狀態(tài):
-
MASKROM
開發(fā)板處于裸機(jī)狀態(tài),沒有運(yùn)行任何程序或者按住板載的maskrom按鍵上電
-
LOADER
開發(fā)板在系統(tǒng)、uboot輸入命令
reboot loader
或者按住板載的recovery按鍵(有些開發(fā)板沒有引出)上電 -
ADB
系統(tǒng)正在運(yùn)行
4.3.1、燒寫完整系統(tǒng)固件
通過Type-C數(shù)據(jù)線連接開發(fā)板與pc,運(yùn)行RKDevTool.exe。若驅(qū)動安裝沒有問題,工具會識別到兩種情況:發(fā)現(xiàn)一個MASKROM設(shè)備
和發(fā)現(xiàn)一個ADB設(shè)備
- 自動識別到MASKROM設(shè)備,如圖:
按【升級固件】按鈕,點擊【固件】選擇要升級的固件文件(SDK編譯的固件是update.img),固件包含完整的分區(qū)鏡像
加載固件之后,點擊【升級】按鈕,等待燒寫完成即可
- 自動識別到ADB設(shè)備,如圖:
? 注:若顯示發(fā)現(xiàn)一個ADB設(shè)備,則在升級固件界面點擊【切換】即可進(jìn)入loader燒錄模式
- 按【固件】按鈕,選擇要升級的固件文件,加載固件之后,點擊【升級】按鈕,等待燒寫完成即可。
4.3.2、燒寫分區(qū)固件
在開發(fā)中會有很多情況遇到只想要燒錄uboot、kernel、system分區(qū)不想更新完整固件的情況,這個可以借助工具做到
這里以更新kernel分區(qū)來舉例:
首先讓開發(fā)板處于loader模式,可以在系統(tǒng)或者uboot輸入命令reboot loader
按照上面的步驟執(zhí)行。
注意,一定要先點擊【設(shè)備分區(qū)表】,讀取設(shè)備分區(qū)鏡像的地址會顯示在右邊,如上圖所示讀取內(nèi)核的地址0x0000C800與配置的一致所以可以直接執(zhí)行
5、ADB使用
這里主要介紹windows下使用adb進(jìn)行調(diào)試
步驟:
-
下載windows版本的adb.zip,解壓到C:\adb
-
配置環(huán)境變量:
1、鍵盤按鍵:win + r
2、打開“系統(tǒng)屬性”窗口
3、“高級”→“環(huán)境變量”→“系統(tǒng)變量”
4、找到“Path”雙擊,新建,復(fù)制adb路徑進(jìn)去,點擊“確定”按鈕,添加成功
-
常用的adb命令
adb help //可查看所有命令adb versionadb start-server //啟動adb服務(wù)adb kill-server //關(guān)閉adb服務(wù)adb devicesadb shelladb push [-p] <local> <remote>adb pull [-p] [-a] <remote> [<local>]