国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

從零構(gòu)建嵌入式Linux系統(tǒng)鏡像:U-Boot、內(nèi)核與根文件系統(tǒng)實(shí)戰(zhàn)指南

從零構(gòu)建嵌入式Linux系統(tǒng)鏡像:U-Boot、內(nèi)核與根文件系統(tǒng)實(shí)戰(zhàn)指南 1. 項(xiàng)目概述為什么需要親手制作嵌入式Linux系統(tǒng)鏡像如果你玩過(guò)樹莓派、香橙派這類開發(fā)板或者接觸過(guò)工業(yè)網(wǎng)關(guān)、智能攝像頭這些嵌入式設(shè)備大概率都接觸過(guò)“刷系統(tǒng)”這個(gè)操作。通常是從官網(wǎng)下載一個(gè)現(xiàn)成的.img文件用工具寫到SD卡里上電就能跑。這很方便但就像吃預(yù)制菜你永遠(yuǎn)不知道里面到底加了什么料也不知道當(dāng)你的硬件稍有不同時(shí)它會(huì)不會(huì)“水土不服”。自己動(dòng)手制作一個(gè)嵌入式Linux系統(tǒng)鏡像就是從零開始“備菜、炒菜”的過(guò)程。這個(gè)過(guò)程的核心價(jià)值在于掌控力和定制化。你能夠精確控制系統(tǒng)里包含哪些軟件包、內(nèi)核配置了哪些驅(qū)動(dòng)、文件系統(tǒng)如何布局、甚至開機(jī)第一個(gè)運(yùn)行的程序是什么。這對(duì)于產(chǎn)品開發(fā)、性能優(yōu)化、安全加固和問(wèn)題調(diào)試來(lái)說(shuō)是至關(guān)重要的基礎(chǔ)能力?;赟D卡制作則是嵌入式開發(fā)中最經(jīng)典、最直觀的入門方式它繞開了復(fù)雜的燒錄器讓硬件和軟件的交互變得觸手可及。簡(jiǎn)單來(lái)說(shuō)這不是一個(gè)炫技的操作而是一個(gè)嵌入式開發(fā)者必須掌握的、解決實(shí)際問(wèn)題的基本功。2. 核心思路與方案選型從零構(gòu)建的路徑選擇制作一個(gè)可啟動(dòng)的Linux系統(tǒng)鏡像本質(zhì)上是準(zhǔn)備三個(gè)核心部件引導(dǎo)加載程序Bootloader、Linux內(nèi)核Kernel和根文件系統(tǒng)Root Filesystem并按照硬件規(guī)定的格式把它們正確地放置到存儲(chǔ)介質(zhì)這里是SD卡的特定位置。目前主流的有兩種構(gòu)建思路它們的選擇取決于你的目標(biāo)、硬件平臺(tái)和開發(fā)階段。2.1 方案一使用構(gòu)建系統(tǒng)如Buildroot/Yocto Project這是用于產(chǎn)品級(jí)開發(fā)的“工業(yè)流水線”。Buildroot和Yocto Project這類工具允許你通過(guò)配置菜單或腳本從源碼自動(dòng)交叉編譯出包括Bootloader、內(nèi)核、根文件系統(tǒng)在內(nèi)的完整系統(tǒng)鏡像。它們能解決復(fù)雜的依賴關(guān)系生成高度定制化且可復(fù)現(xiàn)的系統(tǒng)。優(yōu)點(diǎn)自動(dòng)化程度高可復(fù)現(xiàn)性強(qiáng)適合管理復(fù)雜項(xiàng)目能生成最精簡(jiǎn)的系統(tǒng)。缺點(diǎn)學(xué)習(xí)曲線陡峭初始配置耗時(shí)編譯過(guò)程長(zhǎng)首次可能數(shù)小時(shí)對(duì)理解底層細(xì)節(jié)幫助有限。適用場(chǎng)景產(chǎn)品量產(chǎn)、需要嚴(yán)格版本控制、追求極致系統(tǒng)尺寸的正式項(xiàng)目。2.2 方案二手動(dòng)組合與部署本方案重點(diǎn)這是我們本次采用的方法也是理解系統(tǒng)啟動(dòng)鏈條最直觀的方式。我們會(huì)分別準(zhǔn)備或編譯好U-Boot最流行的Bootloader、Linux內(nèi)核然后準(zhǔn)備一個(gè)基本的根文件系統(tǒng)例如使用Debian/Ubuntu的基礎(chǔ)文件系統(tǒng)最后手動(dòng)將它們“組裝”到SD卡上。優(yōu)點(diǎn)過(guò)程透明每一步都可控極大加深對(duì)系統(tǒng)啟動(dòng)流程、磁盤分區(qū)、文件系統(tǒng)的理解。調(diào)試時(shí)可以單獨(dú)替換某個(gè)部件如只更新內(nèi)核非常靈活。缺點(diǎn)步驟繁瑣需要手動(dòng)處理一些依賴和配置。適用場(chǎng)景學(xué)習(xí)、原型驗(yàn)證、深度定制、以及希望透徹理解系統(tǒng)構(gòu)成的開發(fā)者。注意對(duì)于像樹莓派這類“閉源Bootloader”的板子其Bootloaderbootcode.bin, start.elf是博通提供的二進(jìn)制固件我們無(wú)法替換。我們的“手動(dòng)”主要體現(xiàn)在配置內(nèi)核和根文件系統(tǒng)上但分區(qū)和部署邏輯是相通的。為什么選擇手動(dòng)方案作為講解主線因?yàn)橹挥杏H手“拆裝”一遍你才能真正明白當(dāng)你按下開發(fā)板電源鍵后芯片內(nèi)部到底發(fā)生了什么系統(tǒng)是如何一步步從SD卡里“活”過(guò)來(lái)的。這份理解是解決后續(xù)各種詭異啟動(dòng)問(wèn)題、性能瓶頸和定制需求的基石。3. 環(huán)境準(zhǔn)備與工具鏈搭建在開始“組裝”系統(tǒng)之前我們需要一個(gè)工作車間和一套順手的工具。這個(gè)車間就是你的宿主機(jī)通常是一臺(tái)x86_64的Linux PC或虛擬機(jī)工具就是交叉編譯工具鏈。3.1 宿主機(jī)環(huán)境確保你的宿主機(jī)是Linux系統(tǒng)Ubuntu 20.04/22.04 Debian等是常見(jiàn)選擇。你需要安裝一些基礎(chǔ)工具sudo apt update sudo apt install -y build-essential git bison flex libssl-dev libncurses-dev \ parted dosfstools mtools u-boot-tools device-tree-compiler \ qemu-user-static bc rsyncbuild-essential提供gcc, make等編譯工具。git用于獲取源碼。bison, flex某些源碼編譯所需的語(yǔ)法分析器。libssl-dev, libncurses-dev編譯內(nèi)核和U-Boot常用的開發(fā)庫(kù)。parted, dosfstools, mtools用于對(duì)SD卡進(jìn)行分區(qū)和創(chuàng)建文件系統(tǒng)。u-boot-tools提供制作U-Boot鏡像的工具如mkimage。device-tree-compiler (dtc)編譯設(shè)備樹源文件.dts為二進(jìn)制文件.dtb。qemu-user-static關(guān)鍵工具它允許我們?cè)趚86宿主機(jī)上運(yùn)行為ARM編譯的程序用于后續(xù)構(gòu)建根文件系統(tǒng)時(shí)的chroot環(huán)境。bc, rsync編譯內(nèi)核和高效文件同步所需。3.2 獲取交叉編譯工具鏈我們的宿主機(jī)是x86架構(gòu)目標(biāo)板如ARM Cortex-A系列是另一種架構(gòu)。我們需要一個(gè)“翻譯官”——交叉編譯器它運(yùn)行在x86上但生成ARM架構(gòu)的可執(zhí)行文件。獲取方式從芯片廠商或開發(fā)板供應(yīng)商獲取這是最推薦的方式。例如NXP i.MX系列提供gcc-arm-none-eabiRockchip提供專門的工具鏈。它們通常針對(duì)自家芯片的微架構(gòu)如Cortex-A53, A72做過(guò)優(yōu)化。從Linaro等社區(qū)下載Linaro提供了通用的ARM工具鏈。例如對(duì)于ARMv8-A 64位系統(tǒng)wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz tar -xf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz export CROSS_COMPILE$(pwd)/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- export ARCHarm64將最后兩行export命令添加到你的~/.bashrc文件中以便后續(xù)使用。驗(yàn)證工具鏈${CROSS_COMPILE}gcc --version如果正確輸出了版本信息且前綴是aarch64-linux-gnu-64位或arm-linux-gnueabihf-32位硬浮點(diǎn)說(shuō)明工具鏈就緒。實(shí)操心得工具鏈的版本要與你的內(nèi)核和庫(kù)的版本大致匹配。使用太舊的工具鏈編譯新內(nèi)核可能會(huì)失敗使用太新的又可能引入兼容性問(wèn)題。跟隨板廠或芯片原廠的推薦版本是最穩(wěn)妥的。4. 系統(tǒng)組件詳解與獲取現(xiàn)在我們來(lái)準(zhǔn)備系統(tǒng)的三個(gè)核心部件。4.1 Bootloader以U-Boot為例U-Boot是嵌入式領(lǐng)域事實(shí)上的標(biāo)準(zhǔn)Bootloader。它負(fù)責(zé)初始化最基本的硬件如DRAM控制器、時(shí)鐘、串口然后從存儲(chǔ)設(shè)備SD卡、eMMC、網(wǎng)絡(luò)加載Linux內(nèi)核和設(shè)備樹到內(nèi)存并跳轉(zhuǎn)到內(nèi)核執(zhí)行。獲取U-Bootgit clone https://github.com/u-boot/u-boot.git cd u-boot # 切換到穩(wěn)定版本分支如 v2024.01 git checkout v2024.01配置與編譯 U-Boot針對(duì)不同的板子有預(yù)置的配置文件位于configs/目錄下通常以_defconfig結(jié)尾。例如對(duì)于樹莓派3BBCM2837# 對(duì)于樹莓派我們通常使用其自帶的閉源Bootloader這里以通用的ARMv8開發(fā)板比如基于Rockchip RK3568的某款板子為例 # 假設(shè)其配置名為 rockchip_rk3568_defconfig make CROSS_COMPILE${CROSS_COMPILE} ARCH${ARCH} rockchip_rk3568_defconfig # 圖形界面配置可選 # make CROSS_COMPILE${CROSS_COMPILE} ARCH${ARCH} menuconfig # 編譯 make CROSS_COMPILE${CROSS_COMPILE} ARCH${ARCH} -j$(nproc)編譯成功后會(huì)生成關(guān)鍵文件u-boot.bin二進(jìn)制文件和u-boot.img可能包含頭部信息的鏡像。對(duì)于需要SPLSecondary Program Loader二級(jí)程序加載器的平臺(tái)還會(huì)生成u-boot-spl.bin。注意事項(xiàng)務(wù)必確認(rèn)你的開發(fā)板是否需要以及如何使用SPL。有些平臺(tái)如早期的i.MX6的Boot ROM只能加載很小的一段代碼SPL再由SPL去加載完整的U-Boot。這通常需要在編譯U-Boot時(shí)通過(guò)make *_defconfig和make自動(dòng)生成。4.2 Linux內(nèi)核內(nèi)核是系統(tǒng)的核心管理硬件資源提供系統(tǒng)調(diào)用接口。獲取內(nèi)核git clone https://github.com/torvalds/linux.git cd linux # 切換到長(zhǎng)期支持(LTS)版本如 linux-6.1.y git checkout v6.1配置內(nèi)核 內(nèi)核配置極其復(fù)雜但幸運(yùn)的是我們可以基于一個(gè)已知可用的配置開始。這個(gè)配置可能來(lái)自開發(fā)板供應(yīng)商提供的SDK中的內(nèi)核配置文件.config。該板型在主線內(nèi)核中的defconfig如make ARCHarm64 defconfig生成一個(gè)極簡(jiǎn)配置或make ARCHarm64 rockchip_defconfig。# 導(dǎo)入基礎(chǔ)配置 make CROSS_COMPILE${CROSS_COMPILE} ARCH${ARCH} rockchip_defconfig # 啟動(dòng)圖形化配置菜單進(jìn)行定制如增加驅(qū)動(dòng)、文件系統(tǒng)支持、調(diào)試功能 make CROSS_COMPILE${CROSS_COMPILE} ARCH${ARCH} menuconfig在menuconfig中你需要確保對(duì)應(yīng)的CPU架構(gòu)和SoC型號(hào)被選中。必要的驅(qū)動(dòng)被編譯進(jìn)內(nèi)核*或編譯為模塊M如SD/MMC控制器驅(qū)動(dòng)、USB驅(qū)動(dòng)、網(wǎng)絡(luò)驅(qū)動(dòng)等。你計(jì)劃使用的根文件系統(tǒng)類型被支持如EXT4,SQUASHFS,BTRFS??蛇x但推薦啟用CONFIG_DEVTMPFS和CONFIG_DEVTMPFS_MOUNT這對(duì)于/dev設(shè)備節(jié)點(diǎn)的自動(dòng)管理很重要。編譯內(nèi)核與設(shè)備樹# 編譯內(nèi)核鏡像和設(shè)備樹 make CROSS_COMPILE${CROSS_COMPILE} ARCH${ARCH} -j$(nproc) Image dtbs # 如果需要編譯內(nèi)核模塊如果你在menuconfig中選擇了M make CROSS_COMPILE${CROSS_COMPILE} ARCH${ARCH} -j$(nproc) modules編譯產(chǎn)物arch/arm64/boot/Image 壓縮后的內(nèi)核鏡像ARM64架構(gòu)。arch/arm/boot/zImage 壓縮后的內(nèi)核鏡像ARM 32位架構(gòu)。*.dtb文件 在arch/arm64/boot/dts/或arch/arm/boot/dts/目錄下對(duì)應(yīng)不同板型的設(shè)備樹二進(jìn)制文件。設(shè)備樹以一種數(shù)據(jù)結(jié)構(gòu)的形式向內(nèi)核描述板子的硬件資源如內(nèi)存地址、外設(shè)、中斷號(hào)是現(xiàn)在嵌入式Linux硬件描述的主流方式。4.3 根文件系統(tǒng)根文件系統(tǒng)是內(nèi)核啟動(dòng)后掛載的第一個(gè)文件系統(tǒng)/包含了系統(tǒng)運(yùn)行所需的所有目錄結(jié)構(gòu)、配置文件、系統(tǒng)工具和應(yīng)用程序庫(kù)。制作根文件系統(tǒng)有多種方法這里介紹兩種實(shí)用的方法A使用Debian/Ubuntu的預(yù)編譯基礎(chǔ)包debootstrap這是快速獲得一個(gè)功能相對(duì)完整、易于進(jìn)行軟件包管理apt的系統(tǒng)的好方法。# 1. 創(chuàng)建一個(gè)目錄作為根文件系統(tǒng)的根 sudo mkdir rootfs # 2. 使用debootstrap構(gòu)建最小系統(tǒng)。這里以Ubuntu 22.04 (Jammy) 針對(duì)ARM64為例。 # 你需要根據(jù)目標(biāo)架構(gòu)調(diào)整 --arch 和 suite。 sudo debootstrap --archarm64 --foreign jammy ./rootfs http://ports.ubuntu.com/ubuntu-ports # 3. 復(fù)制qemu-aarch64-static到根文件系統(tǒng)以便在宿主機(jī)環(huán)境下執(zhí)行目標(biāo)架構(gòu)的程序 sudo cp /usr/bin/qemu-aarch64-static ./rootfs/usr/bin/ # 4. 切換到目標(biāo)系統(tǒng)環(huán)境chroot并完成第二階段安裝 sudo chroot ./rootfs /bin/bash # 現(xiàn)在你在一個(gè)“模擬”的ARM64系統(tǒng)里了 /debootstrap/debootstrap --second-stage # 安裝一些基礎(chǔ)包 apt update apt install -y sudo ssh net-tools iputils-ping vim systemd-sysv # 設(shè)置root密碼 passwd root # 創(chuàng)建一個(gè)普通用戶 adduser ubuntu # 退出chroot環(huán)境 exit現(xiàn)在./rootfs目錄下就是一個(gè)基本的Ubuntu根文件系統(tǒng)了。你還可以在里面安裝你需要的任何軟件。方法B使用BusyBox構(gòu)建極小系統(tǒng)BusyBox集成了上百個(gè)常用Unix命令ls, cp, mount等到一個(gè)單一可執(zhí)行文件中非常適合構(gòu)建極度精簡(jiǎn)的根文件系統(tǒng)。# 1. 下載并編譯BusyBox wget https://busybox.net/downloads/busybox-1.36.1.tar.bz2 tar -xf busybox-1.36.1.tar.bz2 cd busybox-1.36.1 make CROSS_COMPILE${CROSS_COMPILE} ARCH${ARCH} defconfig # 進(jìn)入菜單配置確保選中“Build static binary (no shared libs)”這樣編譯出的BusyBox不依賴動(dòng)態(tài)庫(kù)更簡(jiǎn)單。 make CROSS_COMPILE${CROSS_COMPILE} ARCH${ARCH} menuconfig make CROSS_COMPILE${CROSS_COMPILE} ARCH${ARCH} -j$(nproc} make CROSS_COMPILE${CROSS_COMPILE} ARCH${ARCH} install編譯安裝后會(huì)在_install目錄下生成基本的bin,sbin,usr目錄以及指向BusyBox的鏈接。# 2. 創(chuàng)建根文件系統(tǒng)目錄結(jié)構(gòu) mkdir -p rootfs_busybox/{bin,dev,etc,home,lib,proc,root,sbin,sys,tmp,usr/{bin,lib},var} # 3. 復(fù)制BusyBox cp -r busybox-1.36.1/_install/* rootfs_busybox/ # 4. 創(chuàng)建設(shè)備節(jié)點(diǎn)內(nèi)核啟用devtmpfs后大部分可自動(dòng)創(chuàng)建但console和null最好有 sudo mknod rootfs_busybox/dev/console c 5 1 sudo mknod rootfs_busybox/dev/null c 1 3 # 5. 添加基本的初始化腳本 /etc/inittab 和 /etc/init.d/rcS # ... (具體腳本內(nèi)容略需配置啟動(dòng)shell等)BusyBox方案更底層需要手動(dòng)配置更多東西但生成的系統(tǒng)尺寸可以非常小幾MB。實(shí)操心得對(duì)于學(xué)習(xí)和快速原型推薦使用方法Adebootstrap。它雖然比BusyBox大一些可能幾百M(fèi)B但帶來(lái)了完整的包管理器和豐富的軟件生態(tài)后續(xù)開發(fā)調(diào)試會(huì)方便很多。你可以先做一個(gè)“胖”系統(tǒng)把流程跑通再考慮如何裁剪。5. SD卡分區(qū)與鏡像部署實(shí)戰(zhàn)這是最關(guān)鍵的“組裝”環(huán)節(jié)。我們需要將SD卡在宿主機(jī)上通常識(shí)別為/dev/sdX例如/dev/sdb進(jìn)行分區(qū)并將準(zhǔn)備好的組件放入正確的位置。警告以下操作會(huì)清空指定磁盤的所有數(shù)據(jù)請(qǐng)務(wù)必確認(rèn)設(shè)備標(biāo)識(shí)符/dev/sdX是你的SD卡而不是你的硬盤5.1 分區(qū)規(guī)劃一個(gè)典型的可啟動(dòng)SD卡布局如下第一個(gè)分區(qū)FAT32 通常很小幾十到幾百M(fèi)B用于存放Bootloader、內(nèi)核鏡像Image/zImage、設(shè)備樹文件.dtb以及可能的啟動(dòng)配置文件如U-Boot的boot.scr或樹莓派的config.txt。這個(gè)分區(qū)之所以用FAT32是因?yàn)楹芏郤oC的Boot ROM只支持讀取FAT文件系統(tǒng)。第二個(gè)分區(qū)EXT4 剩余的全部空間用于存放根文件系統(tǒng)。我們使用parted工具進(jìn)行分區(qū)# 假設(shè)SD卡是 /dev/sdb sudo parted /dev/sdb --script mklabel msdos # 創(chuàng)建MBR分區(qū)表對(duì)于大多數(shù)嵌入式板子 sudo parted /dev/sdb --script mkpart primary fat32 1MiB 256MiB # 創(chuàng)建256MB的FAT32分區(qū) sudo parted /dev/sdb --script mkpart primary ext4 256MiB 100% # 剩余空間創(chuàng)建EXT4分區(qū) sudo parted /dev/sdb --script set 1 boot on # 將第一個(gè)分區(qū)標(biāo)記為可啟動(dòng)某些Bootloader需要然后在兩個(gè)分區(qū)上創(chuàng)建文件系統(tǒng)sudo mkfs.vfat -F 32 -n BOOT /dev/sdb1 sudo mkfs.ext4 -L ROOTFS /dev/sdb25.2 部署組件掛載分區(qū)mkdir -p /mnt/boot /mnt/rootfs sudo mount /dev/sdb1 /mnt/boot sudo mount /dev/sdb2 /mnt/rootfs復(fù)制Bootloader 對(duì)于U-Boot需要將編譯好的二進(jìn)制文件寫入SD卡起始扇區(qū)而不僅僅是復(fù)制到分區(qū)里。這通常使用dd命令。具體寫入位置取決于硬件。有些平臺(tái)需要先寫SPL再寫U-Boot。# 示例將U-Boot寫入SD卡起始位置偏移量為0。請(qǐng)務(wù)必查閱你的開發(fā)板文檔 # sudo dd ifu-boot-spl.bin of/dev/sdb bs1k seek1 convfsync # 可能需要先寫SPL sudo dd ifu-boot.bin of/dev/sdb bs1k seek64 convfsync # 常見(jiàn)的寫入偏移重要dd命令的seek跳過(guò)多少塊參數(shù)因平臺(tái)而異錯(cuò)誤的值會(huì)導(dǎo)致無(wú)法啟動(dòng)。請(qǐng)務(wù)必參考官方文檔。復(fù)制內(nèi)核與設(shè)備樹到BOOT分區(qū)sudo cp /path/to/linux/arch/arm64/boot/Image /mnt/boot/ sudo cp /path/to/linux/arch/arm64/boot/dts/rockchip/rk3568-evb.dtb /mnt/boot/ # 以實(shí)際板型dtb為準(zhǔn) # 如果需要?jiǎng)?chuàng)建U-Boot啟動(dòng)腳本 boot.scr # echo load mmc 0:1 ${kernel_addr_r} /Image; load mmc 0:1 ${fdt_addr_r} /rk3568-evb.dtb; booti ${kernel_addr_r} - ${fdt_addr_r} boot.cmd # mkimage -A arm64 -O linux -T script -C none -d boot.cmd boot.scr # sudo cp boot.scr /mnt/boot/復(fù)制根文件系統(tǒng)到ROOTFS分區(qū)sudo cp -a /path/to/your/rootfs/* /mnt/rootfs/ # 如果是使用debootstrap構(gòu)建的并且編譯了內(nèi)核模塊需要安裝模塊 cd /path/to/linux sudo make ARCHarm64 INSTALL_MOD_PATH/mnt/rootfs modules_install清理與卸載sync # 確保所有數(shù)據(jù)寫入磁盤 sudo umount /mnt/boot /mnt/rootfs6. 上電啟動(dòng)與調(diào)試將SD卡插入開發(fā)板連接串口調(diào)試線通常是USB轉(zhuǎn)TTL連接板子的UART引腳到電腦使用串口終端工具如minicom,picocom,screen或Windows下的Putty、MobaXterm打開對(duì)應(yīng)的串口如/dev/ttyUSB0設(shè)置波特率常見(jiàn)115200。給開發(fā)板上電。在串口終端中你應(yīng)該能看到U-Boot的啟動(dòng)日志然后是內(nèi)核解壓和啟動(dòng)的信息。如果一切順利最終會(huì)看到登錄提示符。6.1 常見(jiàn)啟動(dòng)問(wèn)題與排查啟動(dòng)過(guò)程很少一帆風(fēng)順以下是幾個(gè)經(jīng)典“坑位”及排查思路無(wú)任何輸出串口一片寂靜檢查硬件連接串口線是否接對(duì)TX-RX交叉GND相連波特率設(shè)置是否正確檢查Bootloader是否成功寫入用dd命令寫入U(xiǎn)-Boot時(shí)seek參數(shù)是否正確可以用hexdump -C /dev/sdb | head -100查看SD卡頭部是否有U-Boot的魔數(shù)或字符串。檢查啟動(dòng)介質(zhì)開發(fā)板是否配置為從SD卡啟動(dòng)有些板子需要通過(guò)撥碼開關(guān)或eFuse設(shè)置啟動(dòng)順序。U-Boot啟動(dòng)后卡住不加載內(nèi)核檢查U-Boot環(huán)境變量在U-Boot倒計(jì)時(shí)時(shí)按任意鍵進(jìn)入命令行使用printenv查看bootcmd,bootargs等變量。確保bootcmd能正確找到內(nèi)核和設(shè)備樹文件路徑、設(shè)備號(hào)如mmc 0:1。檢查文件是否存在在U-Boot命令行下可以嘗試使用fatls mmc 0:1列出BOOT分區(qū)文件確認(rèn)Image和.dtb文件存在。手動(dòng)加載啟動(dòng)在U-Boot命令行下嘗試手動(dòng)執(zhí)行加載和啟動(dòng)命令觀察錯(cuò)誤信息。# 示例 setenv bootargs consolettyS2,115200 earlycon root/dev/mmcblk0p2 rootwait rw load mmc 0:1 ${kernel_addr_r} /Image load mmc 0:1 ${fdt_addr_r} /rk3568-evb.dtb booti ${kernel_addr_r} - ${fdt_addr_r}內(nèi)核panic無(wú)法掛載根文件系統(tǒng)檢查root參數(shù)bootargs中的root指定了根文件系統(tǒng)所在設(shè)備。/dev/mmcblk0p2對(duì)應(yīng)SD卡的第二個(gè)分區(qū)。確認(rèn)分區(qū)號(hào)是否正確。檢查文件系統(tǒng)類型內(nèi)核是否編譯了對(duì)應(yīng)文件系統(tǒng)如EXT4的支持在menuconfig中確認(rèn)CONFIG_EXT4_FSy。檢查根文件系統(tǒng)完整性確保/mnt/rootfs下的文件復(fù)制完整特別是/sbin/init或指向/lib/systemd/systemd的鏈接存在且可執(zhí)行。啟用更早的console在bootargs中添加earlycon和earlyprintk可以看到更早的內(nèi)核輸出有助于定位panic發(fā)生的位置。內(nèi)核啟動(dòng)后卡在“Starting kernel ...”或類似地方設(shè)備樹不匹配這是最常見(jiàn)的原因之一。.dtb文件與你的實(shí)際硬件不匹配。請(qǐng)確認(rèn)你使用的設(shè)備樹文件是否完全對(duì)應(yīng)你的開發(fā)板型號(hào)包括內(nèi)存大小、外設(shè)地址等。嘗試使用最接近的板型dtb或從供應(yīng)商獲取正確的dts源文件自行編譯。內(nèi)存地址問(wèn)題U-Boot傳遞給內(nèi)核的fdt_addr_r是否在有效的RAM地址范圍內(nèi)設(shè)備樹本身是否描述了正確的內(nèi)存大小和地址6.2 調(diào)試?yán)鱑-Boot下的網(wǎng)絡(luò)與TFTP當(dāng)需要頻繁更新內(nèi)核或設(shè)備樹進(jìn)行調(diào)試時(shí)反復(fù)插拔SD卡非常低效??梢酝ㄟ^(guò)網(wǎng)絡(luò)TFTP來(lái)加載鏡像。宿主機(jī)搭建TFTP服務(wù)器sudo apt install tftpd-hpa sudo systemctl start tftpd-hpa # 默認(rèn)目錄是 /var/lib/tftpboot 將你的Image和.dtb文件放進(jìn)去 sudo cp Image rk3568-evb.dtb /var/lib/tftpboot/配置開發(fā)板網(wǎng)絡(luò)確保開發(fā)板和宿主機(jī)在同一局域網(wǎng)。在U-Boot中設(shè)置網(wǎng)絡(luò)環(huán)境變量也可以在編譯U-Boot時(shí)預(yù)設(shè)setenv ipaddr 192.168.1.100 # 開發(fā)板IP setenv serverip 192.168.1.50 # 宿主機(jī)TFTP服務(wù)器IP setenv netmask 255.255.255.0 # 保存環(huán)境變量 saveenv通過(guò)TFTP加載并啟動(dòng)# 在U-Boot命令行下 tftp ${kernel_addr_r} Image tftp ${fdt_addr_r} rk3568-evb.dtb setenv bootargs consolettyS2,115200 root/dev/mmcblk0p2 rw booti ${kernel_addr_r} - ${fdt_addr_r}這樣每次修改內(nèi)核后只需在宿主機(jī)重新編譯并復(fù)制到TFTP目錄然后在U-Boot中重新tftp加載即可極大提升調(diào)試效率。7. 進(jìn)階優(yōu)化與生產(chǎn)考量當(dāng)你成功制作出第一個(gè)能啟動(dòng)的鏡像后可以考慮以下優(yōu)化讓系統(tǒng)更貼近產(chǎn)品需求。7.1 內(nèi)核裁剪與優(yōu)化使用make menuconfig進(jìn)入內(nèi)核配置目標(biāo)是減小內(nèi)核體積和內(nèi)存占用并針對(duì)特定硬件啟用優(yōu)化。移除無(wú)用驅(qū)動(dòng)去掉你的板子上沒(méi)有的硬件驅(qū)動(dòng)如其他型號(hào)的GPU、聲卡、網(wǎng)絡(luò)芯片驅(qū)動(dòng)。精簡(jiǎn)文件系統(tǒng)只保留你需要的文件系統(tǒng)類型如EXT4, SQUASHFS。關(guān)閉調(diào)試功能生產(chǎn)環(huán)境可以關(guān)閉CONFIG_DEBUG_INFO,CONFIG_DEBUG_KERNEL等能顯著減小內(nèi)核大小。優(yōu)化CPU調(diào)度與電源管理根據(jù)你的CPU架構(gòu)選擇對(duì)應(yīng)的調(diào)度器如CONFIG_SCHED_MUQSS用于低延遲和CPU頻率調(diào)節(jié)器如CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND。7.2 根文件系統(tǒng)精簡(jiǎn)對(duì)于debootstrap構(gòu)建的系統(tǒng)可以移除不需要的包和文檔。# 在chroot環(huán)境中進(jìn)行 apt-get clean # 清理包緩存 # 移除不需要的包例如不需要的locale、文檔、開發(fā)包 apt-get purge -y deborphan # 刪除孤立庫(kù)謹(jǐn)慎使用 # 刪除 man pages, info pages, doc rm -rf /usr/share/man/* /usr/share/info/* /usr/share/doc/* # 清理日志和臨時(shí)文件 find /var/log -type f -exec truncate -s 0 {} \; rm -rf /tmp/* /var/tmp/*7.3 創(chuàng)建可分發(fā)系統(tǒng)鏡像文件為了方便備份和分發(fā)我們可以將整個(gè)SD卡的內(nèi)容打包成一個(gè).img文件。# 1. 計(jì)算SD卡總大小假設(shè)是16GB IMG_SIZE$((16 * 1024 * 1024 * 1024)) # 字節(jié) # 2. 創(chuàng)建一個(gè)空鏡像文件 dd if/dev/zero ofmy_embedded_system.img bs1M count$((IMG_SIZE / 1024 / 1024)) # 3. 在鏡像文件上分區(qū)并格式化使用類似第5.1節(jié)的parted和mkfs命令但針對(duì)的是鏡像文件如 /dev/loop0 sudo losetup -fP my_embedded_system.img # 假設(shè)回環(huán)設(shè)備是 /dev/loop0 sudo parted /dev/loop0 ... sudo mkfs.vfat /dev/loop0p1 sudo mkfs.ext4 /dev/loop0p2 # 4. 掛載鏡像文件的分區(qū) sudo mount /dev/loop0p1 /mnt/boot sudo mount /dev/loop0p2 /mnt/rootfs # 5. 將你SD卡上已部署好的內(nèi)容或重新部署復(fù)制進(jìn)去 sudo cp -r /path/to/your/boot_contents/* /mnt/boot/ sudo rsync -a /path/to/your/rootfs/ /mnt/rootfs/ # 6. 卸載、分離回環(huán)設(shè)備 sudo umount /mnt/boot /mnt/rootfs sudo losetup -d /dev/loop0現(xiàn)在my_embedded_system.img就是一個(gè)完整的、可以直接用dd或balenaEtcher等工具燒錄到任何同容量或更大容量SD卡中的系統(tǒng)鏡像。7.4 自動(dòng)化構(gòu)建腳本將上述所有步驟獲取源碼、配置、編譯、分區(qū)、部署編寫成一個(gè)Shell腳本如build.sh是實(shí)現(xiàn)一鍵構(gòu)建、保證環(huán)境可復(fù)現(xiàn)的最佳實(shí)踐。腳本中應(yīng)包含各種參數(shù)的配置如工具鏈路徑、目標(biāo)板型號(hào)、內(nèi)核版本等并做好錯(cuò)誤檢查。這是從“手工制作”邁向“工程化”的關(guān)鍵一步。整個(gè)流程走下來(lái)你會(huì)發(fā)現(xiàn)制作一個(gè)嵌入式Linux系統(tǒng)鏡像遠(yuǎn)不止是運(yùn)行幾條命令。它貫穿了硬件啟動(dòng)原理、軟件編譯工具鏈、系統(tǒng)組成結(jié)構(gòu)、存儲(chǔ)介質(zhì)管理和實(shí)際調(diào)試排錯(cuò)。每一次失敗和解決的過(guò)程都是對(duì)“系統(tǒng)如何工作”這一問(wèn)題的深刻理解。當(dāng)你最終看到串口終端上出現(xiàn)那個(gè)熟悉的登錄提示符時(shí)這份完全由自己構(gòu)建起來(lái)的系統(tǒng)所帶來(lái)的成就感和掌控感是使用現(xiàn)成鏡像無(wú)法比擬的。這不僅是完成了一個(gè)任務(wù)更是打通了嵌入式Linux開發(fā)任督二脈的關(guān)鍵一步。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美日韩美女精品久草一区二区三区| 免费看一级a性色生活片久久无| 久久久久久波多野吉衣高潮| 色丁香五月婷婷| 2017av无码免费无线播| 97超碰精品图片| 99re在线观看| 色精品极品| 韩国三级理论在线| 国产一级特黄大片处女| 国产精品视频内谢女人| 97Ai亚洲| 亚洲黄色电影| 久草电影网| 久操操| 精品少妇一区二区三区免费观看| 色青青久久影视| 激情天天视频| 翔田千里AⅤHD无码| 色图综合| 97在线免费看视频| 96精品久久久久久久久| 日韩操逼性鲍| 91人精品妻入口| 午夜精品久久99蜜桃的功能章节| 性爱动态120秒| 欧美日韩在线国产在线| 色综合av男人天堂| 十八禁啪啦拍视频无遮挡| 国产人妖视频一区在线观看| 在线αⅴ| 精品成人无码| 老熟女乱子伦中文字幕一区二区| 操逼大黄片| 日韩综合无码色欲vv| 伊人一区二区在线播放| 欧美久热| 青娱乐av在线| 久插综合| 亚洲综合69| 亚洲综合小视频小说在线观看| 啊嗯好大视频在线观看| 2019AV天堂| 亚洲男人天堂2013| 啊啊啊啊在线播放| 女性91网站| 九九九免费视频| 不卡中文字幕aⅴ在线| 国产精品不卡高清在线观看| 97在线精品观看视频| 少妇高潮流水av免费| 午夜超爽| 亚洲 欧美日韩 另类| 日韩激情啪啪| 色五月婷婷五月天| 干B| 久久久精品一区二区| 综合97久久| 亚洲欧美97√| 黄人人操人人操| 国产真实野战在线视频| 亚洲九区| 不卡人妻少妇精品毛片一区23区视频| 日韩无码黄色片| 能直接看AV的网站| 歐美性天天| 98超碰日本| 在线 欧美 亚洲| 一起草高清无码| 在线观看色视频| 久久久精品日本一道| 9久精品视频在线观看| 骚人妻少妇视频| 午夜精品久久99蜜桃的功能章节| 成人性爱AV在线免费观看| 国产精品久久久久中文字幕| 人妻大相焦在线| 久久久久深夜无码| 国产一区免费午夜视频| 大香蕉520| 日韩国产十八禁| 久久婷婷苹果| 国产黄色小视频网站| 日韩无码成人电影| 日韩精品系列| 午夜精品探花| 福利天堂| 久久五月天婷婷丁香中文字幕| 在线观看中文av字幕| 日韩伦理久 久久 清纯| 美女诱惑一区| 婷婷尹人大香蕉免费| 日韩av电影成人在线| 亚洲精品美女久久久久久久久| 欧美日韩国产电影| 国产老女人久久毛| 婷婷五月影院| 噜噜瑟| 隔壁邻居波多野结衣中文字幕| 五月丁香综合| 亚洲人精品久久久| 亚洲免费人妻在| 韩国女主播青草在线| 久久欧美激情| 色色热| 无码二级三级| 欧美精品1区2区3区| 加勒比伊人综合| 欧美日韩国产成人高清| 久久国产精品91| 亚洲无码一区成人免费午夜| 国产高清成人传媒影视| 99re这里只有精品2| 色就色综合| 激情亚洲天堂| 国产视频一区二区三区在线免费观看 | 久久av一级av少妇av高潮| 91xingse| 97香蕉网| 超碰1024久久| 二三四区精品| 熟女突然公开看18禁影片| 九九九九免费视频| 国产午夜无码片在线观看影视| 北京美女一区二区| 女人 A一级| 99热国产精品| 丁香五月成人| 18禁看网站一区| 6080yy午夜理论三级一区二区三区无码| 97精品一区二区视频在线观看| 日本熟女中文| 2017天天插| 97久久精品亚洲| 国产60页| 人妻在线大香蕉| 在线A日本| 亚洲熟久久| 欧美三级中文字幕hd| 亚洲综人网| 男人的天堂在线有码| av激情亚洲五月天| 亚州高清av| 色爱综合网| 欧美激情内射| 日韩人妻精品中文字幕| 亚洲精品日韩国产欧美| 日韩一区二区精彩视频| 午夜精品久久久久久久| 男人午夜天堂| 丝袜美女诱惑 91 视频| 久久草草欧美精品| 日本十八禁免费看污网站| 超碰免费欧美7| 狠狠色丁香| 秋霞Av理论一级在线| 亚洲 欧美 小说| 亚洲四虎熟女精品| 精品性爱| 亚洲欧美97√| 夜夜青青无码影院| 欧美 中文字幕 一区| 精品亚洲国产成人精品| 男人天堂欧美| 啊啊啊免费视频| 天天天天做夜夜夜夜做| 亚洲精品丝袜-不卡成人免费…… 久久久久成人蜜桃精品 | 久久97超碰| 国内97干免费看| 人妻久久久| 变态乱伦伪娘灌肠一区二区| 久久久久久久九九九九| 亚洲高清男人天堂| 舔人妻中文免费视频| 十八禁网站在线| 青娱乐亚洲自拍| 91九色丨风韵犹存| 亚洲中文字幕精品久久久久久直播| 九月伊人中文字幕| 色天天野狼综合社区| 午夜天堂精品久久| 混色激情av| 免费作爱一级视频| 久草视频在线视频在线视频在线观看| 在线播放成人高清免费视频| 国产亚洲色婷婷久久99精品91 - 百度| 91爱欧美| 伊人网在线视频| 东北黄色电影| 麻豆黄四叶草网站| 台湾大香蕉99热| 啊啊啊不要好疼视频| 涩涩涩综合| 天天干人人看综合| 中文字幕制服诱惑| 91精品导航| 97中文综合| 美女丝袜激情小说| 大茄子熟女AV导航| 伊人性在线视频| 欧美熟女逼久久久久久| 在线观看午夜婷婷久久久久清性观看| 夜夜騷av、一區二區| 亚洲精品色| 久久一二三四五六七八九区区区 | 97超碰精品图片| 超碰天天操| 性色国产东北露脸精品视频| 色好看av| 亚洲欧洲日产国产综合网| 欧美老妇女内射网址| 97大色网| 性欧美精| 亚洲色婷婷综合久久一区二区三区| 91九色丰满高潮| 97精选久久| 热热色综合网| 97亚洲欧美| 亚洲欧美日韩制服另类| 中文字幕日韩电影人妻| 一起草日韩| ?亚洲伊人伊成久久人综合网| 黄片无码在线制服| 婷婷五月天色| 99天天超碰| 蘋果手機免費看成人Av| 91亚洲人| 999亚洲国产视频| 久久性爱城| 夜夜爽爽爽| 国产视频一区二区三区久久亚洲天堂| 久神马| 中国熟妇| 一个人免费视频观看在线WWW| 精品视频免费在线一区| 精品一区二区成人动漫| 精品久久久无码| 激情综合av| 久久久精品,3| www.色吧5.com| 日韩人成网站在线播放| 亚洲欧洲小说图片视频| 欧美线天码中字| 91制服丝袜中文字幕| 亚洲成人黄色在线观看| 92人人操人人| 久久综合久久综合人久久夜精品| 91痴汉| 久久97| 人妻一区视频| 亚码人妻| 亚洲第一免费视频| 国产视频一区二区在线| 亚洲精品熟妇1区2区3区。| a男人的天堂久久一级A毛片| 免费视频无码| 久久精品电影| 肏逼福利网站| 操操碰| 校园春色综合香蕉| 日韩中文字幕精品一区在线| 欧美日韩情色一区二区| 久草毛片| 97久久超碰| 欧美性爱一区二区三区四区| 四虎国产精品永久在线囯在线| 国产精品免费视频人成| 欧美91在线+|+欧美| 亚洲福利影院一区久久| 婷婷导航| 91美女精品| 亚洲一级特黄大片在线播放91| 九九热免费国产视频婷婷伊人| 久久激情视频| 另类天堂| 97在线视频免费看| 最新国产精品久久精品| 亚洲,欧美,综合网| 黑人无码一区二区| 公司1区2区3区精产精| heyZO天然素人无码AⅤ专区| 操逼片国产| 久久精品 六十路 熟女 欧美| 欧美 日韩 国产传媒| 欧美欧美少妇| 婷婷六月色| 97chaopenrihan| www.黄色在线| 亚洲午夜蜜臀| 岛国片在线观看视频亚洲| 色综合99999| 美女午夜福利免费视频| 无码人妻毛片丰满熟妇精品区 | 99热免费| 国产精品内射婷婷一级二| 91爱综合| 日韩人妻中文视频| 国产午夜福利合集| 亚洲国产精品久久久久婷婷青年| 人妻夜夜爽天天爽三区麻豆AV网站| 东京热免费视频| 大香蕉伊人75| 欧美se亚洲| 日韩国产欧美伦理在线| 美女骚尻视频| 国产伦精品一区二区三区视频女| 韩国一级做a久久久久| 欧美熟妇视频| 99老司机精品视频在线观看| 亚洲色天堂九9| 狠狠干综合| 亚洲在线a| 精品久久久av| 欧洲一级性爱视频在线观看| 极品色综合| 日产国产精品中文久久婷婷| 高清一区AV无码| 久久久久久久久久久久欧美日| 国产AV毛片| av橘色网站| 口爆综合网| 黄片免费日韩| 丰满欧美放荡少妇在线| 久久久久13| 人人操肉肉| 91久久国产精品| 久热伊人99re| 亚洲欧美在线观看2021| 综合网天天| 91日产欧美| wwwss在线观看| 成人午夜高潮av猛片| 色偷偷人人玩人人舔人人操人人摸人人爽| 中文字幕五区| 国产精品久久久久综合| www国产无码| 欧洲精品久久| 欧美日韩国产电影| 激情六月天| av在线观看不卡网站| 99热销国产这里有精品| 77国产精品| 大香蕉97久久| 婷婷五月成人| av在线一区二区三区| 中文字幕熟女人妻丝袜| 亚洲,欧美,综合网| 天堂在线一区二区| 欧美制服另类丝袜| 五月天色色色| 色婷婷成人| 免费观看国产小粉嫩喷水精品午| 97精品网| 伦理第一页| 欧美色图在线视频少妇| 91 国产丝袜在线播放-百度| 久久精品72| 爽爽淫人网| 中国亚洲呦女专区| 欧美亚洲另类在线蜜桃| 色操逼网| www.亚洲成人一区| 亚洲**2021在线观看| 91色亚洲| 四虎影视精品| 国产999精品久久久| 亚洲青青草| 老鸭窝黄色视频网站| 精品久久久九九九孕妇| AV 少妇 人妻 偷拍| 国产AV高清AV无码| 女人喷水视频在线观看| 亚洲av无码成人精品国产| 丰满人妻无码一区二区三区| 日韩亚洲精品一区二区| 伊人黄色视频免费观看| 国语精品内射在线观看| 天天激情干| 欧美日韩色综合网| 免费作爱一级视频| 91九九| av资源在线播放天堂| 天天操天天看| 丰满人妻一区| 三四中文字幕| 国产精品人妻一区二区| 天天日天天干天天色| 天天看精品动漫视频一区| 亚洲无码精品AV久久久| 四虎国产精品永久入口| 顶级丝袜熟女一区二区三区| 影音先锋中文字幕日本好一区二区| 亚洲日韩美国人妻| 国产精品免费视频人成| 色99视频| 91av天美性媒精品视频| 色眯眯av| 92久久| 午夜成人爽爽爽爽A片李冰冰| 久久久久少妇| 日韩欧美aⅴ综合网站发布| 永久免费发布性爱网| 国产亚洲精品自在线亚洲情侣| www.夜夜| 欧美一区二区传媒| 亚洲清纯唯美| 亚洲另类天堂| 爽极品影院| 99久久综合网| 7月婷婷综合| 青青草大香蕉在线视频| 欧美在线综合| 性色AV蜜色av色欲av| 激情抓乳插进去啪啪啪日韩| 少妇滛荡视频| 欧美中文字幕男人天堂久久精品| 超碰这里只有精品| 久久久久久久| 黑人精品成人一区二区三区| 啊啊啊啊啊操我视频| 日本五十路在线| 中文字幕乱妇免费视频| 国产乱色国产精品免费视| 日韩av在线播放不卡| 天天爱天天韩国日本牛牛牛牛| 日本精品国产视频| 老女人综合| 97精品熟女少妇一区| 日韩精品一二三四| 久操影视| 国产亚洲精品A在线观看下载| 久久亚洲AV无码专区国产精品| 五月天激情综合网| 少妇熟女视频一二三区| www.久久制服糖| 五月婷婷影院| 久久久九| 老司机老司机午夜影院| 青娱乐福利99| 99久热| 超碰在线1234区| 26uuu国产亚洲综合| 亚洲人成网www| 亚洲男人天堂2| 草莓精品视频在线免费观看| 日韩精品高清资源在线| 国产精品网址| 色婷婷狠狠| 激情婷婷丁香网| 一线黄色免费性爱片| 九一亚洲国产免费| 亚洲91色| 超碰日本97美女人妻人人玩人人爱| 青操影院| 操逼网站视频漫画国产| 91丝袜熟女| 成人无码在线超碰网| 日韩一999精品| 午夜精品久久99蜜桃的功能章节| 欧美黄片视频在线观看免费 | 五月天婷婷社区| 久久久久九九九| 久久日本熟女精品一区| 无码人妻一区二区三区色欲aⅴ | 97久久国产| 久久99网站| 日韩无码第3页| 综合色图区| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 91亚洲人| ,国产乱人伦精品一区二区三区| 超碰久超碰久| 长长久久免费视频| 加勒比综合网| 五月天伊人| 天天射天天操天天干天天吃2018 | 国产在线观看一区二区三区| 97人亚洲综合字幕| 免费一级a毛片久久久久久鸭绿欲| 欧美白嫩在线放| 国产日韩精品人妻久久久久色欲网站| 高潮综合网| 温婉少妇玩3p| 男人的天堂Va| 欧美日韩国产中文精品字幕自在自线, | ,成人免费啪啪视频| 二三四区精品| 精品国产精品一区二区| 精品人妻一区二区三区在线视频不卡| 97干色天堂| 密乳AV免费观看| 老司机午夜精品福利视频一区二区| 欧美性爱1080p| 九九九不卡| 操九九九九九九| 国产精品久久久久久久久久梁医生| 性生活无遮挡纯毛片在线看| 96久久精品一二三区色欲| 人妻夜爽夜夜爽| 91 国产丝袜在线放观看| 性爱视频啪啪啪啪| 99re视频在线播放青草| 欧美中文字幕一区| 三级片网站在线播放| 久久一区二区三区四区五区| www.91欧美| 五月婷婷基地| 91av一区二区在线观看| 亚洲 欧美综合| 狠狠干精品一二三四五六2022| 国产精品久久久久久久黄无码| 又黄又硬又粗又长国产视频| 国产高清不卡视频| 黄污污污污| 亚乱色| 呦呦一区| 欧美亚洲特P| 东北女人操比视频| 超碰亚洲欧美日韩无| 国产精品自在线发布| 亚洲丝袜综合| 超碰久草| 综合激情一一91| 亚洲中文制服诱惑| 开心五月婷婷激情| 亚洲αv一区二区三区| 精品国产一区探花在线观看| 视频二区美腿制服人妻欧美| 欧美日韩青操| 97爱欧美| 蜜桃臀 后入 一区 二区 三区 在线| 日韩av一级黄片| 精品日韩人妻精品一二三区| 五十路熟女人妻一区二区在线观看| 日韩精品一区,二区 九九...老司机| 天天综合AV| 五月天婷婷久久| 黑人无码一区二区| 国产一区二区三区视频在线看| 91骚熟女| 亚洲欧美电影| 久久青青草在线视频| 人人操人人精品影片| 婷婷精品国产一区二区三区日韩| 欧美日韩免费专区在线| 情色日播放AV| 欧美嗯啊……在线观看视频免费| 超碰av在线| 黄色一级视| 国产精品探花在线| 欧美一区二区观看在线| 91高清无码下载| 在线观看无码三级少妇| 亚洲国产欧美一区二区潘金莲| av网站国产主播在线| 欧美中文字幕精品人妻| 网友自拍第一页| 亚洲综合20p| 诱惑网综合| 亚洲人妻久久| 无码动漫av中文字幕| 日韩三级伦理中文字幕| 欧美在线永久天堂| 国产av强奸美女| 久久直播国产| 岛园激情| 人妻少妇久久久| 中亚精品极乱| 殴美综合色88| 欧美精品久久| 青青草AV色| 啊啊啊啊好多水| 91天天看| 成人性爱av.com| 亚洲欧洲国产综合av| 亚洲国产欧美中文永久| 丝袜六区| 日韩视频小说在线观看| 97操碰| 激情小说亚洲色图| 国产精品 久久久精品一牛| 十八禁的黄污污免费网站| 亚洲人妻中文高清| 中文字幕在线观看丝袜| 后入人妻一区| 亚洲影视第一页| 羞涩视频| 在免费jIzzjIzz在线视频| 丁香九月婷婷| 91在线丝袜视频| 综合五月天| 国产无吗在线播放| 一块操欧美性爱| 少妇被玩视频二三区| 青青伊人久久| 精品久久久久久久| 十八禁的黄污污免费网站| 另类小说五月天| 夜夜久久| 精品午夜福利| 亚洲日韩国产欧美综合v| 亚洲色图超碰在线| 一本色道久久综合熟妇| 福利视频香蕉免费一区二区在线| 国产精品久久久久久 百度| 美女尤物福利视频| 精品美女人人干| 日本乱人伦片中文三区| 香蕉久久国产AV一区二区| 精品小视频在线| 午夜精品久久久久久久久久久久久| 国内偷自视频区视频综合| 中文字幕无码不卡啪啪| 亚洲精品一二牛牛| 婷婷五月天丁香花| 中国黄色特级精品一区二区三区片| 97欧美精品| 日本午夜久久电影| 国产99999久久精品| 亚洲日韩人妻中文字幕一区| 丁香六月婷婷| 久射吧| 天堂无码精品国产久| 99re这里只有精品3| 欧美日韩久久精品爱爱| 在线性黄高清免费视频| 狠狠做深爱婷婷久久二区| 高清国产无码av| 95精品在线| 唯美清纯 妖精视频| 精品一二三区久久AAA片| 小明看看网址| 亚欧免费| 久久久久亚洲精品| AV乱伦专区| 中文字幕片| 亚洲日韩人妻中文字幕一区| 亚洲图片 91| 天堂性色| 精品久久久无码| 欧美中文综合| 91爱综合| 国产精品久久久啊| 欧美综合97www| 张柏芝国产一区在线观看| 射 色综合| 亚洲欧美999| 久久理论字幕视频| 日韩综合无码一区久久92| 97爱爱爱综合| 国内亚洲高清无码| 人妻精品一区二区全免费| 精品蜜乳AV免费观看| 美女人妻色网站| 中国一级αV| 冬京热男人的天堂| 日韩在线地址一| 亚洲情色在线| 日本在线不卡v二区| 亚欧操逼片在线观看 | 免费观看欧美日韩操逼视频| 亚洲图片第一页| 日本免费不卡二区| 国产精品探花色| 黄片免费久久久久久久| 久久精品人妻一区二区三区| 色婷婷丁香五月| 亚洲精品97| 亚洲视频,小说| 1禁看欧美黄片免费看| 91蜜桃传媒精品久久久一区二区| 色婷婷av在线观看| 黄片视频观看| 青青青草伊人精品| 亚洲欧美精品一区天堂久久 | 日日爱99| 日日日大屁股骚女人精品| 美女被艹尤物视频| 好色综合| 老女人91| www.欧精品| 97无码视频在线播放| 久久精品亚洲婷婷| 欧美经典一区二区三区 | 99在线免费视频| 一级做a爰片性色毛片久久| 色偷综合| 女同亚洲欧美一二三区久久电影| 日韩精品一区二区日韩| 少妇三p| 91美女在线视频| 五月婷婷基地| 亚洲国产一区二区入口| 精品对白久久不卡| a人片中文字幕一区二区| 色吧五月| 大色综合网| 精品午夜福利导航| 熟女91网| 污污污8888| 青青草中文-久久青草精品一区二区三 | 久久直播国产| 国产黄色剧情影片麻豆免费播放| 婷婷探花久久精品一区| 东北女人| 欧美中文字幕男人天堂久久精品 | ′ !γ}丶。。久久精品欧美一区二区三区| 人人操人人摸人人看人人插| 性91| 蜜臀网址在线| 久久99深爱久久99精品| 夜夜狼人妻| 志村玲子视频一区二区| 五月天黄色激情视频| 超碰精品国产无码| 亚洲天堂男人网| 国产久久天堂资源| 亚洲少妇免费视频\| 激情亚洲天堂| 欧美日韩人人精品| 夜夜嗨AV一区天天| 日韩无码专区| av片在线观看免费播放| 91 亚洲情侣偷拍 久久| 亚洲精品一二三四区| 丁香激情五月| 无码色| 日韩精品一区二区三区色欲| 艹比视频国产精品| 日韩亚洲中文字幕在线| 国产 日韩 欧美高清| 欧美18 在线观看| 国产强奸无码乱伦| 亚洲av青草久久一区二区| 天天综合官网| 亚洲欧美不卡线| 亚洲黄色| 免费操逼91| 最新日本中文字幕| 亚洲欧美日韩制服另类| www久久国产精品| 日韩综合无码一区久久92| 国产高清成人免费视频| 2017av无码免费无线播| 一级黄色性爱裸体视频| 一区二区三区美女超清| 国产精品盗摄 偷窥盗摄| 婷婷av在线中文字幕| 青娱乐老司机视频| 国产一区二区三区免费视频在性观看 | 另类 日韩 熟女| 欧美视频边做饭边橾| 青娱乐日韩无码| 五月天婷婷成人网| 欧美第一页性| av九九| aⅴ日韩成人电影av在线免费看av大全| 在线A日本| 国产一区二区在线电影| av在线资源| 黄色污污污污污污网站| 91久久婷婷| 中文字幕在线观看网页| 综合欧美日韩在线| 美女t无毒不卡不卡| 久热最新在线杭州| 日韩福利综合一区| 日韩欧美午夜视频在线| 色色色综合网| 国产天天看| 亚洲天堂一区二区| 欧美色图片| 国产性感骚丝袜在线| 国产精品一区二区亚洲人成毛片| 中文字幕五月婷婷免费| 国产性爱在线视频一区二区| 午夜福利免费福利视频| 色婷婷成人| 97色欧州| 青青操在线视频| A片A5445444| 国产精品久久伊人| 97视频观看| 9997se| 天天综合网日韩| 亚洲97久久精品亚洲| 99激情| 欧美97视频| 久热一区二区| 国产女人91精品嗷嗷嗷嗷| 在线观看十八禁| 久草毛片| 岛国黄| 中文字幕二区日韩天堂| 精品无码一区二区人妻久久蜜桃| 久艹日日日| 国产视频不卡在线观看| 女同性恋一区二区三区精品视频| 啊啊啊啊啊舒服| 超碰97人妻免费在线| 婷婷久久网| 9长久久精品| 日本在线观看网址| 大香蕉婷婷| 91高潮喷水美女| 欧美精品精品一区二区| 婷婷精品| av橘色网站| 激情综合二| 久久精品视频28| 三久久久四久久久久| 无码抄逼网| 长久操视频| 日韩99精品视频综合区| 久久久久国产亚洲一区欧美色图日韩| 97人人色| 国产福利影视| 青青草无码视频| 日韩性爱人人爱人人操| 男人的天堂.com| 欧美中文字幕精品人妻| 高清无码网址| 啊啊啊啊好疼| 狠狠综合| 72av视频| 狠狠五月天| 久久久久成人网| 亚洲AV成人在线| 尤物视频新赏网鲜网色诱网| 在线无码操| 国产热av| 26uuu国产免费观看| 麻豆天美在线喷水AV| 中文字幕久热视频在线| 97在线无精品| 狼狼色丁香久久婷婷综合五月| 精品97精品97| 免费啪啪av| 黑人与人妻| 久操网视频| 久久视频少妇美女| 国产真实野战在线视频| 91男女| 亚洲黄色影视| 亚州91| 9热9热综合网| av天堂精品久久| 天天激色| 国产精品久久久久av| 国产嫩草精品A88AV| 大香蕉狠狠爱| 天天操狠狠日夜夜干超碰撸com视频在线观看| 欧美亚洲天天| 亚洲……91| 1级黄色夫妻对换性交免费看| 国产乱弄免费在线视频。 | 欧美黄色手机在线观看| 欧美精品偷拍| 超碰成人最新最好看| 人妻 欧美亚洲| 五月天婷婷综合| 日韩欧美性爱电影在线观看| 在线观看A啊啊啊| 亚洲精品啪视频| 狠狠入| 天天综合网久久ww| 久久久久久久国产视频| 伊人国产AV| 天天干天天操天天拍| 黄色操人| 夜夜嗨一区| 毛片17S| 一区二区三区 日韩欧美| 超碰久久.com| 91 国产丝袜在线放观看| 一类av片在线看| 欧美日韩小说| 三上制服丝AV| 人人扣人人操| 久久国产逼| 人人澡人人澡人人| 美女露胸露屁股| 欧美午夜一区二区三区| 爱逼综合| 激情四射婷婷六月天| 91xingse| 综合欧美日本三级| 一级二级三级黑人无码| 四虎精品永久在线观看| 综合网亚| 日韩欧美视频青青| 26uuu性物| 9999久久久| 亚洲熟女少妇免费视频| 亚州乱码中文字幕综合久久久| 殴美大黄片| 国产一级高跟丝袜| 久久久亚洲熟妇熟女| 啊啊啊操死我了| 久久久网一区| 精品无码一区二区| 性一交一乱一交A片久久四色| 黄片免费视频2019| 熟女人妻精品一区二区视频| 91青青在线视频| 99国产精品免费| 观看免费区二区三区二| 国产99 中文字幕日韩小视频| 91影库| 天天干天天操天天操夜夜操天天操| 精品制服美女中文一区二区三区| 日日橹狠狠爱欧美超碰| 日韩无码嘿咻黑热久| 色播五月丁香| 欧美黄色大香蕉一区二区| 国产精品嫩草影院免费| 亚洲国产精品成人综合| 欧美高清第一页| 91熟女网| 美女91AV| 男人天堂2019| 91美女视频直播| 91天天美女| 青草伊人久久| 台湾佬中文娱乐网久久久久久久久久com | 91蜜臀熟女| 丁香六月婷婷| 婷婷五月天影院| 九九av| 92福利社视频| 亚洲天堂区| 91色综| 欧美美女自慰一区二区三区| 99色在线| 夜夜嗨AV一区天天| 激激五月| 嗯嗯嗯不要不要免费视频| 精品.99999| 夜夜操av亚洲一区二区| 欧美亚洲第1页| 国产综合久久久鬼色| 91久久久视| 亚州综合色图| 综合性视频99| 天天久久久久久| 人妻天堂网| 秋霞 色色| 免费日韩黄片| 午夜福利精品| 综合色播| 久久色一区| 1024手机看片欧美日韩| 欧美一区二区三区成人性生活| 日韩淫色网| 少妇高潮一区二区三区在线| 在线不欧美| 精品久久久久久AV无码| 欧美不卡二区| 久久五月综合| 嗯嗯,啊啊,国产精品| 久久久国产精品人妻丝袜| 大香蕉综合在线| 久操电影网| 一区二区乱码福利| 麻花豆传媒剧国产MV出差| 无码乱人伦中文视频| 97五月天| 91l欧美在线| 久久久月天| 欧美国产精品久久九九| 天天操天天射天天日| 日韩精品一区二区三区色欲| 嗯啊免费视频| 久偷拍欧美日韩三区| 精品人妻久久久| 久九九九九九九热| 成人一区二区三区四区| 9久9久| 欧洲亚洲国产综合在线| 国产成人精品亚洲日本| 日本三级小说中文字幕| 日韩三级性| 欧美一级在线观看成人| 黑人嘿嘿嘿超爽免费视频| 吻戏激情性巴克| 精品九九九九九九九九九| 久久高潮妇女视频| 强奸乱伦AV网站| 国产欧美日韩在线观看麻豆传媒公司| AV丝袜少妇| 猛猛干| 欧美日本国产日韩激情视频| 东北黄色电影| #NAME?| 亚洲,日韩,欧美,成人播放 | 久久免费9| 操逼无码一区| 一牛影视久久久一区二区三区| 欧美女同在线| 波多野结衣一级视频| 97精品国产97久久久久久| 国产AV人人夜夜澡人人爽麻豆| 午夜性生活av免费在线看| 秋霞一级视频在线观看免费| 精品96久久| 免费精品无码一级毛片牛牛影视| 欧美亚洲日本激情在线| 人人澡人人弄| 午夜国产综合视频在线观看| 亚洲综合五月天| 日本久久久精品电影| 99国产精品视频尤物| 天堂日本亚洲欧美| 超碰地址久久| 激情视频网址| 欧美亚洲高清晰| 国产精品69人妻无码久久久| 五月天伊人| 久久伊人最新网址视频| 久久久一区二区三区四曲免费听| 超碰 国产熟女精品一区| 成全在线观看免费观看| 97超久碰| 日韩视频精品在线观看| 无码heyzo高清一区| 蜜臀久久99精品久久久久久婷婷| 免费中文在线| 久久久91福利姬| 美女午夜福利免费视频| 婷婷15月天青娱乐| 国产强奸乱伦xd| 曰本熟女视频| 性饥渴少妇av无码毛片| 精品国产污一区二区三区| 91处女在线观看| 久热69九色熟妇97| 又大又大又大又粗爽高潮观看| 精品国产一区二区三区av在线资源| 久久精品导航| 95人妻爽爽人人做人人澡| 青草一区二区| 懂色综合久久久| 男女啪啪网站免费视频| 欧美欲色| 天天躁日日躁成人字幕aⅴ| 91天堂视频| 日本操逼视频导航| 精彩久久中文| 九九色精品| 国产精品天堂| 日日日啊啊啊| 国产高清无码一区三区二区| 综合激情一一91| 偷看洗澡一二三区美女| 欧美性暴力猛交| 江都AV在线| 亚洲第一免费视频| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 色图综合| 亚州综合电影| 午夜爽爽爽在线观看永久入口姬片| 熟女露脸激情自拍视频| 亚洲另类在线观看| 中文字幕丰满人妻日本| 日日黄色三级网站| 丰满人妻av一区二区三区| 五月天伊人网| 欧美熟女妇同| 日本黄 R色 成 人网站| 欧美一级在线观看成人| 亚洲欧美日产国产91毛片| wwwcaobibi| 欧美亚洲| 亚洲大色鬼| 国模限制级电影| 黄色区免费观看中文字幕| 欧姜老司机| 综合网久久| 日本女人操逼| 色y情视频免费看| 久久噜噜噜精品国产亚洲综合| 玖玖视频在线资源一区二区三区| 亚洲精品白浆高清久久久久久| 五十路熟女在线不卡观看一区二区| 国产精品一二三免费网站| 日本操逼视频不卡直接放| 强乱老妇中文字幕| 欧洲乱码视频| 婷婷久久五月天| 欧亚性爱在线视频| …亚洲黄色厕厕女女在线播…| 大香蕉欧美国产日韩高潮| 日日夜夜干| 亚洲天堂7777| 国产自产91区13区| 欧美日韩国内不卡| 无码人妻一区二区三区色欲aⅴ| 日本道人妻久久久在线不卡色视频| 91人妻视频在线| 香蕉久久国产AV一区二区| 国产美女自拍AV| 天天肏视频| 亚洲日韩狠狠撸视频| 欧美老妇女内射网址| 四虎AV在线观看| 91精品无码人妻系列| 欧美激情视频在线一区| 色香综合| 天天夜夜rb| 4虎在线视频| 综合网欧| 久久婷婷国产一区二区色| 久久久国产三级黄色片| 99精品视频在线观看免费| 97超碰磁| 国产激情视频一区区三区| 99rre在线精品99re8| 亚欧美综合网。| 99re69| 六月丁操逼| 日本三级人妻a人妻一在线| 五月丁香影院| 伊人久久婷婷| 超碰成人国产| 欧亚性爱视频免费看| 丰满人妻无码一区二区三区| 中文字幕精品一区二| 欧美乱伦专区| 在线免费观看高清无码视频| 日韩精品免费高清视频在线| 九九九九九九九九九九九免费国产| 精品超碰国产| 日韩午夜精品一区二区三区电影| 韩国一级婬片A片无码天美| 午夜视频黄| 日韩免费中文字幕视频| 亚洲婷婷丁香在线| 激情小说在线视频| 嗯嗯啊啊好爽| 精品国产Av无码久久久伦古装| 综合色一区三区二区| 91宗合网| 亚洲毛片基地专区| 亚洲加勒比| 日本淫乱女一区二区三区视频| 久久这里只有精品9| 亚洲丝袜诱惑| 黄片www视频免费| 天天干人人看综合| 日本孕妇一区二区视频操逼免费看 | 精彩久久中文| 青青草中出视频 | 麻豆天美国美国产AV| 午夜精品一区二区三区三上悠亚| 亚州精人品大香蕉| www四虎| 久久久中文版| 懂色av中文字幕一区二区三区天美| 男人的天堂日韩| 乱人乱色一区二区三区免费|