如何将您的树莓派Zero变成USB小工具

电子说

1.3w人已加入

描述

概述

usb

Pi Zero问世时,低成本设计的缺点(!)就是将“标准” USB A端口换成micro-B端口。现在,您必须使用“ OTG”电缆,而不仅仅是插入设备。

还有一个问题,如果您没有将任何东西连接到USB,并使用旧的Raspbian图像,您会得到一个奇怪的警告

WARN::dwc_otg_handle_mode_mismatch_intr:68: Mode Mismatch Interrupt: currently in Device mode

基本上,Pi排序试图成为 usb设备而不是 usb主机

github上的一些很棒的人整理出,如果您使用DWC2 USB驱动程序并修补了一些文件,则可以使Pi像USB一样工作设备(在linux-land中,这称为 USB Gadget 系统)

Thx,以了解来自Andrew的提示,截至2016年5月,Raspbian Jessie不需要新的内核

本教程基本上只是关于如何将Pi变为零的 USB串行设备或以太网设备的文章。只需插入micro B电缆,便可以通过两种方式连接到Pi零!

,您甚至不需要为树莓派单独供电。 》 截至2016年5月,Raspbian Jessie已内置内核支持-本教程更加简单!

是的,小工具系统可以做很多事情,但这是我们到目前为止测试的两个模块。如果您想尝试其他USB小工具,则编译后的内核程序包几乎会将每个USB小工具都作为模块编译进来

开始之前

本教程并非很难,但您应该拥有一些树莓派经验。特别是,您将需要先进行以下操作

将Rasbian Jessie Lite(或者只是纯Jessie)的副本刻录到4G或8G SD卡上。

微型USB电缆

对于小工具串行端口,您还需要

使用2x20公头连接器焊接或以某种方式能够连接一根控制台电缆连接到您的Pi Zero上

拥有一根USB控制台电缆,并能够从台式计算机通过串口登录到您的Pi上

但您没有需要控制台电缆,将命令复制并粘贴到终端中比在键盘和显示器中键入要容易得多。

usb

基本上,将Pi设置为零即可登录。从电源USB端口,将数据USB端口保留为“空”

usb

确定现在,您可以继续!

串行小工具

我们将从串行小工具开始,它是USB小工具的“最简单”。基本上可以做到这一点,因此,当您将Pi Zero插入计算机时,它将作为串行(COM)端口弹出-这种技术的优点是您可以将pi与任何计算机和操作系统,它不需要特殊的驱动程序或配置。

Thx,来自Andrew的提示,截至2016年5月,Raspbian Jessie不需要新的内核

第0步。下载并安装最新的Jessie

我们正在使用Jessie Lite,但是普通的Jessie Raspbian也应该可以使用!您需要2016年5月或更晚(经过2016-05-27测试)

本教程提供了详细信息

步骤1。编辑config.txt和cmdline.txt

刻录SD卡后,请勿将其从计算机中弹出!使用文本编辑器打开SD卡刻录后的 config.txt 文件。

转到底部并在最后添加dtoverlay=dwc2行:

usb

将config.txt文件另存为纯文本,然后打开cmdline.txt。在 rootwait (第一行的最后一个单词)之后,添加一个空格,然后modules-load=dwc2,g_serial

usb

在在撰写本文时,这是完整的cmdline.txt内容(以防您需要重新开始)。请注意,这是一条很长的行

下载:文件

复制代码

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_serial quiet init=/usr/lib/raspi-config/init_resize.sh dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_serial quiet init=/usr/lib/raspi-config/init_resize.sh

登录到Pi Zero上

将SD插入Pi Zero,连接控制台电缆,为Pi供电并通过USB控制台登录。

usb

在启动时,或者在运行 sudo时更新dmesg ,您会看到它绑定了驱动程序 g_serial

usb

设置通过串行小工具登录Pi Zero

好吧,因为您有串行端口并不意味着您可以使用它登录。 Pi知道它具有串行端口,但是您必须将其绑定到控制台。您可以使用以下命令非常轻松地做到这一点:

sudo systemctl enable [受电子邮件保护]

usb

(不要忘记sudo就像我刚开始一样!)

然后您可以使用

sudo systemctl处于活动状态[已受电子邮件保护]

usb

那。..差不多。运行 sudo reboot 来启动Pi Zero。将USB Micro电缆从计算机连接到Pi Zero。

Don‘别忘了将计算机的USB电缆插入Pi Zero的“ USB”连接器端口,而不是PWR连接器。

虽然Zero为重新启动后,您会看到它已加载 g_cdc 模块,该模块提供“ CDC USB串行支持”(CDC代表“通信设备类”)

usb

在计算机上,您会看到一个新的串行端口已创建。检查Windows设备驱动程序:

usb

在Mac上,它将是一个名为/dev/tty.usbmodemNNNN 的新设备,其中NNNN可以是任何数字

usb

使用串行端口软件登录到您的Pi上

确定,现在您的Pi重新启动并再次获得该USB串行设备,您可以连接到设置为 115200 波特(如果需要设置,则为8N1 8位无奇偶校验1停)

usb

,您可以断开控制台电缆的连接,以免混淆USB控制台电缆和直接控制台连接(因为它们都具有COM/Serial端口)

由于台式计算机将通过USB小工具端口为Pi供电,因此您也可以拔掉“ Power USB”端口的电源线。/p》

usb

您可能必须按回车几次才能获取提示登录提示。就是这样!现在,您已直接连接到Pi Zero

Ethernet Gadget

Ethernet Gadget设置起来有点困难,但是功能却强大得多,因为您可以通过隧道连接网络,VNC,ssh和scp文件等。 。基本上,您可以登录控制台以及通过网络连接进行的其他任何操作

请注意,即使它被称为“以太网小工具”,您也不会使用以太网电缆!。唯一的电缆是从计算机到Pi Zero的USB micro-B电缆。 Pi像以太网设备一样“出现”。

您甚至可以共享台式计算机的网络设置,以便您的Pi可以通过USB电缆通过计算机访问Internet!爽吧?

Thx,了解来自Andrew的提示,截至2016年5月,Raspbian Jessie不需要新内核,并且默认情况下具有raspberrypi.local设置,因此非常容易

第0步。下载并安装最新的Jessie

我们正在使用Jessie Lite,但普通的Jessie Raspbian也应该可以使用!我们使用的是Jessie Lite,但普通的Jessie Raspbian也可以使用!您需要2016年5月或更晚(经过2016-05-27测试)

本教程提供了详细信息

步骤1。编辑config.txt和cmdline.txt

刻录SD卡后,请勿将其从计算机中弹出!使用文本编辑器打开SD卡刻录后的 config.txt 文件。

转到底部并在最后添加dtoverlay=dwc2行:

usb

将config.txt文件另存为纯文本,然后打开cmdline.txt。在 rootwait (第一行的最后一个单词)之后,添加一个空格,然后modules-load=dwc2,g_ether

usb

使用USB启动您的Pi

将MicroUSB电缆从Pi Zero的USB端口插入您的计算机

别忘了将USB电缆从计算机插入Pi Zero上的“ USB”连接器端口,而不是PWR连接器。

如果您有控制台电缆,则可以观看Zero的控制台以查看其启用状态 g_ether 设备:

usb

SSH!

如果您在Pi上启用了SSH,则还可以通过SSH登录到 raspberrypi.local

首先启用SSH

如果您使用的是Mac或Linux,则可能已经安装了Bonjour。在Windows上,您可能需要添加Bonjour支持,以便它知道如何处理.local名称

usb

usb

高级网络(固定IP)

如果您出于某种原因需要管理固定的IP地址-这是管理Pi的Gadget以太网设备的一些有用技术。否则,您始终可以继续使用 raspberrypi.local

。现在,您可以登录并检查是否有一个名为 usb0 的新网络设备。 p》

sudo ifconfig -a

usb

立即尝试将Pi Zero插入计算机。例如,在Mac上,我们将其插入

usb

如上所示,在第一个ifconfig和第二个之间,网络提供了一个地址。问题是这是一个任意(分配了Bonjour/Zero Conf的)地址,我们不想猜测它。

我们可以将该设备配置为具有固定地址(这样可以更轻松地查找一个网络!)

sudo nano/etc/network/interfaces

并在末尾添加

下载:文件

复制代码

allow-hotplug usb0

iface usb0 inet static

address 192.168.7.2

netmask 255.255.255.0

network 192.168.7.0

broadcast 192.168.7.255

gateway 192.168.7.1 allow-hotplug usb0

iface usb0 inet static

address 192.168.7.2

netmask 255.255.255.0

network 192.168.7.0

broadcast 192.168.7.255

gateway 192.168.7.1

这将为 Raspberry Pi提供IP地址192.168.7.2

,您可以将其更改为其他地址,但是除非您确定192.168.7。*不可用,否则请保持上面的状态。

usb

保存文件并运行

sudo ifdown usb0 (这可能是失败,就可以了)

sudo ifup usb0

ifconfig usb0

验证它现在是否具有192.168.7.2地址

usb

现在,在您的计算机上,您也需要对其进行设置。

如果您使用Mac作为主机

在在Mac OS X计算机上,打开系统偏好设置 -》网络框。

usb

您将看到该设备显示为RNDIS/以太网小工具。可能默认情况下会为DHCP设置它,因此将其更改为手动配置IP4

对于IP地址,请选择 192.168.7.1 (请注意,这与Pi Zero的地址不同!)

对于子网掩码,请使用 255.255.255.0 (与Pi相同)

对于路由器/网关,请使用 192.168.7.1 (与Pi相同)

如果您未在Pi上使用上面建议的netconfig,则可能需要对此进行调整一个要匹配的

usb

完成后单击应用,然后等待一分钟左右,您将得到一个绿点:

usb

如果您仍然遇到问题,读者报告说某些Mac需要在g_ether上使用特殊选项设备。使用控制台电缆登录到Pi后,运行sudo nano/etc/modprobe.d/g_ether.conf

并在其自己的行的最后添加:options g_ether use_eem=0

重新启动或手动加载模块后,RNDIS/CNC小工具在分配IP后将先变黄然后变为绿色。

您可以使用计算机上的终端进行检查IP地址已设置,您的设备将被称为 enX ,其中X是一些数字,请使用 ifconfig -a 查看所有设备的列表,可能是Pi是最后一个。

一旦看到设置了IP地址,请尝试使用

ping 192.168.7.2

usb

老实说,我在设置网络配置文件后重新启动了Pi,因此,如果一开始它不起作用,请尝试一下。

接下来,您可以在Mac上将ssh放入pi!

ssh [受电子邮件保护]

usb

如果您使用Windows作为主机

将Pi Zero插入计算机中,则我使用的是Windows 7 64位。它将自动下载并安装RNDIS以太网驱动程序

usb

某些版本的Windows可能会将PI误解为COM端口,您必须通过右键单击》更新驱动程序软件》浏览我的设备,在设备管理器中手动强制使用或安装Microsoft RNDIS驱动程序计算机》从列表中选择》网络适配器》 Microsoft》与NDIS兼容的远程设备。

检查设备管理器以确认它是新的网络适配器

usb

打开网络和共享中心 》,然后单击更改适配器设置

usb

您将看到所有拥有的无数适配器的列表。我有很多,但是您可能只有2个或3个。找到RNDIS适配器并将其重命名为 pizero (使查找更容易)

usb

然后右键单击并选择属性。 。

usb

,然后从连接列表中选择 Internet协议版本4(TCP/IPv4),然后单击属性

usb

输入 192.168.7.1 作为计算机的IP地址和网关(网关后来被删除,我认为Windows会自动使用该IP地址,如果它们相同),子网掩码为 255.255.255.0 与Pi的相同

没有DNS地址

usb

我拔出并重新插入了Pi Zero,W然后indow会识别网络。

usb

usb

现在您可以使用命令框,如果要查看连接的统计信息,请运行 ipconfig/all

usb

和 ping 192.168.7.2 (即pi)

usb

,甚至还有 ssh!

usb

以太网调整

使用mDNS/Bonjour命名

如果您不想记住您的Pi的IP地址,则不必! Jessie Lite包含并自动启用 avahi ,可让您使用诸如 raspberrypi.local

之类的名称。如果由于某种原因未激活它,我们将提供完整的教程这将帮助您进行设置。

不要忘记,Windows没有本地Bonjour支持,因此请下载并安装Bonjour打印服务!

(在上面的教程中找到有关安装位置/方式的链接,您只需安装一次)

因此,在ping后正在执行。..尝试 ping raspberrypi.local

usb

或者对于ssh来说也很好:

usb

将网络访问权限共享给您的Pi

在OS X上,打开系统首选项的网络标签。

usb

从配置IPv4 中选择手动,选择现有的 CDC 或 RNDIS 与Raspberry Pi的USB连接。 》菜单。将 192.168.2.1 用于 IP地址,并将 255.255.255.0 用于子网掩码。单击应用保存更改。

usb

然后,在系统偏好设置中打开共享标签。

usb

打开 Internet共享以从Wi共享您现有的Internet连接-Fi或具有 CDC 或 RNDIS Raspberry Pi连接的以太网。

usb

在Pi上编辑您的/etc/network/interfaces文件,使其与下面的文件匹配。

下载:文件

复制代码

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd

# For static IP, consult /etc/dhcpcd.conf and ’man dhcpcd.conf‘

# Include files from /etc/network/interfaces.d:

source-directory /etc/network/interfaces.d

auto lo usb0

iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0

iface wlan0 inet manual

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1

iface wlan1 inet manual

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug usb0

iface usb0 inet manual # interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd

# For static IP, consult /etc/dhcpcd.conf and ’man dhcpcd.conf‘

# Include files from /etc/network/interfaces.d:

source-directory /etc/network/interfaces.d

auto lo usb0

iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0

iface wlan0 inet manual

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1

iface wlan1 inet manual

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug usb0

iface usb0 inet manual

重要的几行是:

下载:file

复制代码

auto lo usb0 auto lo usb0

,还有:

下载:文件

复制代码

allow-hotplug usb0

iface usb0 inet manual allow-hotplug usb0

iface usb0 inet manual

使用 sudo reboot 重新启动您的Pi,然后使用 ssh SSH重新登录到它[受电子邮件保护] 。然后,您可以尝试 ping google.com。

下载:文件

复制代码

$ ping -c 5 google.com

PING google.com (216.58.219.238): 56 data bytes

64 bytes from 216.58.219.238: icmp_seq=0 ttl=55 time=20.975 ms

64 bytes from 216.58.219.238: icmp_seq=1 ttl=55 time=20.904 ms

64 bytes from 216.58.219.238: icmp_seq=2 ttl=55 time=20.646 ms

64 bytes from 216.58.219.238: icmp_seq=3 ttl=55 time=20.401 ms

64 bytes from 216.58.219.238: icmp_seq=4 ttl=55 time=20.379 ms

--- google.com ping statistics ---

5 packets transmitted, 5 packets received, 0.0% packet loss

round-trip min/avg/max/stddev = 20.379/20.661/20.975/0.247 ms $ ping -c 5 google.com

PING google.com (216.58.219.238): 56 data bytes

64 bytes from 216.58.219.238: icmp_seq=0 ttl=55 time=20.975 ms

64 bytes from 216.58.219.238: icmp_seq=1 ttl=55 time=20.904 ms

64 bytes from 216.58.219.238: icmp_seq=2 ttl=55 time=20.646 ms

64 bytes from 216.58.219.238: icmp_seq=3 ttl=55 time=20.401 ms

64 bytes from 216.58.219.238: icmp_seq=4 ttl=55 time=20.379 ms

--- google.com ping statistics ---

5 packets transmitted, 5 packets received, 0.0% packet loss

round-trip min/avg/max/stddev = 20.379/20.661/20.975/0.247 ms

如果使用Windows,请打开网络和共享中心,然后单击更改适配器设置

usb

右键单击您的Internet连接,然后选择 P 物品。

usb

选择共享标签。如果尚未选中该复选框,则单击它。然后单击选择专用网络连接,然后从下拉列表中选择 PiZero 。

usb

usb

使用 sudo reboot 重新启动您的Pi,然后使用 ssh [emailprotected] SSH重新登录。然后,您可以尝试 ping google.com。

下载:文件

复制代码

$ ping -c 5 google.com

PING google.com (216.58.219.238): 56 data bytes

64 bytes from 216.58.219.238: icmp_seq=0 ttl=55 time=20.975 ms

64 bytes from 216.58.219.238: icmp_seq=1 ttl=55 time=20.904 ms

64 bytes from 216.58.219.238: icmp_seq=2 ttl=55 time=20.646 ms

64 bytes from 216.58.219.238: icmp_seq=3 ttl=55 time=20.401 ms

64 bytes from 216.58.219.238: icmp_seq=4 ttl=55 time=20.379 ms

--- google.com ping statistics ---

5 packets transmitted, 5 packets received, 0.0% packet loss

round-trip min/avg/max/stddev = 20.379/20.661/20.975/0.247 ms $ ping -c 5 google.com

PING google.com (216.58.219.238): 56 data bytes

64 bytes from 216.58.219.238: icmp_seq=0 ttl=55 time=20.975 ms

64 bytes from 216.58.219.238: icmp_seq=1 ttl=55 time=20.904 ms

64 bytes from 216.58.219.238: icmp_seq=2 ttl=55 time=20.646 ms

64 bytes from 216.58.219.238: icmp_seq=3 ttl=55 time=20.401 ms

64 bytes from 216.58.219.238: icmp_seq=4 ttl=55 time=20.379 ms

--- google.com ping statistics ---

5 packets transmitted, 5 packets received, 0.0% packet loss

round-trip min/avg/max/stddev = 20.379/20.661/20.975/0.247 ms

其他模块!

串行和以太网是最容易使用的模块,但与Linux内核支持的 only 小工具相去甚远。您还可以尝试以下选项:

大容量存储(您可以将Pi展示为“ USB密钥”磁盘驱动器)-注意,我们没有使其顺利运行并枚举,但在Windows机器上无法访问对备份文件的磁盘

MIDI -显示为“本地” USB MIDI音频设备

HID -在主机上以鼠标/键盘/游戏杆的形式出现

音频-以音频/扬声器的形式显示

复合-可以使用串行/以太网/大容量存储复合设备。请注意,这可能适用于Mac或Linux,但对于Windows,您需要自定义驱动程序

打印机,网络摄像头等-大约还有十二种选择

有关更多详细信息,请查看USB gadget API框架页面

Sunxi也有一个方便的页面

我们将所有可用的USB gadget模块编译到了2015年12月25日(或之后)内核tgz。您可以使用 modprobe 或编辑/etc/modules 文件以启用它们来启用它们。如果他们需要选项,请在/etc/modprobe.d/usbgadget.conf 或类似的

中为这些选项创建一个新文件。特别是,以下是可用的模块:

下载:文件

复制代码

#

# USB Peripheral Controller

#

# CONFIG_USB_FUSB300 is not set

# CONFIG_USB_FOTG210_UDC is not set

# CONFIG_USB_GR_UDC is not set

# CONFIG_USB_R8A66597 is not set

# CONFIG_USB_PXA27X is not set

# CONFIG_USB_MV_UDC is not set

# CONFIG_USB_MV_U3D is not set

# CONFIG_USB_M66592 is not set

# CONFIG_USB_BDC_UDC is not set

# CONFIG_USB_NET2272 is not set

# CONFIG_USB_GADGET_XILINX is not set

# CONFIG_USB_DUMMY_HCD is not set

CONFIG_USB_LIBCOMPOSITE=m

CONFIG_USB_F_ACM=m

CONFIG_USB_F_SS_LB=m

CONFIG_USB_U_SERIAL=m

CONFIG_USB_U_ETHER=m

CONFIG_USB_F_SERIAL=m

CONFIG_USB_F_OBEX=m

CONFIG_USB_F_NCM=m

CONFIG_USB_F_ECM=m

CONFIG_USB_F_EEM=m

CONFIG_USB_F_SUBSET=m

CONFIG_USB_F_RNDIS=m

CONFIG_USB_F_MASS_STORAGE=m

CONFIG_USB_F_FS=m

CONFIG_USB_F_UAC1=m

CONFIG_USB_F_UAC2=m

CONFIG_USB_F_UVC=m

CONFIG_USB_F_MIDI=m

CONFIG_USB_F_HID=m

CONFIG_USB_F_PRINTER=m

CONFIG_USB_CONFIGFS=m

CONFIG_USB_CONFIGFS_SERIAL=y

CONFIG_USB_CONFIGFS_ACM=y

CONFIG_USB_CONFIGFS_OBEX=y

CONFIG_USB_CONFIGFS_NCM=y

CONFIG_USB_CONFIGFS_ECM=y

CONFIG_USB_CONFIGFS_ECM_SUBSET=y

CONFIG_USB_CONFIGFS_RNDIS=y

CONFIG_USB_CONFIGFS_EEM=y

CONFIG_USB_CONFIGFS_MASS_STORAGE=y

CONFIG_USB_CONFIGFS_F_LB_SS=y

CONFIG_USB_CONFIGFS_F_FS=y

CONFIG_USB_CONFIGFS_F_UAC1=y

CONFIG_USB_CONFIGFS_F_UAC2=y

CONFIG_USB_CONFIGFS_F_MIDI=y

CONFIG_USB_CONFIGFS_F_HID=y

CONFIG_USB_CONFIGFS_F_UVC=y

CONFIG_USB_CONFIGFS_F_PRINTER=y

CONFIG_USB_ZERO=m

CONFIG_USB_AUDIO=m

# CONFIG_GADGET_UAC1 is not set

CONFIG_USB_ETH=m

CONFIG_USB_ETH_RNDIS=y

CONFIG_USB_ETH_EEM=y

# CONFIG_USB_G_NCM is not set

CONFIG_USB_GADGETFS=m

CONFIG_USB_FUNCTIONFS=m

CONFIG_USB_FUNCTIONFS_ETH=y

CONFIG_USB_FUNCTIONFS_RNDIS=y

CONFIG_USB_FUNCTIONFS_GENERIC=y

CONFIG_USB_MASS_STORAGE=m

CONFIG_USB_G_SERIAL=m

CONFIG_USB_MIDI_GADGET=m

CONFIG_USB_G_PRINTER=m

CONFIG_USB_CDC_COMPOSITE=m

CONFIG_USB_G_ACM_MS=m

CONFIG_USB_G_MULTI=m

CONFIG_USB_G_MULTI_RNDIS=y

CONFIG_USB_G_MULTI_CDC=y

CONFIG_USB_G_HID=m

CONFIG_USB_G_DBGP=m

# CONFIG_USB_G_DBGP_PRINTK is not set

CONFIG_USB_G_DBGP_SERIAL=y

CONFIG_USB_G_WEBCAM=m

# CONFIG_USB_LED_TRIG is not set

# CONFIG_UWB is not set

CONFIG_MMC=y

# CONFIG_MMC_DEBUG is not set #

# USB Peripheral Controller

#

# CONFIG_USB_FUSB300 is not set

# CONFIG_USB_FOTG210_UDC is not set

# CONFIG_USB_GR_UDC is not set

# CONFIG_USB_R8A66597 is not set

# CONFIG_USB_PXA27X is not set

# CONFIG_USB_MV_UDC is not set

# CONFIG_USB_MV_U3D is not set

# CONFIG_USB_M66592 is not set

# CONFIG_USB_BDC_UDC is not set

# CONFIG_USB_NET2272 is not set

# CONFIG_USB_GADGET_XILINX is not set

# CONFIG_USB_DUMMY_HCD is not set

CONFIG_USB_LIBCOMPOSITE=m

CONFIG_USB_F_ACM=m

CONFIG_USB_F_SS_LB=m

CONFIG_USB_U_SERIAL=m

CONFIG_USB_U_ETHER=m

CONFIG_USB_F_SERIAL=m

CONFIG_USB_F_OBEX=m

CONFIG_USB_F_NCM=m

CONFIG_USB_F_ECM=m

CONFIG_USB_F_EEM=m

CONFIG_USB_F_SUBSET=m

CONFIG_USB_F_RNDIS=m

CONFIG_USB_F_MASS_STORAGE=m

CONFIG_USB_F_FS=m

CONFIG_USB_F_UAC1=m

CONFIG_USB_F_UAC2=m

CONFIG_USB_F_UVC=m

CONFIG_USB_F_MIDI=m

CONFIG_USB_F_HID=m

CONFIG_USB_F_PRINTER=m

CONFIG_USB_CONFIGFS=m

CONFIG_USB_CONFIGFS_SERIAL=y

CONFIG_USB_CONFIGFS_ACM=y

CONFIG_USB_CONFIGFS_OBEX=y

CONFIG_USB_CONFIGFS_NCM=y

CONFIG_USB_CONFIGFS_ECM=y

CONFIG_USB_CONFIGFS_ECM_SUBSET=y

CONFIG_USB_CONFIGFS_RNDIS=y

CONFIG_USB_CONFIGFS_EEM=y

CONFIG_USB_CONFIGFS_MASS_STORAGE=y

CONFIG_USB_CONFIGFS_F_LB_SS=y

CONFIG_USB_CONFIGFS_F_FS=y

CONFIG_USB_CONFIGFS_F_UAC1=y

CONFIG_USB_CONFIGFS_F_UAC2=y

CONFIG_USB_CONFIGFS_F_MIDI=y

CONFIG_USB_CONFIGFS_F_HID=y

CONFIG_USB_CONFIGFS_F_UVC=y

CONFIG_USB_CONFIGFS_F_PRINTER=y

CONFIG_USB_ZERO=m

CONFIG_USB_AUDIO=m

# CONFIG_GADGET_UAC1 is not set

CONFIG_USB_ETH=m

CONFIG_USB_ETH_RNDIS=y

CONFIG_USB_ETH_EEM=y

# CONFIG_USB_G_NCM is not set

CONFIG_USB_GADGETFS=m

CONFIG_USB_FUNCTIONFS=m

CONFIG_USB_FUNCTIONFS_ETH=y

CONFIG_USB_FUNCTIONFS_RNDIS=y

CONFIG_USB_FUNCTIONFS_GENERIC=y

CONFIG_USB_MASS_STORAGE=m

CONFIG_USB_G_SERIAL=m

CONFIG_USB_MIDI_GADGET=m

CONFIG_USB_G_PRINTER=m

CONFIG_USB_CDC_COMPOSITE=m

CONFIG_USB_G_ACM_MS=m

CONFIG_USB_G_MULTI=m

CONFIG_USB_G_MULTI_RNDIS=y

CONFIG_USB_G_MULTI_CDC=y

CONFIG_USB_G_HID=m

CONFIG_USB_G_DBGP=m

# CONFIG_USB_G_DBGP_PRINTK is not set

CONFIG_USB_G_DBGP_SERIAL=y

CONFIG_USB_G_WEBCAM=m

# CONFIG_USB_LED_TRIG is not set

# CONFIG_UWB is not set

CONFIG_MMC=y

# CONFIG_MMC_DEBUG is not set

编译您自己的内核?这是我们使用的v4.4 .config

您还必须修补“通用” rpi覆盖,如下所示

旧内核安装

这是较旧的,不再需要的技术-已记录如果需要的话!

第0步。下载新的内核包

将以下内容下载到台式机上:

下载模块化小工具TGZ文件

并将其重命名为 gadgetkernel.tgz

步骤1.将新内核复制到SD卡

将新内核文件复制到Jessie Lite卡的 boot 目录中。刻录完SD映像后,请不要弹出它。将 kernel.tgz 文件拖到SD卡上。这样,您无需网络即可将内核移植到Pi中

usb

步骤2。登录到Pi零

将SD插入Pi Zero,连接控制台电缆,为Pi供电并通过USB控制台登录。

usb

第3步。解压缩新的内核包

解压缩并安装内核.tgz文件

运行以下命令:

cd〜

sudo mv/boot/gadgetkernel.tgz。

tar -xvzf gadgetkernel.tgz

usb

您会看到一长串以 tmp/boot/kernel.img

结尾的文件名div》

您可能会看到一堆关于未来时间戳记的抱怨,这完全可以

步骤4。备份并安装新内核

运行

sudo mv/boot/kernel.img/boot/kernelbackup.img

进行当前内核的备份。现在运行

sudo mv tmp/boot/kernel.img/boot

您可能会看到有关保留所有权的投诉,您可以忽略它们

usb

第5步。安装叠加层和模块

运行命令以安装新的覆盖物和模块

sudo mv tmp/boot/overlays/*/boot/overlays

sudo mv tmp/boot/* dtb/boot

sudo cp -R tmp/boot/modules/lib/*/lib

usb

usb

小工具序列!

现在,我们将告诉Pi我们要使用 g_serial 模块

运行

sudo nano/etc/modules

并添加 g_serial 放在最后一行,然后保存

usb

此步骤继续进行串行小工具的其余设置和测试

小工具以太网!

现在,我们告诉Pi我们要使用 g_ether 模块

运行

sudo nano/etc/modules

,然后添加 g_ether 放在最后一行,然后保存

usb

责任编辑:wv

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分