openwrt源码修改
‘壹’ 如何编译OpenWrt
搭建编译环境。编译建议在Linux下进行。我的系统是Linux mint 17,执行以下命令,构建编译环境:
sudo apt-get update
sudo apt-get install git-core build-essential
获取openwrt源码。在当前用户主目录下执行
git clone git://git.openwrt.org/openwrt.git
等待代码下载。结束后,目录下会出现openwrt文件夹。
配置软件源。进入openwrt目录,执行
./scripts/feeds update -a
./scripts/feeds install -a
检查编译环境是否完整:
make defconfig
make prereq
根据提示信息安装需要的软件包。如果提示类似
“tmp/.config-package.in:22022:warning: multi-line strings not supported”
的信息,打开 openwrt/tmp/.config-package.in,定位到对应行,添上丢掉的一个引号就可以了。
编译选项:
执行 make menuconfig,根据路由器情况,选择 Target System 和 Subtarget。如意云一代和极壹S的 Target System 均为 Ralink RT288x/RT3xxx 。对于Subtarget ,前者为 MT7620n based boards ,后者为 MT7620a based boards。
其他选项根据个人喜好选择。一般来说要选中LuCI界面,选中中文语言包等等。
开始编译:
执行 make -j2 V=s 进行编译。-j后面的数字是电脑物理CPU数量加一。V=s可以显示出编译的详细信息。首次编译大概需要几个小时的时间。
错误排查:
编译失败,一般有两种情况:
1.代码下载链接失效。首次编译时,编译程序会实时从网上下载一些软件包的代码。如果下载链接失效,编译就会失败。这时需要根据软件包的名称,从网上自行下载,然后放在 openwrt/dl/ 目录下,执行 make -j2 V=s 继续编译即可。
2.软件包自身有问题。这时重新执行 make menuconfig ,取消对应软件包选中即可。这种情况比较少见,目前已知的有 tor 等。
编译成功,但没有生成固件。这种情况一般是因为选中的软件包过多,导致固件大小超过16MB。重新执行 make menuconfig,去掉一些软件包,重新执行编译即可。
得到固件。在排除了所有错误后,现在终于得到了固件。对于如意云RY-1,固件在 openwrt/bin/ramips 目录下,形如
openwrt-ramips-mt7620n-rt-n14u-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-mlw221-squashfs-sysupgrade.bin
openwrt-ramips-mt7620n-wr8305rt-squashfs-sysupgrade.bin
等等。
‘贰’ openwrt系统中,修改默认IP代码,请问在源代码哪个文件里修改
命令:vi /etc/config/network修改保存后输入命令/etc/init.d/network restart
‘叁’ 如何从零开始学习OpenWrt
第一部分:搭建编译环境
1、安装Ubuntu(编译需要Linux环境),到其官网下载,版本根据自己所需选择即可。可以选择安装到虚拟机或者物理机,图形化安装而且是中文版,连安装都搞不定的,可以关闭本页面了;
2、切记不要改动软件源,同时按住Ctrl + Alt + T,调出终端;
3、逐条输入下列命令(及时验证是否安装成功):
sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install unzip
sudo apt-get install autoconf
sudo apt-get install gawk
sudo apt-get install make
sudo apt-get install gettext
sudo apt-get install gcc
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install libz-dev
sudo apt-get install asciidoc
sudo apt-get install subversion
sudo apt-get install sphinxsearch
sudo apt-get install libtool
sudo apt-get install sphinx-common
至此编译环境搭建完成。
第二部分:下载OpenWrt源码并编译
OpenWrt源码分两种,一种是最新但不是最稳定的Trunk开发版,一种是最稳定的Backfire版,建议下载官方源码。下载前先在本地创建文件夹:
mkdir openwrt
sudo chmod 777 openwrt
cd openwrt
选择你想要的版本然后执行下载命令,下载结束会显示版本号:
Trunk版下载命令:
svn co svn://svn.openwrt.org/openwrt/trunk/
Backfire版下载命令:
svn co svn://svn.openwrt.org/openwrt/branches/backfire/
添加软件扩展包,将feeds.conf.default修改为feeds.conf:
cp feeds.conf.default feeds.conf
更新扩展,安装扩展:
./scripts/feeds update -a
./scripts/feeds install -a
注:如果不是刚下载的源码,为保持代码为最新状态,应定期运行svn update命令更新源码。
测试编译环境:
make defconfig
到这里就可以开始编译自己的固件了。进入定制界面:
make menuconfig
如果一切正常,会出现一个配置菜单,可以选择要编译的固件平台(芯片类型)、型号,还能选择固件中要添加的功能和组件,配置好后保存并退出菜单即可。
如果你想修改源码,应该在此步进行,如支持大容量Flash之类的修改,自己上网查到修改什么文件什么地方后,就在ubuntu图形界面上进去找到文件,双击打开文本编辑器修改保存。
开始编译:
make
或者
make V=99
或者
make -j V=99
make是编译命令,V=99表示输出debug信息,V一定要大写,如果要让CPU全速编译,就加上 -j 参数,第一次编译最好不带-j参数。
编译过程保持联网(会从网上下载一些源码包),所以断网可能造成编译中断,编译所需时间与电脑CPU及网络环境有很大关系,第一次编译时间较久,快则半小时长则2、3个小时,之后的编译所需时间较短。编译完成后会在源码文件目录出现bin文件夹(如trunk/bin/XXXX),如果你手里的路由是原版固件需要刷OpenWrt需要选用XXX-factory.bin固件,如果路由已经刷了OpenWrt,选用升级固件XXXX-sysupgrade.bin升级用的,在升级界面升级即可。进到文件夹找到你需要的固件传出(通过邮箱、网盘、U盘等),开始刷机吧。
第三部分:将OpenWrt刷入路由器
要在路由器上使用OpenWrt,首先要将路由器固件刷新为OpenWrt,即相当于OpenWrt 系统的安装,不同型号的路由器的安装方法可能也会不一样,但一般常用的有三种方法:
Web上传固件更新
PFTP上传固件更新
编程器写入固件
具体型号的路由器适用于哪种或哪几种方法,需自行尝试。
第四部分:开始使用OpenWrt
要对OpenWrt进行配置,一般有两条途径:
SSH登录通过命令行控制
Web登录通过Web界面设置
首次安装OpenWrt后,需要设置密码才可以使用SSH登录,方法是使用telnet登录或者Web登录设置密码。在Windows下面telnet和SSH登录可以使用Putty,在Linux或Mac下可分别使用如下命令:
ssh –l root 192.168.1.1 //Linux
ssh [email protected] //Mac
一般指令与常见Linux发行版相同,但是OpenWrt使用自己的包管理器:opkg,使用“opkg –help”查看帮助信息。以下是一些常用操作命令:
opkg update //更新软件包列表
opkg install //在线安装软件包
opkg remove //移除软件包
登录Web管理界面,前提是该OpenWrt系统中要安装了Web界面,一般是Luci,登录方式与普通路由器无异,打开浏览器,输入路由器IP即可进入登录界面,OpenWrt的默认IP是192.168.1.1。
到此,OpenWrt的大门已为你敞开。接下来,开始尝试利用OpenWrt实现更多智能应用吧,比如单号多拨榨取运营商带宽、绑定域名远程控制、挂载大容量硬盘、搭建BT下载机、搭建网络摄像头、Samba/DLNA家庭NAS共享、私有云同步、FTP、个人网站/服务器
‘肆’ 如何修改openwrt系统信息
Linux系统,需安装如下依赖包:-c++gettextmakencurses-develpatchunzipwgetzlib-develgit这个不明白,直接安装就可以了。安装完之后要是还有问题就需要根据看出错信息自己下载依赖包了。2、下载OpenWRT源码我的工作目录:/workPorjectCode/openwrtsvncosvn://svn/openwrt/branches/backfire(开发版本,不稳定,不建议下载,但在这个版本中有MW4530R配置项。还是下载个使用)svncosvn://svn/openwrt/branches/backfire(目前稳定版本,建议,但是这个版本配置项中少了好多支持。)3、检查配置环境必须使用非root用户进行操作,添加一个普通用户。(注意:如果使用root进行操作的话,会提示检查失败:Checking'non-root'failed.)修改可在root用户下编译修改include/prereq-build.m文件第15行为:#["$$(shellwhoami)"!="root"]4、下载feedsFeeds是OpenWrt环境所需要的软件包套件。最重要的feeds有:‘packages’一些额外的基础路由器特性软件‘LuCI’OpenWrt默认的GUI‘Xwrt’另一种可选的GUI界面需要能够连接互联网。在下载之前可以通过查看’feeds.conf.default’文件,来检查哪些文件需要包含在环境中。更新所有packages包并安装,只有安装之后,在后面的makemenuconfig时,才可以对相关配置进行勾选。
‘伍’ openwrt 源码中如何修改/etc/resolv.conf
首先,openwrt一定要开ssh,然后用ssh登陆到路由器,:
ssh root@路由器ip (表示用root登陆到某个ip,接着输入密码)
接着打开/etc/opkg.conf这个配置文件,这个文件是配置软件源的,命令:
vi /etc/opkg.conf
这个文件的内容如下:
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
option check_signature 1
‘陆’ 怎么修改703N源码,使AR9331 openwrt 增加四LAN口支持
703n把唯一的有线接口设置为wan口,无线为lan把etc/config/network设置如下即可,唯一的网络接口为wan口,无线为lan口,新增一个3g接口(在防火墙处把3g接口加入wan),可以作为一个3g路由用,也可以作为一个普通的路由用,可以拨号。config 'interface' 'loopback' option 'ifname' 'lo' option 'proto' 'static' option 'ipaddr' '127.0.0.1' option 'netmask' '255.0.0.0'config 'interface' 'lan' option 'type' 'bridge' option 'proto' 'static' option 'ipaddr' '192.168.1.1' option 'netmask' '255.255.255.0'config 'interface' '3g' option 'proto' '3g' option 'service' 'umts' option 'apn' 'cmwap' option 'maxwait' '20' option 'device' '/dev/ttyACM0'config 'interface' 'wan' option 'ifname' 'eth0' option '_orig_ifname' 'eth0' option '_orig_bridge' 'false' option 'proto' 'dhcp'
查看原帖>>
‘柒’ openwrt的IP修改了怎么保存
【注】本文是基于Ubuntu14.04+Openwrt17.01开发的教程。
5.1在开发板上设置IP
由于我们在开发过程中,可能会用到其他路由器,而它们的IP一般都是192.168.1.1,为了让开发板上的IP不与这些路由器的IP冲突,我们需要修改开发板上的IP地址。
接下来,我们就通过在开发板上面修改配置文件的方式来修改IP地址。首先开发板上电,等它启动一会儿,然后回车进入控制台。如图1所示。
我们可以在控制台中输入ifconfig命令来查看开发板的IP地址。
#ifconfig
如图2所示,输入ifconfig命令并回车后,我们就得到了开发板的IP地址,此时是开发板的默认IP地址192.168.1.1。
接下来,我们就来修改IP地址,将它给为192.168.0.10。在开发板上面,通过修改/etc/config目录下的network配置文件,可以达到目的。首先输入一些命令。
#vi etc/config/network
此时,我们变可以看到network配置文件的内容如下。
此时,我们只需要将红色部分的IP地址改为192.168.0.10,然后保存退出,然后再重启开发板,就发现IP地址被改为192.168.1.111了。
5.2在源代码中设置IP
前面是通过在开发板上面修改配置文件的方式来修改IP,这样做虽然简单,但是每当我们重新烧写固件后,都要通过这个方式重新修改IP,这样太麻烦。那么,接下来我们就来通过修改源码的方式,来修改IP。
如果大家对OpenWrt系统的启动流程有一定的了解的话,我们就知道,系统在启动的时候,会通过运行config_generate这个脚本程序来设置IP等基本参数。该脚本文件位于系统源码的openwrt /package/base-files/files/bin目录,那么接下来我们就来修改该脚本文件,从而修改IP地址。
#cd ./package/base-files/files/bin
#vim config_generate
然后我们就可以在该脚本程序中看到,它是想IP地址设置为192.168.1.1的。
那么,我们只需要将蓝色部分的IP改为192.168.1.11即可。如下图所示。
修改完成以后,然后保存退出。最迟回到OpenWrt系统源码的顶层目录,然重新编译系统即可。
#make V=99
将新编译出来的固件,重新烧到开发板上面,然后再查看IP,就发现IP的初始值已经是192.168.1.111了。
————————————————
版权声明:本文为CSDN博主“帅气滴点C”的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/_31437863/article/details/89312405
‘捌’ 如何编译OpenWrt
准备工作
在开始编译Openwrt之前需要您做些准备工作;与其他编译过程一样,类似的编译工具和编译环境是必不可少的:
一个构建OpenWrt映像的系统平台,简单说就是准备一个操作系统(比如Ubuntu、Debian等);
确保安装了所需的依赖关系库, (在debian系统中就是安装各种需要的软件包)
OpenWrt源代码副本
首先, 开机登陆到支持编译Openwrt的操作系统(废话了)。实体机或者虚拟机(Vmware 或者 Qemu)里的操作系统都行,这里推荐使用Linux系统。 bsd和mac osx系统也可以编,但不推荐,且未验证是否可编译成功。下文假定您使用的是Debian操作系统,使用 apt-get 来管理包. 替代的选择是 Ubuntu (分支 Kubuntu, Xubuntu 等即可)。
第二步, 就是安装所需要的各种软件包, 包括编译器,解压工具,特定的库等. 这些工作可以简单的通过键入以下命令 (通常需要root 或者是 sudo 权限),以root权限安装下列软件包(可能并不完整,会有提示,提示缺少即装就可以了):
32位(x86)请执行下列命令:
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev
64位(x86_64)请执行下列命令(多装了哪些库或软件包呢?请您仔细看一看哦):
# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \
git libncurses5-dev libz-dev patch unzip zlib1g-dev ia32-libs \
lib32gcc1 libc6-dev-i386
参考 本列表中 所列的编译环境所需要软件包或库。
某些依赖的为库或软件包也许操作系统中已经安装过,此时apt-get会作出提示(提示您忽略或重新安装的),别紧张,放轻松些,编译Openwrt不会像编译DD-WRT那样难的(至少本人是体会到了编译DD-WRT的难)。
最后下载一份完整的 Openwrt 源码到编译环境中。关于Openwrt的源代码下载,途径有二,一是通过 svn ,一是通过 git,建议使用 svn ,因为Openwrt主要以 svn 来维护Openwrt系统的版本。另外,请注意Openwrt中不同的分支版本,一个是用得较多的开发快照,俗称 trunk,二是稳定版,俗称 backfire。