标签存档: Linux

来了来了,用单片机 ESP32-S3 跑 RISC-V 模拟器运行 Linux,这次启动只要 8 秒

在之前一篇文章 《用 7 毛钱的 CH32V003 单片机跑 Linux,启动需要 5 分钟》 中介绍了开源项目 linux-ch32v003mini-rv32ima,可以在 7 毛钱的单片机 CH32V003 上配合外置 PSRAM 来运行一个 RSIC-V 模拟器,并且可以运行一个裁剪过的 Linux 系统镜像。

但是 CH32V003 的性能不太强劲,按作者介绍启动 Linux 系统需要 5 分钟,为了更好地学习一下 RSIC-V 模拟器,我决定把它移植到 ESP32-S3 来试一下看看。

PS. 搞这个也是仅供娱乐了,毕竟 ESP32-S3-N16R8 20 多元的价格,可以买像 V3S 这样正经 ARM SoC 来跑 Linux 了。

移植 mini-rv32ima

在上一篇文章中,已经大概介绍了移植 …

阅读全文 »

用 7 毛钱的 CH32V003 单片机跑 Linux,启动需要 5 分钟

在接触到只需要 7 毛钱的单片机 CH32V003 之后,拿它做了好几个 DIY 项目,像钥匙扣游戏机什么的,感觉还是比较有意思的,虽然资源相比 STM32F103 少很多,但是价格实在太便宜了。

在使用 CH32V003 的过程中,也上网搜了一圈使用它的项目,其中有一个 linux-ch32v003 就很有意思,作者的介绍就是“在一个 0.15 美元的单片机上运行 Linux”,我也克隆了这个项目学习了一下。

linux-ch32v003

Linux on a $0.15 RISC-V microcontroller

项目地址: https://github.com/tvlad1234/linux-ch32v003

这个项目主要解决的问题就是 CH32V003 可用内存太少的问题,作者使用了一个外围的 PSRAM 来扩展内存,实现了硬件 SPI 操作相关的库。

模拟器本身,其实是另外一个开源项目 mini-rv32ima,一个 RISC-V 的模拟器。

linux-ch32v003 主要的目录结构如下:

linux-ch32v003-01

项目目录中主要的内容:

  • emulator:模拟器相关代码,来自 mini-rv32ima 项目
  • hardware:测试用的硬件工程,使用 KiCAD 开发
  • hw_spi:硬件 SPI 库
  • linux:编译


阅读全文 »

使用 ukraine 建设 node.js 私有云

源由

node.js 越来越流行,托管 node.js 应用的云服务也越来越多,例如 nodejitsuheroku 等。

但是这些云服务通常有这样那样的限制,又或者是要收费的。而有些时候我通常不需要跑很大的应用,或者是很稳定的应用,只是为了跑一些小的,或者是学习用的 node.js 应用,并且我也有自己的 VPS,想把这些应用托管在自己的服务器上。

于是我需要去找一个可以在自己的 VPS 上建设一个 node.js 私有云的软件。

比较

在看了 中的 DIY Platforms 后,尝试了一下其中介绍的平台:

  • nodester: 安装比较麻烦,不支持新版本的 nodejs,安装说明还是针对 node 0.4.11 的
  • CloudFoundry: 比较庞大,而且是以 vm 方式安装,不适合 VPS
  • OpenShift: 同 CloudFoundry,不只支持 node.js,安装复杂,不适合 VPS
  • Nodejitsu: Nodejitsu 开源了他们所用的 node.js 应用管理项目 haibu,haibu


阅读全文 »

在使用 Linux 系统的 NAS 上部署 Fitbit 数据同步程序

使用 Fitbit 已经三个多月了,用它来记录每天的运动量以及睡眠质量感觉很方便。

不过因为我用的电脑是笔记本,如果要同步 Fitbit 的数据,就需要把 Fitbit Base Station 连接在笔记本电脑上,然后 Fitbit 的数据才会同步到官网上。

因为家里没有 24 小时开机的电脑,所以没办法直接把 Fitbit Base Station 连接在一台电脑上实现回家自动同步。

但是家里有下载机是 24 小时运行的,于是去 Fitbit 官网看看有没有提供 Linux 下的 Fitbit 同步程序。

很不幸的是,Fitbit 官方只提供了 Windows 和 Mac OS X 版本的同步程序,没有提供 Linux 下的 Fitbit 同步程序。

昨天突然想到去网上找找看有没有非官方的 Linux 平台 Fitbit 同步程序,没想到还真找到了。

在网上找到了两个项目,用来提供跨平台的 Fitbit 同步功能。

开源的 Fitbit



阅读全文 »

高性价比 NAS+HTPC 折腾记

最近组装了一台 NAS+HTPC 合体的机器,自认为还有比较好的性价比,在折腾了两个星期之后,终于差不多搞定所有功能。这台 HTPC 使用 XBMC 作为媒体中心,使用 OpenMediaVault 作为 NAS 系统,这篇博客主要记录 OpenMediaVault 和 XBMC 的安装过程和问题。另外,因为折腾的时候有些地方来来回回搞了好多次,记录的顺序可能并不严谨。

通过 XBMC 可以直接索引所有电影,使用 themoviedb.org 来获取电影海报、介绍、演员等信息,使用 IMDb 来获取电影的评分。使用 OpenMediaVault 来管理存储,设置共享文件夹等。

在设置成功 VA-API 后,XBMC 就可以使用显卡的硬件加速了,在播放 1080P 时,CPU 占用基本在 20% 左右,还算比较不错了。

当然,在一开始我也可以选择使用 Windows 系统,XBMC 也有 Windows 版本,在 Windows 上基本也不用操心驱动程序的事情,而且 Windows 上设置 Samba 共享也是很方便的。

注意:本篇文章都是以 AMD E350 APU 来讲安装过程的,如果你用的主板并不是 …

阅读全文 »

一个路由器,两种网络,VPN和下载两不误

最近在用 Titanium 写一个 Twitter 客户端,因为要用到 OAuth 认证,所以就在手机连接 VPN,但是速度比较慢。刚好想在家里的路由器上加上 OpenVPN,昨天就折腾了一下。

在家里路由器上加上 OpenVPN 的一个主要问题是,家里的网络中还有下载机,而下载的流量是不想通过 VPN 去传输的。虽然 chnroutes 项目的路由表可以让国内的 IP 走直连,国外的 IP 走 VPN,但是 eMule 或者 BT 下载时,难免会连接到国外的用户或者服务器,这个时候也不想去浪费 VPN 的流量。

因为这些,我的想法是在路由器上做判断,如果是从下载机过来流量,就通过直接连接,如果其他机器,例如笔记本,就根据目标 IP 来判断是通过直接连接还是 VPN 来传输。

下载机是通过 LAN 连接到路由器的,本来想按进入流量的设备来判断是否为下载机,后来发现实现比较麻烦,就决定按流量来源 IP 来判断是否为下载机的数据。

准备工作

  • 运行 dd-wrt 的路由器一个,要带有 OpenVPN
  • OpenVPN 服务器一个,认证方式选择证书认证
  • Linux 知识若干

当然 dd-wrt 并不是必须的,也可以是 openwrt …

阅读全文 »