-
O
p
e
n
w
r
t
编
< br>译
进
阶
精品文档
摘要
:
这篇
文章是
Openwrt
编译的学习笔记包括(
< br>1
)
Openwrt
基础入门<
/p>
(
2
)
Open
wrt
基础进阶(
3
)集成软件
之前总喜欢在在写文章之前写一大段自己
的光荣事迹,后来发现
看别人这样写的文章是一件很蛋疼的事,毕竟这是一篇技术类文<
/p>
章,不是小学生日记。
好吧,这次直接
进入正题,抱歉,又写了一段和本文内容无关的
文字
……
去年学校开始用
H3C
认证来限制我们上网,于是好奇心再次害死
猫,本宫终于修成正果,误入
Openwrt
这个大坑,折腾
Openwrt<
/p>
有一年多了,到了回馈社会的时候了,这篇文章写写
Openwr
t
编
译的一些高级配置(相对入门级编译教程而言),以
HG255D
为
例。
Openwrt
基础编译
这类文章一手一大把,精简的,详细的(多半是废话)都有,这
里就简单的
把一些指令写下
编译环境为
Ubuntu
#
升级组件包
sudo apt-
get
update
#
安装编译需要的组件
sudo apt-
get
install gcc g++ binutils patch bzip2 flex bison
make
autoconf gettext texinfo unzip
sharutils subversion libncurses5-dev
ncurses-term zlib1g-dev git-core gawk
asciidoc libz-dev
收集于网络,如有侵权请联系管理员删除
精品文档
sphinxsearch
libtool sphinx-common libssl-dev libsqlite3*
intltool
libiconv*
gstreamer-
0.10
*
glib2
.0
libxml2-dev qemu
(
*
64
位系统需安
装
ia32-libs
)
#
使用非
root
用户登
录,建立
openwrt
目录
mkdir openwrt
#
进入
openwrt
目录
cd openwrt
#
下载
openwrt
源码
svn checkout
svn:
///openwrt/trunk
#
赋予
trunk
目录权限<
/p>
sudo chmod -R
777
trunk
#
进入
trunk
目录
cd trunk
#
更新最新源码
./scripts/feeds update -a
#
安装最新源码
./scripts/feeds install -a
#
更新版本号
svn up
#
进入编译菜单
make menuconfig
Y
:选择
Y
,该软件将被编译,并且加入到你的目标固件里;
p>
M
:选择
M
p>
,该软件包将会被编译,但不会被放入固件里。在需要它的时候,可以用
OPKG
软件包管理器进行安装;
N
:选择
N
,该软件包将不会被编译
,也不会被安装进固件。
方向键是移动光标
回车键是确认
空格键是选择,可以代
替
Y/M/N
键的使用
/:
搜索
#
编译
make V=
99
#
清除编译过程产生的临时文件
make clean
#
恢复编译环境
make defconfig
Openwrt
编译进阶
收集于网络,如有侵权请联系管理员删除
精品文档
其实按照上面的指令一路执
行下来,你已经能够在
/bin/$$target
下
找到刷机固件了
,
是不是很简单
< br>……
修改
WIFI
设置
package/kernel/mac8
0211/files/lib/wifi/
config
wifi-device radio$$devidx
option
type
mac80211
option
channel
11
option
hwmode
11
ng
option
path
''
option
htmode HT20
list
ht_capab
GF
list
ht_capab SHORT-GI-
20
list
ht_capab
SHORT-GI-
40
list
ht_capab TX-STBC
list
ht_capab
RX-STBC12
# REMOVE THIS LINE TO
ENABLE WIFI:
option
disabled
0
option
noscan
1
option
txpower
20
option
htmode HT40-
config wifi-iface
option
device
radio$$devidx
option
network lan
option
mode
ap
#
自定义
SSID
p>
为
MakeBlaze_MAC
后六位
p>
option
ssid
MakeBlaze_$$(cat
/sys/
class
p>
/ieee80211/$${dev}/macaddress|awk -F
'{print
$$4
| tr
a-z A-Z)
option
encryption none
修改
LUCI
修改
< br>LUCI
界面配置
收集于网络,如有侵权请联系管理员删除
精品文档
feeds/luci/m
odules/base/root/etc/config/luci
config core main
option
resourcebase
'/luci-static/resources'
#
设置默认语言
option
lang
'zh_cn'
#
设置默认主题
option
mediaurlbase
'/luci-
static/bootstrap'
#
设置可选择的语言
config internal languages
option
zh_cn
'chinese'
option
en
'English'
#
设置可选择的主题
config internal themes
option
Bootstrap
'/luci-static/bootstrap'
添加释放内存
feeds/luci
/modules/admin-
full/luasrc/controller/a
dmin/
function
index
()
+
entry
({
,
},
call(
), _(
释放内存
),
75
)
end
function
Free_Memory
()
luci
.
< br>util
.
exec
(
)
luci
.
http
.
redirect
(_url(
,
,
))
end
在顶栏显示重启
feeds/luc
i/modules/admin-
full/luasrc/controller/
admin/
function
index
()
entry
({
,
},
call(
),
_(
),
90
)
收集于网络,如有侵权请联系管理员删除
精品文档
end
feeds/luci/mo
dules/admin-
full/luasrc/view/admin_syst
em/
<%:Perform
reboot%>
在顶栏显示备份
/
升级
feeds/luci/mod
ules/admin-
full/luasrc/controller/admin
/
function
index
()
entry
({
,
},
call(
),
_(
),
70
)
end
修改配置文件
package/base-
files/files/etc/
在这个目录里,你可以把你的备份的路由器导入进来
修改
root
密码
package/base-
files/files/etc/shadow
#
默认情况下
root
是没有密码的,需设定密码
才能开启
ssh
root:
$$1$$wEehtjxj$$YBu4quNfVUjzfv8p
/PBo
5.:
0
:
0
:
99999
:
7
:::
修改路由连接数
package/base-
files/files/etc/
_conntrack_
max
=
65535
修改主机名,设定时区
package/base-
files/files/etc/config/system
收集于网络,如有侵权请联系管理员删除
精品文档
config
system
#
设置主机名
option
hostname
'MakeBlaze'
option
conloglevel
'8'
option
cronloglevel
'8'
#
设置时区
option
zonename
'Asia/Shanghai'
option
timezone
'CST-8'
#
设置时间服务器
config timeserver
'ntp'
option
enable_server
'1'
list
server
'210.72.145.44'
list
server
''
list
server
''
list
server
'202.120.2.101'
config led
'usb_led'
option
name
'USB'
option
sysfs
'hg255d:usb'
option
trigger
'usbdev'
option
dev
'1-1'
option
interval
'50'
config led
'wlan_led'
option
name
'WLAN'
option
sysfs
'hg255d:wlan'
option
trigger
'netdev'
option
dev
'ra0'
option
mode
'link
tx'
config led
'internet_led'
option
name
'INTERNET'
option
sysfs
'hg255d:internet'
option
trigger
'netdev'
option
dev
'eth0.2'
option
mode
'tx
rx'
SAMBA
免密码访问
收集于网络,如有侵权请联系管理员删除
精品文档
package/base-
files/files/etc/config/samba
config samba
#
显示中文
option
charset
'gb2312'
config sambashare
option
read_only
'no'
option
guest_ok
'yes'
option
create_mask
'0777'
option
dir_mask
'0777'
option
display charset
package/base-
files/files/etc/samba/te
[global]
netbios
name =
|NAME|
display
charset =
|CHARSET|
interfaces =
|INTERFACES|
server
string =
|DESCRIPTION|
unix
charset
=
|CHARSET|
workgroup =
|WORKGROUP|
browseable =
yes
deadtime
=
30
domain
master =
yes
encrypt
passwords
=
true
enable core
files
=
no
guest
account =
root
guest
ok =
yes
#invalid users = root
local
master
=
yes
load
printers =
no
map
to
guest
=
Bad User
max
protocol =
SMB2
min receivefile
size =
16384
null
passwords
=
yes
obey pam
restrictions =
yes
os
level =
20
passdb
backend =
smbpasswd
preferred
master
=
yes
printable =
no
security =
share
收集于网络,如有侵权请联系管理员删除
精品文档
smb
encrypt =
disabled
#smb passwd file =
/etc/samba/smbpasswd
socket
options =
TCP_NODELAY
IPTOS_LOWDELAY
syslog
=
2
use
sendfile =
yes
writeable =
yes
集成软件
添加
aria2
,
luci
添加
,
web
管理界面
aria2
/projects/aria2/files/stable/
#aria2
的依赖安装
sudo apt-
get
update
sudo
apt-
get
install autoconf
automake libcppunit-dev autopoint
openssl libtool sphinx-common
sphinxsearch libgcrypt11-dev
#
< br>下载
aria2
源码
cd dl
sudo
apt-
get
install wget
wget http:
///projects/aria2/
files/stable/aria2-1.18.7/2
#
获取
md5
码
md5sum
aria2-
1.18.7
.2
#
添加
luci-
aria2
这里用的是南浦月的
luci-app-
aira2
和
webui-aria2
OpenWrt-Extra /nanpuyue/openwrt-
extra
在
feeds.
conf
.default
中添加
`src-git extra
gi
t:
//github.
com
/nanpuyue
/`
./scripts/feeds
update
-
a
./scripts/feeds install
-
a
在
make menuconfig
中
选中
aria2
,
luci-app-
aira2
和
webui-
aria2
就可以了
收集于网络,如有侵权请联系管理员删除
精品文档
添加将自己开发的程序
在
package
下建立一个文件夹,以自己的项目命名,里边包括一
个
files
文件夹和一个
< br>Makefile
文件
目录结构
<
ccnu
>
├Makefile
├
<
files
>
│
├
<<
/p>
etc
>
│
│
├
<
config
>
│
│
│
└ccnu
│
│
├
<
init.d
>
│
│
│
└ccnu
│
├
<<
/p>
usr
>
│
│
├
<
lib
>
│
│
│
├
<
lua
>
│
│
│
│
├
<<
/p>
luci
>
│
│
│
│
│
├
<<
/p>
controller
>
│
│
│
│
│
│
└
│
│
│
│
│
├
<
model
>
│
│
│
│
│
│
├
<<
/p>
cbi
>
│
│
│
│
│
│
│
└
│
│
├
<
sbin
>
│
│
│
└ccnu
package/ccnu/Makefile
include
$$(
TOPDIR
)/
PKG_NAME
:
=ccnu
p>
PKG_VERSION
:
=
2.0
.
1
PKG_RELEASE
:
=
1
PKG_BUILD_DIR
:
=
$$(
B
UILD_DIR
)/
$$(
PKG_N
AME
)
include
$$(
INCLUDE_DIR
)/
define
Package
/ccnu
收集于网络,如有侵权请联系管理员删除
精品文档
SECTION
:
=utils
CATEGORY
:
=
Utilities
SUBMENU
:
=
< br>H3C
inode
TITLE
:
= iNode
Compatible
Client
for
CCNU
DEPENDS
:
=+libc
+libgcc
MAINTAINER
:
=
RiceLyn
@gmail
.com>
endef
define
Package
/ccnu/description
iNode
Compatible
Client
for
CCNU
endef
define
Build
/
Prepare
endef
define
Build
/
Configure
endef
define
Build
/
Compile
endef
define
Package
/ccnu/install
$$(
CP
) ./files/*
$$(
1
)/
endef
$$(
eval
$$(
call
BuildPackage
,ccnu))
之后
./scripts/feeds install
-a,ccnu
就会出现在
Utilities -> H3C
inode
里啦
这里先做一个简单的程序,以后会写文章详细介绍。
HG255D
个性化配置
开启
HG255D
编译
收集于网络,如有侵权请联系管理员删除