<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>似水无痕-watrt-个人作品展示</title><link>http://xb6.cn/</link><description>似水无痕-watrt-付坤</description><item><title>配置 Go 模块代理（推荐）</title><link>http://xb6.cn/post/283.html</link><description>&lt;p&gt;为了提高模块下载速度，建议配置 Go 模块代理：&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;#&amp;nbsp;启用&amp;nbsp;Go&amp;nbsp;Modules
go&amp;nbsp;env&amp;nbsp;-w&amp;nbsp;GO111MODULE=on

#&amp;nbsp;配置模块代理
go&amp;nbsp;env&amp;nbsp;-w&amp;nbsp;GOPROXY=https://goproxy.cn,direct

#&amp;nbsp;配置私有模块跳过代理
go&amp;nbsp;env&amp;nbsp;-w&amp;nbsp;GOPRIVATE=*.corp.example.com&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sun, 29 Mar 2026 00:04:26 +0800</pubDate></item><item><title>2026年在寒风中到来了（纪念两位亲人）</title><link>http://xb6.cn/post/282.html</link><description>&lt;p style=&quot;text-align: center&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;http://xb6.cn/zb_users/upload/2026/01/202601041767491963810221.jpg&quot; alt=&quot;微信图片_20260104095837_69_26.jpg&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;天冷,气温低,而心更寒。&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;时间从不因悲喜而停驻,它不疾不徐,却不可阻挡地向前流淌。元旦的欢声笑语尚在耳畔回响,有人举杯庆贺新年,有人却在无声中垂泪——就在这本该团圆喜庆的日子里,我接连失去了两位至亲:我的姑姑(父亲的姐姐)和姑父(母亲的姐夫)。他们在元旦前后相继离世,短短三天假期,我奔波于两场丧礼之间,心力交瘁,悲恸难言。&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;他们的音容笑貌,时时浮现于脑海;恍惚间,仿佛还能听见他们温柔的叮咛。可一回神,才惊觉那熟悉的身影早已远去。一时间,竟分不清是梦是醒,唯有无尽的空落与哀思萦绕心头。呜呼哀哉!&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;我深知,随着岁月流转,老一辈的亲人终将一一离去——或早或晚,这是生命的必然。平日里,我总尽力抽空探望、陪伴,唯恐留下遗憾。可即便如此,心底仍忍不住祈愿:愿时光走得再慢些,让我多听几句他们的教诲,多感受几回他们慈爱的目光。然而,终究留不住。如今,耳畔偶尔还会响起他们热情邀我去家中做客的声音,可我知道,那声音再也无法回应——他们真的、真的离开了。&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;虽然我知道随着年龄的增长,老一辈的亲人终归会远去。可能早一点可能晚一点,但终归会离去,虽然我平时也会尽自己的努力,有机会都会尽力去看看亲人陪陪他们,不让自己留下遗憾。但总希望时间能慢一点。让自己有更多的时间去享受长辈对自己的关爱,去享受这长辈对自己的教诲。时间终归还是带走了他们。耳边时而想起他们邀请去家里玩的声音,但是我知道真地真的失去了他们。&lt;/p&gt;</description><pubDate>Sun, 04 Jan 2026 09:13:57 +0800</pubDate></item><item><title>rk3399切换USB OTG模式</title><link>http://xb6.cn/post/281.html</link><description>&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;切换到host模式:
echo&amp;nbsp;&amp;quot;host&amp;quot;&amp;nbsp;|sudo&amp;nbsp;tee&amp;nbsp;/sys/kernel/debug/usb/fe800000.usb/mode
切换到device模式:
echo&amp;nbsp;&amp;quot;device&amp;quot;&amp;nbsp;|sudo&amp;nbsp;tee&amp;nbsp;/sys/kernel/debug/usb/fe800000.usb/mode
查看当前模式:
sudo&amp;nbsp;cat&amp;nbsp;/sys/kernel/debug/usb/fe800000.usb/mode&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 16 Dec 2025 15:01:44 +0800</pubDate></item><item><title>基于KMK固件的软件项目开发的rp2040键盘项目</title><link>http://xb6.cn/post/280.html</link><description>&lt;p&gt;基于KMK固件的软件项目开发的rp2040键盘项目&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://xb6.cn/zb_users/upload/2025/12/202512021764680518593494.png&quot; alt=&quot;keyboard-layout.png&quot;/&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;[
&amp;nbsp;&amp;nbsp;#&amp;nbsp;Layer&amp;nbsp;0&amp;nbsp;QWERTY
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;ESC&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;#39;MUTE&amp;#39;,&amp;nbsp;&amp;#39;VOLD&amp;#39;,&amp;nbsp;&amp;#39;VOLU&amp;#39;,&amp;nbsp;&amp;#39;MNXT&amp;#39;,&amp;nbsp;&amp;#39;MPRV&amp;#39;,&amp;#39;GRV&amp;#39;,&amp;#39;INS&amp;#39;,&amp;#39;DEL&amp;#39;,&amp;#39;BSPC&amp;#39;,&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;MINS&amp;#39;,&amp;nbsp;&amp;#39;EQL&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;#39;LBRC&amp;#39;,&amp;nbsp;&amp;#39;RBRC&amp;#39;,&amp;nbsp;&amp;#39;BSLS&amp;#39;,&amp;nbsp;&amp;#39;SCLN&amp;#39;,&amp;#39;QUOT&amp;#39;,&amp;nbsp;&amp;#39;COMM&amp;#39;,&amp;nbsp;&amp;#39;DOT&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;#39;SLSH&amp;#39;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;N1&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;N2&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;N3&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;N4&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;N5&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;N6&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;#39;N7&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;N8&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;N9&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;N0&amp;#39;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;Q&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;W&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;E&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;R&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;T&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;Y&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;U&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;I&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;O&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;P&amp;#39;,&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;TAB&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;#39;A&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;S&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;D&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;F&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;G&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;H&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;J&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;K&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;L&amp;#39;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;LSFT&amp;#39;,&amp;nbsp;&amp;#39;Z&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;X&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;C&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;V&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;B&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;N&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;M&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;UP&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;ENT&amp;#39;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#39;LCTL&amp;#39;,&amp;nbsp;&amp;#39;LGUI&amp;#39;,&amp;nbsp;&amp;#39;LALT&amp;#39;,&amp;nbsp;MOLYR,&amp;nbsp;&amp;nbsp;&amp;#39;SPC&amp;#39;,&amp;nbsp;&amp;nbsp;&amp;#39;PGUP&amp;#39;,&amp;nbsp;&amp;#39;PGDN&amp;#39;,&amp;#39;LEFT&amp;#39;,&amp;nbsp;&amp;#39;DOWN&amp;#39;,&amp;nbsp;&amp;#39;RGHT&amp;#39;,
]&lt;/pre&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;[{c:&amp;quot;#e84646&amp;quot;,a:7},&amp;quot;Esc&amp;quot;,{c:&amp;quot;#cccccc&amp;quot;},&amp;quot;&amp;lt;i&amp;nbsp;class=&amp;#39;kb&amp;nbsp;kb-Multimedia-Play-Pause&amp;#39;&amp;gt;&amp;lt;/i&amp;gt;&amp;quot;,&amp;quot;&amp;lt;i&amp;nbsp;class=&amp;#39;kb&amp;nbsp;kb-Multimedia-Mute-2&amp;#39;&amp;gt;&amp;lt;/i&amp;gt;&amp;quot;,&amp;quot;&amp;lt;i&amp;nbsp;class=&amp;#39;kb&amp;nbsp;kb-Multimedia-Volume-Down-2&amp;#39;&amp;gt;&amp;lt;/i&amp;gt;&amp;quot;,&amp;quot;&amp;lt;i&amp;nbsp;class=&amp;#39;kb&amp;nbsp;kb-Multimedia-Volume-Up-2&amp;#39;&amp;gt;&amp;lt;/i&amp;gt;&amp;quot;,&amp;quot;&amp;lt;i&amp;nbsp;class=&amp;#39;fa&amp;nbsp;fa-tv&amp;#39;&amp;gt;&amp;lt;/i&amp;gt;&amp;quot;,&amp;quot;&amp;lt;i&amp;nbsp;class=&amp;#39;fa&amp;nbsp;fa-power-off&amp;#39;&amp;gt;&amp;lt;/i&amp;gt;&amp;quot;,&amp;quot;Insert&amp;quot;,&amp;quot;Delete&amp;quot;,{c:&amp;quot;#e84646&amp;quot;},&amp;quot;&amp;lt;i&amp;nbsp;class=&amp;#39;fa&amp;nbsp;fa-arrow-left&amp;#39;&amp;gt;&amp;lt;/i&amp;gt;&amp;quot;],
[{c:&amp;quot;#cccccc&amp;quot;,a:5},&amp;quot;_\n-&amp;quot;,&amp;quot;+\n=&amp;quot;,&amp;quot;{\n[&amp;quot;,&amp;quot;}\n]&amp;quot;,&amp;quot;|\n\\&amp;quot;,&amp;quot;:\n;&amp;quot;,&amp;quot;\&amp;quot;\n&amp;#39;&amp;quot;,&amp;quot;&amp;lt;\n,&amp;quot;,&amp;quot;&amp;gt;\n.&amp;quot;,&amp;quot;?\n/&amp;quot;],
[&amp;quot;!\n1&amp;quot;,&amp;quot;@\n2&amp;quot;,&amp;quot;#\n3&amp;quot;,&amp;quot;$\n4&amp;quot;,&amp;quot;%\n5&amp;quot;,&amp;quot;^\n6&amp;quot;,&amp;quot;&amp;amp;\n7&amp;quot;,&amp;quot;*\n8&amp;quot;,&amp;quot;(\n9&amp;quot;,&amp;quot;)\n0&amp;quot;],
[{a:7},&amp;quot;Q&amp;quot;,&amp;quot;W&amp;quot;,&amp;quot;E&amp;quot;,&amp;quot;R&amp;quot;,&amp;quot;T&amp;quot;,&amp;quot;Y&amp;quot;,&amp;quot;U&amp;quot;,&amp;quot;I&amp;quot;,&amp;quot;O&amp;quot;,&amp;quot;P&amp;quot;],
[&amp;quot;Tab&amp;quot;,&amp;quot;A&amp;quot;,&amp;quot;S&amp;quot;,&amp;quot;D&amp;quot;,&amp;quot;F&amp;quot;,&amp;quot;G&amp;quot;,&amp;quot;H&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;K&amp;quot;,&amp;quot;L&amp;quot;],
[&amp;quot;Shift&amp;quot;,&amp;quot;Z&amp;quot;,&amp;quot;X&amp;quot;,&amp;quot;C&amp;quot;,&amp;quot;V&amp;quot;,&amp;quot;B&amp;quot;,&amp;quot;N&amp;quot;,&amp;quot;M&amp;quot;,{c:&amp;quot;#00a3ff&amp;quot;},&amp;quot;&amp;lt;i&amp;nbsp;class=&amp;#39;fa&amp;nbsp;fa-arrow-up&amp;#39;&amp;gt;&amp;lt;/i&amp;gt;&amp;quot;,{c:&amp;quot;#cccccc&amp;quot;},&amp;quot;Enter&amp;quot;],
[&amp;quot;Ctrl&amp;quot;,&amp;quot;WIN&amp;quot;,&amp;quot;Alt&amp;quot;,&amp;quot;Fn&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;UP&amp;quot;,&amp;quot;DOWN&amp;quot;,{c:&amp;quot;#00a3ff&amp;quot;},&amp;quot;&amp;lt;i&amp;nbsp;class=&amp;#39;fa&amp;nbsp;fa-arrow-left&amp;#39;&amp;gt;&amp;lt;/i&amp;gt;&amp;quot;,&amp;quot;&amp;lt;i&amp;nbsp;class=&amp;#39;fa&amp;nbsp;fa-arrow-down&amp;#39;&amp;gt;&amp;lt;/i&amp;gt;&amp;quot;,&amp;quot;&amp;lt;i&amp;nbsp;class=&amp;#39;fa&amp;nbsp;fa-arrow-right&amp;#39;&amp;gt;&amp;lt;/i&amp;gt;&amp;quot;]&lt;/pre&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;http://xb6.cn/zb_users/upload/2025/12/202512021764680551144900.png&quot; alt=&quot;2D_PCB1_2025-12-02.png&quot; width=&quot;800&quot; height=&quot;&quot; border=&quot;0&quot; vspace=&quot;0&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;http://xb6.cn/zb_users/upload/2025/12/202512021764680611709689.png&quot; alt=&quot;2D_PCB2_2025-12-02.png&quot; width=&quot;800&quot; height=&quot;&quot; border=&quot;0&quot; vspace=&quot;0&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://xb6.cn/zb_users/upload/2025/12/202512021764680931535887.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;http://xb6.cn/zb_users/upload/2025/12/202512021764680948275644.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p class=&quot;ue-upload&quot; style=&quot;line-height: 16px;&quot;&gt;&lt;img style=&quot;vertical-align: middle; margin-right: 2px;&quot; src=&quot;http://xb6.cn/zb_system/image/filetype/zip.png&quot;/&gt;&lt;a style=&quot;font-size:12px; color:#0066cc;&quot; href=&quot;http://xb6.cn/zb_users/upload/2025/12/202512021764680835152620.zip&quot; title=&quot;watrt_keyboard.zip&quot;&gt;watrt_keyboard.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 02 Dec 2025 21:00:33 +0800</pubDate></item><item><title>R329主线armbian内核，系统，驱动开发方法</title><link>http://xb6.cn/post/279.html</link><description>&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;准备环境:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;Ubuntu20.04
MaixSense
一张已经烧录r329-armbian-maixpy3-0.4.0.img的TF卡
Armbian_21.08.0-trunk_Maixsense_bullseye_edge_5.14.1.img.xz镜像&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;一、修改 boot.cmd 的方法#&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;想要改变 uboot 的一些启动配置，就可以通过这个方式进行修改，修改 boot.cmd 后直接在系统里运行完成更新。&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;mkimage&amp;nbsp;-C&amp;nbsp;none&amp;nbsp;-A&amp;nbsp;arm&amp;nbsp;-T&amp;nbsp;script&amp;nbsp;-d&amp;nbsp;/boot/boot.cmd&amp;nbsp;/boot/boot.scr&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;主线 linux 都会有类似的配置供你使用，可能是文件可能是分区。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;二、Linux 内核、驱动、设备树的相关用法方法#&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;可以参考Lichee Pi(特别详细)，armbian编译没有那么繁琐因此不再赘述。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;准备环境&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;sudo&amp;nbsp;apt-get&amp;nbsp;-y&amp;nbsp;install&amp;nbsp;build-essential&amp;nbsp;asciidoc&amp;nbsp;binutils&amp;nbsp;bzip2&amp;nbsp;gawk&amp;nbsp;gettext&amp;nbsp;git&amp;nbsp;libncurses5-dev&amp;nbsp;libz-dev&amp;nbsp;patch&amp;nbsp;python3&amp;nbsp;python2.7&amp;nbsp;unzip&amp;nbsp;zlib1g-dev&amp;nbsp;lib32gcc1&amp;nbsp;libc6-dev-i386&amp;nbsp;subversion&amp;nbsp;flex&amp;nbsp;uglifyjs&amp;nbsp;git-core&amp;nbsp;gcc-multilib&amp;nbsp;p7zip&amp;nbsp;p7zip-full&amp;nbsp;msmtp&amp;nbsp;libssl-dev&amp;nbsp;texinfo&amp;nbsp;libglib2.0-dev&amp;nbsp;xmlto&amp;nbsp;qemu-utils&amp;nbsp;upx&amp;nbsp;libelf-dev&amp;nbsp;autoconf&amp;nbsp;automake&amp;nbsp;libtool&amp;nbsp;autopoint&amp;nbsp;device-tree-compiler&amp;nbsp;g++-multilib&amp;nbsp;antlr3&amp;nbsp;gperf&amp;nbsp;wget&amp;nbsp;curl&amp;nbsp;swig&amp;nbsp;rsync&amp;nbsp;intltool&amp;nbsp;busybox&amp;nbsp;cmake&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;sudo&amp;nbsp;apt&amp;nbsp;install&amp;nbsp;-y&amp;nbsp;git&amp;nbsp;wget&amp;nbsp;make&amp;nbsp;gcc&amp;nbsp;flex&amp;nbsp;bison&amp;nbsp;libssl-dev&amp;nbsp;bc&amp;nbsp;kmod&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;其他相关教程&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;licheepi zero主线Kernel基础编译&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;licheepi nano主线Linux编译&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;三、修改设备树配置的方法#&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;使用&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;git&amp;nbsp;clone&amp;nbsp;-b&amp;nbsp;r329-wip&amp;nbsp;https://github.com/sipeed/linux.git&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;#完成后切到 r329-wip 分支&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;编译链工具可以用系统自带的通用编译链或gcc-linaro，本文使用的是gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz 点我下载。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;设备树简介：用户在设备树里定义并启用的树结点，就可以使用相应驱动。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;MaixSense的设备树在linux/arch/arm64/boot/dts/allwinner/路径下，和r329相关的设备树有&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;sun50i-r329-maix-iia.dtsi
sun50i-r329-maixsense.dts
sun50i-r329.dtsi&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;目前的主线配置linux/arch/arm64/configs/defconfig导入它。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;输入make ARCH=arm64 defconfig开始完整编译&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;make&amp;nbsp;ARCH=arm64&amp;nbsp;CROSS_COMPILE=aarch64-linux-gnu-&amp;nbsp;-j4
make&amp;nbsp;ARCH=arm64&amp;nbsp;CROSS_COMPILE=aarch64-linux-gnu-&amp;nbsp;-j4&amp;nbsp;INSTALL_MOD_PATH=out&amp;nbsp;modules
make&amp;nbsp;ARCH=arm64&amp;nbsp;CROSS_COMPILE=aarch64-linux-gnu-&amp;nbsp;-j4&amp;nbsp;INSTALL_MOD_PATH=out&amp;nbsp;modules_install&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;啥都不清楚的情况下，一路确认键按下去，直到开始编译，导出 modules 是非必要操作，但对应一些外置 ko 模块需要导出拷到 /lib/modules/ 目录中，在 menuconfig 中设置为 M 就可以编译出 ko 模块从外部插入系统。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;编译成功后，生成文件所在位置：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;内核Image文件: ./arch/arm64/boot/Image 对应 armbian 目录下的 boot/Image&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;设备树dtb文件: ./arch/arm64/boot/dts/allwinner/sun50i-r329-maixsense.dtb 到 boot/dtb/allwinner/&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;modules文件夹: ./out/lib/modules&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;将Image与dtb文件放入boot目录下重启后即可自动完成内核的更新（armbian 特有）。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;上述内容测试过后，你就可以开始自定义自己的主线内核了，但这个并不是主要目的，只是说一些基础用法。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;单独编译dtb文件加入设备。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;通常来说，在不了解如何编译整体的情况下，只需要通过简单的设备树替换就可以完成驱动适配。&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;make&amp;nbsp;ARCH=arm64&amp;nbsp;CROSS_COMPILE=aarch64-linux-gnu-&amp;nbsp;dtbs&amp;nbsp;-j4&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;参考文章：为R329添加i2c设备&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;参考文章：总结一次为R329开启uart的经历&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;将编译得到的dtb文件复制到/boot/dtb/。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;这里仅供学习参考，Sipeed 内部已经包含了/usr/lib/modules/5.14.0-rc4-sun50iw11/kernel/drivers/net/wireless/rtl8723ds/8723ds.ko模块。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;上述方法出来的内核不是我们提供的，因为配置项的不同所以会缺少一些驱动，需要你自行加入；如8723ds非主线所使用的 wifi 模块。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;git clone https://github.com/Icenowy/rtl8723ds #切换到newest-kernel&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;移动到linux/drivers/net/wireless/realtek/下&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;编辑drivers/net/wireless/Kconfig添加 source &amp;quot;drivers/net/wireless/realtek/rtl8723ds/Kconfig&amp;quot;，清除错误的语法，只留最简单的部分即可。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;config&amp;nbsp;RTL8723DS
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tristate&amp;nbsp;&amp;quot;Realtek&amp;nbsp;8723D&amp;nbsp;SDIO&amp;nbsp;or&amp;nbsp;SPI&amp;nbsp;WiFi&amp;quot;&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;编辑linux/drivers/net/wireless/realtek/Makefile添加obj-$(CONFIG_RTL8723DS) += rtl8723ds/使得模块参与编译。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;通过make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8 menuconfig 按 / 搜索 8723ds 把它配上编译即可。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;配好直接 make 编译就行，在 sipeed 的 armbian 这里不需要，仅告知如何加入非主线模块，如特殊的 TP 触摸屏、ADC 按键驱动、I2C 传感器驱动等。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;四、编译 armbian 系统#&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;自行准备良好的网络环境，相关问题不做解答，默认懂得都懂，编不出来也很正常，不用太在意。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;上述开发的内核模块在 sipeed 提供的 armbian 镜像中都是无用的，仅用于测试和确认开发环境，所以要进一步把 armbian 编译出来才是最终用户所用的环境。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;有需要的可以看文档 https://docs.armbian.com/Developer-Guide_Build-Preparation 说明。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;安装 apt install -y dialog psmisc acl uuid-runtime curl gnupg gawk 准备环境&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;获取 https://github.com/sipeed/armbian-build.git 切到 r329-wip 分支，然后通过 compile.sh 完成编译。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;将根据以下配置在 armbian-build 中进行编译。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;config/boards/maixsense.wip&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;config/bootscripts/boot-sun50iw11.cmd&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;config/kernel/linux-sun50iw11-edge.config&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;config/sources/families/sun50iw11.conf&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;运行 ./compile.sh 选择会自动拉取所有相关的东西，即可编译出来，接下来就是漫长的等待。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;注意 maixsense 并非为最终 conf 版本，你需要在 底下的 show WIP 中选择 agree 后就可以看到 maixsense 了,配置可以是 bullseye 和 minimal 就好。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;编译期间会在 armbian-build/cache/sources 下 git clone 在 config/sources/families/sun50iw11.conf 指定的仓库和分支。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;把 https://github.com/Icenowy/rtl8723ds 改为 https://github.com/lwfinger/rtl8723ds 。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;把 armbian-build/config/sources/families/sun50iw11.conf 文件中 KERNELBRANCH （linux）的 r329-wip-integrated 改到 r329-wip 分支。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;完成后输出如下：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Building&amp;nbsp;kernel&amp;nbsp;splash&amp;nbsp;logo&amp;nbsp;[&amp;nbsp;bullseye&amp;nbsp;]
[&amp;nbsp;....&amp;nbsp;]&amp;nbsp;Installing&amp;nbsp;extras-buildpkgs&amp;nbsp;[&amp;nbsp;&amp;nbsp;hostapd&amp;nbsp;htop&amp;nbsp;mmc-utils&amp;nbsp;sunxi-tools&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Calling&amp;nbsp;image&amp;nbsp;customization&amp;nbsp;script&amp;nbsp;[&amp;nbsp;customize-image.sh&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;No&amp;nbsp;longer&amp;nbsp;needed&amp;nbsp;packages&amp;nbsp;[&amp;nbsp;purge&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Unmounting&amp;nbsp;[&amp;nbsp;/home/juwan/R329/armbian-build/.tmp/rootfs-c735dfca-9977-402a-a68b-b4529b5aac8f&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Preparing&amp;nbsp;image&amp;nbsp;file&amp;nbsp;for&amp;nbsp;rootfs&amp;nbsp;[&amp;nbsp;maixsense&amp;nbsp;bullseye&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Current&amp;nbsp;rootfs&amp;nbsp;size&amp;nbsp;[&amp;nbsp;780&amp;nbsp;MiB&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Creating&amp;nbsp;blank&amp;nbsp;image&amp;nbsp;for&amp;nbsp;rootfs&amp;nbsp;[&amp;nbsp;984&amp;nbsp;MiB&amp;nbsp;]
[&amp;nbsp;....&amp;nbsp;]&amp;nbsp;dd:&amp;nbsp;&amp;nbsp;984MiB&amp;nbsp;[&amp;nbsp;136MiB/s]&amp;nbsp;[================================================================&amp;gt;]&amp;nbsp;100%
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Creating&amp;nbsp;partitions&amp;nbsp;[&amp;nbsp;root:&amp;nbsp;ext4&amp;nbsp;]
[&amp;nbsp;....&amp;nbsp;]&amp;nbsp;Creating&amp;nbsp;rootfs&amp;nbsp;[&amp;nbsp;ext4&amp;nbsp;on&amp;nbsp;/dev/loop40p1&amp;nbsp;]
[&amp;nbsp;....&amp;nbsp;]&amp;nbsp;Copying&amp;nbsp;files&amp;nbsp;to&amp;nbsp;[&amp;nbsp;/&amp;nbsp;]
[&amp;nbsp;....&amp;nbsp;]&amp;nbsp;Copying&amp;nbsp;files&amp;nbsp;to&amp;nbsp;[&amp;nbsp;/boot&amp;nbsp;]
[&amp;nbsp;....&amp;nbsp;]&amp;nbsp;Updating&amp;nbsp;initramfs...&amp;nbsp;[&amp;nbsp;update-initramfs&amp;nbsp;-uv&amp;nbsp;-k&amp;nbsp;5.14.0-rc7-sun50iw11&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Updated&amp;nbsp;initramfs.&amp;nbsp;[&amp;nbsp;for&amp;nbsp;details&amp;nbsp;see:&amp;nbsp;/home/juwan/R329/armbian-build/output/debug/install.log&amp;nbsp;]
[&amp;nbsp;....&amp;nbsp;]&amp;nbsp;Re-enabling&amp;nbsp;[&amp;nbsp;initramfs-tools&amp;nbsp;hook&amp;nbsp;for&amp;nbsp;kernel&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Unmounting&amp;nbsp;[&amp;nbsp;/home/juwan/R329/armbian-build/.tmp/mount-c735dfca-9977-402a-a68b-b4529b5aac8f/&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Free&amp;nbsp;SD&amp;nbsp;cache&amp;nbsp;[&amp;nbsp;8%&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Mount&amp;nbsp;point&amp;nbsp;[&amp;nbsp;91%&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Writing&amp;nbsp;U-boot&amp;nbsp;bootloader&amp;nbsp;[&amp;nbsp;/dev/loop40&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;SHA256&amp;nbsp;calculating&amp;nbsp;[&amp;nbsp;Armbian_21.08.0-trunk_Maixsense_bullseye_edge_5.14.0_minimal.img&amp;nbsp;]
[&amp;nbsp;warn&amp;nbsp;]&amp;nbsp;GPG&amp;nbsp;signing&amp;nbsp;skipped&amp;nbsp;-&amp;nbsp;no&amp;nbsp;GPG_PASS&amp;nbsp;[&amp;nbsp;Armbian_21.08.0-trunk_Maixsense_bullseye_edge_5.14.0_minimal.img&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Done&amp;nbsp;building&amp;nbsp;[&amp;nbsp;/home/juwan/R329/armbian-build/output/images/Armbian_21.08.0-trunk_Maixsense_bullseye_edge_5.14.0_minimal.img&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Runtime&amp;nbsp;[&amp;nbsp;350&amp;nbsp;min&amp;nbsp;]
[&amp;nbsp;o.k.&amp;nbsp;]&amp;nbsp;Repeat&amp;nbsp;Build&amp;nbsp;Options&amp;nbsp;[&amp;nbsp;./compile.sh&amp;nbsp;&amp;nbsp;BOARD=maixsense&amp;nbsp;BRANCH=edge&amp;nbsp;RELEASE=bullseye&amp;nbsp;BUILD_MINIMAL=yes&amp;nbsp;BUILD_DESKTOP=no&amp;nbsp;KERNEL_ONLY=no&amp;nbsp;KERNEL_CONFIGURE=no&amp;nbsp;COMPRESS_OUTPUTIMAGE=sha,gpg,img&amp;nbsp;&amp;nbsp;]&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;把 Armbian_21.08.0-trunk_Maixsense_bullseye_edge_5.14.0_minimal.img 拿来烧录就行。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;以下是本次的配置：（如果你连这个都没编译出来就不要操作了）&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;#&amp;nbsp;Allwinner&amp;nbsp;R329&amp;nbsp;dual&amp;nbsp;core&amp;nbsp;256M&amp;nbsp;RAM&amp;nbsp;WiFi&amp;nbsp;USB-C
BOARD_NAME=&amp;quot;MaixSense&amp;quot;
BOARDFAMILY=&amp;quot;sun50iw11&amp;quot;
BOOTCONFIG=&amp;quot;sipeed_maixsense_defconfig&amp;quot;
MODULES_BLACKLIST=&amp;quot;lima&amp;quot;
DEFAULT_CONSOLE=&amp;quot;serial&amp;quot;
BUILD_DESKTOP=&amp;quot;no&amp;quot;
BOOT_LOGO=&amp;quot;yes&amp;quot;
SERIALCON=&amp;quot;ttyS0&amp;quot;
KERNEL_TARGET=&amp;quot;edge&amp;quot;
OFFLINE_WORK=&amp;quot;yes&amp;quot;
CLEAN_LEVEL=&amp;quot;&amp;quot;
#&amp;nbsp;./compile.sh&amp;nbsp;EXPERT=yes&amp;nbsp;BUILD_STABILITY=stable&amp;nbsp;BOARD=maixsense&amp;nbsp;BRANCH=edge&amp;nbsp;RELEASE=bullseye&amp;nbsp;BUILD_MINIMAL=yes&amp;nbsp;BUILD_IMAGE=yes&amp;nbsp;BUILD_DESKTOP=no&amp;nbsp;KERNEL_ONLY=no&amp;nbsp;KERNEL_CONFIGURE=yes&amp;nbsp;COMPRESS_OUTPUTIMAGE=sha,gpg,img&amp;nbsp;CLEAN_LEVEL=&amp;quot;&amp;quot;
#&amp;nbsp;./compile.sh&amp;nbsp;OFFLINE_WORK=&amp;quot;no&amp;quot;&amp;nbsp;EXPERT=yes&amp;nbsp;BUILD_STABILITY=stable&amp;nbsp;BOARD=maixsense&amp;nbsp;BRANCH=edge&amp;nbsp;RELEASE=bullseye&amp;nbsp;BUILD_MINIMAL=yes&amp;nbsp;BUILD_IMAGE=no&amp;nbsp;BUILD_DESKTOP=no&amp;nbsp;KERNEL_ONLY=yes&amp;nbsp;KERNEL_CONFIGURE=yes&amp;nbsp;COMPRESS_OUTPUTIMAGE=sha,gpg,img&amp;nbsp;CLEAN_LEVEL=&amp;quot;&amp;quot;&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;必须经过第一次完整编译才能用 OFFLINE_WORK 加快仓库的拉取检查。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;4.1. 如何修改开机logo#&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;看 BOOT_LOGO=&amp;quot;yes&amp;quot; 和替换图片文件自动打包编译到二进制文件。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;4.2. 配置开机启动服务脚本#&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;因为系统默认不启动/etc/rc.local了，所以需要启动一下再往里面编辑脚本，一定要 &amp;amp; 挂在后台，不然就看不到交互终端了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;执行 sudo nano /etc/systemd/system/rc-local.service 后输入如下内容：&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;[Unit]
&amp;nbsp;Description=/etc/rc.local&amp;nbsp;Compatibility
&amp;nbsp;ConditionPathExists=/etc/rc.local
[Service]
&amp;nbsp;Type=forking
&amp;nbsp;ExecStart=/etc/rc.local&amp;nbsp;start
&amp;nbsp;TimeoutSec=0
&amp;nbsp;StandardOutput=tty
&amp;nbsp;RemainAfterExit=yes
&amp;nbsp;SysVStartPriority=99
[Install]
&amp;nbsp;WantedBy=multi-user.target&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;上述内容保存后执行以下命令&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;sudo&amp;nbsp;systemctl&amp;nbsp;enable&amp;nbsp;rc-local&amp;nbsp;#使能服务
chmod&amp;nbsp;-x&amp;nbsp;/etc/rc.local&amp;nbsp;#更改文件权限
sudo&amp;nbsp;systemctl&amp;nbsp;start&amp;nbsp;rc-local.service&amp;nbsp;#启动服务
sudo&amp;nbsp;systemctl&amp;nbsp;status&amp;nbsp;rc-local.service&amp;nbsp;#查看服务运行状态&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;删除用户密码并关闭控制台输出到屏幕上和闪烁光标&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;查询服务 systemctl status 禁用服务 systemctl disable getty@tty1.service 即可关闭开机终端。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;删除密码 sudo passwd -d root 之后输入 root 自动进入系统。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;使用 echo 0 &amp;gt; /sys/class/graphics/fbcon/cursor_blink 关闭终端的光标闪烁cursor_blink，对应实现 drivers/video/console/fbcon.c 。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;4.3. 编译 aipu.ko 主线模块并加入 armbian 系统#&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;需要结合上下两节食用。没有 linux 外部编译模块基础的，要先简单看过这篇 https://www.kernel.org/doc/Documentation/kbuild/modules.txt 来知道怎么添加外部模块参与编译（*.ko）。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;这里提供了一份包含编译 aipu 的分支，你也可以在 linux 目录下外部编译 aipu.ko 模块出来。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;将 armbian-build/config/sources/families/sun50iw11.conf 里的 KERNELSOURCE=&amp;quot;https://github.com/sipeed/linux&amp;quot; 链接替换为https://github.com/junhuanchen/linux/commits/r329-wip 。即可采用新源进行 armbian 的编译。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;偷懒就用临时配置好的 https://github.com/junhuanchen/armbian-build 仓库。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;4.4. 给镜像中添加自定义模块（deb）#&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;kernel 的模块（.ko）由 kernel 添加，如果没有改变则删除 armbian-build/output/debs/linux-image-edge-sun50iw11_21.08.0-trunk_arm64.deb ，可手工可命令。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;这里说一下 armbian 的 deb 手工打进去，因为有时候可能不是所有东西都需要，而云端下载太久，就需要提前下好包进去。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;在 armbian-build/config/cli/bullseye/main/config_cli_standard/packages.additional 的末尾添加一下包就可以编译进去，其他的类似有 desktop 目录之类的。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;打包某些 deb 包的时候经常会出现 apt Hash Sum mismatch 问题，设置成 apt-get -o Acquire-by-hash=yes --fix-missing 可以解决大部分问题。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;4.5. 常见问题后记#&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;boot 就不提了，看 https://github.com/sipeed/u-boot 就行，实际上全部交给 armbian-build 仓库就行，这样就具备了基础环境，要编辑的部分自然就很少了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;如果你发现模块加载不成功，可能是 version magic &amp;#39;5.14.0-rc4-sun50iw11 SMP mod_unload aarch64&amp;#39; should be &amp;#39;5.14.0-rc7-01557-gd78f1b75fd69-dirty SMP preempt mod_unload aarch64&amp;#39; 错误。这是模块加载不成功的常见 version magic 错误，简单的处理方法是修改 linux/include/linux/vermagic.h 直接怼到 #define VERMAGIC_STRING &amp;quot;5.14.0-rc7-01557-gd78f1b75fd69-dirty&amp;quot; 。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;想要彻底解决上述这个问题，只能重新编译 armbian-build 导出镜像改变 kernel version 。&lt;/span&gt;&lt;/p&gt;</description><pubDate>Wed, 19 Nov 2025 14:15:20 +0800</pubDate></item><item><title>manjaro 20 R329-Tina 编译 libfakeroot _STAT_VER 错误 </title><link>http://xb6.cn/post/278.html</link><description>&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;编译方法&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;juwan@juwan-n85-dls:~/R329-Tina$&amp;nbsp;source&amp;nbsp;build/envsetup.sh&amp;nbsp;
Setup&amp;nbsp;env&amp;nbsp;done!&amp;nbsp;Please&amp;nbsp;run&amp;nbsp;lunch&amp;nbsp;next.
juwan@juwan-n85-dls:~/R329-Tina$&amp;nbsp;lunch
You&amp;#39;re&amp;nbsp;building&amp;nbsp;on&amp;nbsp;Linux
Lunch&amp;nbsp;menu...&amp;nbsp;pick&amp;nbsp;a&amp;nbsp;combo:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;r329_evb1-tina
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;r329_evb1_xr829-tina
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.&amp;nbsp;r329_evb5_min-tina
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.&amp;nbsp;r329_evb5_v1-tina
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.&amp;nbsp;r329_evb5-tina
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.&amp;nbsp;r329_evb6-tina
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7.&amp;nbsp;r329_fpga-tina
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8.&amp;nbsp;r329_robot-tina
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9.&amp;nbsp;r329_spk1-tina
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10.&amp;nbsp;r329_ubidemo-tina
Which&amp;nbsp;would&amp;nbsp;you&amp;nbsp;like?&amp;nbsp;[Default&amp;nbsp;r329_evb5_v1]:&amp;nbsp;
============================================
TINA_BUILD_TOP=/home/juwan/R329-Tina
TINA_TARGET_ARCH=aarch64
TARGET_PRODUCT=r329_evb5_v1
TARGET_PLATFORM=r329
TARGET_BOARD=r329-evb5_v1
TARGET_PLAN=evb5_v1
TARGET_BUILD_VARIANT=tina
TARGET_BUILD_TYPE=release
TARGET_KERNEL_VERSION=4.9
TARGET_UBOOT=u-boot-2018
TARGET_CHIP=sun50iw11p1
============================================
juwan@juwan-n85-dls:~/R329-Tina$&amp;nbsp;make&amp;nbsp;-j1&amp;nbsp;V=s&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;然后就开始跑了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;^ In file included from libfakeroot.c:60: communicate.h:209:44: note: expected &amp;#39;struct stat64 *&amp;#39; but argument is of type &amp;#39;struct stat *&amp;#39; 209 | extern void send_get_stat64(struct stat64 *buf); | ~~~~~~~~~~~~~^ make[6]: *** [Makefile:638: libfakeroot.lo] Error 1 make[6]: Leaving directory &amp;#39;/home/dls/desktop/R329-Tina/out/r329-evb5_v1/compile_dir/host/fakeroot-1.20.2&amp;#39;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;patch /home/dls/desktop/R329-Tina/out/r329-evb5_v1/compile_dir/host/fakeroot-1.20.2/libfakeroot.c&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;diff&amp;nbsp;--git&amp;nbsp;a/libfakeroot.c&amp;nbsp;b/libfakeroot.c
index&amp;nbsp;3e80e38..14e56bc&amp;nbsp;100644
---&amp;nbsp;a/libfakeroot.c
+++&amp;nbsp;b/libfakeroot.c
@@&amp;nbsp;-90,6&amp;nbsp;+90,10&amp;nbsp;@@
&amp;nbsp;#define&amp;nbsp;SEND_GET_XATTR64(a,b,c)&amp;nbsp;send_get_xattr64(a,b)
&amp;nbsp;#endif
&amp;nbsp;
+#ifndef&amp;nbsp;_STAT_VER
+#define&amp;nbsp;_STAT_VER&amp;nbsp;0
+#endif
+
&amp;nbsp;/*
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;These&amp;nbsp;INT_*&amp;nbsp;(which&amp;nbsp;stands&amp;nbsp;for&amp;nbsp;internal)&amp;nbsp;macros&amp;nbsp;should&amp;nbsp;always&amp;nbsp;be&amp;nbsp;used&amp;nbsp;when
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;the&amp;nbsp;fakeroot&amp;nbsp;library&amp;nbsp;owns&amp;nbsp;the&amp;nbsp;storage&amp;nbsp;of&amp;nbsp;the&amp;nbsp;stat&amp;nbsp;variable.&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;manjaro 和 Ubuntu 的用户组不同,在 fakeroot 执行的时候,会掉用户组,需要自己补,其实建议用 docker 来编译。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;https://blog.csdn.net/xiaoqiaoq0/article/details/112913357&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;烧录工具为 5.4 以上的内核稍微修了一下 Makefile https://github.com/junhuanchen/sunxi-livesuite&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 19 Nov 2025 11:08:27 +0800</pubDate></item><item><title>把 R329 改到 ext4 sdcard 启动变成 Read-Only 系统，导致没有文件修改权限后如何修复。 </title><link>http://xb6.cn/post/277.html</link><description>&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;稍微 mark 一下。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;从 nand (squashfs) 切到 sdcard (ext4) 启动后用 mount 发现 /dev/root 文件系统变成只读了,重新拿 rw 挂载一下就好,奇怪的是 nand 怎么没有这个问题。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;mount&amp;nbsp;-o&amp;nbsp;remount&amp;nbsp;-o&amp;nbsp;rw&amp;nbsp;/dev/root&amp;nbsp;#&amp;nbsp;sdcard&amp;nbsp;rootfs&amp;nbsp;need&amp;nbsp;rw&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Wed, 19 Nov 2025 11:04:50 +0800</pubDate></item><item><title>Allwinner &amp;amp; Arm 中国 &amp;amp; Sipeed 开源硬件 R329 SDK 上手编译与烧录! </title><link>http://xb6.cn/post/276.html</link><description>&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;R329 芯片简介&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://xb6.cn/zb_users/upload/2025/11/202511191763521309138228.png&quot; data-catchresult=&quot;img_catchSuccess&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;R329 是全志科技针对智能语音旗舰市场推出的一款高集成度 SoC ,搭载双核 A53 1.5G CPU,内置双核 400MHz HiFi4 和 800MHz AIPU(zhouyi) 0.25TOPS,可以满足各种智能语音产品的需求&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;内置:DDR3&amp;nbsp;128MB/256M(如果您手中的R329芯片丝印型号为R329-N3,即为内置128M&amp;nbsp;DDR;如果是R329-N4,即为内置256M&amp;nbsp;DDR)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
双核:HIFI4&amp;nbsp;400MHz,2MB&amp;nbsp;SRAM
音频:5&amp;nbsp;路&amp;nbsp;ADC,2&amp;nbsp;路&amp;nbsp;DAC
接口:I2S3/DMIC/OWA,USB2.0*2,GMAC
显示:SPI&amp;nbsp;LCD,&amp;nbsp;PWM*15
工艺:HPC28+
封装:12mm×12mm&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;Tina Linux 系统介绍&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;Tina Linux是全志科技基于Linux内核开发的针对智能硬件类产品的嵌入式软件系统。Tina Linux 基于 openwrt-14.07 版本的软件开发包,包含了 Linux 系统开发用到的内核源码、驱动、工具、系统中间件与应用程序包。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;*openwrt 是知名的开源嵌入式 Linux 系统自动构建框架,是由 Makefile 脚本和 Kconfig 配置文件构成的。使得用户可以通过 menuconfig 配置,编译出一个完整的可以直接烧写到机器上运行的 Linux 系统软件。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;实际上 Tina Linux 是经过 openwrt 演化过来的产物,在 R329 后魔改了不少编译规则,以至于对 luci 的软件支持恐怕有一些不够合适,主要原因还是芯片侧重点不是路由器了,所以官方可能也不太在意这些软件了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;废话就不多说了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;先拉仓库吧。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;https://github.com/sipeed/R329-Tina-jishu
git&amp;nbsp;clone&amp;nbsp;https://github.com/sipeed/R329-Tina-jishu
cd&amp;nbsp;R329-Tina-jishu
git&amp;nbsp;submodule&amp;nbsp;update&amp;nbsp;--init&amp;nbsp;--recursive&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;整个仓库不重要的部分经过 coding 仓库加速,所以只需要关注以下这几个仓库即可。(该版本为开源 SDK 版本,加上了一些驱动配置以支持 Sipeed 的 R329 板)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;https://github.com/sipeed/r329-package
https://github.com/sipeed/r329-linux-4.9
https://github.com/sipeed/r329-target&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;开源的只是裁剪了一些不必要的版型和暂不公开 DSP 和 NPU 的代码,其他的没有区别,正常使用就好。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;package 实际上就对应系统里的软件功能包,如一些 shell 命令或程序。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;linux-4.9 对应的 linux 内核,主要影响底层的驱动,如果需要移植到其他硬件时会来这里改改设备树和相关的裸机驱动。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;target 对应的是版型的一些配置文件和预置脚本等。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;其他的很少改动,可以不用太关心,如 boot 、prebuild 等,在等项目的主仓库拉取的过程中,来认识一下 SDK 的构成吧,等看完了就差不多可以开始进行编译了。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;SDK 结构&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;Tina Linux SDK 主要由构建系统、配置工具、工具链、host 工具包、目标设备应用程序、文档、脚本、linux 内核、bootloader 部分组成,下面是Tina主目录包含的文件和目录。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;Tina-SDK/
├──&amp;nbsp;build
├──&amp;nbsp;config
├──&amp;nbsp;Config.in
├──&amp;nbsp;device
├──&amp;nbsp;dl
├──&amp;nbsp;lichee
├──&amp;nbsp;Makefile
├──&amp;nbsp;out
├──&amp;nbsp;package
├──&amp;nbsp;prebuilt
├──&amp;nbsp;rules.mk
├──&amp;nbsp;scripts
├──&amp;nbsp;target
├──&amp;nbsp;tmp
├──&amp;nbsp;toolchain
└──&amp;nbsp;tools&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;以下将对主要目录中包含的内容进行简单介绍。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;build&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;build 目录存放 Tina Linux 的构建系统文件,此目录结构下主要是一系列基于 Makefile 规格编写的 .mk 文件,主要的功能有:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(1)检测当前的编译环境是否满足 Tina Linux 的构建需求;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(2)生成 host 包编译规则;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(3)生成工具链的编译规则;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(4)生成 target 包的编译规则;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(5)生成 linux kernel 的编译规则;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(6)生成系统固件的生成规则。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;config&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;config 目录主要存放 Tina Linux 中配置菜单的界面以及一些固定的配置项,该配置菜单基于内核的 mconf 规格编写。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;device&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;devices 目录用于存放方案的配置文件,包括内核配置、env 配置、分区表配置、sys_config.fex(全志定制板级配置文件)、board.dts(linux标准设备树文件) 等。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;*这些配置在旧版本Tina(Tina3.0以前)上是保存于 target 目录下,现新版本均移到了 device 目录下,但 defconfig 仍保存在 target 目录下&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;lichee&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;lichee 目录主要存放 bootloader、linux内核、DSP等代码,其中DSP代码及编译环境因涉及DSP供应商科声讯版权,需单独申请。lichee目录下结构如下:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;Tina-SDK
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;brandy-2.0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;build.sh
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;tools
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp;&amp;nbsp;&amp;nbsp;└──&amp;nbsp;u-boot-2018
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;└──&amp;nbsp;linux-4.9&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;package&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;package 目录存放Tina系统支持的软件包源码和编译规则,目录按照目标软件包的功能进行分类,该目录包含了Tina系统全平台(包括全志R/H/F/V/T系列)的软件包,但是并不是所有软件包都适配了R329方案,部分软件包需要开发者自行适配。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;prebuild&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;prebuild 目录存放预编译用的交叉编译器,主要包括aarch64的glibc和musl以及arm的glibc和musl。prebuild目录下结构如下:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;Tina-SDK
└──&amp;nbsp;linux-x86
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;aarch64
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;aarch64-toolchain.txt
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;toolchain-sunxi-glibc
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp;&amp;nbsp;&amp;nbsp;└──&amp;nbsp;toolchain-sunxi-musl
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;arm
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;arm-toolchain.txt
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;toolchain-sunxi-glibc
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp;&amp;nbsp;&amp;nbsp;└──&amp;nbsp;toolchain-sunxi-musl
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;└──&amp;nbsp;host
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;└──&amp;nbsp;host-toolchain.txt&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;scripts&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;scripts 目录用于存放设备开发中用到的一些脚本。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;target&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;target目录用于存放开发板相关的配置以及 sdk 和 toolchain 生产的规格。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;toolchain&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;toolchain 目录用于存放交叉工具链构建配置、规则。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;tools&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;tools 目录用于存放 host 端工具的编译规则。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;out&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;out 目录用于保存编译相关的临时文件和最终镜像文件,编译后自动生成此目录,并生成对应的方案out目录,如开发板对应的R329-evb5方案目录结构如下:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;Tina-SDK/out
├──&amp;nbsp;host
└──&amp;nbsp;r329-evb5
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;boot.img
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;compile_dir
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;image
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;md5sums
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;packages
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;r329-evb5-boot.img
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;r329-evb5-Image.gz
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;r329-evb5-uImage
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;rootfs.img
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;sha256sums
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;├──&amp;nbsp;staging_dir
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;└──&amp;nbsp;tina_r329-evb5_uart0.img&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;其中 :&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(1)tina_r329-evb5_uart0.img 就是编译打包后生成的最终烧写到开发板上的固件;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(2)boot.img 为最终烧写到系统 boot 分区的数据;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(3)rootfs.img 为最终烧写到系统 rootfs 分区的数据;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(4)r329-evb5-uImage为内核的 uImage 格式镜像,若配置为 uImage 格式,则会拷贝成 boot.img;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(5)r329-evb5-boot.img为内核的 boot.img 格式镜像,若配置为 boot.img 格式,则会拷贝成 boot.img&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(6)compile_dir 为 sdk 编译 host、target 和 toolchain 的临时文件目录,存有各个软件包的源码;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;(8)packages 目录保存的是最终生成的 ipk 软件包。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;另外 out 目录下的 host 目录用于存放 host 端的工具以及一些开发相关的文件。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;相信看到这里你已经有一些概念了,那就开始编译吧&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://xb6.cn/zb_users/upload/2025/11/202511191763521384119531.png&quot; data-catchresult=&quot;img_catchSuccess&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;我在这里就不打算重复教学了,可以先看这两篇完成基本的安装,我直接列一下必要的库,编译与测试环境在 ubuntu20 (wsl2)建议大于 8G 内存。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;连接开发板 https://r329.docs.allwinnertech.com/devboardstudy/r329evb5studyadbuart/&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;编译环境配置 https://r329.docs.allwinnertech.com/devboardstudy/r329evb5ubuntu/&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;在看的时候,注意一下,上面两篇参考资料废话很多,如果你已经有经验了,就直接看脚本开始吧。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;基础环境的安装。记得换 apt 源。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;ubuntu18.04&amp;nbsp;&amp;amp;&amp;nbsp;ubuntu20.04
sudo&amp;nbsp;apt-get&amp;nbsp;-y&amp;nbsp;install&amp;nbsp;build-essential&amp;nbsp;asciidoc&amp;nbsp;binutils&amp;nbsp;bzip2&amp;nbsp;gawk&amp;nbsp;gettext&amp;nbsp;git&amp;nbsp;libncurses5-dev&amp;nbsp;libz-dev&amp;nbsp;patch&amp;nbsp;python3&amp;nbsp;python2.7&amp;nbsp;unzip&amp;nbsp;zlib1g-dev&amp;nbsp;lib32gcc1&amp;nbsp;libc6-dev-i386&amp;nbsp;subversion&amp;nbsp;flex&amp;nbsp;uglifyjs&amp;nbsp;git-core&amp;nbsp;gcc-multilib&amp;nbsp;p7zip&amp;nbsp;p7zip-full&amp;nbsp;msmtp&amp;nbsp;libssl-dev&amp;nbsp;texinfo&amp;nbsp;libglib2.0-dev&amp;nbsp;xmlto&amp;nbsp;qemu-utils&amp;nbsp;upx&amp;nbsp;libelf-dev&amp;nbsp;autoconf&amp;nbsp;automake&amp;nbsp;libtool&amp;nbsp;autopoint&amp;nbsp;device-tree-compiler&amp;nbsp;g++-multilib&amp;nbsp;antlr3&amp;nbsp;gperf&amp;nbsp;wget&amp;nbsp;curl&amp;nbsp;swig&amp;nbsp;rsync&amp;nbsp;intltool&amp;nbsp;busybox&amp;nbsp;cmake&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;Ubuntu20 要增强一下,补一下下面两个包 libffi6 (python3 需要)。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;wget&amp;nbsp;http://mirrors.kernel.org/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb
sudo&amp;nbsp;apt&amp;nbsp;install&amp;nbsp;./libffi6_3.2.1-8_amd64.deb&lt;/pre&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;sudo&amp;nbsp;apt-get&amp;nbsp;install&amp;nbsp;uuid-dev&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;其他的,自己丟了就找找哈。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;在 R329-Tina-jishu 下执行编译命令&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;编译前建议设置一下 export FORCE_UNSAFE_CONFIGURE=1 第一次编译 host 的软件,会出现 set FORCE_UNSAFE_CONFIGURE=1 这个变量的提示。&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;cd&amp;nbsp;R329-Tina-jishu
source&amp;nbsp;build/envsetup.sh
lunch&amp;nbsp;r329_evb5-tina
make&amp;nbsp;-j32
pack&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;对应的意思是:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;source 加载编译环境,你可以得到 croot / cout 等跳转目录的功能,lunch 选择版型,确定要编译的版型。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;dls@DESKTOP-XPS13:～/R329-Tina-jishu$&amp;nbsp;source&amp;nbsp;build/envsetup.sh
Setup&amp;nbsp;env&amp;nbsp;done!&amp;nbsp;Please&amp;nbsp;run&amp;nbsp;lunch&amp;nbsp;next.
dls@DESKTOP-XPS13:～/R329-Tina-jishu$&amp;nbsp;lunch
You&amp;#39;re&amp;nbsp;building&amp;nbsp;on&amp;nbsp;Linux
Lunch&amp;nbsp;menu...&amp;nbsp;pick&amp;nbsp;a&amp;nbsp;combo:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;r329_evb5-tina
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;r329_evb5_min-tina
Which&amp;nbsp;would&amp;nbsp;you&amp;nbsp;like?&amp;nbsp;[Default&amp;nbsp;r329_evb5]:&amp;nbsp;1
============================================
TINA_BUILD_TOP=/home/dls/R329-Tina-jishu
TINA_TARGET_ARCH=aarch64
TARGET_PRODUCT=r329_evb5
TARGET_PLATFORM=r329
TARGET_BOARD=r329-evb5
TARGET_PLAN=evb5
TARGET_BUILD_VARIANT=tina
TARGET_BUILD_TYPE=release
TARGET_KERNEL_VERSION=4.9
TARGET_UBOOT=u-boot-2018
TARGET_CHIP=sun50iw11p1
============================================
dls@DESKTOP-XPS13:～/R329-Tina-jishu$&lt;/pre&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;make 有以下常用命令。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;make menuconfig 配置软件包&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;make kernel_menuconfig 配置内核包&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;make clean 清理项目&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;make defconfig 保存当前软件配置,主要影响 defconfig。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;mkernel 是编译内核的简写命令。&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;boot 要到目录下进行配置,具体怎么使用,就自己参考荔枝派 linux 的配置加入 arch= 即可。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;make 单独编译模块的时候 make package/xxx/xxxx/compile 或 clean 即可。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;make -j32 V=s 的意思是 使用 32 核并行编译,建议第一次用 -j1 V=s 意思是单核并开启日志输出。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;如果想要有颜色的输出可以按照 colormake 方便看异常和过滤输出。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;pack 会进行打包变成 img ,供 PhoenixSuit 等全志提供的软件进行烧录,可能需要注意的是分区大小之类的调整,当然你可以烧录一次后通过 dd 命令导出镜像,方便其他人烧写。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;如何烧写?&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;具体手把手教程下次补上,可以参考 V831 Sipeed 的板子教程。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;按上图的核心板上的小按钮后通电,就会进入 fel 模式,或不插 SD 卡上电就会自动进入烧写模式(这要基于硬件设计),软件就会检测到了。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;这种官方的烧录方法,在开发系统结束后就不会需要了,所以看过一次官方教程就行了 https://r329.docs.allwinnertech.com/devboardstudy/r329evb5compile 。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;一些基础用法&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;基于 Sipeed V831 的 MaixPy3 文档,再拓展以下功能,看自己喜好学习使用就行,并不稀奇。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;点灯 https://r329.docs.allwinnertech.com/devboardstudy/r329evb5studyled/&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;WiFi连网 https://r329.docs.allwinnertech.com/devboardstudy/r329evb5studywifi/&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;修改WiFi/BT模组 https://r329.docs.allwinnertech.com/devboardstudy/r329evb5xr829/&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;录音和播放 https://r329.docs.allwinnertech.com/devboardstudy/r329evb5studyarecord/&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;里面的 tina_test 提供了许多测试案例,方便开箱使用,还另外内置了 maix_test 是用 python3.7 写的(该 SDK 从3.5升到3.7了),主要用于测试 sipeed 的板子。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;进阶的内容啊&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;等我忙完了 V833 再来整理吧,这次就出一篇开发者用的文档挂着,之后肯定会有用的,其他的一些资料也可以参考我先前整理的一些有关于 v831、v833 的内容呢。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;该 SDK 的修改记录都公开了,如果有兴趣的同学也可以自行学习,或者直接用就行,没什么特别的&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/p&gt;</description><pubDate>Wed, 19 Nov 2025 10:55:09 +0800</pubDate></item><item><title>给小朋友多一点耐心</title><link>http://xb6.cn/post/275.html</link><description>&lt;p style=&quot;text-align: left;&quot;&gt;小宝如今已经两岁多了，正处于语言发展的关键阶段。虽然他说话还不太流利，常常词不达意，句子也说得断断续续，但作为父母，心里那份焦急与期待交织的情绪，说“不急”其实是自欺欺人。然而，除了陪伴与引导，我们能做的，或许就是给予他最温柔的耐心和最坚定的信任。&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/p&gt;&lt;p style=&quot;text-align:center&quot;&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;img src=&quot;http://xb6.cn/zb_users/upload/2025/11/202511181763450290222035.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;正如花园里的每一朵花，都有属于自己的绽放时节；林中的每一株树苗，也都按照自己的节奏悄然生长。有的早开，有的晚放；有的挺拔迅速，有的缓慢却坚韧。孩子的成长亦是如此，无法强求，更不能揠苗助长。只要我们持续用爱浇灌、用心倾听，终有一天，他会用自己的方式，枝繁叶茂，长成一棵顶天立地的参天大树。而那时回望，我们会感激今天这份克制的等待与深情的守候。&lt;/p&gt;&lt;p&gt;&lt;br style=&quot;text-align: left;&quot;/&gt;&lt;/p&gt;</description><pubDate>Tue, 18 Nov 2025 15:08:23 +0800</pubDate></item><item><title>alpine安装图形界面Xfce 【转】</title><link>http://xb6.cn/post/274.html</link><description>&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;alpine安装图形界面Xfce，这个官方文档很细：https://wiki.alpinelinux.org/wiki/Xfce_Setup#Prerequisites&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;我只是做个记录，做个笔记好日后观看。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;&lt;img class=&quot;ue-image&quot; src=&quot;http://xb6.cn/zb_users/upload/2025/11/202511111762825287386662.png&quot; alt=&quot;VirtualBox_alpine_11_11_2025_09_42_18.png&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;setup-xorg-base&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;这是图形界面的基础&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;setup-xorg-base&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;AI写代码&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;安装Xfce相关&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;apk&amp;nbsp;add&amp;nbsp;xfce4&amp;nbsp;xfce4-terminal&amp;nbsp;xfce4-screensaver&amp;nbsp;lightdm-gtk-greeter&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;配置&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;启动dbus（桌面总线）服务：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;#&amp;nbsp;rc-service&amp;nbsp;dbus&amp;nbsp;start&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;使dbus在启动时启动：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;#&amp;nbsp;rc-update&amp;nbsp;add&amp;nbsp;dbus&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;启动Xfce&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;使用显示管理器（图形登录）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;如果软件包lightdm-gtk-greeter已安装在上面，则lightdm显示管理器可能会启动以新用户图形登录。&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;rc-service&amp;nbsp;lightdm&amp;nbsp;start&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;一旦确认它确实有效，就可以在引导过程中启用lightdm来启动：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;rc-update&amp;nbsp;add&amp;nbsp;lightdm&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;命令行启动&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;apk&amp;nbsp;add&amp;nbsp;xinit
xint&amp;nbsp;/usr/bin/startxfce4&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;至此图形化界面就可以正常出来了。&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;中文&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;首选配置中文语言环境，请参考：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;《alpine linux配置中文语言环境》&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;https://blog.csdn.net/lxyoucan/article/details/117165981&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;编辑~/.xprofile文件&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;增加如下内容：&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;export&amp;nbsp;LANG=zh_CN.UTF-8&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;中文字体安装&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;在没有安装中文字体的情况下会乱码，所以要安装一下。&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:bash;toolbar:false&quot;&gt;apk&amp;nbsp;add&amp;nbsp;font-noto-cjk&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;刷新字体缓存&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;复制完字体运行&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;fc-cache -vf&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;这样中文字体就不乱码了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;中文输入法&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap&quot;&gt;fcitx5&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 11 Nov 2025 09:38:32 +0800</pubDate></item></channel></rss>