OpenWrt编译 – 说明

先决条件

为了生成一个约8MB大小的installable OpenWrt固件镜像文件,您需要:

  1. 在您的操作系统上安装OpenWrt构建系统及其先决条件
  2. 大约3-4 GB的空余硬盘空间
  3. 环境变量:
    • 不应设置SED。如已设置,在编译前执行`unset SED`。(参见Ticket 10612.)
    • GREP_OPTIONS不应使用–initial-tab或其它会影响其输出的选项
    • 在您~/.bashrc文件中的PATH变量中,将<buildroot dir>/staging_dir/host/bin and <buildroot dir>/staging_dir/toolchain-<platform>-<gcc_ver>-<libc_ver>/bin放在最前。构建开始后很快就会创建staging目录不久创建,而toolchain目录将在toolchain构建开始时创建。构建过程将创建多个子shell,其中会有一些需要toolchain可执行文件设置于PATH变量中.
    • 1. 以root用户来进行工作
      2. 在<buildsystem root>目录中完成所有命令,例如~/openwrt/trunk/
    • 更新OpenWrt源。
    • 更新feeds的package 包.
  4. 配置编译。
  5. 开始编译。这会自动编译工具链,交叉编译源代码,打包包文件,最后生成可以可以刷写的镜像文件。
  6. 进入安装OpenWrt环节
  7. 签出源码
  8. 如果您想签出主干代码,使用如下命令:
  9. 如果您想签出某个发布版源码,使用如下命令:

git clone https://www.github.com/openwrt/openwrt -b chaos_calmer

git clone https://www.github.com/openwrt/openwrt

(请于Github上验证发布版名称.)

用Git更新源码

:!:

 OpenWrt源码变动频繁。建议总是使用最新的源码进行工作。

git pull

更新源(Feeds)

更新源:

./scripts/feeds update -a

安装下载好的包: (可选)

./scripts/feeds install -a   (或者 'install <PACKAGENAME>' )
镜像配置
开始OpenWrt Buildroot基于ncurses的 文本配置界面:

make menuconfig
同配置Linux内核类似,几乎每一个设置都有三个选项:y / m / n,分别代表如下含义:
* `` (按下`y`)这个包会被包含进固件镜像
* `` (按下`m`)这个包会在生成刷新OpenWrt的镜像文件以后被编译,但是不会被包含进镜像文件
* `` (按下`n`)这个包不会被编译

当你保存你的配置后,~/openwrt/trunk/.config这个文件会按照你的配置被生成。
\\编译环境会提供一个这样的配置文件给OpenWrt 'Backfire' 10.03.1-RC5。 例如,for ar71xx.

这个菜单允许你选择目标平台,也就是你想要用来编译你要包含进固件镜像的软件包的工具链(toolchain)的版本。
在更新源码和源以后运行这个配置界面,确保你的配置中包含的软件包是最新的。
默认配置(Defconfig)
在启用默认配置以前先选择的你的目标平台
make defconfig
将会生成一个通用的编译系统配置,这个配置包含了一个对于编译环境的先决条件和依赖的检查,同时会安装缺失的组件并再次运行。
总体配置
Menuconfig拥有一个文本界面,它包括选择要处理的目标平台,要编译的软件包,要被包含进固件文件的软件包和一些内核设置等。
make menuconfig
构建镜像
为构建镜像,一切已就绪。现只需一条命令:
make
或者:
make world
该命令会触发一连串的活动。之前也说过,它将会:
编译工具链
然后用这个工具链交叉编译源文件
创建opkg软件包
创建可随时刷机的镜像。
构建选项

在多核CPU上构建
可通过-j选项启用多个进程以加速构建过程:
make -j 3

Ubuntu 16.04 安装python版ssr

环境

Ubuntu 16.04 LTS (GNU/Linux 2.6.32-042stab116.2 x86_64)

Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64)

python版本 python 2.7

操作

安装python

$ sudo apt-get update
$ sudo apt-get install python
下载ssr
$ mkdir shadowsocksr
$ cd shadowsocksr/
$ wget https://github.com/cndaqiang/shadowsocksr/archive/manyuser.zip
配置ssr
$ sudo apt-get install unzip
$ unzip manyuser.zip 
cd shadowsocksr-manyuser/
配置文件shadowsocksr-manyuser/config.json

配置文件内容解释可参考SSR配置config.json配置文件各项说明

主要参数和示例

"server_port":8388,        //端口
"password":"password",     //密码
"protocol":"origin",       //协议插件
"obfs":"http_simple",      //混淆插件
"method":"aes-256-cfb",    //加密方式
配置示例
多用户,不同用户不同端口 修改 ` vi config.json ` 删除以下内容

    "server_port": 8388,
    "password": "m",
添加,不同端口和密码

"port_password":{
        "端口1":"密码1",
        "端口2":"密码2"
         },
其他参数可自定义

"protocol":"origin",       //协议插件
"obfs":"http_simple",      //混淆插件
"method":"aes-256-cfb",    //加密方式
启动服务
$ python ./shadowsocks/server.py -c config.json
会显示连接等信息 其他启动方式

sudo  python ./shadowsocks/server.py -c config.json -d start
停止

sudo  python ./shadowsocks/server.py -c config.json -d stop
帮助

python ./shadowsocks/server.py -h
客户端
IOS: Potatso Lite(支持的参数更多) </br> Wingy 其他平台自行搜索
linux端
与服务器端使用相同软件

$ wget https://github.com/cndaqiang/shadowsocksr/archive/manyuser.zip
过程同服务器安装 config.json修改为

"server": "服务器密码ipv4地址",
    "server_ipv6": "::",

    "local_address": "127.0.0.1", 本地地址
    "local_port": xxx, 本地socks端口
    "server_port": xxx, 服务器端口
    "password": "密码", 服务器密码
其他参数同服务器一样就可以
使用方式

sudo python ./shadowsocks/local.py -c config.json -d start|stop
遇到的问题
如果安装防火墙,请允许对应端口通过