导航:首页 > 源码编译 > linuxopen源码

linuxopen源码

发布时间:2023-01-29 22:19:18

linux系统下怎么升级OpenSSH

两种方式,以红帽发行版的为例:
1、直接rpm包方式:
1)直接在线yum install
2)红帽官网下载对应版本的rpm包,然后rpm -Uvh *
2、源码包方式:
首先卸载自带的版本,然后到openssh官网下载源码包,解压编译、安装。
以上两种方式,rpm包方式最为简单和安全,但不能跨版本升级;源码包方式繁琐,有风险,需要一定的技术基础,可以跨版本升级。

② OpenWrt教程-如何在OpenWrt系统中添加一个Linux内核模块

linux内核支持动态加载模块,内核模块以.ko为后缀,在Linux系统中,内核模块放在/lib/molex/x.x.x目录中,其中x.x.x为linux版本号

加载模块
insmod xxx.ko
如果带参数 insmod xxx.ko a=1
卸载模块
rmmod xxx.ko

支持的数据类型

bool :布尔类型
invbool:颠倒了值的bool类型;
charp :字符指针类型,内存为用户提供的字符串分配;
int :整型
long :长整型
short :短整型
uint :无符号整型
ulong :无符号长整型
ushort :无符号短整型

内核模块源码Makefile编写格式和linux源码的格式一样

在OpenWrt系统中,内核模块编译和应用层的package编译类似

make package/模块名/compile V=s
比如:
make package/hello_kernel/compile V=s

编译完成后会生成.ko文件,目录文件在build_dir中,但和应用层的build目录有点区别,内核模块的package放在linux目录,如(X86平台):
build_dir/target-x86_64_musl/linux-x86_64/

将编译完成的ko文件传输到OpenWrt系统中,注意编译平台和开发板平台的系统架构要一致。

③ 如何学习openssh源码 linux

命令 作用
yum repolist all 列出所有仓库。
yum list all 列出仓库中所有软件包
yum info 软件包名称 查看软件包信息
yum install 软件包名称 安装软件包
yum reinstall 软件包名称 重新安装软件包
yum update 软件包名称 升级软件包
yum remove 软件包 移除软件包
yum clean all 清除所有仓库缓存
yum check-update 检查可更新的软件包
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall 软件包组 安装指定的软件包组
yum groupremove软件包组 移除指定的软件包组
yum groupinfo 软件包组 查询指定的软件包组信息
请参考《linux就该这么学》,第1章 部署虚拟环境安装linux系统,查看软件升级命令。

④ Linux系统下怎么升级OpenSSH

升级版本为:openssh-6.6p1 举个例子,可以参考
升级方法:
1、加载本地源(方法不描述了)
2、执行下列命令
yum install bash -y
yum install -y zlib zlib-devel openssl openssl-devel
tar -zxvf openssh-6.6p1.tar.gz -C /usr/local/src/
cd /usr/local/src/openssh-6.6p1/
cp /etc/init.d/sshd /etc/init.d/sshd.old
tar -cvf ssh.bak.tar /etc/ssh
yum install gcc -y
3、卸载老版本
rpm -qa|grep ssh
rpm -e openssh-server-5.3p1-81.el6.x86_64
rpm -e openssh-clients-5.3p1-81.el6.x86_64 --nodeps
rpm -qa|grep ssh
rpm -e openssh-askpass-5.3p1-81.el6.x86_64
rpm -e openssh-5.3p1-81.el6.x86_64
rpm -qa|grep ssh
4、开始升级
。/configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords
make && make install
mv /etc/init.d/sshd.old /etc/init.d/sshd
mkdir -p /var/empty/sshd/etc
/etc/init.d/sshd restart
chkconfig --add sshd
chkconfig sshd on
chkconfig --list|grep sshd
5、查看是否升级成功
ssh -V
OpenSSH_6.6p1, OpenSSL 1.0.0-fips 29 Mar 2010
以上就是Linux系统下怎么升级OpenSSH的介绍了,升级成功了旧版本的一些问题和故障自然就能得到修复了。

⑤ 在linux中git获取openstack源码要多久

OpenStack 是一种基础架构即服务 (IaaS) 云计算项目。
资源通过一个仪表板来管理,该仪表板向管理员提供了控制权,并通过一个 Web 接口为用户提供了配置资源的权利。本文将介绍如何设置帐户、设置开发环境以及如何开始为 OpenStack 做贡献。
第 1 步:通过在线注册和密钥配置来设置帐户

设置您的 Launchpad 帐户。Launchpad 是 OpenStack 用来托管其所有项目的位置。请访问 Launchpad 登录页面,使用您的电子邮件地址进行注册,并为自己选择一个便于记忆的 Launchpad ID。然后访问 https://launchpad.net/~LaunchpadID,设置您的 OpenPGP 密钥,并使用该页上的说明上传您的 SSH 公钥。例如,我的 Launchpad id 是 houshengbo,因此我将访问 https://launchpad.net/~houshengbo,如图 1 所示。

图 1. 设置 OpenPGP 密钥

为 Gerrit 设置您的 SSH 帐户。OpenStack 应用了一个代码评审过程来保证代码质量。请访问 OpenStack 代码审查 页面,并使用您的 Launchpad 帐户进行登录。然后访问 https://review.openstack.org/#/settings/ssh-keys 并上传您的 SSH 公钥。

图 2. 上传 SSH 公钥

第 2 步:签署 CLA 协议
请加入 OpenStack Foundation(如果您尚未加入)。使用您计划用于贡献代码的电子邮件地址。foundation profile 中的主要电子邮件地址需要与您稍后在 Gerrit 联系信息中设置的首选电子邮件相匹配。
请访问 Code Review 页面。单击位于该页面右上角的 Sign In 链接。使用您的 Launchpad ID 登录 Launchpad。
除非您是美国政府雇员(参见以下内容),否则请同意 Indivial Contributor License Agreement 并提供联系信息。您的所有姓名和电子邮件地址都是公开的。如果需要的话,可以稍后 更新 此联系信息,但确保主要电子邮件地址始终与为您的 OpenStack Foundation 会员身份设置的电子邮件地址相匹配。
加入 OpenStack Contributors 组。需要以会员身份提交代码更改。

如果您以个人贡献者的身份工作,那么执行上述步骤就足够了。如果您代表公司或美国政府工作,那么您可能需要关注其他一些内部审批过程,这些过程因公司而异。有关的详细信息,请参阅 贡献者许可协议。

第 3 步:设置本地开发环境
设置 Eclipse 环境:

在 Eclipse 窗口上,单击 Help > Install New Software。
在 Work with 字段中,输入 http://download.eclipse.org/egit/updates 并单击 Add。
选中位于 Eclipse Git Team Provider 下面的 Eclipse EGit。
单击 Next,直到您找到 Review Licences 窗口。接受许可条款并单击 Finish。

在 Eclipse 窗口上,单击 Help > Install New Software。
配置 Eclipse 的 python interpreter。在 Work with 字段中,输入 http://pydev.org/updates并单击 Add。
选中 PyDev。
单击 Next,直到您找到 Review Licences 窗口。接受许可条款并单击 Finish。

安装附带 python 的 Ubuntu 11.10 或 11.10+。
安装 git:sudo apt-get install git。
安装 Eclipse。
安装 Eclipse 的 PyDev 插件。

安装 Eclipse 的 EGit 插件。

设置代码库。

打开一个终端,转到目标目录(例如,/opt/stack)并运行以下命令以获得 keystone 代码:
git clone https://github.com/openstack/keystone.git
将项目导入 Eclipse:运行 Eclipse 并将工作区设置为保存所有项目 (/opt/stack) 的目录。
创建 PyDev 项目:单击 File > New > PyDev project。使其名称与该项目相同,如 keystone,然后单击Finish。
将该项目与 Egit 同步:在 Eclipse 中,右键单击该项目 (keystone),单击 Team > Share project,然后单击 Next 和 Finish。
完成上述步骤之后,应该会在 Eclipse 中看到位于您的项目名称后面的 [keystone master]。

打开一个终端,转到目标目录,并运行以下命令获得 devstack 代码:
git clone git://github.com/openstack-dev/devstack.git
在刚刚创建的 devstack 目录下创建一个名为 localrc 的文件。可以在 DevStack 网站上查找关于如何 配置 localrc 的信息。
运行 ./stack.sh。默认工作目录是 /opt/stack,可以手动更改它。当初次运行 devstack 获得成功之后,可以在 /opt/stack 下找到所有代码。

使用 devstack:

另一个方法是下载特定项目,而不是克隆所有项目。以 Keystone 项目为例:

运行单元测试
对某个项目运行所有单元测试:

打开一个终端并转到项目目录,例如 keystone。
运行 ./run_tests.sh 命令。当询问您是否想创建一个虚拟环境时,选择 Y 或 N。

测试一个示例:

打开一个终端并转到项目目录,例如 keystone。
运行 ./run_tests.sh <file path> 命令,例如 ./run_tests.sh /opt/stack/keystone/tests/test_backend.py。

测试一个示例:

打开一个终端并转到项目目录,例如 keystone。
运行 ./run_tests.sh <file path>:<class name> 命令,例如 ./run_tests.sh /opt/stack/keystone/tests/test_backend.py:CommonHelperTests。

测试一个方法:

打开一个终端并转到项目目录,例如 keystone。
运行 ./run_tests.sh <file path>:<class name>.<method name> 命令,例如 ./run_tests.sh /opt/stack/keystone/tests/test_backend.py:CommonHelperTests.test_format_helper_raises_malformed_on_incomplete_format。

运行 OpenStack 服务
运行 Devstack 的所有服务:

打开一个终端并转到 devstack 目录。
运行 ./stack.sh 命令。在 localrc 中,指定要运行的服务,例如 ENABLED_SERVICES=key,c-api,c-vol,c-sch,mysql,rabbit。
运行 ./unstack.sh 关闭所有服务。
首次运行 ./stack.sh 获得成功之后,您还可以运行 ./rejoin-stack.sh 来运行所有指定的服务。

在 Eclipse 中运行服务。以 Keystone 为例:

在 Eclipse 中设置 keystone 的调试配置。右键单击脚本 keystone—bin 下的所有内容,然后单击Debug as > Debug Configurations,如图 3 所示。

图 3. 调试配置

设置调试配置。单击 Arguments 选项卡,选择 Other 作为工作目录,然后输入 ${workspace_loc:keystone},如图 4 和图 5 所示。

图 4. Main 选项卡配置

图 5. Arguments 选项卡配置

启动 Keystone:单击 Debug Configuration 窗口上的 Debug 按钮,或从 Debug/Run 下拉工具栏按钮中运行它,如图 6 所示。

图 6. 启动 Keystone 服务

第 4 步:设置本地计算机配置
设置 git 全局配置:

打开一个终端。
运行 git config --global user.name "Firstname Lastname" 命令。
运行 git config --global user.email "[email protected]" 命令。

安装 git-review 工具:

对于 Ubuntu 12.04 或更高版本,在一个终端中运行 sudo apt-get install git-review 命令。
对于 Ubunu 12.04 之前的版本,则运行 sudo pip install git-review 命令。

配置您的项目以了解 Gerrit:

打开一个终端并转到项目目录,例如 keystone。
运行 git review -s 命令。系统会要求您输入您的 gerrit 用户名。请键入您的 Launchpad id 并按下 Enter 键。

第 5 步:OpenStack 工作流程演示
如果您发现了一个 OpenStack 问题,请将它注册为一个 bug。如果想添加新功能,那么请将它注册为蓝图。您将要添加的修改应位于分支版本而不是主版本中。此外,不要在一个分支版本中混合多个 bug 修复或蓝图开发。下面的工作流程显示了 Keystone 中 bug 修复的一个示例。
提交 Keystone 的 bug:

图 7. 提交 Keystone 的 bug

访问 https://launchpad.net/keystone。
单击 Report a bug,然后输入概要信息和所需的信息。
单击 Submit bug report 按钮。此 bug 具有一个链接:https://bugs.launchpad.net/keystone/+bug/1087674 和一个 bug 号:1087674。
在 Assigned to 列中将这个 bug 分配给你自己。

在 keystone 中为此 bug 创建一个分支(分支名称 Bug1087674):

打开一个终端并转到 keystone 目录。
通过 git checkout master 确保 keystone 位于主版本中。
运行 git checkout -b Bug1087674 命令。

在分支 Bug1087674 中修改 keystone 代码。
将该代码提交给 Gerrit:

打开一个终端并转到 keystone 目录。
运行 git commit -a 命令。
输入一些注释。第一段应该是一句话的简介;第二段可以是详细说明(可选);如果此分支修复一个 bug 或一个蓝图,则添加 Fixes Bug1087674 或 Blueprint XXXX 作为最后一段。
运行 ctrl+o 命令,按下 Enter 键,然后运行 ctrl+x。
运行 git review。

检查提交的修补程序:

图 8. 已提交的修补程序的 Review 页面

转到 https://review.openstack.org 并使用您的 Launchpad 帐户登录。
从顶部水平导航器中,单击 My > Changes,然后您可以找到您已提交的修补程序。
在此演示中,链接为 https://review.openstack.org/#/c/17673/。任何用户都可以查看此修补程序。任何开发人员都可以给出注释。

通常,这是提交修补程序的过程。但是如果某些开发人员添加了注释并且您决定更改此分支,又该如何做呢?下面是一个选项:
打开一个终端并转到 keystone 目录。
通过 git checkout Bug1087674 转到分支 Bug1087674。
对此分支进行进一步修改。
转到 keystone 目录。
运行 git commit -a –amend 命令。(不要运行 git commit -a,否则会有多个注释提交给 Gerrit,建议不要这样做。)
可能的话,请修改注释。
运行 ctrl+o 命令,然后按 Enter 键并运行 ctrl+x。
运行 git review。

第二次提交此修补程序之后,链接 https://review.openstack.org/#/c/17673/ 中有两个修补程序集,如图 9 所示。

图 9. 修补程序集的历史记录

此外,如果在您使用分支 Bug1087674 时主分支进行了更改,又会怎样呢?下面是您可以执行的操作:
打开一个终端,并通过 git checkout master 转到主分支。
使用 git pull origin master 更新该代码。
通过 git checkout Bug1087674 切换回此分支。
通过 git rebase -i master 重构该代码。
如果没有冲突,则运行 git commit -a –amend 命令并运行 git review。
如果发生冲突,那么终端会显示有冲突的文件。
您还可以在 Eclipse 中查找冲突,因为有冲突的文件都标有红色标记。
手动修复这些冲突。
继续重构,git rebase —continue。
重构成功之后,运行 git commit -a –amend 命令和 git review。

⑥ Linux发行版(路由器固件)OpenWrt入门全集

现阶段openwrt官方支持的路由列表:wiki.openwrt.org/toh/start

如果要学习openwrt的话,买些列表中二手的路由器来实践下更容易学习,大部分要升级一下rom芯片和内存芯片,典型配置都是4M、64M。 大家先学习一下,等待小米开放时刻的到来,有备无患……

OpenWrt 可以被描述为一个嵌入式的 Linux 发行版,(主流路由器固件有 dd-wrt,tomato,openwrt三类)而不是试图建立一个单一的、静态的系统。OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。

对于开发人员,OpenWrt 是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。

当Linksys释放 WRT54G/GS 的源码后,网上出现了很多不同版本的 Firmware 去增强原有的功能。大多数的 Firmware 都是99%使用 Linksys的源码,只有1%是加上去的,每一种 Firmware 都是针对特定的市场而设计,这样做有2个缺点,第一个是难以集合各版本Firmware的长处,第二个是这版本距离 Linux 正式发行版越来越远。

OpenWrt 选择了另一条路,它从零开始,一点一点的把各软件加入去,使其接近 Linksys 版 Firmware的功能,而OpenWrt 的成功之处是它的文件系统是可写的,开发者无需在每一次修改后重新编译,令它更像一个小型的 Linux 电脑系统。

OpenWrt 项目由 2004 年 1 月开始, 第一个版本是基于 Linksys 提供的 GPL 源码及 uclibc 中的 buildroot 项目, 这个版本称为 “stable” 版, 在网上至今仍有很多项目使用这个版本, 较为有名 Freifunk-Firmware 和 Sip@Home.

到了2005年初, 一些新的开发人员加入了这项目, 几个月后他们释出了第一个 “experimental” 版本, 这和以前版本不同的是, 这版本差不多完全舍弃了 Linksys 的 GPL 源码, 使用了 buildroot2 作为核心技术, 将 OpenWrt 完全模块化,OpenWrt 使用 Linux 正式发行的核心源码(2.4.30),加上了一些补丁和网络驱动,开发队伍更为OpenWrt添加了许多免费的工具,可以直接把Image写入 Flash (mtd)里面,设定无线功能和VLAN交换功能,这个版本名为“White Russian”,而1.0版本于2005年底公布。

OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。 同时,它还提供了100多个已编译好的软件,而且数量还在不断增加,而 OpenWrt SDK 更简化了开发软件的工序。

OpenWRT不同于其他许多用于路由器的发行版,它是一个从零开始编写的、功能齐全的、容易修改的路由器操作系统。实际上,这意味着您能够使用您想要的功能而不加进其他的累赘,而支持这些功能工作的linux kernel又远比绝大多数发行版来得新。

如果对 Linux 系统有一定的认识, 并想学习或接触嵌入式 Linux 的话, OpenWRT很适合。 而且OpenWRT支持各种处理器架构,无论是对ARM,X86,PowerPC或者MIPS都有很好的支持。 其多达3000多种软件包,囊括从工具链(toolchain),到内核(linux kernel),到软件包(packages),再到根文件系统(rootfs)整个体系,使得用户只需简单的一个make命令即可方便快速地定制一个具有特定功能的嵌入式系统来制作固件。

一般嵌入式 Linux 的开发过程, 无论是 ARM, PowerPC 或 MIPS 的处理器, 都必需经过以下的开发过程:

1、 创建 Linux 交叉编译环境;

2、建立 Bootloader;

3、移植 Linux 内核;

4、建立 Rootfs (根文件系统);

5、安装驱动程序;

6、安装软件;

熟悉这些嵚入式 Linux 的基本开发流程后,不再局限于 MIPS 处理器和无线路由器, 可以尝试在其它处理器, 或者非无线路由器的系统移植嵌入式 Linux, 定制合适自己的应用软件, 并建立一个完整的嵌入式产品。

由于CPU内核体系不同,造成很多应用程序移植到OpenWrt上的时候经常崩溃。

由于ADSL硬件模块的驱动程序没有开放源代码,造成很多ADSL一体无线路由的ADSL模块不能工作而造成功能缺失(RG100A和DB120除外)。

由于OpenWRT并不是官方发布的路由器固件,所以要使用(刷入该固件)有困难,而且其基于Linux,导致OpenWRT的入门门槛较高。

White RussianOpenWRT的初始版本,从2005年7月的White Russian RC1开始发展,一直到2007年1月才发布White Russian 0.9。

KamikazeOpenWRT的第二个版本,从2007年6月开始发布Kamikaze 7.06,一直更新到2010年1月的Kamikaze 8.09.2结束。这期间OpenWRT进行了大量改进,并为它的发展打下了坚实的基础。

Backfire2010年03月04日,OpenWrt Backfire 10.03 Beta发布,该版本是开源的路由器固件,基于linux,功能强大,支持很多主流的平台和路由器,甚至支持国内的君正jz4740平台,是学习和开发嵌入式,也是工业、 商业应用理想平台。更新方面: brcm-2.4 更新到 2.4.37 kernel ,other targets 更新到 2.6.30 or 2.6.32 ,arm/mips平台的 gcc 更新到 4.3.3 ,powerpc的gcc更新到 4.4.3 ,uClibc 更新到 0.9.30.1 , Broadcom 11g 芯片组的 b43 无线网卡驱动更新到 2.6 kernel ,支持Atheros 11n ath9k ,支持很多新的ar71xx设备,magicbox归入ppc40x平台 。

2010年03月25日,OpenWrt 发布 Backfire 10.03-rc1,支持国内留下的 tp-link最新多款11n的路由器,是不是想让路由器支持万能中继呢,或者增加路由器的多wan口支持呢,更多的这些高端路由才有的功能,或许能 让家用路由轻松具备。

2010年04月07日,OpenWRT放出Backfire 10.03正式版。

2010年08月29日OpenWRT放出了Backfire 10.03.1。修正了很多BUG,提高了兼容性。TP-LINK WR841N v2 已经可以正常使用了,包括无线部分和上网部分。 自rc1之后的变动:改进了防DNS重绑定攻击,改进了uhttpd稳定性, Rootfs生成修复(Orion景象),修正了基于BRCM47XX的PCI初始化,添加了rtl8366 vlan 改变的 整合脚本,还原了一般x86镜像 GRUB控制台,提高了ar71xx系列以太网驱动程序性能,添加了ar7240 交换机驱动,一些swconfig 和 交换机驱动的改进,RDC 使用启动加载器支持波特率,允许原生HID 支持 通过添加 kmod-input-hid,6in4:适当的处理了PPPoE连接并且修复了终端隧道更新。

鉴于开源软件在国内的发展态势,目前国内有基于OpenWRT改进而来的OpenWRT-DreamBox。这个版本的OpenWRT集成了了很多常用功能(包括脱机下载等),而通过这个版本的OpenWRT便可以把一个路由器的功能发挥的淋漓尽致。

现在有越来越多的Maker开始折腾OpenWrt,但作为一个Maker新手来讲,在网上还是很难找到一份系统的入门级资料。查找资料很辛苦,而且OpenWrt的门槛相对较高,希望这篇文章所提供的从零开始学OpenWrt编译 + 刷机 + 使用教程能降低新手们的入门难度,当然,编译过程非必须,一般的路由都可找到可用的稳定固件直接刷机。

1、安装Ubuntu(编译需要Linux环境),到其官网下载,版本根据自己所需选择即可。可以选择安装到虚拟机或者物理机,图形化安装而且是中文版,连安装都搞不定的,可以关闭本页面了;(下载地址可以网络,回复贴中会提供)

2、切记不要改动软件源,同时按住Ctrl + Alt + T,调出终端;

3、逐条输入下列命令(及时验证是否安装成功):

[php]

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

[/php]

至此编译环境搭建完成。

OpenWrt源码分两种,一种是最新但不是最稳定的Trunk开发版,一种是最稳定的Backfire版,建议下载官方源码。下载前先在本地创建文件夹

[php]

mkdir openwrt

sudo chmod 777 openwrt

cd openwrt

[/php]

选择你想要的版本然后执行下载命令,下载结束会显示版本号:

Trunk版下载命令:

[php]

svn co svn://svn.openwrt.org/openwrt/trunk/

[/php]

Backfire版下载命令:

[php]

svn co svn://svn.openwrt.org/openwrt/branches/backfire/

[/php]

添加软件扩展包,将feeds.conf.default修改为feeds.conf:

[php]

cp feeds.conf.default feeds.conf

[/php]

更新扩展,安装扩展:

[php]

./scripts/feeds update -a

./scripts/feeds install –a

[/php]

注:如果不是刚下载的源码,为保持代码为最新状态,应定期运行svn update命令更新源码。

测试编译环境:

[php]

make defconfig

到这里就可以开始编译自己的固件了。进入定制界面:

[php]

make menuconfig

[/php]

如果一切正常,会出现一个配置菜单,可以选择要编译的固件平台(芯片类型)、型号,还能选择固件中要添加的功能和组件,配置好后保存并退出菜单即可。

[php]

openwrt-make

[/php]

如果你想修改源码,应该在此步进行,如支持大容量Flash之类的修改,自己上网查到修改什么文件什么地方后,就在ubuntu图形界面上进去找到文件,双击打开文本编辑器修改保存。

[php]

Make

[/php]

或者

[php]

make V=99

[/php]

或者

[php]

make -j V=99

[/php]

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 系统的安装,不同型号的路由器的安装方法可能也会不一样,但一般常用的有三种方法:

1.Web上传固件更新(就是路由器设置或管理界面的那个固件更新)

2.PFTP上传固件更新(最简单的就是HFS了)

具体型号的路由器适用于哪种或哪几种方法,需自行尝试。

要对OpenWrt进行配置,一般有两条途径:

1.SSH登录通过命令行控制

2.Web登录通过Web界面设置

首次安装OpenWrt后,需要设置密码才可以使用SSH登录,方法是使用telnet登录或者Web登录设置密码。在Windows下面telnet和SSH登录可以使用Putty,在Linux或Mac下可分别使用如下命令:

[php]

ssh –l root 192.168.1.1 //Linux

ssh –l [email protected] //Mac

[/php]

一般指令与常见Linux发行版相同,但是OpenWrt使用自己的包管理器:opkg,使用“opkg –help”查看帮助信息。以下是一些常用操作命令:

[php]

opkg update //更新软件包列表

opkg install //在线安装软件包

opkg remove //移除软件包

[/php]

登录Web管理界面,前提是该OpenWrt系统中要安装了Web界面,一般是Luci,登录方式与普通路由器无异,打开浏览器,输入路由器IP即可进入登录界面,OpenWrt的默认IP是192.168.1.1。

到此,OpenWrt的大门已为你敞开。接下来,开始尝试利用OpenWrt实现更多智能应用吧,比如单号多拨榨取运营商带宽、绑定域名远程控制、挂载大容量硬盘、搭建BT下载机、搭建网络摄像头、Samba/DLNA家庭NAS共享、私有云同步、FTP、个人网站/服务器…

需要学会用ssh登录路由器用linux命令查看。

ps 命令查看当前系统运行的进程信息

free 命令查看内存使用和swap挂载情况

ls 查看目录和文件

cd 进入退出目录

vi 查看编辑配置文件

安装命令:

[php]

#opkg update

#opkg install nano

uci set network.lan.ipaddr=[lan ip]

[/php]

使用pppoe设置

Shell代码

[php]

uci set network.wan.proto=pppoe //设置wan口类型为pppoe

uci set network.wan.username=[上网帐户]

uci set network.wan.password=[上网密码] //这两行设置pppoe用户名和密码

[/php]

如果要挂在上级路由下面,就需要进行下面的设置

Shell代码

[php]

uci set network.wan.proto=none //关掉wan

uci set network.lan.gateway=[上级路由ip] //网关指向上级路由

uci set network.lan.dns=[上级路由ip] //dns指向上级路由

uci set dhcp.lan.ignore=1 //关掉lan的dhcp

[/php]

最后对无线网络进行配置

Shell代码

[php]

uci set wireless.@wifi-device[0].disabled=0 //打开无线

uci set wireless.@wifi-device[0].txpower=17 //设置功率为17dbm 太高会烧无线模块

uci set wireless.@wifi-device[0].channel=6 //设置无线信道为6

uci set wireless.@wifi-iface[0].mode=ap //设置无线模式为ap

uci set wireless.@wifi-iface[0].ssid=[自己设置SSID] //设置无线SSID

uci set wireless.@wifi-iface[0].network=lan //无线链接到lan上

uci set wireless.@wifi-iface[0].encryption=psk2 //设置加密为WPA2-PSK

uci set wireless.@wifi-iface[0].key=[密码] //设置无线密码

[/php]

提交应用配置

Shell代码

[php]

uci commit //应用

/etc/init.d/network restart //重启网络服务

[/php]

安装luci管理界面

Shell代码

[php]

opkg update // 更新软件列表

opkg list-installed // 查看已安装软件

opkg install luci // 安装LUCI

opkg install luci-i18n-chinese // 支持中文

luci-app-firewall - 0.10.0-1

luci-i18n-english - 0.10.0-1

luci-lib-core - 0.10.0-1

luci-lib-ipkg - 0.10.0-1

luci-lib-lmo - 0.10.0-1

luci-lib-nixio - 0.10.0-1

luci-lib-sys - 0.10.0-1

luci-lib-web - 0.10.0-1

luci-mod-admin-core - 0.10.0-1

luci-mod-admin-full - 0.10.0-1

luci-proto-core - 0.10.0-1

luci-proto-ppp - 0.10.0-1

luci-sgi-cgi - 0.10.0-1

luci-theme-base - 0.10.0-1

luci-theme-openwrt - 0.10.0-1

[/php]

即可完成LUCI的安装。

输入以下命令开启支持web服务的uhttpd,并设置其为自启动:

Shell代码

[php]

/etc/init.d/uhttpd enable # 开机自启动

/etc/init.d/uhttpd start # 启动uhttpd

[/php]

- Wifidog

你可以尝试执行以下命令安装Wifidog:

[php]

opkg update # Optional

opkg install wifidog

[/php]

--sftp安装

[php]

opkg update

opkg install vsftpd openssh-sftp-server

/etc/init.d/vsftpd enable

/etc/init.d/vsftpd start

[/php]

小米端口转发命令:

通过修改 /etc/config/firewall 这个文件来实现开放自己需要的端口到外网。

[php]

config rule 'httpdwan'

option src 'wan'

option dest_port '8088'

option proto 'tcp'

option target 'ACCEPT'

option name ''''httpd wan accept tcp port 8088''''

[/php]

保存后,执行 /etc/init.d/firewall restart 重启防火墙。

SSH工具:

1.WINSCP(文件传输到路由器上严重推荐使用)

2.putty中文版 中文的使用的难度相对低一点

⑦ linux 中 open和fopen的区别

Linux中open与fopen区别如下:

1、来源

从来源的角度看,两者能很好地区分开,这也是最显而易见的区别:

①open是Unix系统调用函数,返回的是文件描述符,它是文件在文件描述符表里的索引;

②fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api。返回的是一个指向文件结构的指针。

2、移植性

这一点从上面的来源可以推断出来,fopen是C标准函数,因此拥有良好的移植性,而open是Unix系统调用,移植性有限。如Windows下相似的功能使用API函数CreateFile。

3、适用范围

①open返回文件描述符,而文件描述符是Unix系统下的一个重要概念,Unix下的一切设备都是以文件的形式操作。如网络套接字、硬件设备等。当然包括操作普通正规文件。

②fopen是用来操纵普通正规文件。

4、文件IO层次

如果从文件IO的角度来看,前者属于低级IO函数,后者属于高级IO函数。低级和高级的简单区分标准是:谁离系统内核更近。低级文件IO运行在内核态,高级文件IO运行在用户态。

⑧ linux虚拟机里面open函数是直接在终端上编写吗

202open函数属于Linux中系统IO,用于“打开”文件,代码打开一个文件意味着获得了这个文件的访问句柄。 intfd = open(参数1,参数2,参数3); intfd...

⑨ linux open source code 包含 uboot吗

uboot的确是代码开源的,而且是遵循GPL开源协议,不过它主要还是用于嵌入式Linux,比如路由器上的OpenWrt就可以用它。

⑩ 为什么linux下面的open函数有2种原型这样做有什么好处呢求正解。。。

那叫:可变参数。
当其第二个参数含有O_CREAT 时,第三个参数才有效。表示的是当使用open系统调用创建一个文件时,其文件的访问权限是多少,第三个参数可以指定为0755,0644等,也可以用系统提供的宏:S_IRWXU、S_IRUSR等代替,一个作用。

两个都是posix标准,事实上两个函数是一个。

阅读全文

与linuxopen源码相关的资料

热点内容
复利计算法律保护 浏览:736
代号f2服务器连接失败怎么搞 浏览:956
旋律云我的世界服务器靠谱吗 浏览:63
pdf降低大小 浏览:230
魔兽世界中文如何外服服务器 浏览:924
kindle转pdf格式 浏览:60
单片机自动控制 浏览:673
需要很多文件夹怎么快速的新建啊 浏览:67
算法申请着作权 浏览:213
以前手机号换了要怎么登录农行app 浏览:192
线切割编程系统怎么绘画 浏览:234
如何搭建云服务器异地容灾 浏览:923
黄金拐点指标源码 浏览:92
算法导论第九章 浏览:277
鸽子为什么生成服务器没反应 浏览:491
freebsdnginxphp 浏览:216
噪声消除算法 浏览:608
vue类似电脑文件夹展示 浏览:112
后备服务器有什么功效 浏览:269
连不上服务器怎么连 浏览:601