本文記錄了在Tiny4412開發板上,構建基於ZigBee無線傳感網絡的環境監測系統的完整過程,涵蓋Linux系統配置、Boa輕量級Web服務器移植、SQLite嵌入式數據庫移植三大核心模塊。
參考博客:Tiny4412 Linux系統佈置指南。完成交叉編譯工具鏈配置、內核編譯、根文件系統構建、U-Boot/Kernel/Rootfs燒錄等基礎工作,確保開發板正常啟動並具備網絡連通性。
Boa是單任務HTTP服務器,適合嵌入式設備。移植步驟:
wget https://www.boa.org/boa-0.94.14rc21.tar.gzcd /home tar zxf boa-0.94.14rc21.tar.gz cd boa-0.94.14rc21 ./configure cd src # 修改Makefile,指定交叉編譯器 CC=arm-linux-gcc CPP=arm-linux-gcc -E
make arm-linux-strip boa # 去除符號表,減小體積
boa可執行文件複製到開發板/bin目錄。boa.conf(關鍵修改項):
User 0 Group 0 #ErrorLog /var/log/boa/error_log # 註釋掉,避免權限問題 #AccessLog /var/log/boa/access_log # 註釋掉 ServerName www.your.org.here # 必須設置,否則啟動失敗 ScriptAlias /cgi-bin/ /var/www/cgi-bin/ # CGI與網頁目錄
# 開發板上執行 cd /etc; mkdir boa cp boa.conf /etc/boa/ cd /var; mkdir www; cd www; mkdir cgi-bin cp /www/index.html /var/www/ # 測試頁面 # 複製主機 /etc/mime.types 到開發板 /etc/
/bin/boa # 若提示 "Address already in use",ps找到進程kill後重試
SQLite輕量、無服務器進程,適合嵌入式存儲。移植步驟:
wget https://www.sqlite.org/sqlite-autoconf-3070701.tar.gz(版本號根據最新調整)cd /home tar zxf sqlite-autoconf-3080403.tar.gz # 實際文件名以下載為準 cd sqlite-autoconf-3080403 mkdir install CC=arm-linux-gcc ./configure --host=arm-linux --prefix=`pwd`/install make && make install
install目錄下包含include、lib、bin、share四個目錄。
bin/sqlite3複製到開發板/bin。lib/libsqlite3.so.0.8.6複製到開發板/lib。cd /lib; ln -s libsqlite3.so.0.8.6 libsqlite3.so.0sqlite3進入交互式命令行,創建表、插入查詢數據正常,即移植成功。
arm-linux-gcc在PATH中,或在Makefile中使用絕對路徑。ldd檢查可執行文件依賴,缺失庫需同步拷貝到開發板/lib並執行ldconfig。User 0; Group 0;生產環境建議創建專用用戶降低權限。Content-Type: text/html\n\n頭部,否則瀏覽器顯示異常。此系統驗證了在資源受限的ARM開發板上構建完整Web數據服務的可行性,為後續擴展(如添加MQTT、WebSocket實時推送)奠定基礎。