当前位置:首页 » 编程软件 » openwrt编译教程

openwrt编译教程

发布时间: 2022-01-21 12:40:00

A. openwrt编译需要哪些依赖库

openwrt mysql引用库
1. 用opkg安装myserver及其依赖包
opkg update
opkg install libpthread libncurses libreadline mysql-server

2. 创建mysql数据目录
mkdir -p /home/data/mysql
mkdir -p /home/data/tmp

3. 修改配置文件
vi /etc/my.cnf
datadir = /home/data/mysql/ #数据保存路径
tmpdir = /home/data/tmp/
bind-address = 0.0.0.0 #绑定的ip地址

4. 初始化建库
mysql_install_db --force

5. 启动mysql,并设定开机启动
/etc/init.d/mysqld start
/etc/init.d/mysqld enable

6. 设定密码
mysqladmin -u root password 'new-password'

B. 有谁知道到关于OpenWrt固件编译开发的入门的书籍在那里买 或者书名叫什么

编译openwrt固件并没有想象的那么复杂,我也是个小白,以下内容是我将网络上的编译教程稍微进行了一下整合。因为我发现很多编译教程没有说明如何更改flash相关配置。

安装ubuntu,不赘述。
注意在安装完成后,root不能直接登录,需要设置密码,设置方法,自己网络一下。

如果是虚拟机安装,将虚拟机的网卡配置为桥接模式;
**************以下操作需要在root用户下操作************************
编辑/etc/networt/option文件夹下的interfaces,将iface eth0 inet dhcp配置为dhcp模式,
然后执行/etc/init.d/networking restar即可自动获取到ip地址(此方法适用于家中或单位使用dhcp获取IP地址的场合,如果为固定地址,请自行研究)。互联网联通以后执行以下:

sudo apt-get update
安装编译需要的组件:
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install make
sudo apt-get install autoconf
sudo apt-get install gettext
sudo apt-get install texinfo
sudo apt-get install unzip
sudo apt-get install sharutils
sudo apt-get install subversion
sudo apt-get install libncurses5-dev
sudo apt-get install ncurses-term
sudo apt-get install zlib1g-dev
sudo apt-get install gawk
sudo apt-get install asciidoc
sudo apt-get install libz-dev
如果编译过程中提示缺少某个组件,同样使用sudo apt-get install安装即可
编译环境搭建完成
**************注意:以下操作需要在自己建的用户下操作************************
mkdir openwrt 创建一个openwrt文件夹
cd openwrt 进入openwrt文件夹
svn co svn://svn.openwrt.org/openwrt/branches/backfire
或者svn co svn://svn.openwrt.org/openwrt/trunk下载官网的源码
注:backfire和trunk为两个不同分支的openwrt源码,backfire据说较为稳定,但是支持的路由器没有trunk多,trunk更多称之为测试版,但编译好后使用也没什么问题。编译的时候只需执行以上一条命令即可。执行完成后,会在openwrt下生成目录,使用backfire源码生成backfire目录,trunk同理。
然后cd trunk或者cd backfire
Svn up
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
进入定制界面(里面可以选择芯片的型号,集成的组件等等,根据实际情况选择,多编译几次就熟悉了)
使用make defconfig,检查编译环境,如要报错参考以下:
注:较常见的问题是编译时不能使用root用户编译,如果使用root登录,需要使用su 用户名切换到非root用户;如果切换用户后,报权限错误,再切换到root用户,使用 sudo chown -R [自己用户名] trunk(如果编译的是backfire源码,此处trunk替换为backfire),然后返回自己的用户名,重新进行编译。
make V=99
(开始编译)
剩下的就是等待了,第一次编译需要的时间相对比较长,这个跟你的电脑配置和网速有关。
以上为路由器未更改flash大小的编译过程;如果要编译非标准大小的flash固件,需要更改编译环境中的一些文件,以703N,使用trunk源码编译为例(trunk与backfire需要更改的文件不一样)
新版本trunk,703N编译8M固件需要更改以下两个文件:
1、 /turnk/tools/firmware-utils/src/mktplinkfw.c
在mktplinkfw.c中找到703N的相关属性,
.id = "TL-WR703Nv1",
.hw_id = HWID_TL_WR703N_V1,
.hw_rev = 1,
.layout_id = "8Mlzma",(改成8)
2、 /trunk/ target/linux/ar71xx/image/Makefile
Makefiel中找到以下内容
$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,8Mlzma))
将4改成以上的8;

修改完成以上两个文件后,即可make V=99进行编译。

Backfire源码需要改动的文件,第一个与trunk一样,第二个文件位于
openwrt/backfire/target/linux/ar71xx/files/arch/mips/ar71xx目录下,找到对应的设备型号进行更改即可。

编译完成后,在bin/ar71xx目录下会有固件产生,固件名必包含编译的路由器型号,如果没有这两个文件,说明编译失败,有可能为编译时候选择的包太多,需重新选择后进行编译。

以上编译未进行相关配置文件的修改,如想修改配置文件,如默认打开无线等等,请自己网络/google。

注:以上大部分内容均来自互联网,我仅进行了整合。

C. 如何为现有的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目录下,重新编译即可。

D. openwrt怎么编译指定的目标版

编译流程
编译专属于您的设备的特定Openwrt固件以一下五个步骤:
通过Subversion命令获得源代码;
更新(或安装) package feeds[package feeds无法确切翻译,待译吧);
创建一个默认配置以检查编译环境是否搭建好了 (假如需要的话);
用Menuconfig来配置即将编译生成的固件映像文件的配置项;
最后开始编译固件;

E. 编译OpenWrt系统求助

编译openwrt固件并没有想象的那么复杂,我也是个小白,以下内容是我将网络上的编译教程稍微进行了一下整合。因为我发现很多编译教程没有说明如何更改flash相关配置。 安装ubuntu,不赘述。 注意在安装完成后,root不能直接登录,需要设置密码,

F. 想制作openwrt固件,先要学习些什么

  1. 先认识了解工具/原料,如PC机、路由器、网线等

  2. 学习搭建编译环境,编译建议在Linux下进行

  3. 获取openwrt源码、配置软件源等

  4. 附一个教程,您参考参考


    本教程的编译环境:win7 专业版+VMwareWorkstation6.5虚拟机+Ylmf OS 3.0

    编译的过程中要保持电脑联网

    搭建编译环境

    应用程序--附件--终端

    sudo apt-get update (更新)

    安装编译需要的组件:

    sudo apt-get install gcc

    sudo apt-get install g++

    sudo apt-get install binutils

    sudo apt-get install patch

    sudo apt-get install bzip2

    sudo apt-get install flex

    sudo apt-get install bison

    sudo apt-get install make

    sudo apt-get install autoconf

    sudo apt-get install gettext

    sudo apt-get install texinfo

    sudo apt-get install unzip

    sudo apt-get install sharutils

    sudo apt-get install subversion

    sudo apt-get install libncurses5-dev

    sudo apt-get install ncurses-term

  5. sudo apt-get install zlib1g-dev

    sudo apt-get install gawk

    sudo apt-get install asciidoc

    sudo apt-get install libz-dev

    编译环境搭建完成

    mkdir openwrt 创建一个openwrt文件夹

    cd openwrt 进入openwrt文件夹

    svn co svn://svn.openwrt.org/openwrt/branches/backfire 下载官网的源码

    /scripts/feeds update -a 更新软件包

    /scripts/feeds install -a 安装软件包

    make menuconfig 进入定制界面(里面可以选择芯片的型号,集成的组件等等,根据实际情况选择)

    defconfig

    make V=99 (开始编译)

    剩下的就是等待了,第一次编译需要的时间相对比较长,这个跟你的电脑配置和网速有关。

    下面以编译TP-LINK 741N的openwrt固件为例,只编译基本的功能:

    make menuconfig

    Target System---AR71xx/AR7240/AR913x/AR934x CPU型号

    Target Profile---TP-LINK 741

    LuCI—>Collections—– <*> luci 添加Luci

    LuCI—>Translations—- <*> luci-i18n-chinese 添加中文

    EXT----YES

    make V=99 开始编译

    成功后在bin文件夹里有编译好的固件。

G. openwrt怎么编译应用程序

:Openwrt 官方正式的发行版是已编译好了的映像文件(后缀名bin或trx、trx2),此映像文件可从Openwrt官方网站的下载页面中轻松获取到,连接地址为 OpenWrt官方网站。这些编译好的映像文件是基于默认的配置设置,且只针对受支持的平台或设备的。

H. 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

I. openwrt怎么编译自己定制的版本

如果你只是要编译一个自定义的固件(默认带什么软件,不带什么软件,自定义默认的配置等等),那推荐你用ImageBuilder,简单快速,省心省力 你要是需要自己开发软件包,用OpenWRT的SDK,直接出ipk文件 要完全重写就buildroot

J. 【疑问】openwrt里如何使用make编译源码

这有一个安装包,不知对你有用没。在X86虚拟机安装后,就有make了。不过我这还是用不了,提示没有cc 命令。 http://downloads.openwrt.org/backfire/10.03.1/x86_generic/packages/make_3.81-1_x86.ipk

热点内容
新预算法的亮点 发布:2024-12-22 16:36:30 浏览:959
linux命令行快捷键 发布:2024-12-22 16:33:27 浏览:10
淘宝网怎么上传宝贝 发布:2024-12-22 16:30:53 浏览:753
服务器gps是什么意思 发布:2024-12-22 16:10:43 浏览:996
iqoo安卓11变声器在哪里 发布:2024-12-22 15:46:45 浏览:252
ie锁定初始密码在哪里找 发布:2024-12-22 15:44:48 浏览:296
linuxtcp窗口 发布:2024-12-22 15:34:24 浏览:948
安卓官翻机和原装有什么区别 发布:2024-12-22 15:34:24 浏览:662
linux挂载的磁盘 发布:2024-12-22 15:34:23 浏览:234
密码不允许含有字符是什么意思 发布:2024-12-22 15:30:15 浏览:169