自编译树莓派 OpenWrt 完全指南 (二) : 参数配置

文章更新

20190324 初次成文

写在前面

在上一篇文章中,小苏介绍了 OpenWrt 编译环境的搭建,源码的拉取,以及编译前的一些准备,对于编译前参数的选择,以及编译时可能遇到的问题虽然在上一篇文章中一笔带过,但实际上,这两部分才是 OpenWrt 编译过程中的重头戏,接下来小苏就以树莓派的 OpenWrt 编译过程为例,为大家详细说说这两部分的内容吧~

基本交互

在上一篇文章中,我们提到 make menuconfig 就是设定编译参数的命令,执行完这条命令之后,我们可以看到这样的一个交互窗口 (Dialog Box):

交互窗口

窗口中内容比较多,而且各种描述都是英文的,一脸懵逼怎么办...别着急,让小苏给大家慢慢解读:

在交互窗口中。按下“上下光标键”可以切换窗口中间的项目,选中项目将以蓝色高亮显示,按“左右光标键”可以切换窗口下方的 < Select > < Exit > < Help > < Save > < Load > 四个选项,“回车键”的功能就取决于这四个选项中的哪个被选中。比如,当前高亮项目是 “ Target System (Atheros AR7xxx/AR9xxx)”,如果窗口下方的 < Select > 被选中,那么此时回车键的作用就是进入 “ Target System (Atheros AR7xxx/AR9xxx)”这一项目的二级菜单,如果 < Exit > 被选中,那么回车键的作用就是退出交互或者返回上一级。

在一些选项中,我们还可能碰到类似这样的选项:

空格交互

在类似的菜单中,我们需要使用“空格键”来交互。在被蓝色高亮选中的项目上按下空格键,即可在 < >、< M >、< ✲ > 三种状态下切换,其中,< > 表示不编译此项目,< M > 表示此项目将被编译但不会集成到最终的固件中,< ✲ > 表示此项目既会被编译也会被集成到固件中,在编译过程中,我们一般会用到 < >、< ✲ > 这两项, < M > 项较少用到,但是在编译一些比较容易和其他程序冲突时的软件包时,我们可以酌情选择 < M > 项,虽然编译完成后的固件不会默认集成这个软件包,但是在后期我们可以在编译完成目录找到这个软件包自行安装。

那么,什么时候该用“回车”交互,什么时候该用“空格”交互呢?

小苏告诉大家一个小窍门,项目末尾带有 ---> 的项目都可以使用回车交互,项目开头带有 < > 的项目都可以使用 空格交互,如果一个项目即带有 ---> 又带有 < >,那这个项目既可以使用回车 (进入下一级菜单) 交互也可以使用空格 (选择是否被编译) 交互。

如果一些选项前面是 -✲- 这个样子的,且我们无法更改它的状态,说明这一项是其他项目的依赖项,需要把依赖此项的项目设为取消编译 (即 < > 状态) 后 -✲- 状态才会更改为 < > 状态。

参数选择(32位&IPV4)

好了~掌握了基本交互操作后我们便可进入重头戏“参数选择”了~

在接下来的文章中,小苏将以编译 32 位、IPV4 Only 的树莓派 OpenWrt 固件为例为大家详细解读编译过程中涉及到的参数,64 位/ IPV4+IPV6 的固件编译参数与 32位、IPV4 Only 固件大同小异,将会在之后说明。此外因为编译参数较多,小苏将只为大家介绍日常用得到并且已经体现在之前发布的固件中的一些参数,下文中没有提到的部分建议保持默认设置,以下不再赘述~

以下内容只保证使用于树莓派的 OpenWrt 编译过程,不 100% 保证适用于其他设备和情况,但大部分内容应该对其他设备有参考意义。同时小苏也无法回答除树莓派外的其他设备上出现的特有问题 (因为实在是没有其他设备...)。

Target System & Profile

在设置编译参数时,第一件事情是选择 CPU 平台、CPU 和设备,以 32 位树莓派固件为例 (其他设备的 CPU 平台及型号请自行查阅相应资料):

Target System = Broadcom BCM27xx # 选择 CPU 平台

Subtarget = BCM2709/BCM2710 32 bit based boards # 选择 CPU

Target Profile = Raspberry Pi 2B/3B/3B+/3CM # 选择设备

设备选择

Target Images

Target Images 项为固件镜像选项菜单,按 “回车键”进入:

ext4 = ✲

squashfs = ✲

ext4 和 squashfs 两项为编译生成的镜像中固件分区的文件系统格式,这两者的区别除了文件系统不一致之外,还有一个区别就是 squashfs 格式的固件支持在控制面板内恢复出厂设置,而 ext4 格式暂时不支持,此外 ext4 格式的固件在分区上的自由度上大一些 (比如可以比较方便地调整分区大小等)。

Boot (SD Card) filesystem partition size = 20
此项为镜像中 boot 分区的大小 (将固件刷入 SD 卡,在 Windows 自带的文件资源管理器中看到的盘符就是这个分区),默认的 20M 基本够用,无需更改。

Root filesystem partition size = 500
此项为镜像中 root 分区的大小,因为树莓派的存储介质为 SD 卡,其存储容量相对于路由器等 ROM 大小固定的设备来说要大得多,所以我们可以尽量将 root 分区设定得大一些 (方便折腾),小苏的习惯是将 root 分区的分区大小设定为 500M,仅供参考。

除以上几项外,其他参数保持默认,效果如下:

镜像参数

Administration

Administration 菜单下的项目都是一些管理工具,在这个菜单中小苏觉得比较实用的工具是 htop,其他的工具好像平时不怎么用得到 (欢迎指出)~

Administration

Extra packages

Extra packages 项为 Lean 大为了方便大家配置某些功能而添加的一个贴心功能,选中其中的某个功能相当于选中了一系列软件包和编译参数。

automount = ✲
自动挂载,插入 USB 存储设备时,若文件系统支持,则可以自动挂载设备上的分区至设备。

Support NTFS mount = ✲
此项为 automount 是否支持 NTFS 文件系统的可选项。

autosamba = null
自动挂载 Samba 设备,在树莓派设备上启用此项可能导致板载无线网卡工作不正常,所以请谨慎选用!!

ipv6helper = null
是否加入 IPV6 支持 (因为目前以 IPV4 Only 固件为例介绍,所以目前暂时不勾选这个选项)。

k3wifi = null
此项为针对斐讯 K3 无线方面的一些设定集合,本文暂不涉及。

Extra packages

Kernel modules

Kernel modules 菜单中为有关内核的一些参数,包括即将要介绍的文件系统支持,有线网卡支持,无线网卡支持等。

Filesystems

Kernel modules - Filesystems 此项为文件系统支持选项,在这个菜单中你可以选择固件支持的文件系统,以下为小苏推荐添加支持的文件系统:

kmod-fs-exfat = ✲

kmod-fs-exportfs = ✲

kmod-fs-ext4 = ✲

kmod-fs-f2fs = ✲

kmod-fs-nfs = ✲

kmod-fs-nfs-common = ✲

kmod-fs-nfs-common-rpcsec = ✲

kmod-fs-nfs-v3 = ✲

kmod-fs-nfs-v4 = ✲

kmod-fs-nfsd = ✲

kmod-fs-ntfs = ✲

kmod-fs-squashfs = ✲

kmod-fs-vfat = ✲

kmod-fuse = ✲

Filesystems

USB Support

Kernel modules - USB Support 为针对 USB 接口的一些配置选项,在这里我们要设定的关键点就是为 USB 有线网卡添加驱动。

以下 将所有以 kmod-usb 开头的项目的状态设为 < * > ,这一操作将为列表中所有 USB 有线网卡添加驱动:

kmod-usb-net = ✲

kmod-usb-net-asix = ✲

kmod-usb-net-asix-ax88179 = ✲

···

kmod-usb-net-smsc95xx = ✲

kmod-usb-net-sr9700 = ✲

接下来为 USB2 和 USB3 控制器添加驱动:

kmod-usb2 = ✲

kmod-usb3 = ✲

USB Support

Wireless Drivers

Kernel modules - Wireless Drivers 为无线网卡支持选项,在这个菜单中我们可以为无线网卡添加驱动支持,按小苏上面的习惯应该为全部无线网卡芯片添加支持,但是偏偏是在这里,坑出现了:

在无线网卡支持菜单中,某些无线网卡项目不能同时选中,因为在把驱动打包成 ipk 软件包的过程中,这些产生冲突的驱动包将会使用同一个包名,在将软件包安装到系统的过程中这些同名软件包将会产生冲突而导致编译中断。

经过小苏的不断努力,终于找到了这些可能会产生冲突的软件包,所以在添加无线网卡驱动的过程中,小苏建议将这些无线网卡芯片项目的状态设为 < M >,以便需要时可以自行安装相应的软件包。

kmod-libertas-sdio = M

kmod-libertas-spi = M

kmod-libertas-usb = M

kmod-rsi91x-sdio = M

kmod-rsi91x-usb = M

除此之外的其他无线网卡项目都应设置为 < ✲ >,这将为列表中除上面 5 个无线网卡芯片之外的所有无线网卡芯片设备添加驱动。

Wireless Drivers

LuCI

接下来就进入编译过程中的重中之重 - LuCI APP 的选择和添加~

LuCI 即为 OpenWrt 控制面板中的 Web 控制面板, 选择和添加 LuCI APP 将把对应 APP 的二进制可执行文件和其对应的 Web 控制面板页面添加到 LuCI 控制面板中。

Applications

LuCI - Applications 菜单即为 LuCI APP 集合,此菜单中的项目即为 LuCI 控制面板中各种各样的功能。

由于选项较多,下面仅列出一些常用的选项:

luci-app-accesscontrol # 访问时间控制

luci-app-adblock # adblock 广告过滤

luci-app-adbyby-plus # 广告屏蔽大师 Plus +

luci-app-advanced-reboot # 高级重启

luci-app-aliddns # 阿里 DDNS 客户端

luci-app-amule # aMule 下载工具

luci-app-aria2 # Aria2 下载工具

luci-app-arpbind # IP/MAC 绑定

luci-app-autoreboot # 支持计划重启

luci-app-commands # Shell 命令模块

luci-app-cshark # CloudShark 捕获工具

luci-app-ddns # 动态域名 DNS

luci-app-dnspod # DNSPod

luci-app-filetransfer # 文件传输

luci-app-firewall # 防火墙支持

luci-app-flowoffload # Turbo ACC FLOW 转发加速

luci-app-frpc # 内网穿透 Frp

luci-app-guest-wifi # WiFi 访客网络

luci-app-hd-idle # 硬盘休眠

luci-app-minidlna # minidlan 服务器

luci-app-mjpg-streamer # 兼容 Linux-UVC 的摄像头程序

luci-app-mwan # MWAN 负载均衡

luci-app-mwan3helper # MWAN3 分流助手

luci-app-n2n_v2 # N2N 内网穿透 VPN

luci-app-nlbwmon # 网络带宽监视器

luci-app-ntpc # NTP 时间同步服务器

luci-app-openvpn # OpenVPN 客户端

luci-app-openvpn-server # OpenVPN 服务器

luci-app-pptp-server # PPTP VPN 服务器

luci-app-ramfree # 释放内存

luci-app-samba # 网络共享 (Samba)

luci-app-samba4 # 网络共享 (Samba4)

luci-app-shadowsocks-libev # SS-libev 服务端

luci-app-shairplay # AirPlay 支持

luci-app-sqm # 流量智能队列管理 (QOS)

luci-app-SSR-plus # SSR/SS/V2Ray 三合一用户界面

Include Shadowsocks New Version # 选择在 SSR-Plus 中是否包含新版 SS 代理

Include V2ray # 选择是否包含 V2Ray 代理

Include Kcptun # 选择是否支持 Kcptun

Include ShadowsocksR Server # 选择是否包含 SSR 服务器

Include ShadowsocksR Socks and Tunnel #选择是否包含 SSR Tunnel

luci-app-ssrserver-python #SSR Python 服务器

luci-app-statistics # 流量监控工具

luci-app-syncdial # 多线多拨

luci-app-transmission # Transmission BT 下载工具

luci-app-ttyd # TTYD 终端命令行

luci-app-upnp # UPnP 服务

luci-app-usb-printer # USB 打印服务器

luci-app-v2ray-pro # V2Ray 代理

luci-app-vlmcsd # KMS 服务器设置

luci-app-vnstat # vnStat 网络监控 (图表)

luci-app-vsftpd # FTP 服务器

luci-app-watchcat # 断网检测与定时重启

luci-app-webadmin # Web 管理页面设置

luci-app-wifischedule # WiFi 计划

luci-app-wireguard # WireGuard 状态

luci-app-wol # Wake on Lan 网络唤醒

luci-app-wrtbwmon # 实时流量监测

luci-app-xlnetacc # 迅雷快鸟

luci-app-zerotier # ZeroTier 内网穿透

其中, luci-app-samba 与luci-app-samba4 两个选项只可选择其中的一项,如果两项都被选中,编译时会因为这两项包名相同而产生冲突造成中断!!

luci-app-v2ray-pro 集成到固件后为默认打开状态,但因为默认情况下未添加任何节点,可能造成极少数网站无法正常打开的情况 (如 阿里云 等),需要手动关闭 V2Ray 开关才可恢复正常~

大家可以根据自身需求添加上面的 LuCI APP 到固件中,如果想了解此菜单中的其他 LUCI APP 的作用可以查看这篇帖子 (感谢作者的努力~):

https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=344825

Applications

Themes

LuCI - Themes 菜单中可以为 LuCI 控制面板添加主题。Lean 大源码中默认为我们添加了一套 Material 主题,在此菜单选择此主题后控制面板将默认启用此主题,如果你不喜欢这个主题,也可以使用默认的 Bootstrap 主题 (默认已选择)。

Themes

Network

Network 菜单为 OpenWrt 编译过程中和网络有关的选项。

Network

Download Manager

Network - Download Manager 菜单为 Aria2 的 Web 控制面板,在这里小苏推荐选择 webui-aria2 项作为 Aria2 的 Web 控制面板。

Download Manager

File Transfer

Network - File Transfer 为网络文件传输工具菜单。在这里我们可以添加一些常用的文件传输工具,比如 wget、curl、aria2、rsync 等,我们可以根据需求按需添加。在这里我们还可以设置 aria2 的支持参数 (Network - File Transfer - Aria2 Configuration)

File Transfer

Aria2 Configuration

SSH

Network - SSH 菜单为与 SSH 有关的选项,默认情况下 OpenWrt 已为我们添加了 dropbear SSH 服务器,所以在这里我们无需勾选 openssh-server,但默认情况下 SFTP 服务是没有启用的,如果有 SFTP 需求的话我们可以在这里添加 openssh-sftp-client 和 openssh-sftp-server 来启用 SFTP 客户端和服务器。

SSH

Utilities

Utilities 菜单包含一些额外的实用工具,下文中小苏仅介绍一些常用工具,其他工具可按需添加。

Utilities

Compression

Utilities - Compression 为压缩工具支持菜单,小苏推荐添加以下压缩工具支持:

bsdtar # tar 打包工具支持

gzip # gzip 压缩工具支持

unzip # zip 解压工具支持

zip # zip 压缩工具支持

Compression

Disc

Utilities - Disc 菜单为一些与文件系统相关的工具,小苏推荐添加以下工具:

fdisk # fdisk MBR 分区工具

gdisk # gdisk GBT 分区工具

lsblk # lsblk 磁盘设备及分区查看工具

Disc

Editors

Utilities - Editors 为编辑器支持菜单,小苏推荐添加 nano 和 vim 编辑器。

注意:在 vim 编辑器系列中只建议添加 vim、vim-full、vim-fuller 三种工具中的一种,否则在编译过程中会因为包名相同产生冲突造成编译中断。

Editors

Filesystem

Utilities - Filesystem 菜单为与文件系统相关的工具,小苏推荐添加:

f2fs-tools # f2fs 工具

fstrim # 文件系统 fstrim 工具

resize2fs # ext 分区大小调节工具

Filesystem

Shells

Utilities - Shells 菜单中可以添加用户交互 Shell,默认 Shell 为 bash,如果大家有需求的话可以添加 zsh。

Shells

Terminal

Utilities - Terminal 菜单中可以添加和终端有关的工具,小苏推荐添加 screen 和 tmux ,这里就不解释啦~

Terminal

另外在 Utilities 菜单下面还有一些可能比较常用的小工具比如 adb、whereis 等,可以按需添加~

参数选择(IPV6)

若为固件添加 IPV6 支持,按上面 IPV4 固件的步骤操作完成后,还需要进行以下几项:

ipv6helper

在 Extra packages 菜单中将 ipv6helper 设为 < ✲ > 状态:

ipv6helper

ip6tables 额外选项(可选)

在 Network - Firewall - ip6tables 下启用 ip6tables-extra 和 ip6tables-mod-nat 项:

ip6tables

LuCI APP 额外设置

已知多线多拨、负载均衡、mwan3分流助手 这三个 LuCI APP 与 IPV6 网络存在冲突,为固件添加 IPV6 支持时必须取消编译这三个 LuCI APP。

在 LuCI - Applications 中 先后 取消以下项目:

luci-app-syncdial = null

luci-app-mwan3helper = null

luci-app-mwan3 = null

由于luci-app-mwan3 是 luci-app-syncdial 和 luci-app-mwan3helper 这两个软件包的依赖项,所以应该先取消掉这两个选项后才可取消 luci-app-mwan3。

LuCI APP 额外设置

参数选择(64位)

在第一部分中我们介绍的是 32 位固件 (适用于树莓派 2B/3B/3B+) 的编译选项,如果你想编译树莓派 64 位固件 (适用于 树莓派 3B/3B+),可以按上面 32 位固件步骤操作完成后,额外更改以下几项:

更改 CPU 和设备参数

将 Subtarget 和 Target Profile 更改为适用于 64 位树莓派的参数 (因为 CPU 平台相同,Target System 无需更改):

Subtarget = BCM2710 64 bit based boards

Target Profile = Raspberry Pi 3B/3B+

更改CPU和设备参数

取消 Kcptun 支持

因为 Kcptun 官方暂时没有适配于 64 位设备 (arm64/aarch64) 的软件包,如果编译 64 位设备固件时勾选 Kcptun 将会导致编译过程中无法找到相应的软件包而报错,从而导致编译中断,所以在编译 64 位固件之前我们需要取消对 Kcptun 的支持:

LuCI APP 设置

首先我们应该取消在 luci-app-ssr-plus 中对 Kcptun 的支持:

在 LuCI - Applications - luci-app-ssr-plus 中取消选择 Include Kcptun:

取消编译

取消 Include Kcptun 还不够,我们还需要在 Network 中取消对 Kcptun 的编译:

kcptun = null

注意一定要设为 null 不要 设为 < M >!!

取消编译

结束配置

至此,编译参数部分介绍完毕,设定完所有参数后,返回到主菜单,按下“左右光标键”,将光标移动到 “Exit ”按钮上按下回车,将弹出退出提示框,询问是否保存当前设置,如果想要保存当前设置请使用左右光标键选择 “Yes”并回车,如果想放弃此次更改请选择 “No”并回车。如果误点击退出按钮出现此提示框,双击两次 “ESC”键即可回到设置界面。

结束配置

结束配置后,此次配置信息将存储在 lede 目录下的 .config 文件中,如果在进行保存编译配置后之后再次执行 make menuconfig 命令,系统将会自动载入 .config 文件中的内容,你可以在上次保存的编译配置上进行更改。如果丢失此文件,所有配置将会丢失并重置,所以请务必妥善保存此文件。

至此,编译配置部分到此结束,下篇文章中,我们聊聊编译过程中遇到的问题~

已有 28 条评论
  1. :)

    感觉很不错,从指南一到这篇二,跟着在本地CentOS 7虚拟机上操作,全程下来很顺利。
    重要细节项也说明得很清晰,避免后来者少走弯路,这点必须点名赞一个。
    非常感谢花时间整理教程以飨大众!我也知道详细的教程写起来还是挺耗费时间的,说多都是泪。
    最大的收获就是从对OpenWrt全英文配置界面的恐惧到现在对OpenWrt强大内在的佩服以及学到全新操作的新鲜感&激动 。
    期待下篇!

    附注:不知为何你上篇回我邮件被Outlook归入了垃圾邮件,简直有毒......之前都有好好进收件箱手机呼吸灯闪烁提示的......

    2019年3月30日 星期六

    1. 哈哈哈能帮到你实在是太好了~
      这篇应该是这三篇教程里体量最大的一篇了,能帮助更多人少走弯路一直是我的愿望。
      很多「编译教程」可能连第一篇「指南」的详细程度都没有达到,这也是我为什么要写得这么详细的原因。在这篇文章最后我没有加什么参考资料,因为确实满满的都是自己踩出来的坑(尤其是文章里粗体文字的部分)。
      看完这两篇文章之后应该是能应付 95% 以上的问题了~
      当然未发布的另外一篇可能还得咕一段时间...(逃)

  2. 杰嗨森

    能否分享一下menuconfig导出的.config文件呀

    1. 配置文件在这里:
      http://oneindex.mlapp.cn/DockerRes/Configs/
      如果不明白这四个配置文件之间的区别请参考「自编译 OpenWrt R9.3.17 固件,支持 Raspberry Pi 2B/3B/3B+」这篇文章~

      1. 杰嗨森

        好的,感谢!

      2. 杰嗨森

        发现你并没有用最新的op,是因为其中有什么坑吗?

        1. 你说的「最新 OP」指的是...

          1. 杰嗨森

            是指openwrt版本

            1. OpenWrt 的版本号在很活跃地增加,可能一两天就会更新(刷)一次版本号。所以OpenWrt 的版本和编译前拉取的源码版本有关,我每次编译都会拉取最新源码进行编译~

      3. tt

        分享的配置文件好像没有了,能不能在上传一次呢,谢谢

        1. 配置文件(config.seed)在上一篇文章的固件发布百度云链接里应该可以找到。每个配置文件和每次发布的固件相对应。把它改名为 .config 放到项目根目录就可以载入了。
          Onedrive 故障了所以 Onedrive 里面的东西暂时看不到了...

  3. DC

    问个小白问题,设置分区大小的时候,怎么删除数字,我只能在默认90的基础上在前后添加数字,谢谢!

    1. 这是终端的问题,有些终端确实会出现这个情况...只能凑合这样用了...

      1. DC

        好吧,感谢!

        1. :)

            因为站长的最终篇还在酝酿所以前面两篇的步骤忘得差不多了。
          不过你提到的这个问题,很熟悉的感觉,如果你是只按Backspace发现毫无反应无法删除数字,那使用Ctrl+Backspace即可。

          1. :)

              顺便插楼问下站长一个小白问题,我发现评论只有第一段的全角空格可以正常显示,后面段落的空格提交后就被吞了,这就有点为难有着良好写作规范(不要脸)的用户了。怎破?

            1. 这个应该是 Typecho 的问题,我这里可以给你一个有点不方便的解决办法,把全角空格用&@emsp;(去掉@)代替,这样全角空格就不会被吞了。
              参考链接:
              https://blog.csdn.net/thither_shore/article/details/52205748

  4. helloworld

    我刷到3b上了 zerotier 这个插件一直运行不了

    1. 我这边没有 Zerotier VPN 环境,所以暂时没法找出原因...

  5. 非常感谢作者这么用心。。。我毕业设计有涉及Zynq上面运行openwrt,也算有所启发。可否分享一下交叉编译工具链压缩包?我可以自己加入想要的软件。
    再次感谢!

    1. Lean 大的项目自带这些,你可以直接克隆他的项目~

  6. wdcew

    真的是一篇很不错的文章,让大家少走了不少弯路,谢谢作者

  7. 请问ssr plus的配置文件是如何讲节点设置为可用状态的呢

  8. k

    感谢作者写的这么用心,这么多问题都是一次次失败总结下来的,很不容易,感谢

  9. 作者有空编译一下这款单片机的吗,属于一款类树莓派
    tinkerboard
    https://www.asus.com/us/Single-Board-Computer/Tinker-Board/
    https://github.com/TinkerBoard/debian_kernel.git
    https://github.com/TinkerBoard/debian_u-boot.git

  10. djinni

    您好 请问一下 :买了个树莓派4b 用L大项目编译,但是不知道选择什么无线网卡驱动 按照您的教学安装了所有无线网卡驱动,网络里面又无线选项,但是无法搜索到wifi 请问我应该选择什么型号的无线网卡,在其他选项里我应该选择啥?小白求问 麻烦了 谢谢

  11. Andy

    我也是自己编译,折腾了好久,最后在firmware选项里找到了bcm43XXX的固件,写了pi4的就是树莓派的网卡固件

    1. djinni

      您好 请问是把firmware这里面的bcm43xxx的选项选上吗?(您能告诉我一下具体选择哪个选项吗?)还需要在别的地方修改什么吗?Kernel modules - Wireless Drivers这个选项里面用选啥吗?谢谢您

添加新评论