采用 NFS 实现远程挂载，ARM 开发板可以直接运行主机上的程序，而不需要下载到开发板上。 1、查看开发板 Linux 内核是否支持 NFS 执行 cat /proc/filesystems， 若有一行为 nodev nfs 则开发板 Linux 内核支持 NFS，反之需要配置内核；也可以使用动态模块的形式编译。 2、主机安装 nfs 服务 sudo apt-get install nfs-kernel-server 配置 nfs 输出目录： vim /etc/exports 在该文件中添加一行： /home/user *(rw,sync,no_root_squash) # 根据实际情况修改 /home/user 为想要的路径就行了 * 表示任意 IP 地址的主机，如果是 192.168.1.100，就表示只允许 192.168.1.100 挂载。 rw: 可擦写的权限 ，ro: 只读的权限。 sync: 资料同步写入到内存与硬盘当中 ；async: 资料会先暂存于内存当中，而非直接写入硬盘。 no_root_squash：登入 NFS 主机使用分享目录的使用者，如果是 root 的话，那么对于这个分享的目录来说，他就具有 root 的权限！root_squash：在登入 NFS 主机使用分享之目录的使用者如果是 root 时，那么这个使用者的权限将被压缩成为匿名使用者，通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。 主机启动NFS服务： sudo service nfs start # 或者 sudo service nfs-kernel-server restart 3、在开发板上挂载主机上的文件夹 mkdir /mnt/nfs mount -t nfs -o nolock 172.16.9.93:/home/matt /mnt/nfs 172.16.9.93 是主机 IP，/home/user/test 是主机共享目录，/mnt 表示将该共享目录挂载到 ARM 开发板 /mnt 目录下。 错误： mount: wrong fs type, bad option, bad superblock on... 解决方法： sudo apt-get install nfs-common
1927年，第五届索尔维会议在比利时布鲁塞尔召开。这次会议的主题是“电子和光子”，探讨了量子力学和光子辐射等领域的问题。在这次会议上，二十九位当时世界著名的物理学家在一张照片上留下了自己的身影，其中十七位是诺贝尔奖得主，包括阿尔伯特·爱因斯坦、尼尔斯·玻尔、沃纳·海森堡、埃尔温·薛定谔等。这张照片成为物理学史上一件具有里程碑意义的珍贵文物，被广泛传播并载入史册。这次会议对物理学的发展产生了深远的影响，尤其是对量子力学的发展。在会议上，物理学家们进行了激烈的讨论和辩论，探讨了量子力学的解释和描述问题，对量子力学的进一步发展产生了重要影响。 看看大家能认出几位？😁
有时需要从外网访问到家庭内网的资源，方法很多，这里说一下用 SoftEther 如何实现。 SoftEther 是日本筑波大学的一个研究项目，是一套开源的跨平台 VPN 软件，包括服务端、客户端、管理工具等组件。它可以虚拟几种网络设备：Hub、 网络适配器（Ethernet Adapter，客户端中支持）、网桥（Bridge ）、三层交换机（Switch，支持DHCP）等。支持 SSL-VPN (HTTPS)、OpenVPN、IPsec、L2TP、MS-SSTP、L2TPv3、EtherIP 等协议，并且安装简单，方便易用。 [...]
这里介绍使用 ipkg 安装的方法。ipkg bootstrap 的安装脚本在这里选择： http://ipkg.nslu2-linux.org/optware-ng/bootstrap/ 由于我的 NAS 是 X86 CPU 架构的，所以选择了 buildroot-x86_64-bootstrap.sh。 [...]
虽然群晖套件中心的工具挺丰富，但需要比较偏门的工具时很可能没有。如果能有像 apt、yum 这样的软件包管理器就好了，这个确实可以有，IPKG（Itsy Package Management System）就是这样的工具。 iPKG 是一个非常轻量级的包管理系统。它是为存储资源匮乏的 Linux 系统软件安装设计的，例如掌上电脑（曾经）。它不仅可以构建软件包，还可以方便地安装和卸载。曾在 OpenWrt 系统上较为流行。由于 ipkg 项目已不再继续开发，很多项目已转粉 opkg（从 ipkg fork 的项目）。不过这不影响我们的使用。 [...]
群晖套件中心的套件（软件包）通常是为 NAS 应用而设计、筛选和测试的，它并不是包罗万象的。有时可能需要一些额外的软件，这时可以考虑通过添加第三方套件源来达到目的。 [...]
WAV 为微软公司（Microsoft）开发的一种音频文件格式，它符合 RIFF（Resource Interchange File Format）文件规范，用于保存 Windows 平台的音频信息资源，被 Windows 平台及其应用程序所广泛支持，该格式也支持 MSADPCM，CCITT A LAW 等多种压缩运算法，支持多种音频数字，取样频率和声道，标准格式化的 WAV 文件和 CD 格式一样，也是 44.1K 的取样频率，16 位量化数字，因此在声音文件质量和 CD 相差无几。WAV 格式的音乐通常使用三个参数来表示声音，量化位数，取样频率和声道数。 WAV 文件采用的是 RIFF 格式结构。至少是由 3 个块构成，分别是 RIFF、fmt 和 data。所有基于压缩编码的 WAV 文件必须含有 fact 块。此外所有其它块都是可选的。块 fmt、Data 及 fact 均为 RIFF 块的子块。WAV 文件的文件格式类型标识符为 WAVE。 构成 RIFF 文件的基本单位称之为块（chunk）。每个 RIFF 文档是由若干个块构成。每个块（chunk）由块标识、块长度及数据等三部分所组成。块标识保存的是由 4 个 ASCII 码字符组成的块名字。如不满 4 个字符则在右边以空格充填。块长度字段占 4 个字节，保存的是当前块数据的长度，不包括块标识和块长度字段。所以一个块的实际长度为块长度字段内的数值加 8。RIFF 格式规定，只有 RIFF 及 LIST 块可以含有子块，其它的块不允许包含子块。一个 RIFF 格式文档本身就是一个块。其前 4 个字节为文档标识 RIFF，同时也是 RIFF 的块标识，标明该文档是一个有效的 RIFF 文档；第二部分为文件的数据长度，占 4 个字节，其数值为文件长度 -8；第三部分为 RIFF 块数据，前 4 个字节为文件格式类型标识，如：WAVE、AVI 等，后面其它部分为 RIFF 块的子块。 //WAV的数值均为小端模式 typedef struct WavRiff { char id[4]; //"RIFF" uint32_t size; //块长度，从下一个字段（format）首地址开始到文件末尾的总字节数，该字段的数值加 8 为文件的总长度 char format[4]; //文件格式类型："WAVE" } wav_riff_t; typedef struct WavFmt { char id[4]; //格式子块标识"fmt " uint32_t size; //格式子块长度，其数值不确定,取决于编码格式，可以是 16、 18 、20、40 等，从下个字段到格式子块结束的字节数 uint16_t format; //编码格式代码，常见的 WAV 文件使用 PCM 脉冲编码调制格式,PCM = 1 uint16_t channels; //通道数，单声道为1，双声道为2 uint32_t sample_rate; //采样频率，单位Hz uint32_t data_rate; //数据传输率 声道数×采样频率×每样本的数据位数/8，播放软件利用此值可以估计缓冲区的大小 uint16_t block_align; //块对齐字节数 = 声道数×位数/8，播放软件需要一次处理多个该值大小的字节数据,用该数值调整缓冲区 uint16_t bps; //bits per sample采样位数，存储每个采样值所用的二进制数位数。常见的位数有 4、8、12、16、24、32 } wav_fmt_t; typedef struct WavData { char id[4]; //"data" uint32_t size; //data size，从下个字段到格式子块结束的字节数 } wav_data_t; typedef struct WavHeader { wav_riff_t riff; wav_fmt_t fmt; wav_data_t data; } wav_header_t; 常见的压缩编码格式： 格式代码 格式名称 fmt 块长度 fact 块 1(0x0001) PCM/非压缩格式 16 2(0x0002 Microsoft ADPCM 18 √ 3(0x0003) IEEE float 18 √ 6(0x0006) ITU G.711 a-law 18 √ 7(0x0007) ITU G.711 μ-law 18 √ 49(0x0031) GSM 6.10 20 √ 64(0x0040) ITU G.721 ADPCM √ 65,534(0xFFFE) 见子格式块中的编码格式 40 当 WAV 文件采用非 PCM 编码时，使用的是扩展格式块，它是在基本格式块 fmt 之后扩充了一个的数据结构。该结构的前两字节为长度字段，指出后面区域的长度。紧接其后的区域称之为扩展区，含有扩充的格式信息，其长度取决于压缩编码类型。当某种编码格式（如 ITU G.711 a-law）使扩展区的长度为 0 时，长度字段还必须保留，只是长度字段的数值为 0。因此，扩展格式块长度的最小值为基本格式块的长度 16 加 2。
Disk（盘片） 光盘、磁盘等等碟形物，计算机领域常指磁盘，软盘、硬盘等。 Hard Disk（硬盘） 磁盘的一种，这里以它作为主要对象来说说。 Track（磁道） 盘面可以划分出若干同心圆环，每个圆环是一个磁道。 [...]
小米路由器在使用拨号功能上网的时候总是出现虽然有 WiFi 信号在发射，但无论内网还是外网，有线还是无线，都连不上的尴尬状态。唯有断电重启路由器才能解决，等了几个版本，都没有修复这么严重的问题。说实在的，几百块钱的小米路由器跟几十块钱的路由器摆在一起，只能算得上是一个花瓶。 电信安装的光猫终端（友华 PT632 G_2）默认只是调制解调器的功能，但其实是具备完整的路由器功能的。于是打算让小米路由器退居二线，做二级路由算了。 [...]
3D（ 3 Dimensions ），即 3 维，3 次元。何为 3D？具有长、宽、高三个维度。我们人类所处的世界就是 3D 的世界，我们世界的投影则是 2D 的，就像我们的影子。 [...]