<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>板角青 &#8211; 张三太爷</title>
	<atom:link href="https://www.somedoc.net/tag/%E6%9D%BF%E8%A7%92%E9%9D%92/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.somedoc.net</link>
	<description>看前面，黑洞洞</description>
	<lastBuildDate>Thu, 24 Jan 2019 06:00:14 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://www.somedoc.net/wp-content/uploads/2016/12/cropped-dandycheung-1-32x32.jpg</url>
	<title>板角青 &#8211; 张三太爷</title>
	<link>https://www.somedoc.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>几个小玩意儿</title>
		<link>https://www.somedoc.net/2019/01/24/%e5%87%a0%e4%b8%aa%e7%8e%a9%e6%84%8f%e5%84%bf/</link>
					<comments>https://www.somedoc.net/2019/01/24/%e5%87%a0%e4%b8%aa%e7%8e%a9%e6%84%8f%e5%84%bf/#respond</comments>
		
		<dc:creator><![CDATA[张三太爷]]></dc:creator>
		<pubDate>Thu, 24 Jan 2019 03:26:12 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[板角青]]></category>
		<guid isPermaLink="false">http://www.somedoc.net/?p=3933</guid>

					<description><![CDATA[最近业余时间突然半脚踏进了小板子的地界里，手上拿了两三片 O <a href="https://www.somedoc.net/2019/01/24/%e5%87%a0%e4%b8%aa%e7%8e%a9%e6%84%8f%e5%84%bf/" class="more-link">[&#8230;]</a>]]></description>
										<content:encoded><![CDATA[<p>最近业余时间突然半脚踏进了小板子的地界里，手上拿了两三片 Orange Pi Zero 玩耍。先后在上面刷了 OpenWrt、Ubuntu Server，还有 armbian。OpenWrt 上的 Python 貌似有点问题，Ubuntu Server 略大，而且当要保护 SD 卡免受频繁读写之虞要用 overlayroot 的时候它（16.04）竟然不支持。目前看起来 armbian 不错。</p>
<p>看板子的配置，自带有一块小小的 flash 芯片，2MB 大小。就琢磨着放个 u-boot 上去，找来找去发现了一个外国小伙儿的成果：<a href="https://github.com/hyphop/miZy-uboot">miZy uboot</a>。作为一个经常不走寻常路的程序员，我决定在 WSL 里面进行编译。把源码克隆下来后，按照文档，有两个步骤，一是执行 uboot_prepare，一是执行 uboot_build，结果第一个命令执行就不能成功，看输出的信息，说是 invalid variable，貌似和 PATH 里面有空格有关，但是打开脚本，又难以看出端倪。几番查看均无成效，最后还是在老掉牙的 X200 上搞定了，编译花了总有二十多分钟。没办法，系统在 SD 卡上，总容量才 16GB，然后就把代码克隆到了 ExpressCard 那块伪 SSD 上了，那盘实测写入速度 10MB/s，编译又是个小文件无数的过程，因此慢也无可厚非。</p>
<p>待得又有一点小空的时候返回头来审视 WSL 环境里的问题，在仍无头绪的情况下，下载安装了个据说可以专门调试 shell 脚本的 bashdb。可气的是，这个玩意儿一安装好，脚本执行就正常了！后来回忆了一下，貌似期间我还 apt upgrade 了，所以现在难以判断到底是 bash/dash shell 自己更新后消除了 bug，还是 bashdb 施展了魔法。脚本执行正常，只不过是正常输出了错误信息，告知所需的编译器没有安装。输出的错误信息只会说 arm linux gcc 没有找到，但如果你按照这个信息正常安装 gcc 的版本，你就一定会走到邪路上。幸好这个问题老夫在 X200 上已经解决过一次，方法就是到 OpenWrt 的官方下载站（https://downloads.openwrt.org/releases/18.06.1/targets/armvirt/32/）下载所需的编译工具链（openwrt-sdk-18.06.1-armvirt-32_gcc-7.3.0_musl_eabi.Linux-x86_64.tar.xz），解压后把 bin 所在目录加入到 PATH 里。到这儿就差一步了，打开 uboot_build 脚本，找到“grep -q musl-”这个串，把最后那个短线（也就是减号）去掉，保存。这一检测条件之所以过不去，大概跟脚本编写时到现在这段时间里 openwrt 编译工具链自身的命名变化有关。总之，这样就会 OK。</p>
<p>编出来的二进制文件，如何刷写到 SPI flash 里，有两种办法。一个是板子上的系统自己搞，armbian 把 spi-sunxi 和 spi-dev 内核模块启用后可解，但是好像官方支持的是 3.x 的 Linux 内核。在板的 armbian 内核岸本已经是 4.19，比我工作用环境的内核都新，懒得折腾。第二种是用 USB 线把板子接到电脑上，用 sunxi-fel 工具往里写，据说现成的主线发布里面的工具还不支持，需要找一个特定的分支。最后的结果是写进去了，怎么写的我不知道，另一个爱动手的小伙伴搞定的。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.somedoc.net/2019/01/24/%e5%87%a0%e4%b8%aa%e7%8e%a9%e6%84%8f%e5%84%bf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
