當前位置:首頁 » 編程軟體 » openwrt編譯模塊

openwrt編譯模塊

發布時間: 2025-01-14 00:40:25

⑴ openwrt編譯ipk時怎麼找到模塊

編譯的時候
以下為網友遇到的問題
Package helloworld is missing dependencies for the following libraries: libc.so.6 libpthread.so.0
缺少類庫,然後其實我發現我的類庫在系統里是存在的:
locate libc.so.6
結果:
/lib/i386-linux-gnu/libc.so.6
/lib/i386-linux-gnu/ libpthread.so.0
/lib64/libc.so.6
但是我的應用程序用到了 Libpthread,所以提示 少了2個依賴庫。

⑵ openwrt環境搭建、編譯以及版本說明

在構建openwrt環境時,過程相對直接,主要涉及依賴庫的安裝和固件的編譯。MTK官方固件可能會帶來一些編譯難題。下面詳細介紹幾個關鍵步驟和可能遇到的問題處理。

首先,關於ubuntu版本選擇,建議使用較低版本,如ubuntu16,因為它能更好地兼容MTK官方固件的編譯需求。對於更高版本,可能會出現編譯失敗。對於開源代碼,盡管最新版本無問題,但低版本可能需要額外安裝python3.0或以上版本。

在編譯過程中,可能會遇到各種錯誤,例如缺少help2man庫。解決辦法是下載官方版本(如help2man-1.49.2.tar)安裝,或者使用命令行安裝。遇到文件deny許可權問題,只需賦予最高許可權即可消除報錯。

另外,可能需要在~/.bashrc文件中添加"export LC_ALL=C",然後source該文件以修正編譯時的語言問題。遇到其他問題,可以參考kuangzuxi博主的博客鏈接獲取解決方案。

依賴庫的安裝是成功編譯的基礎,而資源的更新則可通過腳本文件中的命令進行。編譯命令通常使用"make V=99",如果有多核可用,可以使用"make V=s -jx",其中"x"代表核心數。初次編譯耗時較長,可選擇多核,遇到問題時則切換至單核模式定位問題。

如上所述,通過這些步驟,您可以順利地在openwrt環境中進行搭建、編譯和資源管理,確保代碼的正常運行。

⑶ 如何為一個新路由器編譯openwrt

我這段時間在學習openwrt的編譯,教程看了幾十遍,設備是hg255d,我想自己為其編譯一個固件,我的編譯過程如下圖所示(用的trunk版):

⑷ openwrt sbin/wifi 是哪些源文件編譯而來的

1. make menuconfig
這次openwrt升級後, 編譯完刷上固件,openwrt會自動進入failsafe模式。怎麼編譯都不行。 後來發現, 新的固件裡面選擇了 Kernel Moles\Other moles\kmod-button-hotplug 模組。這個模組在啟動的時候,觸發了"f"或者「enter」按鍵,所以在啟動的過程中就自動進入了failsafe模式。取消選擇後,一切正常。
2. 不要整個LUCI, 只是要Luci rpc模塊的話, Luci\Collection\Luci不要選擇。 則整個web界面都不會被安裝。只有rpc的功能會存在。
2. Openwrt默認不開啟wifi,要開啟的話, 修改這個文件: openwrt/trunk/package/kernel/mac80211/files/lib/wifi/mac80211.sh. 滾到文件最後, 注釋掉
# REMOVE THIS LINE TO ENABLE WIFI:
#option disabled 1

3. openwrt默認開機啟動ssh的方法
http://www.2cto.com/os/201304/204073.html
2.1 Openwrt下的路徑:package/network/services/dropbear/files/dropbear.config
[openwrt@root files]$ vim dropbear.config
1config dropbear
2 option PasswordAuth 'on'
3 option RootPasswordAuth 'on'
4 option Port '22'
5 option Interface 'lan'
6# option BannerFile '/etc/banner'

openwrt/trunk/package/base-files/files/etc/shadow
root:$1$uml/DyCk$QHYqbMVYwxtE4Tk.SVifM.:15838:0:99999:7:::
密碼:123456
4. Luci 的文件拷貝到
rpc.lua 拷貝到 openwrt/trunk/feeds/luci/moles/rpc/luasrc/controller
openwrt/trunk/feeds/luci/libs/web/luasrc

⑸ 如何為現有的openwrt編譯一個opkg上沒有的軟體

一、安裝編譯環境(以ubuntu10.10為例)
依次輸入以下命令:
1.ubuntu開發環境需要的軟體:
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make
autoconf gettext texinfo unzip sharutils subversion libncurses5-dev
ncurses-term zlib1g-dev gawk
sudo apt-get update
2.創建目錄
mkdir openwrt
3.獲取OpenWrt源代碼和安裝包,更新
svn checkout svn://svn.openwrt.org/openwrt/backfire
cd backfire
./scripts/feeds update -a
./scripts/feeds install -a
4.配置編譯選項
make menuconfig
在target system里選擇Broadcom BCM63xx,根據需要選擇其他的軟體,
*:表示該模塊直接編譯到核心中
M:該模塊以被核心支持,可以後再安裝
空白:不支持該模塊
具體模塊的起什麼作用需要多google;
5.編譯選項配置保存後,開始編譯
make V=99
V=99表示輸出詳細的debug信息;
二、編譯准備
1.下載源文件
下載地址:http://ftp.awk.cz/cntlm/ ,最新的版本是0.91rc6;
2.獲取md5sum碼
進入下載文件目錄,在終端里輸入
md5sum cntlm-0.91rc6.tar.gz
獲得md5驗證碼:
3.編寫makefile文件
在openwrt/backfire目錄中的package目錄下新建cntlm目錄,在cntlm目錄下新建文件,命名為makefile,編輯makefile文件,加入如下內容:
---------------------------------------------------------------------------------------------------------------------------
#
# Copyright (C) 2006-2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=cntlm
PKG_VERSION:=0.91rc6
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://ftp.awk.cz/cntlm/
PKG_MD5SUM:=

PKG_INSTALL:=1

include $(INCLUDE_DIR)/package.mk

define Package/cntlm
SUBMENU:=Proxy Servers
SECTION:=net
CATEGORY:=Network
TITLE:=Cntlm is a Fast NTLM Authentication Proxy
URL:=http://cntlm.sourceforge.net/
endef

define Package/cntlm/install
$(INSTALL_DIR) $(1)/usr/sbin
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/cntlm $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/share/man/man1
$(CP) $(PKG_INSTALL_DIR)/usr/share/man/man1/$(PKG_NAME).1 $(1)/usr/share/man/man1
$(INSTALL_DIR) $(1)/etc/
$(CP) $(PKG_INSTALL_DIR)/etc/cntlm.conf $(1)/etc/
endef

$(eval $(call BuildPackage,cntlm))
---------------------------------------------------------------------------------------------------------------------------
4.編寫patch文件
由於BCM63xx核心是big endian,而我們常用的intel或AMD的cpu都是little
endian的,cntlm雖然能夠自己檢測編譯環境的endian,但我們是在交叉編譯環境中編譯,cntlm檢測出來的還是ubuntu系統的endian,因此需要設置手動endian為big
endian。具體就是將源碼文件中的config/endian.c文件的rc設定為0.
將源碼文件中的endian.c文件分別復制到a目錄下的config目錄和b目錄下的config目錄,打開b目錄下的config目錄中的endian.c文件,並將其修改為:
-------------------------------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdint.h>

int main(int argc, char **argv) {
int rc;

rc = 0;
printf("%s\n", rc ? "little endian" : "big endian");

return rc;
}
---------------------------------------------------------------------------------------------------------------------------
然後保存。
運行:
diff -Naur a/config/endian.c b/config/endian.c >endian.patch
endian.patch文件內容如下:
---------------------------------------------------------------------------------------------------------------------------
--- a/config/endian.c 2007-08-20 07:23:17.000000000 +0800
+++ b/config/endian.c 2010-11-01 18:36:32.000000000 +0800
@@ -1,15 +1,11 @@

#include <stdio.h>

#include <stdint.h>

-uint8_t num[] = { 0xEF, 0xBE };

-/*
- * RC: 1 = LE, 0 = BE
- */

int main(int argc, char **argv) {
int rc;

- rc = (*((uint16_t *)num) == 0xBEEF);
+ rc = 0;
printf("%s\n", rc ? "little endian" : "big endian");

return rc;
---------------------------------------------------------------------------------------------------------------------------
將endian.patch文件復制到package/cntlm/patches/目錄下(沒有patches目錄就新建一個)。

三、編譯
1.選定安裝包
終端輸入:
make menuconfig
在Network——》Proxy Severs中選擇cntlm;
2.開始編譯
終端輸入:
make package/cntlm/compile V=99
中間可能會出現一些提示(Note),可以不用理會。編譯完成後在bin/packages目錄下可以看到cntlm_0.91rc6-1_brcm63xx.ipk文件啦。

四、補充
上面提到在編譯過程中出會現提示(Note),一般如下:
utils.c:1: note: someone does not honour COPTS correctly, passed 0 times
這是由於cntlm源碼文件中CFLAG的設置是覆蓋而不是續接,與openwrt要求不同,在openwrt一般寫成CFLAG += 的方式。可以通過如下修改去除note:
將源碼包中的Makefile文件復制到a目錄和b目錄,打開b目錄下的Makefile文件,作如下修改:
CFLAGS+=$(FLAGS)
即增加上面的「+」號,保存。
運行:
diff -Naur a/Makefile b/Makefile > makefile.patch
得到的makefile.patch文件如下:
---------------------------------------------------------------------------------------------------------------------------
--- a/Makefile 2010-04-29 19:18:58.000000000 +0800
+++ b/Makefile 2010-11-09 20:17:33.405177000 +0800
@@ -16,7 +16,7 @@

CC=gcc

VER=`cat VERSION`

OBJS=utils.o ntlm.o xcrypt.o config.o socket.o acl.o auth.o http.o forward.o direct.o scanner.o pages.o main.o
-CFLAGS=$(FLAGS) -std=c99 -Wall -pedantic -O3 -D__BSD_VISIBLE
-D_ALL_SOURCE -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=200112
-D_ISOC99_SOURCE -D_REENTRANT -DVERSION=\"`cat VERSION`\" -g
+CFLAGS+=$(FLAGS) -std=c99 -Wall -pedantic -O3 -D__BSD_VISIBLE
-D_ALL_SOURCE -D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=200112
-D_ISOC99_SOURCE -D_REENTRANT -DVERSION=\"`cat VERSION`\" -g

OS=$(shell uname -s)

OSLDFLAGS=$(shell [ $(OS) = "SunOS" ] && echo "-lrt -lsocket -lnsl")

LDFLAGS:=-lpthread $(OSLDFLAGS)
---------------------------------------------------------------------------------------------------------------------------
將makefile.patch文件復制到package/cntlm/patches目錄下,重新編譯即可。

⑹ 在openwrt中怎麼編譯自定義的內核模塊

開發環境為ubuntu.首先搭建編譯環境。
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev gawk asciidoc libz-dev git-core build-essential libssl-dev
下面就是下載源碼,源碼分兩種,一種是最新版但不穩定,就是trunk版,一種是相對穩定版,
如果不是最新下載,最好定期更新代碼,命令為
./scripts/feeds update –a
./scripts/feeds install –a
接著就是編譯了。編譯方法如下:
make defconfig
make menuconfig進入定製界面,選擇自己的設備類型。
make V=99

下面就是增加內核模塊的方法了

進入package目錄,創建模塊目錄
cd backfire/package
mkdir example
進入example目錄,創建Makefile文件和代碼路徑
cd example
touchMakefile
mkdir src

熱點內容
struts源碼學習 發布:2025-01-14 04:02:28 瀏覽:685
李根資料庫 發布:2025-01-14 03:44:52 瀏覽:341
php資料庫刪除 發布:2025-01-14 03:35:51 瀏覽:293
上傳進度條代碼 發布:2025-01-14 03:32:01 瀏覽:638
電腦怎樣創建文件夾 發布:2025-01-14 03:31:20 瀏覽:658
王朝腳本 發布:2025-01-14 03:26:08 瀏覽:175
dcloud源碼 發布:2025-01-14 03:26:00 瀏覽:301
梅林IPTV腳本 發布:2025-01-14 03:23:46 瀏覽:633
c語言if語句執行順序 發布:2025-01-14 03:22:19 瀏覽:990
浙江大學c語言答案 發布:2025-01-14 03:18:53 瀏覽:666