0%

1) openwrt的虚拟机选择NAT模式,vmware的编辑菜单中的虚拟网络编辑器里查看NAT模式的虚拟网卡的子网地址,假设是192.168.61.0
启动openwrt虚拟机,修改/etc/config/network,把lan网卡的地址设为192.168.61网段的地址

2) 参考ubuntu虚拟机的网关设置,在ubuntu机器上输入route命令,看它的默认网关设置是多少。

3) 在openwrt上添加默认网关

修改/etc/rc.local 在文件里添加命令:

1
route add default gw (your ip) 

4)设置dns:

编辑/etc/resolv.conf
增加一行

1
nameserver 8.8.8.8

5) reboot

Linux scp 命令用于 Linux 之间复制文件和目录。
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。

语法

1
2
3
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
阅读全文 »

1、单个字符分隔用split截取

1
2
3
4
string str = "GT123_1";
string[] strArray = str.Split('_');
//输出:sArray[0]="GT123"
// sArray[1]="1"

2、利用多个字符来分隔字符串
1
2
3
4
5
6
string str = "GTAZB_JiangjBen_123";
string[] strArray = str.Split(new char[2] { 'j', '_' });
//输出:sArray[0]="GTAZB"
// sArray[1]="Jiang"
// sArray[2]="Ben"
// sArray[3]="123"

3、根据字符串或字符串组来截取字符串
1
2
3
4
5
string str = "GTAZB_JiangjBen_123";
string[] strArray = str.Split(new string[] { "Ji", "jB" }, StringSplitOptions.RemoveEmptyEntries);
//输出:sArray[0]="GTAZB_"
// sArray[1]="ang"
// sArray[2]="en_123"。

阅读全文 »

MTK的芯片设计有些让人搞不懂,非得将串口作为启动选择引脚;

MT76x8 参考其datesheet,TXD0 启动时必须为低电平,TXD1启动时必须保持高电平;

一共最多3个串口,唯独UART2不影响启动;但是UART2与 NET PORT2是复用的;使用uart2必须牺牲1个网口;

准确来说是牺牲所有网口(PORT0除外),因此MT76x8 要么作为单网口使用要么作为5网口使用,没有中间模式;这一点也比较蛋疼;

但这不是我们今天要关心的;今天只谈uart2作为启动串口;

阅读全文 »

openwrt版本为15.05.1,以mt7620为例,其他类似。

1.wifi的默认开启方式、ssid、加密方式等配置

1
`package``/kernel/mac80211/files/lib/wifi/mac80211``.sh`

2.硬件资源的配置(usb、gpio、flash等),即dts

1
`target``/linux/ramips/dts/``下文件`

3.镜像生成方式控制

1
`target``/linux/ramips/image/Makefile`
阅读全文 »

1、TCP/IP协议组

TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成。

  • IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机。
  • TCP层负责面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象。

TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层:

  • 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议;
  • 传输层:TCP协议与UDP协议;
  • 应用层:FTP、HTTP、TELNET、SMTP、DNS等协议;
阅读全文 »

在openwrt开发过程中需要数据的发送和接受,此时传输数据的格式就有很多种了,今天简单介绍一下openwrt系统中JSON数据的处理方法

假设有一个JSON文件

1
2
3
4
5
6
7
8
9
10
11
12
cat /etc/ss.json
{
"server": "8.8.8.8",
"server_port": 443,
"local_address": "0.0.0.0",
"local_port": 7070,
"password": "fuckgfang",
"method": "aes_128_ctr",
"timeout": "60",
"protocol": "auth_aes128_sha1",
"fast_open": false
}

阅读全文 »

openwrt交叉编译生成应用,openwrt已经编译好了,现在编译一个单独的部件安装到树莓派或者路由上。

首先我们在openwrt/package/下建立helloworld文件夹

然后在helloworld文件夹下创建src文件夹

在src文件夹中,我们创建helloworld.c文件和Makefile文件

阅读全文 »

C#中SaveFileDialog 和OpenFileDialog 的用法
本文通过几个示例来说明SaveFileDialog 和OpenFileDialog 的用法
1.OpenFileDialog

1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void btnOpen_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.InitialDirectory = @"C:\Users\LWP1398\Desktop"; //设置初始路径
ofd.Filter = "Excel文件(*.xls)|*.xls|Csv文件(*.csv)|*.csv|所有文件(*.*)|*.*"; //设置“另存为文件类型”或“文件类型”框中出现的选择内容
ofd.FilterIndex = 2; //设置默认显示文件类型为Csv文件(*.csv)|*.csv
ofd.Title = "打开文件"; //获取或设置文件对话框标题
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
//FileName:所选文件的全路径 SafeFileName:所选的文件名
txtPath.Text = "FileName:" + ofd.FileName + "\r\n" + "SafeFileName:" + ofd.SafeFileName;
}
}
阅读全文 »