我需要在接口控制处理器上运行一个用于嵌入式硬件盒的Web服务。该供应商声称,因为它运行Linux我应该能够编译和运行我想要的任何东西。然而,因为它是一个非常硬件约束的平台(400MHz PPC,128 MB RAM),我怀疑这是一个有点乐观的评估。
不幸的是,目前我无法从EE的手中撬几天来尝试在硬件上测试内容,看看哪些会起作用或哪些起作用。通过专有连接器与盒子中的所有其他控制器连接的需求也意味着“使用rPI而不是”的任何内容都不是一个严肃的选择,即使它使我的工作更容易。
答案 0 :(得分:1)
一种可能性是使用 qemu 创建一个虚拟机,并在其上放置一个像busybox这样的小型Linux系统。
裸机Linux系统在8 MB上运行得很好,最小的Debian 7系统需要大约32 MB内存。
您可以从一些linux-ppc映像开始,安装node.js,抛弃您不需要的所有内容,然后查看它如何以128 MB的速度运行。
答案 1 :(得分:1)
对于运行,交叉编译和测试 OpenWRT 有一个很棒的SDK。我正在使用它与git和这个Makefile:
include $(TOPDIR)/rules.mk
SRC_REPO:=~/Projects/openwrt/projectname/ #git repo
PKG_NAME:=projectname
PKG_VERSION:=$(shell (git ls-remote $(SRC_REPO) | grep refs/heads/master | cut -f 1 | head -c 7))
PKG_RELEASE:=2
PKG_BUILD_DIR:=$(BUILD_DIR)/projectname-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
define Package/projectname
SECTION:=MyProjects
CATEGORY:=MyProjects
TITLE:=configuration utility
DEPENDS:=+lua-wsapi-base +luafilesystem +lighttpd +lua-cjson +lighttpd-mod-rewrite +lighttpd-mod-cgi
endef
define Package/projectname/description
configuration utility
endef
define Build/Prepare
git clone $(SRC_REPO) $(PKG_BUILD_DIR)
endef
define Build/Compile
cd $(PKG_BUILD_DIR); make clean build dist
endef
define Package/projectname/install
$(CP) $(PKG_BUILD_DIR)/dist/* $(1)/
endef
$(eval $(call BuildPackage,projectname))
对于嵌入式系统上的网站,我使用 AngularJS (Ubiquiti在其新产品上使用BackboneJS)。想法是将逻辑从设备移动到浏览器并通过api控制它。
对于API实现,我使用 Lua 而不是 CGI 。另一种可与CGI兼容的语言是PHP-CI(PHP-2 afaik的分支),Perl,Bash,Python或编译C \ C ++代码。