日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32MP157基于Yocto构建Qt镜像和SDK工具链

發(fā)布時(shí)間:2023/12/14 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32MP157基于Yocto构建Qt镜像和SDK工具链 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者:zzssdd2
E-mail:zzssdd2@foxmail.com

記錄下整個(gè)過程以及在該過程中遇到的問題和解決方法。

一、獲取軟件倉庫

$ mkdir -p openstlinux-5.4-dunfell-mp1-21-12-22 $ cd openstlinux-5.4-dunfell-mp1-21-12-22 $ repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.4-dunfell-mp1-21-12-22

執(zhí)行第3條命令時(shí)報(bào)錯(cuò)如下:

$ repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.4-dunfell-mp1-21-12-22 Command 'repo' not found, but can be installed with:sudo snap install git-repo

按照提示安裝git-repo后重新執(zhí)行命令,報(bào)錯(cuò)如下:

$ repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.4-dunfell-mp1-21-12-22 warning: gpg (GnuPG) is not available. warning: Installing it is strongly encouraged. warning: templates not found /build/git-repo-publish/parts/git/install/usr/share/git-core/templates ......File "/home/admin/samba/stm32mp157/STM32MP15-Ecosystem-v2.1.0/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/.repo/repo/main.py", line 79file=sys.stderr)^ SyntaxError: invalid syntax

按照如下步驟解決上述錯(cuò)誤:

$ sudo apt-get install gpg $ rm -rf ~/.repoconfig $ mkdir -p ~/bin $ curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ~/bin/repo $ chmod a+x ~/bin/repo

然后執(zhí)行如下命令獲取倉庫:

$ python3 ~/bin/repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.4-dunfell-mp1-21-12-22

如果出現(xiàn)如下警告,按照提示執(zhí)行命令即可:

... A new version of repo (2.21) is available. ... You should upgrade soon:cp /home/admin/samba/stm32mp157/STM32MP15-Ecosystem-v2.1.0/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/.repo/repo/repo /home/admin/bin/repo

如果執(zhí)行命令出現(xiàn)如下錯(cuò)誤提示:

Downloading Repo source from https://gerrit.googlesource.com/git-repo fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle fatal: error [Errno 110] Connection timed out fatal: double check your --repo-rev setting. fatal: cloning the git-repo repository failed, will remove '.repo/repo'

執(zhí)行如下命令使用國內(nèi)鏡像源:

$ export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'

然后再重新執(zhí)行命令。成功執(zhí)行命令的話提示如下:

$ python3 ~/bin/repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.4-dunfell-mp1-21-12-22Downloading Repo source from https://mirrors.tuna.tsinghua.edu.cn/git/git-repo remote: Enumerating objects: 7259, done. remote: Counting objects: 100% (7259/7259), done. remote: Compressing objects: 100% (3847/3847), done. remote: Total 7259 (delta 4683), reused 5526 (delta 3338) 接收對象中: 100% (7259/7259), 3.21 MiB | 3.41 MiB/s, 完成. 處理 delta 中: 100% (4683/4683), 完成. Downloading manifest from https://github.com/STMicroelectronics/oe-manifest.git remote: Enumerating objects: 61, done. remote: Counting objects: 100% (27/27), done. remote: Compressing objects: 100% (18/18), done. remote: Total 61 (delta 15), reused 20 (delta 9), pack-reused 34 展開對象中: 100% (61/61), 9.76 KiB | 713.00 KiB/s, 完成.Your identity is: zzssdd2 <zzssdd2@foxmail.com> If you want to change this, please re-run 'repo init' with --config-namerepo has been initialized in /home/admin/samba/stm32mp157/STM32MP15-Ecosystem-v2.1.0/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22

接著執(zhí)行同步倉庫的命令:

$ python3 ~/bin/repo sync Fetching: 100% (9/9), done in 3m27.864s Garbage collecting: 100% (9/9), done in 0.040s repo sync has finished successfully.

執(zhí)行完上面命令后倉庫就同步完成了,如果在同步過程中由于下載出錯(cuò)等原因?qū)е轮袛?#xff0c;重新執(zhí)行同步命令即可。同步完成后目錄結(jié)構(gòu)如下所示:

openstlinux-5.4-dunfell-mp1-21-12-22 ├── .repo │ ├── copy-link-files.json │ ├── manifests │ ├── manifests.git │ ├── manifest.xml │ ├── project.list │ ├── project-objects │ ├── projects │ └── repo └── layers├── meta-openembedded├── meta-qt5├── meta-st├── meta-timesys└── openembedded-core

接下來進(jìn)行構(gòu)建環(huán)境的初始化。

二、初始化構(gòu)建環(huán)境

我選擇的鏡像是QT image and SDK with weston/wayland,因此執(zhí)行如下命令來初始化構(gòu)建環(huán)境:

$ DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh

由于我的主機(jī)缺少相關(guān)軟件包提示如下:

[HOST DISTRIB check] Linux Distrib: Ubuntu Linux Release: 20.04Required packages for Linux Distrib: build-essential chrpath cpio debianutils diffstat gawk gcc-multilib git iputils-ping libegl1-mesa libsdl1.2-dev libssl-dev pylint python3 python3-git python3-jinja2 python3-pexpect python3-pip socat texinfo unzip wget xterm xz-utilsMissing required packages detected: chrpath diffstat gawk gcc-multilib libegl1-mesa libsdl1.2-dev pylint python3-git python3-jinja2 python3-pip socat texinfo xtermTo update your Linux Distribution packages, two proposals:1) run again envsetup.sh script with '--pkg-update' optionOR2) before running envsetup.sh script, launch first in your Linux console: sudo apt-get update sudo apt-get install chrpath diffstat gawk gcc-multilib libegl1-mesa libsdl1.2-dev pylint python3-git python3-jinja2 python3-pip socat texinfo xtermCheck aborted: exiting now...

根據(jù)提示執(zhí)行如下命令:

$ sudo apt-get update $ sudo apt-get install chrpath diffstat gawk gcc-multilib libegl1-mesa libsdl1.2-dev pylint python3-git python3-jinja2 python3-pip socat texinfo xterm

然后在我的主機(jī)上會出現(xiàn)如下錯(cuò)誤:

下列軟件包有未滿足的依賴關(guān)系:libsdl1.2-dev : 依賴: libglu1-mesa-dev 但是它將不會被安裝 或libglu-dev依賴: libx11-dev 但是它將不會被安裝依賴: libxext-dev 但是它將不會被安裝 E: 無法修正錯(cuò)誤,因?yàn)槟竽承┸浖3脂F(xiàn)狀,就是它們破壞了軟件包間的依賴關(guān)系。

解決錯(cuò)誤過程如下:

$ sudo apt install aptitude $ sudo aptitude install libsdl1.2-dev ......libx11-dev : 依賴: libx11-6 (= 2:1.6.9-2ubuntu1.2) 但是 2:1.6.9-2ubuntu1.3 已安裝 下列動(dòng)作將解決這些依賴關(guān)系:保持 下列軟件包于其當(dāng)前版本: 1) libegl-dev [未安裝的] 2) libgl-dev [未安裝的] 3) libgl1-mesa-dev [未安裝的] 4) libgles-dev [未安裝的] 5) libglu1-mesa-dev [未安裝的] 6) libglvnd-dev [未安裝的] 7) libglx-dev [未安裝的] 8) libsdl1.2-dev [未安裝的] 9) libx11-dev [未安裝的] 10) libxext-dev [未安裝的] 是否接受該解決方案?[Y/n/q/?] n 下列動(dòng)作將解決這些依賴關(guān)系:降級 下列軟件包: 1) libx11-6 [2:1.6.9-2ubuntu1.3 (now) -> 2:1.6.9-2ubuntu1.2 (focal-security,是否接受該解決方案?[Y/n/q/?] Y ......

解決該錯(cuò)誤后重新執(zhí)行安裝所缺少軟件包的那條命令即可。安裝完成后再次執(zhí)行初始化構(gòu)建環(huán)境的命令,如下:

$ DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh[HOST DISTRIB check] Linux Distrib: Ubuntu Linux Release: 20.04Required packages for Linux Distrib: build-essential chrpath cpio debianutils diffstat gawk gcc-multilib git iputils-ping libegl1-mesa libsdl1.2-dev libssl-dev pylint python3 python3-git python3-jinja2 python3-pexpect python3-pip socat texinfo unzip wget xterm xz-utilsCheck OK: all required packages are installed on host.[source layers/openembedded-core/oe-init-build-env][from nothing][EULA configuration][Configure *.conf files] [INFO] No 'site.conf.sample' file available at /home/admin/samba/stm32mp157/STM32MP15-Ecosystem-v2.1.0/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/layers/meta-st/scripts. Create default one...=========================================================================== Configuration files have been created for the following configuration:DISTRO : openstlinux-westonDISTRO_CODENAME : dunfellMACHINE : stm32mp1BB_NUMBER_THREADS : <no-custom-config-set>PARALLEL_MAKE : <no-custom-config-set>BUILDDIR : build-openstlinuxweston-stm32mp1DOWNLOAD_DIR : <disable>SSTATE_DIR : <disable>SOURCE_MIRROR_URL : <no-custom-config-set>SSTATE_MIRRORS : <disable>WITH_EULA_ACCEPTED: YES===========================================================================Available images for OpenSTLinux layers are:- Official OpenSTLinux images:st-image-weston - OpenSTLinux weston image with basic Wayland support (if enable in distro)- Other OpenSTLinux images:- Supported images:st-image-core - OpenSTLinux core imageYou can now run 'bitbake <image>'
  • The OpenEmbedded environment setup script must be run once in each new working terminal in which you use the BitBake or devtool tools

  • The BSP for STM32MP1 depends on packages and firmwares which are covered by a software license agreement (SLA). You will be asked to read and to accept this EULA.

至此,構(gòu)建環(huán)境初始化完成,接下來開始構(gòu)建鏡像和SDK。

三、構(gòu)建鏡像和SDK

溫馨提示:在執(zhí)行下面的構(gòu)建命令前建議查看下磁盤容量以確保有足夠的磁盤空間,否則在構(gòu)建過程中因磁盤空間不足也會導(dǎo)致失敗,如果磁盤空間不夠需要先進(jìn)行擴(kuò)容再來進(jìn)行構(gòu)建工作。

鏡像和SDK構(gòu)建完成后的磁盤占用情況如下:

$ du -h -d 1 134M ./layers 330M ./.repo 70G ./build-openstlinuxweston-stm32mp1

執(zhí)行如下命令開始構(gòu)建鏡像:

$ bitbake st-example-image-qtwayland

然后就是耐心等待構(gòu)建完成。如果在該過程中由于下載出錯(cuò)等原因?qū)е轮袛?#xff0c;重新執(zhí)行構(gòu)建命令即可。

################################### 2000 years later… ################################################

構(gòu)建成功后如下所示:

NOTE: Started PRServer with DBfile: /home/admin/samba/stm32mp157/STM32MP15-Ecosystem-v2.1.0/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 42375, PID: 502452 Loading cache: 100% |#############################################################################| Time: 0:00:02 Loaded 3751 entries from dependency cache. NOTE: Resolving any missing task queue dependenciesBuild Configuration: BB_VERSION = "1.46.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "universal" TARGET_SYS = "arm-ostl-linux-gnueabi" MACHINE = "stm32mp1" DISTRO = "openstlinux-weston" DISTRO_VERSION = "3.1.11-snapshot-20220507" TUNE_FEATURES = "arm vfp cortexa7 neon vfpv4 thumb callconvention-hard" TARGET_FPU = "hard" DISTRO_CODENAME = "dunfell" ACCEPT_EULA_stm32mp1 = "1" GCCVERSION = "9.%" PREFERRED_PROVIDER_virtual/kernel = "linux-stm32mp" meta-python meta-oe meta-gnome meta-initramfs meta-multimedia meta-networking meta-webserver meta-filesystems meta-perl = "HEAD:2e7e98cd0cb82db214b13224c71134b9335a719b" meta-st-stm32mp = "HEAD:bd643ba8654010628fbcf093666fe3d184a9df34" meta-qt5 = "HEAD:b4d24d70aca75791902df5cd59a4f4a54aa4a125" meta-st-openstlinux = "HEAD:2dc988821b19d2eb75cfad4d543b674cdadd77bb" meta = "HEAD:c7d2281eb6cda9c1637c20b3540b142073bca235"Initialising tasks: 100% |########################################################################| Time: 0:00:28 Sstate summary: Wanted 432 Found 432 Missed 0 Current 2996 (100% match, 100% complete) NOTE: Executing Tasks NOTE: Tasks Summary: Attempted 9391 tasks of which 9373 didn't need to be rerun and all succeeded. NOTE: Writing buildhistory NOTE: Writing buildhistory took: 2 seconds

接下來構(gòu)建SDK,執(zhí)行如下命令:

$ bitbake st-example-image-qtwayland -c populate_sdk

如果在該過程中因?yàn)槌鲥e(cuò)導(dǎo)致中斷,重新執(zhí)行構(gòu)建命令即可。構(gòu)建完成后如下所示:

NOTE: Started PRServer with DBfile: /home/admin/samba/stm32mp157/STM32MP15-Ecosystem-v2.1.0/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 46791, PID: 1730318 Loading cache: 100% |#############################################################################| Time: 0:02:32 Loaded 3751 entries from dependency cache. NOTE: Resolving any missing task queue dependenciesBuild Configuration: BB_VERSION = "1.46.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "universal" TARGET_SYS = "arm-ostl-linux-gnueabi" MACHINE = "stm32mp1" DISTRO = "openstlinux-weston" DISTRO_VERSION = "3.1.11-snapshot-20220507" TUNE_FEATURES = "arm vfp cortexa7 neon vfpv4 thumb callconvention-hard" TARGET_FPU = "hard" DISTRO_CODENAME = "dunfell" ACCEPT_EULA_stm32mp1 = "1" GCCVERSION = "9.%" PREFERRED_PROVIDER_virtual/kernel = "linux-stm32mp" meta-python meta-oe meta-gnome meta-initramfs meta-multimedia meta-networking meta-webserver meta-filesystems meta-perl = "HEAD:2e7e98cd0cb82db214b13224c71134b9335a719b" meta-st-stm32mp = "HEAD:bd643ba8654010628fbcf093666fe3d184a9df34" meta-qt5 = "HEAD:b4d24d70aca75791902df5cd59a4f4a54aa4a125" meta-st-openstlinux = "HEAD:2dc988821b19d2eb75cfad4d543b674cdadd77bb" meta = "HEAD:c7d2281eb6cda9c1637c20b3540b142073bca235"Initialising tasks: 100% |########################################################################| Time: 0:00:21 Sstate summary: Wanted 405 Found 405 Missed 0 Current 2363 (100% match, 100% complete) NOTE: Executing Tasks NOTE: Tasks Summary: Attempted 7689 tasks of which 7689 didn't need to be rerun and all succeeded. NOTE: Writing buildhistory NOTE: Writing buildhistory took: 2 seconds

鏡像和SDK構(gòu)建完成后分別存放在目錄openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/tmp-glibc/deploy下的images和sdk目錄下。

補(bǔ)充: OpenSTLinux提供了兩種基于QT的鏡像和SDK,這兩種鏡像和SDK的構(gòu)建命令如下:

  • QT image and SDK with EGLFS

    # Initialize the OpenEmbedded build environment for the openstlinux-eglfs distro: $ DISTRO=openstlinux-eglfs MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh # Build the image and the SDK: $ bitbake st-example-image-qt $ bitbake st-example-image-qt -c populate_sdk
  • QT image and SDK with weston/wayland

    # Initialize the OpenEmbedded build environment for the openstlinux-weston distro: $ DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh # Build the image and the SDK: $ bitbake st-example-image-qtwayland $ bitbake st-example-image-qtwayland -c populate_sdk

四、適配開發(fā)板

前面已經(jīng)編譯完成鏡像和SDK,已經(jīng)確保整個(gè)過程是沒有問題的。接下來就可以修改tf-a、u-boot和linux適配自己的開發(fā)板了,這些工作均在編譯目錄openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1進(jìn)行。

4.1 修改TF-A

執(zhí)行如下命令查找TF-A recipe:

$ devtool search tf-a*

結(jié)果如下:

NOTE: Starting bitbake server... NOTE: Reconnecting to bitbake server... NOTE: Retrying server connection (#1)... NOTE: Started PRServer with DBfile: /home/admin/samba/stm32mp157/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 34083, PID: 252954 Loading cache: 100% |#############################################################################| Time: 0:00:01 Loaded 3751 entries from dependency cache. ...... tf-a-stm32mp Trusted Firmware-A for STM32MP1 ...... tf-a-stm32mp-serialboot Trusted Firmware-A for STM32MP1 as serial boot loader ...... tf-a-stm32mp-ssp Trusted Firmware-A SSP for STM32MP1 ......

如果出現(xiàn)如下錯(cuò)誤:

ERROR: Unable to start bitbake server (None) ERROR: Server log for this session ...... ERROR: The following layer directories do not exist ...... ERROR: Please check BBLAYERS in ......

解決方法:

$ source ../layers/openembedded-core/oe-init-build-env

然后根據(jù)查找到的recipe名稱執(zhí)行如下命令:

$ devtool modify tf-a-stm32mp

命令執(zhí)行完成后會生成workspace目錄,然后進(jìn)入目錄workspace/sources/tf-a-stm32mp對tf-a源碼進(jìn)行修改,參考STM32MP157系統(tǒng)移植(TF-A,U-Boot,Linux)文章的TF-A移植部分。

這里需要注意的是,如果是要?jiǎng)?chuàng)建自己的開發(fā)板設(shè)備樹文件則需要修改配置文件,否則無法編譯出對應(yīng)的固件。例如我需要添加自己的開發(fā)板stm32mp157d-custom,需要做如下修改:

修改openstlinux-5.4-dunfell-mp1-21-12-22/layers/meta-st/meta-st-stm32mp/conf/machine/stm32mp1.conf文件如下內(nèi)容,在其中添加自己的開發(fā)板:

# ========================================================================= # Machine settings # ========================================================================= # Define list of devicetree per board STM32MP_DT_FILES_DK += "stm32mp157a-dk1 stm32mp157d-dk1" STM32MP_DT_FILES_DK += "stm32mp157c-dk2 stm32mp157f-dk2" STM32MP_DT_FILES_ED += "stm32mp157c-ed1 stm32mp157f-ed1" STM32MP_DT_FILES_EV += "stm32mp157a-ev1 stm32mp157c-ev1 stm32mp157d-ev1 stm32mp157f-ev1 stm32mp157d-custom"

當(dāng)然直接修改源碼中現(xiàn)有的設(shè)備樹文件是最方便的,就無需再去修改配置文件了。例如我手中的開發(fā)板是參考stm32mp157d-ev1設(shè)計(jì),那就直接修改源碼中stm32mp157d-ev1.dts及其相關(guān)文件就行了(個(gè)人更推薦這種做法,維持非自己創(chuàng)建的layer完整性)。

修改完成后執(zhí)行如下命令進(jìn)行編譯:

$ devtool build tf-a-stm32mp

編譯成功后在目錄workspace/sources/tf-a-stm32mp/oe-workdir/deploy-tf-a-stm32mp下就是編譯出的固件。然后執(zhí)行如下命令部署:

$ bitbake tf-a-stm32mp -c deploy

部署后在/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/tmp-glibc/deploy/images/stm32mp1/arm-trusted-firmware目錄下可以看到更新固件。

接下來對tf-a-stm32mp-serialboot進(jìn)行修改,和上面步驟一樣:

$ devtool modify tf-a-stm32mp-serialboot $ devtool build tf-a-stm32mp-serialboot $ bitbake tf-a-stm32mp-serialboot -c deploy

4.2 修改U-Boot

執(zhí)行如下命令查找U-boot recipe:

$ devtool search u-boot*

結(jié)果如下:

NOTE: Starting bitbake server... NOTE: Reconnecting to bitbake server... NOTE: Retrying server connection (#1)... NOTE: Started PRServer with DBfile: /home/admin/samba/stm32mp157/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 36991, PID: 371338 Loading cache: 100% |#############################################################################| Time: 0:00:01 Loaded 3749 entries from dependency cache. Parsing recipes: 100% |###########################################################################| Time: 0:00:01 Parsing of 2546 .bb files complete (2544 cached, 2 parsed). 3751 targets, 107 skipped, 0 masked, 0 errors. u-boot-stm32mp-extlinux Provide 'extlinux.conf' file for U-Boot u-boot-stm32mp Universal Boot Loader for embedded devices for stm32mp u-boot-stm32mp-splash Universal Boot Loader Splash Screen for stm32mp embedded devices u-boot-fw-config-stm32mp U-Boot bootloader fw_printenv/setenv utilities ......

然后根據(jù)查找到的recipe名稱執(zhí)行如下命令:

$ devtool modify u-boot-stm32mp

命令執(zhí)行完成后進(jìn)入目錄workspace/sources/u-boot-stm32mp對u-boot源碼進(jìn)行修改,參考STM32MP157系統(tǒng)移植(TF-A,U-Boot,Linux)文章的U-BOOT移植部分。

注意:《STM32MP157系統(tǒng)移植(TF-A,U-Boot,Linux)》文章的u-boot代碼和本文并非完全一樣,本文修改&ethernet0節(jié)點(diǎn)不同之處如下所示:

&ethernet0 {......pinctrl-1 = <&ethernet0_rgmii_pins_sleep_a>;...... };

修改完成后執(zhí)行如下命令進(jìn)行編譯:

$ devtool build u-boot-stm32mp

如果編譯報(bào)錯(cuò)就看下輸出日志里面有沒如下提示文本:

/home/admin/samba/stm32mp157/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/workspace/sources/u-boot-stm32mp is not clean, please run 'make mrproper' in the '/home/admin/samba/stm32mp157/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/workspace/sources/u-boot-stm32mp' directory.

若有就按提示進(jìn)入u-boot-stm32mp目錄下執(zhí)行 make mrproper命令:

$ make mrproper CLEAN u-boot.cfg.tmp CLEAN scripts/basic CLEAN scripts/kconfig CLEAN include/config include/generated

然后回到build-openstlinuxweston-stm32mp1目錄重新執(zhí)行編譯指令。

同樣,若重新構(gòu)建image過程中遇到uboot報(bào)錯(cuò)在openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/tmp-glibc/work-shared/stm32mp1/uboot-source目錄執(zhí)行make mrproper命令然后回到build-openstlinuxweston-stm32mp1目錄重新執(zhí)行構(gòu)建指令

編譯成功后在目錄workspace/sources/u-boot-stm32mp/oe-workdir/deploy-u-boot-stm32mp下就是編譯出的固件。然后執(zhí)行如下命令部署:

$ bitbake u-boot-stm32mp -c deploy

部署后在/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/tmp-glibc/deploy/images/stm32mp1/bootloader目錄下可以看到更新固件。

4.3 修改Linux

首先執(zhí)行如下命令進(jìn)行初始化:

$ devtool modify virtual/kernel

提示如下所示:

NOTE: Starting bitbake server... NOTE: Reconnecting to bitbake server... NOTE: Retrying server connection (#1)... NOTE: Started PRServer with DBfile: /home/admin/samba/stm32mp157/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 33507, PID: 1054423 Loading cache: 100% |############################################| Time: 0:00:01 Loaded 3748 entries from dependency cache. Parsing recipes: 100% |##########################################| Time: 0:00:01 Parsing of 2546 .bb files complete (2543 cached, 3 parsed). 3751 targets, 107 skipped, 0 masked, 0 errors. INFO: Mapping virtual/kernel to linux-stm32mp NOTE: Resolving any missing task queue dependenciesBuild Configuration: BB_VERSION = "1.46.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "universal" TARGET_SYS = "arm-ostl-linux-gnueabi" MACHINE = "stm32mp1" DISTRO = "openstlinux-weston" DISTRO_VERSION = "3.1.11-snapshot-20220512" TUNE_FEATURES = "arm vfp cortexa7 neon vfpv4 thumb callconvention-hard" TARGET_FPU = "hard" DISTRO_CODENAME = "dunfell" ACCEPT_EULA_stm32mp1 = "1" GCCVERSION = "9.%" PREFERRED_PROVIDER_virtual/kernel = "linux-stm32mp" meta-python meta-oe meta-gnome meta-initramfs meta-multimedia meta-networking meta-webserver meta-filesystems meta-perl = "HEAD:2e7e98cd0cb82db214b13224c71134b9335a719b" meta-st-stm32mp = "HEAD:bd643ba8654010628fbcf093666fe3d184a9df34" meta-qt5 = "HEAD:b4d24d70aca75791902df5cd59a4f4a54aa4a125" meta-st-openstlinux = "HEAD:2dc988821b19d2eb75cfad4d543b674cdadd77bb" meta = "HEAD:c7d2281eb6cda9c1637c20b3540b142073bca235" workspace = "<unknown>:<unknown>"Initialising tasks: 100% |#######################################| Time: 0:00:05 Sstate summary: Wanted 0 Found 0 Missed 0 Current 22 (0% match, 100% complete) NOTE: Executing Tasks NOTE: Tasks Summary: Attempted 102 tasks of which 99 didn't need to be rerun and all succeeded. NOTE: Writing buildhistory NOTE: Writing buildhistory took: 2 seconds INFO: Adding local source files to srctree... INFO: Source tree extracted to /home/admin/samba/stm32mp157/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/workspace/sources/linux-stm32mp INFO: Recipe linux-stm32mp now set up to build from /home/admin/samba/stm32mp157/Distribution-Package/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/workspace/sources/linux-stm32mp

命令執(zhí)行完成后進(jìn)入目錄workspace/sources/linux-stm32mp對linux源碼進(jìn)行修改,參考STM32MP157系統(tǒng)移植(TF-A,U-Boot,Linux)文章的LINUX移植部分。

如果需要執(zhí)行menuconfig對內(nèi)核配置進(jìn)行更改則執(zhí)行如下命令:

$ bitbake virtual/kernel -c menuconfig

修改完成后執(zhí)行如下命令進(jìn)行編譯:

# devtool build linux-stm32mp # bitbake linux-stm32mp -c deploy $ bitbake virtual/kernel -C compile

編譯完成后在/openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/tmp-glibc/deploy/images/stm32mp1/kernel目錄下可以看到新的固件。

上面命令會執(zhí)行configure、compile、package、deploy等一系列命令,比較耗時(shí)間,如果只是想單純編譯可以執(zhí)行如下命令:

$ bitbake virtual/kernel -c compile

編譯后固件在openstlinux-5.4-dunfell-mp1-21-12-22/build-openstlinuxweston-stm32mp1/workspace/sources/linux-stm32mp/oe-workdir/build目錄。

最后,將這些固件更新到開發(fā)板后就可以搭配編譯出來的帶Qt的文件系統(tǒng)進(jìn)行驗(yàn)證3D-GPU等功能了。

五、補(bǔ)充

5.1 關(guān)于SDMMC3

The SDMMC instances are ordered by address in the device tree arch/arm/boot/dts/stm32mp151.dtsi file:

sdmmc3: sdmmc@48004000 { ... sdmmc1: sdmmc@58005000 { ... sdmmc2: sdmmc@58007000 {

By default, in OpenSTLinux distribution, sdmmc3 is disabled so the sdmmc1 (SD card on Evaluation boards and Discovery kits) and sdmmc2 (eMMC on Evaluation boards and Wifi on Discovery kits) are respectively aliased to mmc0 and mmc1.
If you enable sdmmc3, it will take the mmc0 alias and the aliases above will shift, so don’t forget to update the Linux kernel boot command accordingly!
For instance, ‘root=/dev/mmcblk0p6’ will become ‘root=/dev/mmcblk1p6’ to mount the rootfs from the sdmmc1 (SD card) when sdmmc3 is enabled.

STM32MP157擁有三個(gè)SDMMC接口,在芯片中的內(nèi)存映射地址如下:

PeripheralBoundary addressSize (Bytes)
SDMMC10x58005000 - 0x58005FFF4 KB
SDMMC20x58007000 - 0x58007FFF4 KB
SDMMC30x48004000 - 0x480043FF1 KB

根據(jù)地址分配可知它們的初始化順序是SDMMC3 --> SDMMC1 --> SDMMC2。

三個(gè)接口都啟用后在Linux中對應(yīng)的操作文件如下:

SDMMC1SDMMC2SDMMC3
/dev/mmcblk1/dev/mmcblk2/dev/mmcblk0

我手上的開發(fā)板對這3個(gè)接口分配如下:

SDMMC1SDMMC2SDMMC3
SD卡EMMCWIFI

在Linux設(shè)備樹中啟用sdmmc3接口前后sd卡和emmc設(shè)備號的變化如下:

設(shè)備設(shè)備號(不使用SDMMC3)設(shè)備號(使用SDMMC3)
SD卡mmc0mmc1
EMMCmmc1mmc2

st提供的yocto源碼中沒有使用sdmmc3,所以啟用了sdmmc3接口后需要修改一些配置文件,系統(tǒng)啟動(dòng)后才能正常掛載文件系統(tǒng)。需要修改如下幾個(gè)文件:

  • mount-partitions.sh

    OpenSTLinux源碼中的位置:openstlinux-5.4-dunfell-mp1-21-12-22/layers/meta-st/meta-st-openstlinux/recipes-core/systemd/systemd-mount-partitions/mount-partitions.sh

    燒錄后在文件系統(tǒng)中的位置:/sbin/mount-partitions.sh

    修改后內(nèi)容如下,主要增加了mmcblk2的內(nèi)容:

    #!/bin/sh - #=============================================================================== # # FILE: mount-partitions.sh # # USAGE: ./mount-partitions.sh [start|stop] # # DESCRIPTION: mount partitions# ORGANIZATION: STMicroelectronics # COPYRIGHT: Copyright (C) 2018, STMicroelectronics - All Rights Reserved # CREATED: 01/09/2018 13:36 # REVISION: --- #===============================================================================MOUNT_PARTITIONS_LIST=""get_type() {local __resultvar=$1ROOT_TYPE="unknown"if [ -f /usr/bin/findmnt ];thenROOT_DEVICE=$(findmnt --noheadings --output=SOURCE / | cut -d'[' -f1)case $ROOT_DEVICE inubi*)ROOT_TYPE="nand";;/dev/mmcblk0*)ROOT_TYPE="sdmmc";;/dev/mmcblk1*)ROOT_TYPE="mmc";;/dev/mmcblk2*)ROOT_TYPE="mmc";;/dev/disk/by-*)LINK=$(/usr/bin/readlink $ROOT_DEVICE | tr '/' ' ' | tr '.' ' ' | sed "s/ //g")case $LINK inubi*)ROOT_TYPE="nand";;mmcblk0*)ROOT_TYPE="sdmmc";;mmcblk1*)ROOT_TYPE="mmc";;mmcblk2*)ROOT_TYPE="mmc";;esac;;esacelseif [ `cat /proc/cmdline | sed "s/.*mmcblk0.*/mmcblk0/" ` == "mmcblk0" ]; thenROOT_TYPE="sdmmc"elif [ `cat /proc/cmdline | sed "s/.*mmcblk1.*/mmcblk1/" ` == "mmcblk1" ]; thenROOT_TYPE="mmc"elif [ `cat /proc/cmdline | sed "s/.*mmcblk2.*/mmcblk2/" ` == "mmcblk2" ]; thenROOT_TYPE="mmc"elif [ `cat /proc/cmdline | sed "s/.*ubi0.*/ubi0/" ` == "ubi0" ]; thenROOT_TYPE="nand"fifieval $__resultvar="'$ROOT_TYPE'" }found_devices() {local __resultvar=$1local __resultopt=$2local _type=$3local _search=$4local _device="unknown"local _option=" "case $_type innand)local ubi_volumes=$(ls -1 -d /sys/class/ubi/ubi0_*)for f in $ubi_volumes;doif [ -r $f/name ];thencat $f/name | grep -sq "^${_search}"if [ "$?" -eq 0 ];then_device="/dev/$(basename $f)"_option="-t ubifs"break;fifidone;;sdmmc)local sdmmc_parts=$(ls -1 -d /sys/block/mmcblk0/mmcblk0p*)for f in $sdmmc_parts;doif [ -r $f/uevent ];thencat $f/uevent | grep PARTNAME | sed "s/PARTNAME=//" | grep -sq "^${_search}"if [ "$?" -eq 0 ];then_device="/dev/$(basename $f)"break;fifidone;;mmc)local mmc_parts=$(ls -1 -d /sys/block/mmcblk1/mmcblk1p*)if [ ! $mmc_parts]; thenmmc_parts=$(ls -1 -d /sys/block/mmcblk2/mmcblk2p*)fifor f in $mmc_parts;doif [ -r $f/uevent ];thencat $f/uevent | grep PARTNAME | sed "s/PARTNAME=//" | grep -sq "^${_search}"if [ "$?" -eq 0 ];then_device="/dev/$(basename $f)"break;fifidone;;esaceval $__resultvar="'$_device'"eval $__resultopt="'$_option'" }case "$1" instart)# mount partitionsecho "mount-partitions start!"get_type TYPEecho "TYPE of support detected: $TYPE"for part in $MOUNT_PARTITIONS_LISTdopart_label=$(echo $part | cut -d',' -f1)mountpoint=$(echo $part | cut -d',' -f2)found_devices DEVICE DEVICE_OPTION $TYPE $part_labelecho "$part_label device: $DEVICE"[ -d $mountpoint ] || mkdir -p $mountpoint[ -e $DEVICE ] && mount $DEVICE_OPTION $DEVICE $mountpointdone;;stop)# umount partitionsecho "mount-partitions stop!"for part in $MOUNT_PARTITIONS_LISTdomountpoint=$(echo $part | cut -d',' -f2)umount $mountpointdone;;*)echo "Usage: $0 [start|stop]";; esac
  • userfs-cleanup-package.sh

    OpenSTLinux源碼中的位置:openstlinux-5.4-dunfell-mp1-21-12-22/layers/meta-st/meta-st-openstlinux/recipes-support/userfs/userfs-cleanup-package/userfs-cleanup-package.sh

    燒錄后在文件系統(tǒng)中的位置:/sbin/userfs-cleanup-package.sh

    修改后內(nèi)容如下,主要增加了mmcblk2的內(nèi)容:

    #! /bin/sh ### BEGIN INIT INFO # remove package which are present on the database but not present on userfs ### END INIT INFODESC="cleanup apt database"get_type() {local __resultvar=$1ROOT_TYPE="unknown"if [ -f /usr/bin/findmnt ];thenROOT_DEVICE=$(findmnt --noheadings --output=SOURCE / | cut -d'[' -f1)case $ROOT_DEVICE inubi*)ROOT_TYPE="nand";;/dev/mmcblk0*)ROOT_TYPE="sdmmc";;/dev/mmcblk1*)ROOT_TYPE="mmc";;/dev/mmcblk2*)ROOT_TYPE="mmc";;/dev/disk/by-*)LINK=$(/usr/bin/readlink $ROOT_DEVICE | tr '/' ' ' | tr '.' ' ' | sed "s/ //g")case $LINK inubi*)ROOT_TYPE="nand";;mmcblk0*)ROOT_TYPE="sdmmc";;mmcblk1*)ROOT_TYPE="mmc";;mmcblk2*)ROOT_TYPE="mmc";;esac;;esacelseif [ `cat /proc/cmdline | sed "s/.*mmcblk0.*/mmcblk0/" ` == "mmcblk0" ]; thenROOT_TYPE="sdmmc"elif [ `cat /proc/cmdline | sed "s/.*mmcblk1.*/mmcblk1/" ` == "mmcblk1" ]; thenROOT_TYPE="mmc"elif [ `cat /proc/cmdline | sed "s/.*mmcblk2.*/mmcblk2/" ` == "mmcblk2" ]; thenROOT_TYPE="mmc"elif [ `cat /proc/cmdline | sed "s/.*ubi0.*/ubi0/" ` == "ubi0" ]; thenROOT_TYPE="nand"elif [ `cat /proc/cmdline | sed "s/.*nfsroot.*/nfs/" ` == "nfs" ]; thenROOT_TYPE="nfs"fifieval $__resultvar="'$ROOT_TYPE'" }found_devices() {local __resultvar=$1local __resultopt=$2local _type=$3local _search=$4local _device="unknown"local _option=" "case $_type innand)local ubi_volumes=$(ls -1 -d /sys/class/ubi/ubi0_*)for f in $ubi_volumes;doif [ -r $f/name ];thencat $f/name | grep -sq "^${_search}"if [ "$?" -eq 0 ];then_device="/dev/$(basename $f)"_option="-t ubifs"break;fifidone;;sdmmc)local sdmmc_parts=$(ls -1 -d /sys/block/mmcblk0/mmcblk0p*)for f in $sdmmc_parts;doif [ -r $f/uevent ];thencat $f/uevent | grep PARTNAME | sed "s/PARTNAME=//" | grep -sq "^${_search}"if [ "$?" -eq 0 ];then_device="/dev/$(basename $f)"break;fifidone;;mmc)local mmc_parts=$(ls -1 -d /sys/block/mmcblk1/mmcblk1p*)if [ ! $mmc_parts]; thenmmc_parts=$(ls -1 -d /sys/block/mmcblk2/mmcblk2p*)fifor f in $mmc_parts;doif [ -r $f/uevent ];thencat $f/uevent | grep PARTNAME | sed "s/PARTNAME=//" | grep -sq "^${_search}"if [ "$?" -eq 0 ];then_device="/dev/$(basename $f)"break;fifidone;;nfs)$_device="/dev/nfs";;esaceval $__resultvar="'$_device'"eval $__resultopt="'$_option'" }case $1 instart)echo "Starting $DESC"get_type TYPEfound_devices DEVICE DEVICE_OPTION $TYPE userfsif [ "$DEVICE" = "/dev/null" ];then# nfs file system, do nothingexit 0ficase $DEVICE inunknown)# userfs partition are not present# we need to cleanup apt databasegrep -l "^/usr/local/" /var/lib/dpkg/info/* | sed -e "s|/var/lib/dpkg/info/\(.*\).list|\1|" | xargs apt-get purge -yecho "USERFS NOT PRESENT: CLEAN DPKG DATABASE" > /dev/kmsg;;/dev/nfs)# nfs file system, do nothingexit 0;;/dev/*)# userfs are present, do nothing;;esac;;*)echo "Usage: @sysconfdir@/init.d/userfs-cleanup-package.sh {start}" >&2exit 1;; esacexit 0# vim:noet
  • init-resize.sh

    OpenSTLinux源碼中的位置:openstlinux-5.4-dunfell-mp1-21-12-22/layers/meta-st/meta-st-openstlinux/recipes-st/initrd/files/init-resize.sh

    燒錄后在文件系統(tǒng)中的位置:/boot/uInitrd/init.d/95-resize

    修改后內(nèi)容如下,主要增加了mmcblk2的內(nèi)容:

    #!/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/binresize_enabled() {return 0 }resize_run() {ln -s /proc/mounts /etc/mtabif [ -n "$ROOTFS_DIR" ]; thenif [ ! -e $ROOTFS_DIR/etc/.resized ]then# sdmmc0/1/2for j in 0 1 2;dofor i in 4 5 6 7 8 9 10;doDEVICE="/dev/mmcblk"$j"p"$iif [ -e $DEVICE ]; thenlabel=$(/sbin/e2label $DEVICE 2> /dev/null)if [ $? -eq 0 ]; thencase $label inuser*)echo "RESIZE USERFS [$DEVICE]"/sbin/e2fsck -f -y -c -C 0 $DEVICE && /sbin/resize2fs $DEVICE;;root*)echo "RESIZE ROOTFS [$DEVICE]"/sbin/resize2fs $DEVICE;;vendor*)echo "RESIZE VENDORFS [$DEVICE]"/sbin/e2fsck -f -y -c -C 0 $DEVICE && /sbin/resize2fs $DEVICE;;boot*)echo "RESIZE BOOTFS [$DEVICE]"/sbin/e2fsck -f -y -c -C 0 $DEVICE && /sbin/resize2fs $DEVICE;;*);;esacfifidonedonetouch $ROOTFS_DIR/etc/.resizedfifi }
  • 5.2 關(guān)于bootfs

    st-image-bootfs-openstlinux-weston-stm32mp1.ext4鏡像內(nèi)容如下:

    . ├── boot.scr.uimg ├── lost+found [error opening dir] ├── mmc0_extlinux │ └── stm32mp157d-custom_extlinux.conf ├── mmc1_extlinux │ └── stm32mp157d-custom_extlinux.conf ├── splash.bmp ├── stm32mp157d-custom.dtb ├── uImage └── uInitrd

    stm32mp157d-custom_extlinux.conf文件內(nèi)容如下:

    $ cat mmc0_extlinux/stm32mp157d-custom_extlinux.conf # Generic Distro Configuration file generated by OpenEmbedded menu title Select the boot mode MENU BACKGROUND /splash.bmp TIMEOUT 20 DEFAULT stm32mp157d-custom LABEL stm32mp157d-customKERNEL /uImageFDT /stm32mp157d-custom.dtbINITRD /uInitrdAPPEND root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw console=ttySTM0,115200$ cat mmc1_extlinux/stm32mp157d-custom_extlinux.conf # Generic Distro Configuration file generated by OpenEmbedded menu title Select the boot mode MENU BACKGROUND /splash.bmp TIMEOUT 20 DEFAULT stm32mp157d-custom LABEL stm32mp157d-customKERNEL /uImageFDT /stm32mp157d-custom.dtbINITRD /uInitrdAPPEND root=PARTUUID=491f6117-415d-4f53-88c9-6e0de54deac6 rootwait rw console=ttySTM0,115200

    總結(jié)

    以上是生活随笔為你收集整理的STM32MP157基于Yocto构建Qt镜像和SDK工具链的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    亚洲精品国产麻豆 | 国产精品一区二区久久精品爱微奶 | 99国产情侣在线播放 | 四虎海外影库www4hu | 国产日产亚洲精华av | 精品久久一二三区 | 久久视频99| 中文字幕视频在线播放 | 亚洲精品18日本一区app | 久久精品视频在线播放 | 天天综合导航 | 日本韩国中文字幕 | 91在线中文 | 一区二区三区电影在线播 | 久草在线综合 | 狠狠干综合网 | 国内精品美女在线观看 | 福利视频一区二区 | 国产精品嫩草影视久久久 | 国产黑丝一区二区三区 | 特黄色大片| 欧美精品免费在线 | 伊人影院得得 | 日韩在线看片 | 91热精品| 在线观看亚洲专区 | 国产小视频网站 | www.香蕉视频| 高清不卡毛片 | 伊人超碰在线 | 国产午夜三级一区二区三 | 亚洲成人精品在线 | 午夜久久久久久久 | 国产涩涩网站 | 国产亚洲一级高清 | 97视频人人澡人人爽 | 国产高清视频 | 欧美日一级片 | 国产精品成人久久久久久久 | 久久www免费人成看片高清 | 日本久久久久久久久久久 | 欧美黑人xxxx猛性大交 | 看黄色.com | 婷婷婷国产在线视频 | 国产成人一区二区三区久久精品 | 丁香 婷婷 激情 | 日本韩国欧美在线观看 | 综合天堂av久久久久久久 | 黄色视屏av | 国产免费午夜 | 粉嫩av一区二区三区四区 | 国产午夜免费视频 | 国产视频资源 | 欧美男同网站 | 日韩在线观看你懂得 | 久久久久久久网站 | 激情 婷婷| 91九色精品女同系列 | 99久久99视频只有精品 | 亚洲视频在线免费观看 | av三级在线看 | 亚洲精品女| 国产精品美女久久久久aⅴ 干干夜夜 | 天天曰夜夜操 | 一区二区三区国产精品 | 久久人人爽人人爽人人 | 国产精品1024| 久久私人影院 | 亚洲四虎在线 | 成人性生交大片免费观看网站 | 国产成人精品av | 国产综合在线观看视频 | 草莓视频在线观看免费观看 | 国产久草在线观看 | 美女黄网久久 | 丁香六月激情婷婷 | 在线免费视频一区 | 狠狠操导航 | 91男人影院| 久久在线免费观看 | 99精品一级欧美片免费播放 | 欧美日韩aa | 亚洲欧美日韩国产一区二区三区 | 亚洲另类视频在线观看 | 激情六月婷婷久久 | 91原创在线观看 | 人人要人人澡人人爽人人dvd | 97精品超碰一区二区三区 | 97视频亚洲| 久草爱 | 狠狠干天天| 日韩在线视| 国产三级久久久 | 国产色一区 | 国产色爽 | 免费国产在线精品 | 91九色porny在线 | 久久草| 黄色片网站大全 | 在线观看免费高清视频大全追剧 | 69国产成人综合久久精品欧美 | 久草在线视频国产 | 97精品国自产拍在线观看 | 天天操夜操 | www.成人sex| 天天曰天天射 | 久久久久久片 | a天堂一码二码专区 | av在线免费观看不卡 | 久久狠狠一本精品综合网 | 国产福利不卡视频 | 国产精品成人在线 | 日韩电影一区二区三区 | 69亚洲乱 | 99产精品成人啪免费网站 | 国产精品6 | 国产精品久久久久久av | 成年人黄色免费网站 | 在线看v片 | 亚洲精品在线免费播放 | 午夜精品视频免费在线观看 | 黄色毛片在线看 | 国产精品成人免费一区久久羞羞 | 婷婷激情欧美 | 亚洲欧洲xxxx | 亚洲激情精品 | 中文在线a∨在线 | 国产老妇av | 视频91 | 96精品在线 | 亚洲国产精品日韩 | 国产手机视频在线 | 精品久久视频 | 欧美精品久久久久a | 一区中文字幕电影 | 天天操夜 | 免费在线观看成年人视频 | 91在线porny国产在线看 | 精品久久久久久国产91 | 九七在线视频 | 免费看一级一片 | 国产乱对白刺激视频不卡 | 手机在线看永久av片免费 | 草久在线 | 成人av免费在线观看 | 午夜精品久久久久久久99热影院 | av一级免费| 久久成人午夜视频 | 久久久免费毛片 | 欧美亚洲国产精品久久高清浪潮 | 国产精品久久久久久久毛片 | 99精品视频在线观看视频 | 中文字幕999 | 青青草在久久免费久久免费 | 在线免费黄色片 | 九草在线观看 | 欧美经典久久 | 久久久黄色 | 成人免费色 | 特级黄色视频毛片 | 国产精品美女久久久久aⅴ 干干夜夜 | 国产精品久久久久久一区二区三区 | 狠狠干免费 | 日韩视频一区二区在线观看 | 久久99精品久久久久久秒播蜜臀 | 国产精品一区二区在线免费观看 | 国产精品一区二区三区在线 | 国产黄影院色大全免费 | 久久99视频精品 | 久操视频在线免费看 | 98涩涩国产露脸精品国产网 | 亚洲草视频 | 久久久久久激情 | 久久国产精品视频观看 | 免费视频 你懂的 | 黄色免费观看网址 | 精品国模一区二区三区 | 欧美精品中文在线免费观看 | 中文字幕在线日 | 欧美日韩高清不卡 | av高清网站在线观看 | 伊人午夜视频 | 91久久久久久国产精品 | 免费观看一级一片 | 中文字幕一二 | 一级c片 | 五月天高清欧美mv | 国产一区视频在线观看免费 | 久久精品视频观看 | 国产美女久久 | 色婷婷88av视频一二三区 | 国产专区在线视频 | 色偷偷88888欧美精品久久久 | 欧美激情精品久久久久久变态 | 国产精品一区二区久久精品爱涩 | 国产精品免费久久久久久 | 免费av高清| 久九视频 | 日韩午夜大片 | 丁香六月激情 | 在线观看日韩国产 | 激情欧美xxxx | 在线观看一区 | 中文字幕影视 | 日韩mv欧美mv国产精品 | 91麻豆精品国产午夜天堂 | 国产麻豆视频免费观看 | 成人免费观看网址 | 91超在线 | 免费麻豆视频 | 日日夜夜天天人人 | 国产不卡在线视频 | 69视频永久免费观看 | 91成人网在线播放 | 最新av在线播放 | 在线免费观看黄网站 | 欧美一级大片在线观看 | 色婷婷狠狠五月综合天色拍 | 人人爽影院| 久久怡红院| 免费高清无人区完整版 | 国产一区二区影院 | 午夜精品久久久久久久久久久久久久 | 欧美精品久久久久 | 久久国产亚洲视频 | 久久久网站 | 婷婷国产在线 | 久久se视频| 狠狠撸电影 | 婷婷五综合 | 一区二区av | 四虎永久免费网站 | 一区二区三区 亚洲 | 国产一级视频在线观看 | 欧美精品免费在线观看 | 91亚色视频在线观看 | 97精品国产97久久久久久粉红 | 在线观看视频在线 | 最新av在线播放 | 日日摸日日添日日躁av | 亚洲男男gaygay无套同网址 | 亚洲免费在线观看视频 | 欧美成人h版电影 | 亚洲成a人片在线观看网站口工 | 久久久久视 | 麻豆影视在线免费观看 | 中文在线8新资源库 | 欧美日韩高清一区二区 国产亚洲免费看 | 91看片淫黄大片一级在线观看 | 国产精品毛片久久蜜 | 日韩精品视频久久 | 性色av一区二区三区在线观看 | 乱男乱女www7788 | 亚洲天天摸日日摸天天欢 | 国产99免费视频 | 在线观看激情av | 中文字幕中文 | 国产在线观看免费 | 日韩久久久久久 | 五月天久久综合网 | 日批视频 | 高清av中文在线字幕观看1 | 手机看片 | 免费在线观看不卡av | 亚洲精品欧洲精品 | 91视频高清免费 | 亚洲国产伊人 | 欧美成人黄色片 | 91久色蝌蚪 | 亚洲在线国产 | 激情久久影院 | 99热在线观看免费 | 最近最新最好看中文视频 | 欧美精品久久久久久久久久久 | 黄色免费观看 | 日本黄色大片免费看 | 国产99久久久国产精品免费二区 | 99久免费精品视频在线观看 | 免费91在线 | 精品一区二区三区久久久 | 午夜av激情 | 亚洲精品久久激情国产片 | 狠狠干天天射 | av一级网站| 插插插色综合 | 狠狠操操网| 久草在线官网 | 欧美国产日韩一区二区 | 亚洲理论在线 | 久久久黄视频 | 国产精品免费视频一区二区 | 国产精品色 | 蜜臀av性久久久久av蜜臀三区 | 亚洲国产精品99久久久久久久久 | 国产亚洲无| 欧美日韩三级在线观看 | 91看片淫黄大片一级在线观看 | 国产精品视频免费 | 黄av免费| 亚洲国产精品久久久久婷婷884 | 亚洲一级电影在线观看 | 激情五月综合网 | 日韩av中文字幕在线免费观看 | 久久精品视频在线播放 | av.com在线| 精品伦理一区二区三区 | 国产视频在线一区二区 | 久久视频精品在线观看 | 天天干天天操天天干 | 超碰在线中文字幕 | avove黑丝 | 国产在线观看午夜 | av丝袜美腿 | 97国产电影 | 9999精品| 中文字幕在线视频一区二区三区 | 成人黄色片在线播放 | 草久久久久久 | 欧美婷婷综合 | 17婷婷久久www | 日本特黄特色aaa大片免费 | 国产精品免费一区二区三区 | 色婷婷久久 | 欧美在线观看视频一区二区三区 | 在线欧美日韩 | 91爱在线| 成人午夜在线观看 | 日韩欧美v | 国产成人免费精品 | 成人蜜桃网 | 久久精品成人欧美大片古装 | 婷婷激情五月综合 | 香蕉久久久久久av成人 | 久久成人一区 | 97超碰资源 | 亚洲精色| 国产在线不卡 | av片一区二区 | 国产精品毛片久久蜜 | 久久久久久久久久久久电影 | 欧美天天干 | 特级西西444www高清大视频 | 欧美色道 | 亚洲乱码在线观看 | 91麻豆精品国产 | 国产精品日韩欧美 | 亚洲精品视频在线播放 | 亚洲国产精品第一区二区 | www.香蕉视频在线观看 | 91网页版免费观看 | av免费看在线 | 国产精品va在线 | 久爱综合| 亚洲 欧美 另类人妖 | 色视频网站在线 | 在线 影视 一区 | 奇米影视777四色米奇影院 | 成人免费观看完整版电影 | 成人免费看片网址 | 成人精品一区二区三区中文字幕 | 中文字幕欧美激情 | 色五丁香 | 精品久久影院 | 国产精品手机在线播放 | 亚洲欧美日韩一区二区三区在线观看 | 91精品国产成人 | 精品一区二区三区四区在线 | 日韩精品视频在线观看网址 | 国产成人精品久久久 | 国产在线国偷精品产拍免费yy | 91视频大全 | 国产一线天在线观看 | 色老板在线视频 | 日韩精品一区在线观看 | 伊人导航 | 成人影视片 | 少妇bbw揉bbb欧美 | www.超碰97.com | 午夜免费在线观看 | av网站在线观看播放 | 亚洲国产精品一区二区久久,亚洲午夜 | 亚洲天天综合 | 超碰在线免费97 | 在线观看的av | 91九色精品国产 | 亚洲国产精品资源 | 国产高清无av久久 | 日日日日干 | 九九综合在线 | 久久精品高清 | 最近日本mv字幕免费观看 | av播放在线 | 2019中文最近的2019中文在线 | 国产片免费在线观看视频 | 综合久色| 91日韩在线播放 | 成人在线视频你懂的 | 嫩草av在线 | 日韩综合精品 | 99视频免费 | 五月婷婷在线视频 | 亚洲区精品视频 | 天天玩天天操天天射 | 欧美精品免费在线 | 精品久久久久一区二区国产 | 国产免费视频在线 | 日韩视频一 | 不卡电影一区二区三区 | 91久草视频 | 日韩在线视频免费看 | 丁香婷五月 | 国产视频在线观看一区 | 欧美日韩在线视频一区 | 中文字幕成人在线观看 | 国产成人一区三区 | 色综合天天综合 | 日本久久久久 | 麻豆久久一区二区 | 激情综合色综合久久 | 日韩精品一区二区三区水蜜桃 | av高清一区二区三区 | 久久久久久美女 | 91精品视频在线 | 免费精品在线视频 | 国产91丝袜在线播放动漫 | 国产成人一二片 | 国产资源免费 | 日韩在线第一 | 六月丁香婷婷网 | 精品影院一区二区久久久 | 成人精品在线 | 亚洲人成人在线 | 久久av中文字幕片 | 亚洲国产成人在线观看 | 伊人天堂av | 亚洲国产欧美在线看片xxoo | 免费a网| 97人人视频| 国产精品日韩精品 | 国产福利91精品张津瑜 | 日日夜夜操av | 国产精品女主播一区二区三区 | 91九色精品女同系列 | 日日天天狠狠 | 超碰九九| 亚洲成人精品国产 | 特级毛片爽www免费版 | 亚洲精品一区二区精华 | 免费在线观看日韩 | 综合久色 | 久久久久久久久毛片精品 | 亚洲视频免费视频 | 亚洲成av | 欧女人精69xxxxxx | 激情网五月天 | 亚洲精品午夜一区人人爽 | 欧美激情第十页 | 精品一二三四在线 | 中文字幕专区高清在线观看 | 中文字幕一区二区三区四区 | 在线观看日韩免费视频 | 精品一区91 | 综合网在线视频 | 欧美亚洲国产一卡 | 色婷婷www | 国产精品网址在线观看 | 五月天国产精品 | 久久黄网站 | 免费观看丰满少妇做爰 | 91大片成人网 | 国产精品 9999 | 免费观看午夜视频 | 天天插夜夜操 | 一区二区中文字幕在线观看 | 亚洲精品影视在线观看 | 国产成人精品电影久久久 | 国产69久久精品成人看 | 欧美精选一区二区三区 | 久久久国产网站 | 欧洲一区二区在线观看 | 中文字幕国产精品 | 亚洲精品免费观看视频 | 欧美精品久久99 | 亚洲国产播放 | 色多视频在线观看 | 在线免费观看的av | 国产色资源 | 91九色最新地址 | 香蕉视频4aa | 午夜视频在线观看一区 | av先锋影音少妇 | 99热超碰在线| 又黄又刺激的视频 | 欧美va日韩va | 国产亚洲精品久久久久久移动网络 | 国产高清视频在线播放 | 日韩在线观看精品 | av在线8 | 国产欧美综合在线观看 | 中文字幕中文字幕中文字幕 | 99国产精品视频免费观看一公开 | 色久天| 色99视频| 九色琪琪久久综合网天天 | 99久久国产免费免费 | 成人免费av电影 | 日批网站免费观看 | 91在线观看视频 | 亚洲乱码精品久久久 | 久草在线中文888 | av先锋中文字幕 | 国产精品久久伊人 | 色综合咪咪久久网 | 国产精品久久一区二区三区, | 日韩精品视频久久 | 一级片黄色片网站 | 91视频免费 | 亚洲国产日韩一区 | 欧美精品在线一区二区 | 天堂在线一区二区 | 亚洲最新视频在线 | 在线一区av | 成人国产精品久久久春色 | 综合网色 | 日日操网站 | 国产99一区二区 | 欧美日韩国产亚洲乱码字幕 | 国产精品久久久久影院 | 色综合久久久久久久 | av久久久 | 超碰国产97| 亚洲精品女人久久久 | 国产黄色免费观看 | 人人爽人人爽人人爽 | 国产精品毛片久久蜜 | www.com黄| 国产精品久久99精品毛片三a | 天天干天天综合 | av一级网站 | 免费网站观看www在线观看 | 国产综合91 | 婷婷av网站 | 国产精品毛片一区视频播 | 美女网站视频免费都是黄 | av888.com| 国产在线97 | av在线播放不卡 | www.狠狠操.com | 成人一区二区三区在线观看 | 天堂av官网| 国产美女精品视频 | 精品久久网站 | 久久久久久久99精品免费观看 | 色婷婷国产精品 | 91丨九色丨高潮 | 激情五月开心 | 亚洲 综合 专区 | 久久精品一区二区国产 | 在线免费三级 | 国产h在线观看 | 免费av的网站 | 亚洲1区在线 | 日韩欧美精品一区二区 | 亚洲国产电影在线观看 | 欧美日韩国产区 | 久久久久看片 | 国产一区视频在线观看免费 | 成人91在线 | 日本精品一区二区三区在线观看 | 成人在线播放av | 黄色软件在线观看免费 | 欧美日韩国产综合一区二区 | 国产精品区在线观看 | 97碰在线视频 | 亚洲视频观看 | 天天看天天干 | 日韩精品免费在线视频 | 综合网伊人| 五月婷影院 | 一区二区三区四区久久 | 日本一区二区不卡高清 | 99久久精品免费 | 亚洲免费视频在线观看 | 午夜999 | 国产一线二线三线性视频 | 久久精品99久久 | 婷婷丁香七月 | 欧美精品久久久久久久久久白贞 | 久久论理| 亚洲女欲精品久久久久久久18 | 在线看片91| 摸阴视频| 2024国产在线| 国产字幕在线看 | 99人久久精品视频最新地址 | 日韩av一区二区三区四区 | 24小时日本在线www免费的 | 亚洲成人第一区 | 国产一区视频在线播放 | 久久精品国产免费看久久精品 | 久热电影 | 国产精品ⅴa有声小说 | 亚洲一二三区精品 | 国产99久久精品一区二区永久免费 | 99精品久久久久久久 | 国产一区在线看 | 欧美五月婷婷 | 国产亚洲欧美在线视频 | 亚洲免费视频在线观看 | 456免费视频| 最新日韩视频在线观看 | 国产免费久久 | 永久免费观看视频 | 国产日韩精品一区二区三区 | 久久久99国产精品免费 | 日本91在线 | 欧美日韩国产一区二区三区在线观看 | 欧美黄色高清 | 亚洲精品男人的天堂 | 国产三级精品三级在线观看 | 天天操天天色天天射 | 91视频久久久久 | 日韩av中文字幕在线免费观看 | 精品国产一区二区三区久久久 | 亚洲成人中文在线 | 日日干夜夜操视频 | 18性欧美xxxⅹ性满足 | 国产亚洲在线 | 国产在线不卡视频 | 久久免费视频一区 | 一区二区欧美在线观看 | 在线观看一 | 中文字幕传媒 | 人人看人人爱 | www免费在线观看 | 97视频资源 | 在线免费黄色片 | 一级黄色视屏 | av解说在线观看 | 欧美男女爱爱视频 | 91福利国产在线观看 | 中国一级片免费看 | 久草视频在线资源站 | 免费成人在线观看视频 | 97人人模人人爽人人喊中文字 | 91精品国自产在线观看欧美 | 亚洲在线日韩 | 亚洲国产精品久久 | 日本护士三级少妇三级999 | 成人av电影在线观看 | 在线视频18在线视频4k | 性色av一区二区三区在线观看 | 亚洲欧洲中文日韩久久av乱码 | 草久在线 | 国产精品成人在线观看 | 99se视频在线观看 | 久草9视频| 婷婷激情小说网 | 欧美色图88 | 手机在线看a | 成人小视频在线观看免费 | 免费a视频在线 | 久久草av| 六月色婷| 国产婷婷视频在线 | 九九视频在线观看视频6 | 国产精品18久久久久久久久久久久 | 97在线观看免费 | 国产精品国产三级国产aⅴ无密码 | 欧美日一级片 | 天天色天天射天天操 | 香蕉在线视频播放网站 | 日韩在线观看视频在线 | 91视频午夜| 国内精品久久久久影院男同志 | 欧美久久久久久久久久久 | 国产一区二区高清 | 日韩精品久久久久久中文字幕8 | 丁香激情网 | 日韩av网站在线播放 | 国内丰满少妇猛烈精品播放 | 欧美精品黑人性xxxx | 91传媒在线观看 | 92中文资源在线 | 国产精品中文久久久久久久 | 欧洲不卡av| 国产喷水在线 | caobi视频 | 在线观看国产永久免费视频 | 黄色www在线观看 | 五月婷婷视频在线观看 | 91视频免费看网站 | 日韩在线观看第一页 | 伊人五月天.com| 在线播放你懂 | 国产一区二区成人 | 日韩一级电影在线观看 | 波多野结衣久久资源 | 久久免费视频1 | 成人av手机在线 | 在线免费看黄网站 | 亚洲国产精品va在线看黑人动漫 | 精品国产乱码久久久久 | 日本性久久 | 欧美日在线 | 亚洲最大av网站 | 久久国产精品一区二区三区四区 | 精品在线不卡 | 亚洲国产精品久久久久久 | 欧美日韩一区二区在线观看 | 国产精品久久伊人 | 91污视频在线观看 | 91麻豆精品国产91久久久使用方法 | 日韩欧美在线视频一区二区三区 | 永久免费毛片 | 成人性生交大片免费观看网站 | 去干成人网 | 午夜丁香视频在线观看 | 婷婷五天天在线视频 | 久久精品美女视频网站 | 97超碰人人模人人人爽人人爱 | 激情五月婷婷丁香 | 国产视频资源 | 色五月成人 | 黄色小说网站在线 | 国产精品久久久久久久久久东京 | 麻豆91在线观看 | 国产精品高潮呻吟久久久久 | 激情综合婷婷 | 国模视频一区二区三区 | 国产一区免费在线观看 | 五月天婷亚洲天综合网鲁鲁鲁 | 综合久久综合久久 | 久久精品亚洲一区二区三区观看模式 | 久久香蕉电影 | 久久久鲁 | 国产一二三四在线观看视频 | 青青河边草免费观看 | 国产精品九九久久99视频 | 日韩高清在线观看 | 最新午夜 | 激情综合中文娱乐网 | 久久免费视频2 | 美女免费视频一区二区 | 日韩电影中文字幕在线 | 国产美女永久免费 | 国产精品成人久久久久久久 | 久久精品欧美一 | 天天干天天摸天天操 | 91精品天码美女少妇 | 天天天天天天操 | 97小视频| 天天色天天射天天干 | 九九亚洲精品 | 1000部国产精品成人观看 | 国产精品99久久久久的智能播放 | 毛片美女网站 | 亚洲a免费| 国产精品专区一 | 久久99精品国产99久久 | 日韩欧美国产激情在线播放 | 成人av动漫在线 | 国产一区二区久久 | 69久久夜色精品国产69 | 欧美国产日韩在线观看 | 久久9999久久 | 91在线免费观看国产 | 91人人澡人人爽人人精品 | 天天鲁一鲁摸一摸爽一爽 | 久久理论电影网 | 日韩网站在线看片你懂的 | 韩日成人av | 国产伦理精品一区二区 | 久久免费视频播放 | 欧美在线资源 | 国产精品美女久久久久久久久久久 | 久久久电影网站 | 天天玩天天干天天操 | 中中文字幕av在线 | 在线观看91网站 | 免费麻豆网站 | 在线观看深夜视频 | 久久久精品 | 伊人热| 国产视频 亚洲精品 | 91成人破解版 | 色欧美综合 | 成人免费毛片aaaaaa片 | 伊人色综合网 | 波多野结衣日韩 | 午夜精品一区二区三区在线观看 | 91三级视频 | 亚洲理论片在线观看 | 91传媒在线看 | 日韩手机在线观看 | 91久久久久久国产精品 | 国产精品 久久 | 国产亚洲精品成人av久久ww | 国内精品久久久久久久影视简单 | 精品在线视频一区二区三区 | 人人玩人人添人人澡超碰 | 久久午夜电影网 | 成人久久视频 | 欧美精品久久 | 天天干天天综合 | 91在线视频在线 | 久草网免费 | 久热国产视频 | 国产日本在线播放 | 婷婷在线色| 992tv人人网tv亚洲精品 | 懂色av懂色av粉嫩av分享吧 | 国产精品一区二区美女视频免费看 | 欧美日韩一级久久久久久免费看 | 人人添人人澡 | 在线观看亚洲精品视频 | 久久久久久久久久久久久久免费看 | 中文字幕你懂的 | 成人avav | 色婷五月天 | 精品毛片一区二区免费看 | 色婷婷88av视频一二三区 | aaa毛片视频 | www.超碰| 国产精品一区二区三区视频免费 | 免费国产亚洲视频 | 综合婷婷丁香 | 日韩在线观看视频网站 | 十八岁以下禁止观看的1000个网站 | 六月激情久久 | 国产成人精品亚洲精品 | 夜夜爽88888免费视频4848 | 成年人黄色在线观看 | 久久久久婷 | 日韩电影中文,亚洲精品乱码 | 521色香蕉网站在线观看 | 综合精品久久 | 一区二区三区在线观看 | 色婷婷久久一区二区 | 久久精品99精品国产香蕉 | 亚洲天堂精品 | 欧美天堂视频在线 | 一区二区激情 | 狠狠色狠狠综合久久 | 超碰日韩在线 | 欧美怡红院视频 | 久久久伊人网 | 91亚州| 国产成人精品久久久 | 国产一级做a爱片久久毛片a | 久久免费视频5 | 看片一区二区三区 | 日本精品中文字幕在线观看 | www.国产视频 | 国产高清第一页 | 最近日韩中文字幕中文 | 精品黄色片 | 国产99re| 国产区第一页 | 黄色激情网址 | 亚洲成人av一区二区 | 久久在草| 中文字幕网站 | 日韩久久片 | 久草免费福利在线观看 | 黄a在线看| 久久永久视频 | 四虎影视成人精品国库在线观看 | 丁香午夜婷婷 | 日韩在线第一区 | 亚洲区另类春色综合小说 | 亚洲在线网址 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 91手机视频在线 | 精品国产免费一区二区三区五区 | 91av免费在线观看 | 国产69精品久久99的直播节目 | 日本一区二区免费在线观看 | 久久久久久久免费看 | www麻豆视频 | 在线一区av | 久草在线官网 | 五月婷婷狠狠 | 天天看天天干天天操 | 精品国产1区二区 | 色操插 | 亚洲韩国一区二区三区 | 日韩黄色网络 | 一区二区三区高清在线观看 | 日韩欧美一区二区三区黑寡妇 | 亚洲精品一区二区在线观看 | 99久久激情| 日韩高清久久 | 亚洲第一中文字幕 | 国产a国产 | 久久91久久久久麻豆精品 | 草久久影院 | 久久免费看av | 99久久精品久久久久久动态片 | 久久天天躁夜夜躁狠狠85麻豆 | 特级毛片在线 | 色天天综合网 | 国产xx在线| 色综合久久久久综合 | 毛片随便看 | 亚洲精品黄 | 91麻豆视频网站 | 免费看国产黄色 | 久久99久久99 | 黄色午夜网站 | av一级片在线观看 | 九九日韩| 国产福利小视频在线 | 麻豆91精品91久久久 | 国产精品美女久久久免费 | 另类五月激情 | 波多在线视频 | 91在线观看视频网站 | 久久看片网 | 亚洲国内在线 | 国产精品网红福利 | www.国产在线观看 | 亚洲热视频 | 91九色视频网站 | 不卡在线一区 | 免费观看黄 | 99视频在线免费播放 | 国产麻豆成人传媒免费观看 | 六月丁香婷婷久久 | 国产精品成人一区二区三区吃奶 | 五月婷婷色综合 | 尤物一区二区三区 | 久久1电影院| 在线观看黄色的网站 | 欧美色图88| 日本精品久久久久久 | 久久国产品 | 国产不卡免费视频 | 国产高清第一页 | av色网站| 中文字幕丝袜 | 精品一二三四在线 | 中文一二区 | 亚洲国产精品第一区二区 | 久草精品国产 | 久综合网 | 久久视频网 | 1024久久| 欧美人人| 麻豆精品视频在线观看免费 | 成人免费一区二区三区在线观看 | 99riav1国产精品视频 | 国产成人一区二区在线观看 | 亚洲天堂精品视频在线观看 | 五月天久久 | 麻豆视频免费入口 | 国产午夜一级毛片 | 国产午夜精品一区二区三区 | 国产精品 日韩精品 | 久久久福利影院 | 在线国产视频一区 | 久久情网 | 免费在线黄色av | 欧美激情视频一区 | 亚洲黑丝少妇 | 久久中文字幕导航 | av免费在线观看网站 | 97精品在线视频 | 欧美一区二区三区免费观看 | 丝袜av一区 | 国产色一区 | 成人蜜桃视频 | 天天色天天上天天操 | 婷婷激情综合网 | 91片黄在线观看 | 97精品国产97久久久久久 | 黄色免费视频在线观看 | 99色网站 | 亚洲高清免费在线 | 欧美日韩中文字幕综合视频 | 午夜久久网站 | 中国一级特黄毛片大片久久 | 麻豆国产露脸在线观看 | www.五月天婷婷.com | 欧美一级黄大片 | 96av在线| 久久艹人人 | 国产午夜精品一区二区三区嫩草 | 欧美激情视频在线免费观看 | 国产精品9区| 久av电影 | 午夜精品婷婷 | 就要干b | 久久久精品国产免费观看同学 | 丁香婷婷色月天 | 欧洲亚洲国产视频 | 亚洲日本色 | 色偷偷中文字幕 |