導航:首頁 > 源碼編譯 > 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源碼相關的資料

熱點內容
plc和單片機哪個好 瀏覽:535
帝國神話組建雲伺服器 瀏覽:827
鄧散木pdf 瀏覽:199
方舟怎麼直連伺服器圖片教程 瀏覽:563
假相pdf 瀏覽:336
找對象找程序員怎麼找 瀏覽:976
怎麼投訴蘋果商店app 瀏覽:470
華為手機如何看有多少個app 瀏覽:734
btr如何管理別的伺服器 瀏覽:410
spwm軟體演算法 瀏覽:184
70多歲單身程序員 瀏覽:221
高考考前解壓拓展訓練 瀏覽:217
用紙做解壓玩具不用澆水 瀏覽:584
谷輪壓縮機序列號 瀏覽:737
牛頓插值法編程 瀏覽:366
php多用戶留言系統 瀏覽:731
安卓和蘋果如何切換流量 瀏覽:703
怎麼知道dns伺服器是多少 瀏覽:976
5995用什麼簡便演算法脫式計算 瀏覽:918
電腦上如何上小米雲伺服器地址 瀏覽:921