0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

454398 来源:网络整理 作者:网络整理 2019-11-28 09:59 次阅读

概述

如何将您的树莓派Zero变成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上

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

基本上,将Pi设置为零即可登录。从电源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行:

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

在在撰写本文时,这是完整的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控制台登录。

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

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

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

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

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

然后您可以使用

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

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

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

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

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

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

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

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

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

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

您可能必须按回车几次才能获取提示登录提示。就是这样!现在,您已直接连接到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行:

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

使用USB启动您的Pi

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

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

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

SSH!

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

首先启用SSH

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

高级网络(固定IP)

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

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

sudo ifconfig -a

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

如上所示,在第一个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。*不可用,否则请保持上面的状态。

保存文件并运行

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

sudo ifup usb0

ifconfig usb0

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

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

如果您使用Mac作为主机

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

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

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

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

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

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

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

如果您仍然遇到问题,读者报告说某些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

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

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

ssh [受电子邮件保护]

如果您使用Windows作为主机

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

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

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

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

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

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

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

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

没有DNS地址

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

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

和 ping 192.168.7.2 (即pi)

,甚至还有 ssh!

以太网调整

使用mDNS/Bonjour命名

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

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

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

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

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

或者对于ssh来说也很好:

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

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

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

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

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

在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,请打开网络和共享中心,然后单击更改适配器设置

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

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

使用 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中

步骤2。登录到Pi零

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

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

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

运行以下命令:

cd〜

sudo mv/boot/gadgetkernel.tgz。

tar -xvzf gadgetkernel.tgz

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

结尾的文件名div》

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

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

运行

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

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

sudo mv tmp/boot/kernel.img/boot

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

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

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

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

sudo mv tmp/boot/* dtb/boot

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

小工具序列!

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

运行

sudo nano/etc/modules

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

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

小工具以太网!

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

运行

sudo nano/etc/modules

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

责任编辑:wv

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

    关注

    59

    文章

    7411

    浏览量

    257867
  • 树莓派
    +关注

    关注

    113

    文章

    1635

    浏览量

    104673
收藏 人收藏

    评论

    相关推荐

    原理图设计OrCAD Capture 小工具:Parts操作小助手

    1小工具用途作为一名硬件设计人员,在用Capture画原理图时,可曾想过,在操作Parts,不仅可以快速排列对齐,而且还能够使用格式刷Parts批量刷成一个目标格式,甚至还能够快速对Parts进行
    发表于 04-17 16:49

    USB设备充电器电路原理图

    如果您在旅行,您可能需要此设备沿途为您的小工具充电,因为购买一些标准 AA 电池作为备用比购买几块您的小工具类型的可充电电池便宜得多。
    的头像 发表于 12-19 14:08 433次阅读
    <b class='flag-5'>USB</b>设备充电器电路原理图

    树莓都有哪些功能,是用什么编程的?

    怎么学习树莓树莓和传统单片机的区别是哪些,如果有了树莓该学哪些知识
    发表于 11-09 07:51

    USB-DAP下载工具只能用于51单片机的程序下载吗?

    之前获得过一个USB-DAP下载小工具,不知道除了给51下载程序,其他还有什么单片机可通过这个下载程序。
    发表于 11-07 07:13

    树莓3树莓4原理图分享

    提供了树莓3、树莓3B、树莓4版本的原理图
    发表于 09-27 07:58

    树莓开源原理图汇总

    树莓开源原理图汇总,包括3B和3B+型号,ZeroZero W型号,以及USB,SPI,DPI,BCM2835,BCM2836 cpu
    发表于 09-25 07:19

    Orange Pi Zero用户手册

    1. 什么是 Orange Pi zero 香橙是一款开源的单板卡片电脑,新一代的 arm 开发板,它可以运行Android 4.4、Ubuntu、Debian 等操作系统,兼容树莓
    发表于 09-19 06:54

    可穿戴社交距离探测器小工具

    电子发烧友网站提供《可穿戴社交距离探测器小工具.zip》资料免费下载
    发表于 07-04 11:04 0次下载
    可穿戴社交距离探测器<b class='flag-5'>小工具</b>

    【芒果MangoPi MQ Quad】开箱与资料整理

    一、概述 MangoPiMQ Quad是一块基于全志H616的、兼容树莓 Zero W的开发板,配备了 1GB RAM、一个 mini HDMI 输出、两个 USB Type-C
    发表于 06-27 11:35

    Sky Finder:乐高Alexa小工具

    电子发烧友网站提供《Sky Finder:乐高Alexa小工具.zip》资料免费下载
    发表于 06-25 15:42 0次下载
    Sky Finder:乐高Alexa<b class='flag-5'>小工具</b>

    如何在imx8mp android 11 bsp上启用UVC+UAC复合小工具

    我们正在使用 imx8mp android 11 bsp,我们想要启用 UVC+UAC 复合小工具功能,我们启用的内核配置: CONFIG_USB_CONFIGFS_F_UVC=y
    发表于 06-09 07:08

    cdns-usb3驱动程序中的usb小工具大容量存储错误?

    [150.463741] g_mass_storage gadget.0:大容量存储小工具,版本:2009/09/11 [150.470932] g_mass_storage gadget.0:用户空间无法提供
    发表于 06-06 09:00

    NodeMcu ESP8266最佳供电方式是什么?

    如何使用 DeepSleep 模式后,我尝试通过微型 USB 使用 3 节 AA 电池作为能源。 现在,这项工作在几个小时内工作得很好......在我看来它应该至少持续几个月...... 可能通过 USB 供电不是一个好主意...... 你能建议我使用外部电源吗供应解决方
    发表于 06-02 06:24

    MoreFind:用于快速导出URL、Domain和IP的小工具

    MoreFind 一款用于快速导出URL、Domain和IP的小工具 快速安装 方式一: 通过Go包管理安装   go install github.com/mstxq17
    的头像 发表于 05-25 14:11 459次阅读
    MoreFind:用于快速导出URL、Domain和IP的<b class='flag-5'>小工具</b>

    树莓的故障分析检测

    各位大神,我的树莓B4,经常读不出卡数据,卡换个新的,故障依旧。请指点树莓的故障检查与维修。
    发表于 04-27 11:30