<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[MangoPI MQ-Quad H616 Armbian 使用 USB ADB 连接设备 Shell]]></title><description><![CDATA[<h2>Armbian 使用 ADB 连接 MQ-Quad Shell</h2>
<p dir="auto">此贴使用的是芒果群里的@sputnik 大佬的Armbian<br />
感谢 sputnik 的贡献让我们能用上MQ-Quad的Armbian<br />
GitHub地址：<a href="https://github.com/open-cores/mangguo-h616-armbian" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/open-cores/mangguo-h616-armbian</a><br />
使用v22.08分支做的测试</p>
<h3>修改内核设备树</h3>
<pre><code># 修改 path/kernel/archive/sunxi-5.19/xkernel-mangopimcore.patch 文件
# 关闭 ehci0 以及 ohci0 节点
+&amp;ehci0 {
+	status = "disabled";
+};
+&amp;ohci0 {
+	status = "disabled";
+};

# 修改 usbotg 节点的 dr_mode 为 peripheral 模式
+&amp;usbotg {
+	dr_mode = "peripheral";	/* USB A type receptable */
+	status = "okay";
+};
</code></pre>
<ul>
<li>修改完成后重新编译imag并写入到SD卡，这里不做讲解了。</li>
</ul>
<h3>编译并安装 adbd</h3>
<pre><code># 在设备中执行以下指令
git clone https://github.com/Evlers/adbd
cd adbd

# 编译以及安装 adbd
make -j4
sudo make install
</code></pre>
<h3>配置 USB Gadget 设备</h3>
<ul>
<li>让设备使用USB复合设备：<code>libcomposite</code></li>
</ul>
<pre><code class="language-shell"># 让 libcomposite 模块开机自动装载
su root
echo "libcomposite" &gt;&gt; /etc/modules
</code></pre>
<ul>
<li>进入sbin目录:<code>cd /usr/local/sbin</code></li>
<li>制作Starting脚本用于开机自动运行</li>
</ul>
<pre><code class="language-shell">vi usb-gadget-start.sh
# 复制以下内容
#!/bin/bash

# 设置 adbd 参数
BANNER="device" # bootloader sideload recovery device
DEVNAME="MQ-Quad"
DEVMODEL="Allwinner H616"
DEVPRODUCT="MangoPI MQ-Quad"

# 创建 usb adbd 设备
mkdir /sys/kernel/config/usb_gadget/g1
echo "0x18D1" &gt; /sys/kernel/config/usb_gadget/g1/idVendor
echo "0xD002" &gt; /sys/kernel/config/usb_gadget/g1/idProduct

# 写入USB描述
# 注意：serialnumber长度必须是16个字符 否则绑定USB控制器时会出现Device or resource busy的问题
mkdir /sys/kernel/config/usb_gadget/g1/strings/0x409
echo "Allwinner" &gt; /sys/kernel/config/usb_gadget/g1/strings/0x409/manufacturer
echo "MangoPI-MQ-Quad" &gt; /sys/kernel/config/usb_gadget/g1/strings/0x409/product
echo MangoPI--MQ-Quad &gt; /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber

mkdir /sys/kernel/config/usb_gadget/g1/configs/c.1
echo 0xc0 &gt; /sys/kernel/config/usb_gadget/g1/configs/c.1/bmAttributes
echo 500 &gt; /sys/kernel/config/usb_gadget/g1/configs/c.1/MaxPower
mkdir /sys/kernel/config/usb_gadget/g1/configs/c.1/strings/0x409

# 创建 ffs function  注册 functionfs 文件系统
mkdir /sys/kernel/config/usb_gadget/g1/functions/ffs.adb
ln -s /sys/kernel/config/usb_gadget/g1/functions/ffs.adb/ /sys/kernel/config/usb_gadget/g1/configs/c.1/ffs.adb

# 用户态挂在 adbd 的 functionfs 文件系统
mkdir /dev/usb-ffs
mkdir /dev/usb-ffs/adb
mount -o uid=2000,gid=2000 -t functionfs adb /dev/usb-ffs/adb/

# 使用 bash 启动 adbd
/usr/bin/adbd -d -n "$DEVNAME" -m "$DEVMODEL" -p "$DEVPRODUCT" -b "$BANNER" -s /bin/bash

# 将 Gadget 绑定到USB控制器
echo `ls /sys/class/udc/` &gt; /sys/kernel/config/usb_gadget/g1/UDC
</code></pre>
<ul>
<li>制作Stopping脚本</li>
</ul>
<pre><code>vi usb-gadget-stop.sh
# 复制以下内容
#!/bin/bash

cd /sys/kernel/config/usb_gadget/g1
# disconnected
echo `` &gt; /sys/kernel/config/usb_gadget/g1/UDC
# remove all links
find . -type l -exec rm -v {} \;
# rmdir configs/c.1/strings/0x409
find configs -name 'strings' -exec rmdir -v {}/0x409 \;
#rmdir configs/c.1
ls -d configs/* | xargs rmdir -v
#rmdir strings/0x409
ls -d strings/* | xargs rmdir -v
#rmdir functions/hid.usb0
ls -d functions/* | xargs rmdir -v
cd ..
rmdir -v g1
</code></pre>
<ul>
<li>给脚本提供执行权限</li>
</ul>
<pre><code class="language-shell">chmod +x usb-gadget-start.sh
chmod +x usb-gadget-stop.sh
</code></pre>
<ul>
<li>利用 Systemd 让 USB Gadget 以及 adbd 开机启动</li>
</ul>
<pre><code>vi /etc/systemd/system/usb-gadget.service
# 复制以下内容
[Unit]
Description=USB gadeget
After=sys-kernel-config.mount
Before=network-pre.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/sbin/usb-gadget-start.sh
ExecStop=/usr/local/sbin/usb-gadget-stop.sh

[Install]
WantedBy=multi-user.target
</code></pre>
<ul>
<li>使能开机启动：<code>sudo systemctl enable usb-gadget</code></li>
<li>重启设备：<code>reboot</code></li>
</ul>
<h3>测试</h3>
<ul>
<li>在PC端执行如下测试</li>
</ul>
<pre><code># 查看设备
adb devices

# 连接到设备Shell
adb shell
</code></pre>
<p dir="auto"><img src="/assets/uploads/files/1680360208029-efdb1d4d-d692-4f4e-97ca-40e10ae062d9-image.png" alt="efdb1d4d-d692-4f4e-97ca-40e10ae062d9-image.png" class=" img-responsive img-markdown" width="189" height="41" /></p>
<p dir="auto"><img src="/assets/uploads/files/1680360213343-03140ea8-acdf-4192-b88a-7958c60fe058-image.png" alt="03140ea8-acdf-4192-b88a-7958c60fe058-image.png" class=" img-responsive img-markdown" width="287" height="54" /></p>
]]></description><link>https://bbs.aw-ol.com/topic/3227/mangopi-mq-quad-h616-armbian-使用-usb-adb-连接设备-shell</link><generator>RSS for Node</generator><lastBuildDate>Sun, 17 May 2026 15:04:33 GMT</lastBuildDate><atom:link href="https://bbs.aw-ol.com/topic/3227.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 01 Apr 2023 14:47:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to MangoPI MQ-Quad H616 Armbian 使用 USB ADB 连接设备 Shell on Sun, 10 Mar 2024 06:50:54 GMT]]></title><description><![CDATA[<p dir="auto">想要使用wifi adb 应该做什么？</p>
<ul>
<li>列表目前我的板安装这个操作可以正常使用adb</li>
</ul>
]]></description><link>https://bbs.aw-ol.com/post/21729</link><guid isPermaLink="true">https://bbs.aw-ol.com/post/21729</guid><dc:creator><![CDATA[Goku_sheng]]></dc:creator><pubDate>Sun, 10 Mar 2024 06:50:54 GMT</pubDate></item></channel></rss>