Skip to contentSkip to conversation

Add Chinese translation for USB subsystem

PATCH Superseded Kefan Bai 2 participants 10 messages May 10 – May 13

Subsystems (3)

v6 of 7 Superseded Latest is v7 →

lore
Share & tools
lore

Kefan Bai

author
#0 lore raw

v6 cover Add Chinese translation for USB subsystem

This patch set adds Chinese translations for the USB documentation.

Apologies for the long delay in revisiting this series. I have now
rebased it onto the latest docs-next tree, rechecked and polished the translations, retested it, and resent it.

Changes in v6:
- Rebased the series onto the latest docs-next branch in Jon's tree
(git://git.lwn.net/linux.git), as suggested by Alex Shi.
- Added the USB maintainers to the Cc list.
- Rechecked and polished the Chinese translations throughout the series.

Changes in v5:
- Moved the index.rst entries for acm, authorization, chipidea, dwc3,
ehci, and usbmon into the corresponding patches so the series builds
cleanly when applied patch by patch.
- Removed extra spaces in chipidea.rst.
- Sent the series to [email protected] for review by
Chinese-speaking developers, as suggested by Alex Shi and Yanteng Si.
- Link to v5: https://lore.kernel.org/linux-usb/[email protected]/

Changes in v4:
- Shortened overlong title underline and overline markers.
- Removed the CREDITS entry from index.rst.
- Link to v4: https://lore.kernel.org/all/[email protected]/

Changes in v3:
- Updated my sign-off to use my full legal name, as requested by
Jonathan Corbet.
- Reviewed and fixed the RST syntax issues noted by Alex Shi.
- Kept the number of translated files to eight to make submission and
review more manageable.
- Link to v3: https://lore.kernel.org/all/[email protected]/

Changes in v2:
- Updated [PATCH 01/25] docs/zh_CN: Add index.rst translation to include
the corresponding changes to Documentation/translations/zh_CN/subsystem-apis.rst.
- Link to v2: https://lore.kernel.org/all/[email protected]/

v1:
- Link: https://lore.kernel.org/all/[email protected]/

Kefan Bai (8):
docs/zh_CN: Add index.rst translation
docs/zh_CN: Add acm.rst translation
docs/zh_CN: Add authorization.rst translation
docs/zh_CN: Add chipidea.rst translation
docs/zh_CN: Add dwc3.rst translation
docs/zh_CN: Add ehci.rst translation
docs/zh_CN: Add usbmon.rst translation
docs/zh_CN: Add CREDITS translation

 .../translations/zh_CN/subsystem-apis.rst     |   2 +-
 Documentation/translations/zh_CN/usb/CREDITS  | 162 ++++++++
 Documentation/translations/zh_CN/usb/acm.rst  | 136 +++++++
 .../translations/zh_CN/usb/authorization.rst  | 132 ++++++
 .../translations/zh_CN/usb/chipidea.rst       | 142 +++++++
 Documentation/translations/zh_CN/usb/dwc3.rst |  60 +++
 Documentation/translations/zh_CN/usb/ehci.rst | 230 +++++++++++
 .../translations/zh_CN/usb/index.rst          |  54 +++
 .../translations/zh_CN/usb/usbmon.rst         | 384 ++++++++++++++++++
 9 files changed, 1301 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/translations/zh_CN/usb/CREDITS
 create mode 100644 Documentation/translations/zh_CN/usb/acm.rst
 create mode 100644 Documentation/translations/zh_CN/usb/authorization.rst
 create mode 100644 Documentation/translations/zh_CN/usb/chipidea.rst
 create mode 100644 Documentation/translations/zh_CN/usb/dwc3.rst
 create mode 100644 Documentation/translations/zh_CN/usb/ehci.rst
 create mode 100644 Documentation/translations/zh_CN/usb/index.rst
 create mode 100644 Documentation/translations/zh_CN/usb/usbmon.rst

--
2.54.0

author
#1 lore raw

PATCH v6 1/8 docs/zh_CN: Add index.rst translation

Translate .../usb/index.rst into Chinese and update subsystem-apis.rst

Update the translation through commit a592a36e4937 ("Documentation: use a source-read extension for the index link boilerplate")

---
 .../translations/zh_CN/subsystem-apis.rst     |  2 +-
 .../translations/zh_CN/usb/index.rst          | 54 +++++++++++++++++++
 2 files changed, 55 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/translations/zh_CN/usb/index.rst
Documentation/translations/zh_CN/subsystem-apis.rst +1 -1
index 830217140fb6..b52e1feb0167 100644
@@ -90,6 +90,7 @@ TODOList:
    security/index
    PCI/index
    peci/index
+   usb/index
 
 TODOList:
 
@@ -104,6 +105,5 @@ TODOList:
 * accel/index
 * crypto/index
 * bpf/index
-* usb/index
 * misc-devices/index
 * wmi/index
Documentation/translations/zh_CN/usb/index.rst new file +54 -0

54 lines not on this page · raw message

--
2.54.0

author
#2 lore raw

PATCH v6 2/8 docs/zh_CN: Add acm.rst translation

In reply to Kefan Bai

Translate .../usb/acm.rst into Chinese

Update the translation through commit ecefae6db042 ("docs: usb: rename files to .rst and add them to drivers-api")

---
 Documentation/translations/zh_CN/usb/acm.rst  | 136 ++++++++++++++++++
 .../translations/zh_CN/usb/index.rst          |   2 +-
 2 files changed, 137 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/translations/zh_CN/usb/acm.rst
Documentation/translations/zh_CN/usb/acm.rst new file +136 -0
new file mode 100644
index 000000000000..25ec83afd25f
@@ -0,0 +1,136 @@
+.. SPDX-License-Identifier: GPL-2.0
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: Documentation/usb/acm.rst
+
+:翻译:
+
+ 白钶凡 Kefan Bai <[email protected]>
+
+:校译:
+
+
+=======================
+Linux ACM 驱动 v0.16
+=======================
+
+版权所有 (c) 1999 Vojtech Pavlik <[email protected]>
+
+由 SuSE 赞助
+
+0. 免责声明
+~~~~~~~~~~~~~
+本程序是自由软件;你可以在自由软件基金会发布的 GNU 通用公共许可证第 2 版,
+或者(按你的选择)任何后续版本的条款下重新发布和/或修改它。
+
+发布本程序是希望它能发挥作用,但它不附带任何担保;甚至不包括对适销性
+或特定用途适用性的默示担保。详情见 GNU 通用公共许可证。
+
+你应该已经随本程序收到了 GNU 通用公共许可证的副本;
+如果没有,请致信:Free Software Foundation, Inc., 59
+Temple Place, Suite 330, Boston, MA 02111-1307 USA。
+
+如需联系作者,可发送电子邮件至 [email protected],
+或邮寄至:
+Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00, Czech Republic。
+
+为方便起见,软件包中已附带 GNU 通用公共许可证第 2 版:见 COPYING 文件。
+
+1. 使用方法
+~~~~~~~~~~~~~
+``drivers/usb/class/cdc-acm.c`` 驱动可用于符合 USB 通信设备类抽象控制模型
+(USB CDC ACM)规范的 USB 调制解调器和 USB ISDN 终端适配器。
+
+许多调制解调器支持此驱动,以下是我所知道的一些型号:
+
+	- 3Com OfficeConnect 56k
+	- 3Com Voice FaxModem Pro
+	- 3Com Sportster
+	- MultiTech MultiModem 56k
+	- Zoom 2986L FaxModem
+	- Compaq 56k FaxModem
+	- ELSA Microlink 56k
+
+我知道有一款 ISDN 终端适配器可以与 ACM 驱动一起使用:
+
+	- 3Com USR ISDN Pro TA
+
+一些手机也可以通过 USB 连接。我知道以下机型可以正常工作:
+
+	- SonyEricsson K800i
+
+遗憾的是,许多调制解调器和大多数 ISDN TA 都使用专有接口,
+因此无法与此驱动配合工作。购买前请先确认设备是否符合 ACM 规范。
+
+要使用这些调制解调器,需要加载以下模块::
+
+	usbcore.ko
+	uhci-hcd.ko ohci-hcd.ko or ehci-hcd.ko
+	cdc-acm.ko
+
+之后就应该可以访问这些调制解调器了。
+应当可以使用 ``minicom``、``ppp`` 和 ``mgetty`` 与它们通信。
+
+2. 验证驱动是否正常工作
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+第一步是检查 ``/sys/kernel/debug/usb/devices``,其内容应该类似如下::
+
+  T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
+  B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
+  D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
+  P:  Vendor=0000 ProdID=0000 Rev= 0.00
+  S:  Product=USB UHCI Root Hub
+  S:  SerialNumber=6800
+  C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
+  I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
+  E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
+  T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
+  D:  Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  2
+  P:  Vendor=04c1 ProdID=008f Rev= 2.07
+  S:  Manufacturer=3Com Inc.
+  S:  Product=3Com U.S. Robotics Pro ISDN TA
+  S:  SerialNumber=UFT53A49BVT7
+  C:  #Ifs= 1 Cfg#= 1 Atr=60 MxPwr=  0mA
+  I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=acm
+  E:  Ad=85(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
+  E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
+  E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=128ms
+  C:* #Ifs= 2 Cfg#= 2 Atr=60 MxPwr=  0mA
+  I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm
+  E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=128ms
+  I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm
+  E:  Ad=85(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
+  E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
+
+这三行的存在很关键(以及 ``Cls=`` 字段里出现的 ``comm`` 和 ``data`` 类);
+它说明这是一个 ACM 设备。``Driver=acm`` 表示该设备正在使用 acm 驱动。
+如果只看到 ``Cls=ff(vend.)``,那就无能为力了:这说明你手上的设备使用的是
+厂商专有接口::
+
+    D:  Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  2
+    I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm
+    I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm
+
+在系统日志中应该可以看到::
+
+  usb.c: USB new device connect, assigned device number 2
+  usb.c: kmalloc IF c7691fa0, numif 1
+  usb.c: kmalloc IF c7b5f3e0, numif 2
+  usb.c: skipped 4 class/vendor specific interface descriptors
+  usb.c: new device strings: Mfr=1, Product=2, SerialNumber=3
+  usb.c: USB device number 2 default language ID 0x409
+  Manufacturer: 3Com Inc.
+  Product: 3Com U.S. Robotics Pro ISDN TA
+  SerialNumber: UFT53A49BVT7
+  acm.c: probing config 1
+  acm.c: probing config 2
+  ttyACM0: USB ACM device
+  acm.c: acm_control_msg: rq: 0x22 val: 0x0 len: 0x0 result: 0
+  acm.c: acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: 7
+  usb.c: acm driver claimed interface c7b5f3e0
+  usb.c: acm driver claimed interface c7b5f3f8
+  usb.c: acm driver claimed interface c7691fa0
+
+如果以上都正常,请启动 ``minicom``,把它配置为连接 ``ttyACM`` 设备,
+然后尝试输入 ``at``。如果返回 ``OK``,说明一切工作正常。
Documentation/translations/zh_CN/usb/index.rst +1 -1
index 7cfe99a4dc0a..449e8ac2dff0 100644
@@ -17,10 +17,10 @@ USB 支持
 .. toctree::
     :maxdepth: 1
 
+    acm
 
 Todolist:
 
-* acm
 * authorization
 * chipidea
 * dwc3

--
2.54.0

#3 lore raw

Re: [PATCH v6 2/8] docs/zh_CN: Add acm.rst translation

Quoted 37 lines · Kefan Bai

Translate .../usb/acm.rst into Chinese

Update the translation through commit ecefae6db042 ("docs: usb: rename files to .rst and add them to drivers-api")

---
  Documentation/translations/zh_CN/usb/acm.rst  | 136 ++++++++++++++++++
  .../translations/zh_CN/usb/index.rst          |   2 +-
  2 files changed, 137 insertions(+), 1 deletion(-)

create mode 100644 Documentation/translations/zh_CN/usb/acm.rst

Documentation/translations/zh_CN/usb/acm.rst new file +18 -0
new file mode 100644
index 000000000000..25ec83afd25f
@@ -0,0 +1,136 @@
+.. SPDX-License-Identifier: GPL-2.0
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: Documentation/usb/acm.rst
+
+:翻译:
+
+ 白钶凡 Kefan Bai<[email protected]>
+
+:校译:
+
+
+=======================
+Linux ACM 驱动 v0.16
+=======================
+
+版权所有 (c) 1999 Vojtech Pavlik<[email protected]>
+

Documentation/translations/zh_CN/usb/acm.rst line 28

Quoted 10 lines
Documentation/translations/zh_CN/usb/acm.rst new file +10 -0
+由 SuSE 赞助
+
+0. 免责声明
+~~~~~~~~~~~~~
+本程序是自由软件;你可以在自由软件基金会发布的 GNU 通用公共许可证第 2 版,
+或者(按你的选择)任何后续版本的条款下重新发布和/或修改它。
+
+发布本程序是希望它能发挥作用,但它不附带任何担保;甚至不包括对适销性
+或特定用途适用性的默示担保。详情见 GNU 通用公共许可证。
+

Hi Kefan,

Please align the lines above to make them look a bit cleaner. They don't need to be aligned perfectly, but the current formatting could be improved. Please apply this same standard to all patches.

Thanks
Alex

Quoted 127 lines
Documentation/translations/zh_CN/usb/acm.rst new file +108 -0
+你应该已经随本程序收到了 GNU 通用公共许可证的副本;
+如果没有,请致信:Free Software Foundation, Inc., 59
+Temple Place, Suite 330, Boston, MA 02111-1307 USA。
+
+如需联系作者,可发送电子邮件至[email protected],
+或邮寄至:
+Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00, Czech Republic。
+
+为方便起见,软件包中已附带 GNU 通用公共许可证第 2 版:见 COPYING 文件。
+
+1. 使用方法
+~~~~~~~~~~~~~
+``drivers/usb/class/cdc-acm.c`` 驱动可用于符合 USB 通信设备类抽象控制模型
+(USB CDC ACM)规范的 USB 调制解调器和 USB ISDN 终端适配器。
+
+许多调制解调器支持此驱动,以下是我所知道的一些型号:
+
+	- 3Com OfficeConnect 56k
+	- 3Com Voice FaxModem Pro
+	- 3Com Sportster
+	- MultiTech MultiModem 56k
+	- Zoom 2986L FaxModem
+	- Compaq 56k FaxModem
+	- ELSA Microlink 56k
+
+我知道有一款 ISDN 终端适配器可以与 ACM 驱动一起使用:
+
+	- 3Com USR ISDN Pro TA
+
+一些手机也可以通过 USB 连接。我知道以下机型可以正常工作:
+
+	- SonyEricsson K800i
+
+遗憾的是,许多调制解调器和大多数 ISDN TA 都使用专有接口,
+因此无法与此驱动配合工作。购买前请先确认设备是否符合 ACM 规范。
+
+要使用这些调制解调器,需要加载以下模块::
+
+	usbcore.ko
+	uhci-hcd.ko ohci-hcd.ko or ehci-hcd.ko
+	cdc-acm.ko
+
+之后就应该可以访问这些调制解调器了。
+应当可以使用 ``minicom``、``ppp`` 和 ``mgetty`` 与它们通信。
+
+2. 验证驱动是否正常工作
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+第一步是检查 ``/sys/kernel/debug/usb/devices``,其内容应该类似如下::
+
+  T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
+  B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
+  D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
+  P:  Vendor=0000 ProdID=0000 Rev= 0.00
+  S:  Product=USB UHCI Root Hub
+  S:  SerialNumber=6800
+C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
+  I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
+  E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
+  T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
+  D:  Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  2
+  P:  Vendor=04c1 ProdID=008f Rev= 2.07
+  S:  Manufacturer=3Com Inc.
+  S:  Product=3Com U.S. Robotics Pro ISDN TA
+  S:  SerialNumber=UFT53A49BVT7
+  C:  #Ifs= 1 Cfg#= 1 Atr=60 MxPwr=  0mA
+  I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=acm
+  E:  Ad=85(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
+  E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
+  E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=128ms
+C:* #Ifs= 2 Cfg#= 2 Atr=60 MxPwr=  0mA
+  I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm
+  E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=128ms
+  I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm
+  E:  Ad=85(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
+  E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
+
+这三行的存在很关键(以及 ``Cls=`` 字段里出现的 ``comm`` 和 ``data`` 类);
+它说明这是一个 ACM 设备。``Driver=acm`` 表示该设备正在使用 acm 驱动。
+如果只看到 ``Cls=ff(vend.)``,那就无能为力了:这说明你手上的设备使用的是
+厂商专有接口::
+
+    D:  Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  2
+    I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm
+    I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm
+
+在系统日志中应该可以看到::
+
+  usb.c: USB new device connect, assigned device number 2
+  usb.c: kmalloc IF c7691fa0, numif 1
+  usb.c: kmalloc IF c7b5f3e0, numif 2
+  usb.c: skipped 4 class/vendor specific interface descriptors
+  usb.c: new device strings: Mfr=1, Product=2, SerialNumber=3
+  usb.c: USB device number 2 default language ID 0x409
+  Manufacturer: 3Com Inc.
+  Product: 3Com U.S. Robotics Pro ISDN TA
+  SerialNumber: UFT53A49BVT7
+  acm.c: probing config 1
+  acm.c: probing config 2
+  ttyACM0: USB ACM device
+  acm.c: acm_control_msg: rq: 0x22 val: 0x0 len: 0x0 result: 0
+  acm.c: acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: 7
+  usb.c: acm driver claimed interface c7b5f3e0
+  usb.c: acm driver claimed interface c7b5f3f8
+  usb.c: acm driver claimed interface c7691fa0
+
+如果以上都正常,请启动 ``minicom``,把它配置为连接 ``ttyACM`` 设备,
+然后尝试输入 ``at``。如果返回 ``OK``,说明一切工作正常。
Documentation/translations/zh_CN/usb/index.rst +1 -2
index 7cfe99a4dc0a..449e8ac2dff0 100644
@@ -17,10 +17,10 @@ USB 支持
  .. toctree::
      :maxdepth: 1
 
+    acm
 
  Todolist:
 
-* acm
  * authorization
  * chipidea
  * dwc3
--

2.54.0

author
#4 lore raw

PATCH v6 3/8 docs/zh_CN: Add authorization.rst translation

In reply to Kefan Bai

Translate .../usb/authorization.rst into Chinese

Update the translation through commit f176638af476 ("USB: Remove Wireless USB and UWB documentation")

---
 .../translations/zh_CN/usb/authorization.rst  | 132 ++++++++++++++++++
 .../translations/zh_CN/usb/index.rst          |   2 +-
 2 files changed, 133 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/translations/zh_CN/usb/authorization.rst
Documentation/translations/zh_CN/usb/authorization.rst new file +132 -0
new file mode 100644
index 000000000000..71153cded526
@@ -0,0 +1,132 @@
+.. SPDX-License-Identifier: GPL-2.0
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: Documentation/usb/authorization.rst
+:翻译:
+
+ 白钶凡 Kefan Bai <[email protected]>
+
+:校译:
+
+
+=============================
+授权或禁止 USB 设备连接到系统
+=============================
+
+版权 (C) 2007 Inaky Perez-Gonzalez <[email protected]> 英特尔公司
+
+此功能允许你控制 USB 设备是否可以在系统中使用。
+借助它,你可以完全通过用户空间实现对 USB 设备的锁定。
+
+目前,当插入一个 USB 设备时,系统会对其进行配置,其接口会立即向用户开放。
+有了这项改动,只有在 root 授权设备完成配置后,设备才可被使用。
+
+
+用法
+====
+
+授权设备接入::
+
+	$ echo 1 > /sys/bus/usb/devices/DEVICE/authorized
+
+取消对设备的授权::
+
+	$ echo 0 > /sys/bus/usb/devices/DEVICE/authorized
+
+将新连接到 ``hostX`` 的设备默认设为未授权(即锁定)::
+
+	$ echo 0 > /sys/bus/usb/devices/usbX/authorized_default
+
+解除锁定::
+
+	$ echo 1 > /sys/bus/usb/devices/usbX/authorized_default
+
+默认情况下,所有 USB 设备都是授权的。
+向 ``authorized_default`` 属性写入 ``2`` 会使内核默认只授权连接到内部
+USB 端口的设备。
+
+系统锁定示例(比较粗糙)
+------------------------
+
+假设你想实现一个锁定功能,只允许类型为 XYZ 的设备接入
+(例如某台带有外露 USB 端口的自助服务终端)::
+
+  启动系统
+  rc.local ->
+
+   for host in /sys/bus/usb/devices/usb*
+   do
+      echo 0 > $host/authorized_default
+   done
+
+给 udev 挂一个脚本,用于处理新插入的 USB 设备::
+
+ if device_is_my_type $DEV
+ then
+   echo 1 > $device_path/authorized
+ done
+
+
+``device_is_my_type()`` 才是锁定方案真正见功夫的地方。
+仅仅检查 class、type 和 protocol 是否匹配某个值,
+是你能做出的最糟糕的安全验证之一;对想绕过它的人来说,
+这反而是最容易利用的方案。如果你需要真正安全的办法,
+那就该使用加密、证书认证之类的机制。把 USB 存储设备当作
+“钥匙”的一个简单例子可以是::
+
+ function device_is_my_type()
+ {
+   echo 1 > authorized		# 暂时授权它
+                                # FIXME: 确保没人能挂载它
+   mount DEVICENODE /mntpoint
+   sum=$(md5sum /mntpoint/.signature)
+   if [ $sum = $(cat /etc/lockdown/keysum) ]
+   then
+        echo "We are good, connected"
+        umount /mntpoint
+        # 再做一些额外处理,让其他人也能使用它
+   else
+        echo 0 > authorized
+   fi
+ }
+
+
+当然,这个例子很粗糙;真正要做的话,你会想用基于 PKI 的证书校验,
+这样就不必依赖共享密钥之类的东西。不过你应该已经明白意思了。
+任何拿到设备仿真工具包的人都能伪造描述符和设备信息。
+别信这个。
+
+接口授权
+--------
+
+也有类似的方法用于允许或拒绝特定 USB 接口。
+这使得你可以只阻止某个 USB 设备中的部分接口。
+
+授权接口::
+
+	$ echo 1 > /sys/bus/usb/devices/INTERFACE/authorized
+
+取消接口授权::
+
+	$ echo 0 > /sys/bus/usb/devices/INTERFACE/authorized
+
+也可以更改特定 USB 总线上新接口的默认授权值。
+
+默认允许接口::
+
+	$ echo 1 > /sys/bus/usb/devices/usbX/interface_authorized_default
+
+默认拒绝接口::
+
+	$ echo 0 > /sys/bus/usb/devices/usbX/interface_authorized_default
+
+默认情况下,``interface_authorized_default`` 位为 ``1``,
+因此所有接口默认都处于已授权状态。
+
+注意:
+  如果把一个先前未授权的接口改为已授权,
+  则必须通过将 ``INTERFACE`` 写入 ``/sys/bus/usb/drivers_probe``
+  来手动触发驱动探测。
+
+对于需要多个接口的驱动程序,应先授权所有必需接口,
+然后再触发驱动探测。这样做可以避免副作用。
Documentation/translations/zh_CN/usb/index.rst +1 -1
index 449e8ac2dff0..a63ece18302d 100644
@@ -18,10 +18,10 @@ USB 支持
     :maxdepth: 1
 
     acm
+    authorization
 
 Todolist:
 
-* authorization
 * chipidea
 * dwc3
 * ehci

--
2.54.0

author
#5 lore raw

PATCH v6 4/8 docs/zh_CN: Add chipidea.rst translation

In reply to Kefan Bai

Translate .../usb/chipidea.rst into Chinese

Update the translation through commit e4157519ad46 ("Documentation: usb: correct spelling")

---
 .../translations/zh_CN/usb/chipidea.rst       | 142 ++++++++++++++++++
 .../translations/zh_CN/usb/index.rst          |   2 +-
 2 files changed, 143 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/translations/zh_CN/usb/chipidea.rst
Documentation/translations/zh_CN/usb/chipidea.rst new file +142 -0
new file mode 100644
index 000000000000..433b3fc411fc
@@ -0,0 +1,142 @@
+.. SPDX-License-Identifier: GPL-2.0
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: Documentation/usb/chipidea.rst
+:翻译:
+
+ 白钶凡 Kefan Bai <[email protected]>
+
+:校译:
+
+
+
+==============================
+ChipIdea 高速双角色控制器驱动
+==============================
+
+1. 如何测试 OTG FSM(HNP 和 SRP)
+---------------------------------
+
+下面以两块 Freescale i.MX6Q Sabre SD 开发板为例,说明如何通过
+sysfs 输入文件演示 OTG 的 HNP 和 SRP 功能。
+
+1.1 如何使能 OTG FSM
+---------------------
+
+1.1.1 在 ``menuconfig`` 中选择 ``CONFIG_USB_OTG_FSM``,并重新编译内核
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+重新构建内核镜像和模块。如果想查看 OTG FSM 的一些内部变量,可以挂载
+``debugfs``;其中有两个文件可以显示 OTG FSM 变量以及部分控制器寄存器的值::
+
+	cat /sys/kernel/debug/ci_hdrc.0/otg
+	cat /sys/kernel/debug/ci_hdrc.0/registers
+
+1.1.2 在控制器节点对应的 ``dts`` 文件中添加以下条目
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+	otg-rev = <0x0200>;
+	adp-disable;
+
+1.2 测试步骤
+-------------
+
+1) 给两块 Freescale i.MX6Q Sabre SD 开发板上电,
+   并加载 gadget 类驱动(例如 ``g_mass_storage``)。
+
+2) 用 USB 线连接两块开发板:一端是 micro A 插头,另一端是 micro B 插头。
+
+   插入 micro A 插头的一端是 A 设备,它应枚举另一端的 B 设备。
+
+3) 角色切换
+
+   在 B 设备上执行::
+
+	echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
+
+   B 设备应接管主机角色并枚举 A 设备。
+
+4) A 设备切回主机角色
+
+   在 B 设备上执行::
+
+	echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
+
+   或者,通过引入 HNP 轮询,B 端主机可以知道 A 端外设希望切换为主机角色,
+   因而这次角色切换也可以通过 A 端外设响应 B 端主机的轮询,在 A 侧触发。
+   这可以通过在 A 设备上执行下面的命令来完成::
+
+	echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_req
+
+   A 设备应切回主机角色并枚举 B 设备。
+
+5) 拔掉 B 设备(拔掉 micro B 插头),并在 10 秒内重新插入;
+   A 设备应重新枚举 B 设备。
+
+6) 拔掉 B 设备(拔掉 micro B 插头),并在 10 秒后重新插入;
+   A 设备不应重新枚举 B 设备。
+
+   如果 A 设备希望使用总线:
+
+   在 A 设备上执行::
+
+	echo 0 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_drop
+	echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_req
+
+   如果 B 设备希望使用总线:
+
+   在 B 设备上执行::
+
+	echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
+
+7) A 设备关闭总线供电
+
+   在 A 设备上执行::
+
+	echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/a_bus_drop
+
+   A 设备应断开与 B 设备的连接,并关闭总线供电。
+
+8) B 设备发出 SRP 数据脉冲
+
+   在 B 设备上执行::
+
+	echo 1 > /sys/bus/platform/devices/ci_hdrc.0/inputs/b_bus_req
+
+   A 设备应恢复 USB 总线并枚举 B 设备。
+
+1.3 参考文档
+-------------
+《On-The-Go and Embedded Host Supplement to the USB Revision 2.0 Specification
+July 27, 2012 Revision 2.0 version 1.1a》
+
+2. 如何将 USB 用作系统唤醒源
+----------------------------
+下面是在 i.MX6 平台上把 USB 用作系统唤醒源的示例。
+
+2.1 使能核心控制器的唤醒功能::
+
+	echo enabled > /sys/bus/platform/devices/ci_hdrc.0/power/wakeup
+
+2.2 使能 glue 层的唤醒功能::
+
+	echo enabled > /sys/bus/platform/devices/2184000.usb/power/wakeup
+
+2.3 使能 PHY 的唤醒功能(可选)::
+
+	echo enabled > /sys/bus/platform/devices/20c9000.usbphy/power/wakeup
+
+2.4 使能根集线器的唤醒功能::
+
+	echo enabled > /sys/bus/usb/devices/usb1/power/wakeup
+
+2.5 使能相关设备的唤醒功能::
+
+	echo enabled > /sys/bus/usb/devices/1-1/power/wakeup
+
+如果系统只有一个 USB 端口,而你希望在该端口上启用 USB 唤醒功能,
+可以使用下面的脚本::
+
+	for i in $(find /sys -name wakeup | grep usb);do echo enabled > $i;done;
Documentation/translations/zh_CN/usb/index.rst +1 -1
index a63ece18302d..70fe33fc37d9 100644
@@ -19,10 +19,10 @@ USB 支持
 
     acm
     authorization
+    chipidea
 
 Todolist:
 
-* chipidea
 * dwc3
 * ehci
 * usbmon

--
2.54.0

author
#6 lore raw

PATCH v6 5/8 docs/zh_CN: Add dwc3.rst translation

In reply to Kefan Bai

Translate .../usb/dwc3.rst into Chinese

Update the translation through commit ecefae6db042 ("docs: usb: rename files to .rst and add them to drivers-api")

---
 Documentation/translations/zh_CN/usb/dwc3.rst | 60 +++++++++++++++++++
 .../translations/zh_CN/usb/index.rst          |  2 +-
 2 files changed, 61 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/translations/zh_CN/usb/dwc3.rst
Documentation/translations/zh_CN/usb/dwc3.rst new file +60 -0
new file mode 100644
index 000000000000..92108ff8cc80
@@ -0,0 +1,60 @@
+.. SPDX-License-Identifier: GPL-2.0
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: Documentation/usb/dwc3.rst
+:翻译:
+
+ 白钶凡 Kefan Bai <[email protected]>
+
+:校译:
+
+
+
+===========
+DWC3 驱动
+===========
+
+
+待办
+~~~~~~
+
+阅读时如果想顺手认领点任务,可以从下面挑一项 :)
+
+- 将中断处理程序改为每个端点各自使用线程化 IRQ
+
+  事实证明,有些 DWC3 命令大约需要 ``~1 ms`` 才能完成。
+  当前代码会一直自旋等待命令完成,这种设计并不好。
+
+  实现思路:
+
+  - DWC 核心实现了一个按端点对中断进行解复用的 IRQ 控制器。中断号在
+    探测(``probe``)阶段分配,并归属于该设备。如果硬件通过 ``MSI`` 为每个端点
+    提供独立中断,那么这个“虚拟”IRQ 控制器就可以被真实的端点中断取代。
+
+  - 在调用 ``usb_ep_enable()`` 时请求并分配中断资源,
+    在调用 ``usb_ep_disable()`` 时释放中断资源。
+    最坏情况下需要 32 个中断,最少是 ``ep0/1`` 的两个中断。
+  - ``dwc3_send_gadget_ep_cmd()`` 将在 ``wait_for_completion_timeout()``
+    中休眠,直到命令完成。
+  - 中断处理程序分为以下几个部分:
+
+    - 设备级主中断处理程序
+      遍历每个事件,并对其调用 ``generic_handle_irq()``。
+      从 ``generic_handle_irq()`` 返回后,确认事件计数器,使中断最终消失。
+
+    - 设备级线程化处理程序
+      无。
+
+    - 端点中断的主处理程序
+      读取事件并尽量处理它。凡是需要睡眠的操作都交给线程处理。
+      事件保存在每个端点的数据结构中。
+      还要注意,一旦把某项工作交给线程处理,就不要再在主处理程序里处理它,
+      以免出现优先级反转之类的问题。
+
+    - 端点中断的线程化处理程序
+      处理剩余的端点工作,这些工作可能会睡眠,例如等待命令完成。
+
+  延迟:
+
+   不应增加延迟,因为中断线程具有较高优先级,会在普通用户态任务之前运行
+   (除非用户更改了调度优先级)。
Documentation/translations/zh_CN/usb/index.rst +1 -1
index 70fe33fc37d9..6d669c41d1cd 100644
@@ -20,10 +20,10 @@ USB 支持
     acm
     authorization
     chipidea
+    dwc3
 
 Todolist:
 
-* dwc3
 * ehci
 * usbmon
 * functionfs

--
2.54.0

author
#7 lore raw

PATCH v6 6/8 docs/zh_CN: Add ehci.rst translation

In reply to Kefan Bai

Translate .../usb/ehci.rst into Chinese

Update the translation through commit 570eb861243c ("docs: usb: replace some characters")

---
 Documentation/translations/zh_CN/usb/ehci.rst | 230 ++++++++++++++++++
 .../translations/zh_CN/usb/index.rst          |   2 +-
 2 files changed, 231 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/translations/zh_CN/usb/ehci.rst
Documentation/translations/zh_CN/usb/ehci.rst new file +230 -0
new file mode 100644
index 000000000000..ea1d72f52efd
@@ -0,0 +1,230 @@
+.. SPDX-License-Identifier: GPL-2.0
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: Documentation/usb/ehci.rst
+:翻译:
+
+ 白钶凡 Kefan Bai <[email protected]>
+
+:校译:
+
+
+
+=========
+EHCI 驱动
+=========
+
+2002年12月27日
+
+EHCI 驱动用于通过支持 USB 2.0 的主机控制器硬件与高速 USB 2.0 设备通信。
+USB 2.0 兼容 USB 1.1 标准,它定义了三种传输速率:
+
+    - “高速”(High Speed)480 Mbit/sec(60 MByte/sec)
+    - “全速”(Full Speed)12 Mbit/sec(1.5 MByte/sec)
+    - “低速”(Low Speed)1.5 Mbit/sec
+
+USB 1.1 仅支持全速与低速。高速设备可以在 USB 1.1 系统上使用,
+但速度会降到 USB 1.1 的速率。
+
+USB 1.1 设备也可以在 USB 2.0 系统上使用。
+当它们插入 EHCI 控制器时,会被交由 USB 1.1 的伴随(companion)控制器处理,
+该控制器通常是 OHCI 或 UHCI。
+
+当 USB 1.1 设备插入 USB 2.0 集线器时,
+它们通过集线器中的事务转换器(Transaction Translator,TT)与 EHCI 控制器交互,
+该转换器将低速或全速事务转换为高速分割事务,从而避免浪费传输带宽。
+
+截至本文撰写时,该驱动已在以下 EHCI 实现上成功运行(按字母顺序):
+Intel、NEC、Philips 和 VIA。
+其他供应商的 EHCI 实现正在陆续问世;
+预计该驱动在这些实现上也可正常运行。
+
+自 2001 年年中起,usb-storage 设备就已可用
+(在 2.4 版该驱动上速度相当不错),
+集线器则直到 2001 年底才开始可用,而其他类型的高速设备
+似乎要等到更多系统内置 USB 2.0 后才会出现。
+这类新系统从 2002 年初开始上市,并在 2002 年下半年变得更加常见。
+
+注意,USB 2.0 支持并不只是 EHCI 本身。它还需要对 Linux-USB
+核心 API 作出其他修改,包括 hub 驱动;不过这些修改并不需要真正改变
+暴露给 USB 设备驱动的基本 ``usbcore`` API。
+
+- David Brownell
+  <[email protected]>
+
+
+功能
+====
+
+该驱动会定期在 x86 硬件上进行测试,也已在 PPC 硬件上使用,
+因此大小端问题应当已经解决。
+因此可以认为,它已经处理好了所有必要的 PCI 细节,
+所以即便在 DMA 映射有些特殊的系统上,I/O 也应能正常运行。
+
+传输类型
+--------
+
+截至本文撰写时,该驱动应当已经能够很好地处理所有控制传输、批量传输
+和中断传输,包括通过 USB 2.0 集线器中的事务转换器与 USB 1.1 设备通信;
+但仍可能存在 bug。
+
+高速等时(ISO)传输支持也已可用,但截至本文撰写时,
+还没有 Linux 驱动使用这项支持。
+
+目前尚不支持通过事务转换器实现全速等时传输。
+需要注意,ISO 传输的 split transaction 支持与高速 ISO 传输
+几乎无法共用代码,因为 EHCI 用不同的数据结构表示它们。
+因此,目前大多数 USB 音频和视频设备还不能通过高速总线连接使用。
+
+驱动行为
+--------
+
+所有类型的传输都可以排队。
+这意味着来自一个接口驱动的控制传输(或通过 usbfs 发出的控制传输)
+不会干扰另一个驱动的控制传输,而且中断传输可以使用 1 帧的周期,
+而不必担心中断处理开销导致的数据丢失。
+
+
+EHCI 根集线器代码会将 USB 1.1 设备移交给其伴随控制器。
+该驱动不需要了解那些驱动的任何细节;
+一个原本就能正常工作的 OHCI 或 UHCI 驱动,并不会因为 EHCI 驱动也存在而需要更改。
+
+电源管理方面还有一些问题;当前挂起/恢复的行为还不完全正确。
+
+此外,在调度周期性事务(中断和等时传输)时还采取了一些简化处理。
+这些简化会限制可调度的周期性事务数量,
+并且无法使用小于一帧的轮询间隔。
+
+使用方式
+=========
+
+假设有一个 EHCI 控制器(位于 PCI 卡或主板上),并且已将此驱动编译为模块,
+可这样加载::
+
+    # modprobe ehci-hcd
+
+卸载方式::
+
+    # rmmod ehci-hcd
+
+还应加载一个伴随控制器驱动,例如 ``ohci-hcd`` 或 ``uhci-hcd``。
+如果 EHCI 驱动出现任何问题,只需卸载它的模块,
+随后该伴随控制器驱动就会接手此前由 EHCI 驱动处理的所有设备
+(但速度会降低)。
+
+模块参数(传给 ``modprobe``)包括:
+
+    log2_irq_thresh(默认值 0):
+        默认中断延迟的 log2 值,单位是微帧。默认值 0 表示 1 个微帧
+        (125 微秒)。最大值 6 表示 2^6 = 64 个微帧。
+        该值控制 EHCI 控制器发出中断的频率。
+
+如果在 2.5 内核上使用此驱动,并且启用了 USB 调试支持,
+则会在任一 EHCI 控制器的 ``sysfs`` 目录中看到三个文件:
+
+    ``async``
+        转储异步调度,用于控制传输和批量传输。它会显示每个活动的 ``qh``
+        以及待处理的 ``qtd``,通常每个 ``urb`` 对应一个 ``qtd``。
+        (可以在 ``usb-storage`` 做磁盘 I/O 时看它;顺便观察请求队列!)
+
+    ``periodic``
+        转储周期性调度,用于中断传输和等时传输。不显示 ``qtd``。
+
+    ``registers``
+        显示控制器寄存器状态。
+
+这些文件的内容有助于定位驱动问题。
+
+
+设备驱动通常不需要关心自己是否运行在 EHCI 之上,
+但它们可能想检查 ``usb_device->speed == USB_SPEED_HIGH``。
+高速设备能做到全速(或低速)设备做不到的事,
+例如高带宽的周期性传输(中断或 ISO 传输)。
+另外,设备描述符中的某些值
+(例如周期性传输的轮询间隔)在高速模式下使用不同的编码方式。
+
+不过,一定要让设备驱动经过 USB 2.0 集线器的测试。
+当使用事务转换器时,这些集线器报告某些故障(例如断开连接)的方式会不同;
+已经见过一些驱动在遇到与 OHCI 或 UHCI 所报告的不同故障时表现不佳。
+
+性能
+====
+
+USB 2.0 吞吐量主要受两个因素制约:主机控制器处理请求的速度,
+以及设备响应这些请求的速度。480 Mbit/sec 的“原始传输率”
+对所有设备都成立,但总吞吐量还会受到诸如单个高速包之间的延迟、
+驱动是否足够聪明,以及系统整体负载等因素的影响。
+延迟也是性能考量因素。
+
+批量传输最常用于关注吞吐量的场景。
+需要记住的是,批量传输总是以 512 字节包为单位,
+而一个 USB 2.0 微帧中最多只能容纳 13 个这样的包。
+8 个 USB 2.0 微帧构成一个 USB 1.1 帧;
+一个微帧的时长是 1 毫秒 / 8 = 125 微秒。
+
+因此,只要硬件和设备驱动软件都允许,
+批量传输可提供超过 50 MByte/sec 的带宽。
+周期性传输模式(等时和中断)允许使用更大的包大小,
+从而可以逼近所宣称的 480 Mbit/sec 传输率。
+
+硬件性能
+--------
+
+截至本文撰写时,单个 USB 2.0 设备的最大传输速率通常约为 20 MByte/sec。
+这当然会随着时间改变:一些设备现在更快,一些更慢。
+
+第一代 NEC EHCI 实现似乎存在大约 28 MByte/sec 的硬件瓶颈。
+虽然这对单个 20 MByte/sec 的设备显然已经够用,
+但把三个这样的设备挂到同一总线上,并不能得到 60 MByte/sec。
+问题似乎在于控制器硬件无法并发进行 USB 与 PCI 访问,
+因此它每个微帧只会尝试 6 次(也许是 7 次)USB 事务,而不是 13 次。
+(对一个比其他产品早上市一年的芯片来说,这是个合理的妥协!)
+
+
+预计较新的实现会在这方面做得更好,
+通过投入更多芯片面积来解决这个问题,
+使新的主板芯片组更接近 60 MByte/sec 的目标。
+这既包括 NEC 的更新实现,也包括其他厂商的芯片。
+
+
+主机从 EHCI 控制器收到“请求已完成”中断的最小延迟为一个微帧
+(125 微秒)。该延迟可以调节;驱动提供了一个模块选项。
+默认情况下,``ehci-hcd`` 使用最小延迟,
+这意味着当发出一个控制或批量请求时,
+通常可以在不到 250 微秒内得知它已完成
+(具体取决于传输大小)。
+
+软件性能
+--------
+
+即便只是要达到 20 MByte/sec 的传输速率,Linux-USB 设备驱动
+也必须让 EHCI 队列始终保持满载。
+这意味着要发出较大的请求,或者在需要发出一连串小请求时使用批量请求排队。
+如果驱动未做到这一点,那么会直接从性能结果上表现出来。
+
+
+在典型情况下,使用 ``usb_bulk_msg()`` 以 4 KB 块循环写出,
+会浪费超过一半的 USB 2.0 带宽。
+I/O 完成与驱动发出下一次请求之间的延迟,通常会比一次 I/O 本身耗时更长。
+如果同样的循环改用 16 KB 块,会好一些;若使用一连串 128 KB 块,则浪费会少得多。
+
+
+但与其依赖这么大的 I/O 缓冲区来让同步 I/O 高效,
+不如直接向主机控制器排入多个(批量)请求,然后等待它们全部完成
+(或在出错时取消)。
+这种 URB 排队方式对所有 USB 1.1 主机控制器驱动也同样适用。
+
+
+在 Linux 2.5 内核中,定义了新的 ``usb_sg_*()`` API;
+它们会把 scatterlist 中的所有缓冲区都排入队列。
+它们还使用 scatterlist 的 DMA 映射(其中可能应用 IOMMU)并减少中断次数,
+这些都有助于让高速传输尽可能快地运行。
+
+待办:
+   中断传输和等时(ISO)传输的性能问题。
+   这些周期性传输都是完全调度的,因此,主要问题可能在于如何触发高带宽模式。
+
+待办:
+   通过 ``sysfs`` 中的 ``uframe_periodic_max`` 参数,
+   可以分配超过标准 80% 的周期性带宽。
+   后续将对此进行说明。
Documentation/translations/zh_CN/usb/index.rst +1 -1
index 6d669c41d1cd..6c8e75d8cfc9 100644
@@ -21,10 +21,10 @@ USB 支持
     authorization
     chipidea
     dwc3
+    ehci
 
 Todolist:
 
-* ehci
 * usbmon
 * functionfs
 * functionfs-desc

--
2.54.0

author
#8 lore raw

PATCH v6 7/8 docs/zh_CN: Add usbmon.rst translation

In reply to Kefan Bai

Translate .../usb/usbmon.rst into Chinese

Update the translation through commit 788183a6e8b0
("docs: usb: fix literal block marker in usbmon verification example")

---
 .../translations/zh_CN/usb/index.rst          |   2 +-
 .../translations/zh_CN/usb/usbmon.rst         | 384 ++++++++++++++++++
 2 files changed, 385 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/translations/zh_CN/usb/usbmon.rst
Documentation/translations/zh_CN/usb/index.rst +1 -1
index 6c8e75d8cfc9..9df11bd4721c 100644
@@ -22,10 +22,10 @@ USB 支持
     chipidea
     dwc3
     ehci
+    usbmon
 
 Todolist:
 
-* usbmon
 * functionfs
 * functionfs-desc
 * gadget_configfs
Documentation/translations/zh_CN/usb/usbmon.rst new file +384 -0

384 lines not on this page · raw message

--
2.54.0

author
#9 lore raw

PATCH v6 8/8 docs/zh_CN: Add CREDITS translation

In reply to Kefan Bai

Translate .../usb/CREDITS into Chinese

Update the translation through commit 7b2328c5a009 ("docs: Fix typo in usb/CREDITS")

---
 Documentation/translations/zh_CN/usb/CREDITS | 162 +++++++++++++++++++
 1 file changed, 162 insertions(+)
 create mode 100644 Documentation/translations/zh_CN/usb/CREDITS
Documentation/translations/zh_CN/usb/CREDITS new file +162 -0
new file mode 100644
index 000000000000..9df5e311d211
@@ -0,0 +1,162 @@
+.. SPDX-License-Identifier: GPL-2.0
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: Documentation/usb/CREDITS
+:翻译:
+
+ 白钶凡 Kefan Bai <[email protected]>
+
+:校译:
+
+
+
+简易 Linux USB 驱动的致谢名单:
+
+以下人员都为 Linux USB 驱动代码作出了贡献(按姓氏字母顺序排列)。
+我相信这份名单本应更长一些,但确实不容易维护。
+如需将自己加入名单,请提交补丁。
+
+  Georg Acher <[email protected]>
+  David Brownell <[email protected]>
+  Alan Cox <[email protected]>
+  Randy Dunlap <[email protected]>
+  Johannes Erdfelt <[email protected]>
+  Deti Fliegl <[email protected]>
+  ham <[email protected]>
+  Bradley M Keryan <[email protected]>
+  Greg Kroah-Hartman <[email protected]>
+  Pavel Machek <[email protected]>
+  Paul Mackerras <[email protected]>
+  Petko Manlolov <[email protected]>
+  David E. Nelson <[email protected]>
+  Vojtech Pavlik <[email protected]>
+  Bill Ryder <[email protected]>
+  Thomas Sailer <[email protected]>
+  Gregory P. Smith <[email protected]>
+  Linus Torvalds <[email protected]>
+  Roman Weissgaerber <[email protected]>
+  <[email protected]>
+
+特别感谢:
+
+  Inaky Perez Gonzalez <[email protected]>
+  感谢他发起了 Linux USB 驱动开发工作,并编写了体量较大的 uusbd
+  驱动中的大部分代码。我们从那项工作中学到了很多。
+
+  NetBSD 和 FreeBSD 的 USB 开发者们
+  感谢他们加入 Linux USB 邮件列表,提供建议并分享实现经验。
+
+附加感谢:
+  还要感谢以下公司与个人在硬件、支持、时间投入和开发方面提供的捐赠与帮助
+  (摘自 Inaky 驱动原始的 THANKS 文件):
+
+    以下公司曾帮助我们开发 Linux USB / UUSBD:
+
+        - 3Com GmbH 捐赠了一台 ISDN Pro TA,并在技术问题和测试设备方面为我
+          提供支持。没想到能得到这么大的帮助。
+
+        - USAR Systems 向我们提供了他们出色的 USB 评估套件,
+          使我们能够测试 Linux USB 驱动对最新 USB 规范的符合性。
+          USAR Systems 认识到保持开放操作系统与时俱进的重要性,
+          并以硬件支持这个项目。感谢!
+
+        - 感谢英特尔提供的宝贵帮助。
+
+        - 我们与 Cherry 合作,使 Linux 成为首个内置 USB 支持的操作系统。
+          Cherry 是全球最大的键盘制造商之一。
+
+        - CMD Technology, Inc. 慷慨捐赠了一块 CSA-6700 PCI-to-USB
+          控制卡,用于测试 OHCI 实现。
+
+        - 由于他们对我们的支持,Keytronic 可以放心,
+          他们的键盘能卖给至少 300 万 Linux 用户中的一部分。
+
+        - ing büro h doran [http://www.ibhdoran.com]!
+          在欧洲,想给主板买一个 PC 背板 USB 连接器几乎是不可能的
+          (我自己做的那个相当糟糕 :))。现在我知道该去哪里买漂亮的 USB
+          配件了!
+
+        - Genius Germany 捐赠了一只 USB 鼠标,用于测试鼠标启动协议;
+          他们还捐赠了 F-23 数字摇杆和 NetMouse Pro。感谢!
+
+        - AVM GmbH Berlin 支持我们开发 Linux 下的 AVM ISDN Controller B1 USB 驱动。
+          AVM 是领先的 ISDN 控制器制造商,其主动式设计对包括 Linux 在内的
+          所有操作系统平台开放。
+
+        - 非常感谢 Y-E Data, Inc 捐赠的 FlashBuster-U USB 软驱,
+          使我们能够测试批量传输代码。
+
+        - 感谢 Logitech 捐赠了一只三轴 USB 鼠标。
+
+          Logitech 负责设计、制造并销售各种人机接口设备,
+          在键盘、鼠标、轨迹球、摄像头、扬声器,以及面向游戏和专业用途的
+          控制设备方面拥有悠久历史和丰富经验。
+
+          作为这些设备广为人知的供应商和销售商,他们捐赠了 USB 鼠标、
+          摇杆和扫描仪,以表明 Linux 的重要性,也让 Logitech 的客户
+          能在自己喜欢的操作系统上获得支持,并让所有 Linux 用户都能使用
+          Logitech 以及其他 USB 硬件。
+
+          Logitech 也是 1999 年 2 月 11 日维也纳 Linux 大会的官方赞助商,
+          我们将在会上展示 Linux USB 工作的最新进展。
+
+        - 感谢 CATC 提供 USB Inspector,帮助我们揭开 UHCI 内部实现中
+          那些不为人知的角落。
+
+        - 感谢 Entrega 为开发工作提供 PCI 转 USB 卡、集线器和转换器产品。
+
+        - 感谢 ConnectTech 提供 WhiteHEAT USB 转串口转换器以及相关文档,
+          让这个驱动得以写成。
+
+        - 感谢 ADMtek 提供 Pegasus 和 Pegasus II 评估板、规格说明,
+          以及驱动开发过程中的宝贵建议。
+
+    另外还要感谢以下个人(嘿,顺序不分先后 :))
+
+        - Oren Tirosh <[email protected]>,
+          他非常耐心地听我唠叨各种 USB 疑问,还给了很多很酷的想法。
+
+        - Jochen Karrer <[email protected]>,
+          指出了致命 bug,并给出了宝贵建议。
+
+        - Edmund Humemberger <[email protected]>,他在公共关系与项目管理方面
+          为 Linux-USB 项目付出了巨大的努力。
+
+        - Alberto Menegazzi <[email protected]> 正在着手编写 UUSBD 文档,加油!
+
+        - Ric Klaren <[email protected]> 编写了很好的入门文档,
+          与 Alberto 的作品形成良性竞争:)。
+
+        - Christian Groessler <[email protected]>,感谢他在那些棘手细节上的帮助。
+
+        - Paul MacKerras 改进了 OHCI 实现,推动了对 iMac 的支持,
+          并提供了大量的改进意见。
+
+        - Fernando Herrera <[email protected]>
+          负责撰写、维护并不断补充那份期待已久、独一无二又精彩的
+          UUSBD FAQ!太棒了!
+
+        - Rasca Gmelch <[email protected]> 重新启用了 raw 驱动,
+          指出了一些错误,并启动了 uusbd-utils 软件包。
+
+        - Peter Dettori <[email protected]>,像疯了一样挖掘 bug,
+          还提出了很多很酷的建议,太棒了!
+
+        - 自由软件与 Linux 社区的所有成员,包括 FSF、GNU 项目、
+          MIT X 联盟、TeX 社区等等,谢谢你们!
+
+        - 特别感谢 Richard Stallman 创造了 Emacs!
+
+        - 感谢 linux-usb 邮件列表的所有成员,读了那么多邮件——不开玩笑了,
+          感谢你们提出的所有建议!
+
+        - 感谢 USB Implementers Forum 成员们的帮助与支持。
+
+        - Nathan Myers <[email protected]>,感谢他的建议!
+          (希望你喜欢 Cibeles 的派对。)
+
+        - 感谢 Linus Torvalds 创建、开发并管理 Linux。
+
+        - Mike Smith、Craig Keithley、Thierry Giron 和 Janet Schank
+          感谢他们让我认识到标准 USB 集线器其实也没那么“标准”,
+          这有助于我们在标准集线器驱动中加入厂商特定的特殊处理。

--
2.54.0