电子说
概述
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
全部0条评论
快来发表一下你的评论吧 !