當前位置:首頁 » 操作系統 » wifilinux移植

wifilinux移植

發布時間: 2023-03-20 13:29:49

① 如何通過wifi訪問linux

不能通過wifi訪問Linux可以通過wifi鏈接Linux所在網路 然後通過遠程工具連Linux 例如xshell crt putty等 想了解更多可以看看《Linux就該這么學》

② 主機是用wifi連接的,怎麼橋接虛擬機下linux

直接設置虛擬機網路適配器為橋謹此接模式即可!
虛擬機設置動態獲取DHCP即可。
主機使用無線wifi的時候,事實上是出於有路由器的網路環境,主機的ip地址也是由路由器的DHCP服務分配的,虛擬機使用橋接模式,這樣虛擬機也能從路由器獲取對應的ip地址。
主機和虛擬機獲取逗和的ip地址為同一網段的ip地址,只要防火牆設置正確就可以相互通訊。
記得主機設置網路位置為工作網路,並打開高級共享設置中,打開網路發現和啟用文祥指迅件和列印機共享即可。

③ linux系統下怎麼連wifi

linux系統下連wifi的操作步驟如下:

1、第一步需要保證計算機已經安裝無線網卡驅動程序,在下圖的使用命令進行檢查哪個埠支持無線連接,一般情況下一般是wlan0但也不包括特殊。

④ 「干貨」嵌入式Linux系統移植的四大步驟(上)


在學習系統移植的相關知識,在學習和調試過程中,發現了很多問題,也解決了很多問題,但總是對於我們的開發結果有一種莫名其妙的感覺,糾其原因,主要對於我們的開發環境沒有一個深刻的認識,有時候幾個簡單的命令就可以完成非常復雜的功能,可是我們有沒有想過,為什麼會有這樣的效果?


如果沒有去追問,只是機械地完成,並且看到實驗效果,這樣做其實並沒有真正的掌握系統移植的本質。


在做每一個步驟的時候, 首先問問自己,為什麼要這樣做,然後再問問自己正在做什麼? 搞明白這幾個問題,我覺得就差不多了,以後不管更換什麼平台,什麼晶元,什麼開發環境,你都不會迷糊,很快就會上手。對於嵌入式的學習方法,我個人方法就是:從宏觀上把握(解決為什麼的問題),微觀上研究(解決正在做什麼的問題),下面以自己學習的arm-cortex_a8開發板為目標,介紹下自己的學習方法和經驗。


嵌入式Linux系統移植主要由四大部分組成:


一、搭建交叉開發環境
二、bootloader的選擇和移植
三、kernel的配置、編譯、和移植
四、根文件系統的製作


第一部分:搭建交叉開發環境


先介紹第一分部的內容:搭建交叉開發環境,首先必須得思考兩個問題,什麼是交叉環境? 為什麼需要搭建交叉環境?


先回答第一個問題,在嵌入式開發中,交叉開發是很重要的一個概念,開發的第一個環節就是搭建環境,第一步不能完成,後面的步驟從無談起,這里所說的交叉開發環境主要指的是:在開發主機上(通常是我的pc機)開發出能夠在目標機(通常是我們的開發板)上運行的程序。嵌入式比較特殊的是不能在目標機上開發程序(狹義上來說),因為對於一個原始的開發板,在沒有任何程序的情況下它根本都跑不起來,為了讓它能夠跑起來,我們還必須要藉助pc機進行燒錄程序等相關工作,開發板才能跑起來,這里的pc機就是我們說的開發主機,想想如果沒有開發主機,我們的目標機基本上就是無法開發,這也就是電子行業的一句名言:搞電子,說白了,就是玩電腦!


然後回答第二個問題,為什麼需要交叉開發環境?主要原因有以下幾點:


原因 1: 嵌入式系統的硬體資源有很多限制,比如cpu主頻相對較低,內存容量較小等,想想讓幾百MHZ主頻的MCU去編譯一個Linux kernel會讓我們等的不耐煩,相對來說,pc機的速度更快,硬體資源更加豐富,因此利用pc機進行開發會提高開發效率。


原因2: 嵌入式系統MCU體系結構和指令集不同,因此需要安裝交叉編譯工具進行編譯,這樣編譯的目標程序才能夠在相應的平台上比如:ARM、MIPS、 POWEPC上正常運行。


交叉開發環境的硬體組成主要由以下幾大部分


1.開發主機
2.目標機(開發板)
3.二者的鏈接介質,常用的主要有3種方式:(1)串口線 (2)USB線 (3)網線


對應的硬體介質,還必須要有相應的軟體「介質」支持:


1.對於串口,通常用的有串口調試助手,putty工具等,工具很多,功能都差不多,會用一兩款就可以;


2.對於USB線,當然必須要有USB的驅動才可以,一般晶元公司會提供,比如對於三星的晶元,USB下載主要由DNW軟體來完成;


3.對於網線,則必須要有網路協議支持才可以, 常用的服務主要兩個


第一:tftp服務:

主要用於實現文件的下載,比如開發調試的過程中,主要用tftp把要測試的bootloader、kernel和文件系統直接下載到內存中運行,而不需要預先燒錄到Flash晶元中,一方面,在測試的過程中,往往需要頻繁的下載,如果每次把這些要測試的文件都燒錄到Flash中然後再運行也可以,但是缺點是:過程比較麻煩,而且Flash的擦寫次數是有限的;另外一方面:測試的目的就是把這些目標文件載入到內存中直接運行就可以了,而tftp就剛好能夠實現這樣的功能,因此,更沒有必要把這些文件都燒錄到Flash中去。


第二: nfs服務:

主要用於實現網路文件的掛載,實際上是實現網路文件的共享,在開發的過程中,通常在系統移植的最後一步會製作文件系統,那麼這是可以把製作好的文件系統放置在我們開發主機PC的相應位置,開發板通過nfs服務進行掛載,從而測試我們製作的文件系統是否正確,在整個過程中並不需要把文件系統燒錄到Flash中去,而且掛載是自動進行掛載的,bootload啟動後,kernel運行起來後會根據我們設置的啟動參數進行自動掛載,因此,對於開發測試來講,這種方式非常的方便,能夠提高開發效率。


另外,還有一個名字叫 samba 的服務也比較重要,主要用於文件的共享,這里說的共享和nfs的文件共享不是同一個概念,nfs的共享是實現網路文件的共享,而samba實現的是開發主機上 Windows主機和Linux虛擬機之間的文件共享,是一種跨平台的文件共享 ,方便的實現文件的傳輸。


以上這幾種開發的工具在嵌入式開發中是必備的工具,對於嵌入式開發的效率提高做出了偉大的貢獻,因此,要對這幾個工具熟練使用,這樣你的開發效率會提高很多。等測試完成以後,就會把相應的目標文件燒錄到Flash中去,也就是等發布產品的時候才做的事情,因此對於開發人員來說,所有的工作永遠是測試。


通過前面的工作,我們已經准備好了交叉開發環境的硬體部分和一部分軟體,最後還缺少交叉編譯器,讀者可能會有疑問,為什麼要用交叉編譯器?前面已經講過,交叉開發環境必然會用到交叉編譯工具,通俗地講就是在一種平台上編譯出能運行在體系結構不同的另一種平台上的程序,開發主機PC平台(X86 CPU)上編譯出能運行在以ARM為內核的CPU平台上的程序,編譯得到的程序在X86 CPU平台上是不能運行的,必須放到ARM CPU平台上才能運行,雖然兩個平台用的都是Linux系統。相對於交叉編譯,平常做的編譯叫本地編譯,也就是在當前平台編譯,編譯得到的程序也是在本地執行。用來編譯這種跨平台程序的編譯器就叫交叉編譯器,相對來說,用來做本地編譯的工具就叫本地編譯器。所以要生成在目標機上運行的程序,必須要用交叉編譯工具鏈來完成。

這里又有一個問題,不就是一個交叉編譯工具嗎?為什麼又叫交叉工具鏈呢?原因很簡單,程序不能光編譯一下就可以運行,還得進行匯編和鏈接等過程,同時還需要進行調試,對於一個很大工程,還需要進行工程管理等等,所以,這里 說的交叉編譯工具是一個由 編譯器、連接器和解釋器 組成的綜合開發環境,交叉編譯工具鏈主要由binutils(主要包括匯編程序as和鏈接程序ld)、gcc(為GNU系統提供C編譯器)和glibc(一些基本的C函數和其他函數的定義) 3個部分組成。有時為了減小libc庫的大小,也可以用別的 c 庫來代替 glibc,例如 uClibc、dietlibc 和 newlib。

那麼,如何得到一個交叉工具鏈呢?是從網上下載一個「程序」然後安裝就可以使用了嗎?回答這個問題之前先思考這樣一個問題,我們的交叉工具鏈顧名思義就是在PC機上編譯出能夠在我們目標開發平台比如ARM上運行的程序,這里就又有一個問題了,我們的ARM處理器型號非常多,難道有專門針對我們某一款的交叉工具鏈嗎?若果有的話,可以想一想,這么多處理器平台,每個平台專門定製一個交叉工具鏈放在網路上,然後供大家去下載,想想可能需要找很久才能找到適合你的編譯器,顯然這種做法不太合理,且浪費資源!因此,要得到一個交叉工具鏈,就像我們移植一個Linux內核一樣,我們只關心我們需要的東西,編譯我們需要的東西在我們的平台上運行,不需要的東西我們不選擇不編譯,所以,交叉工具鏈的製作方法和系統移植有著很多相似的地方,也就是說,交叉開發工具是一個支持很多平台的工具集的集合(類似於Linux源碼),然後我們只需從這些工具集中找出跟我們平台相關的工具就行了,那麼如何才能找到跟我們的平台相關的工具,這就是涉及到一個如何製作交叉工具鏈的問題了。


通常構建交叉工具鏈有如下三種方法:


方法一 : 分步編譯和安裝交叉編譯工具鏈所需要的庫和源代碼,最終生成交叉編譯工具鏈。該方法相對比較困難,適合想深入學習構建交叉工具鏈的讀者。如果只是想使用交叉工具鏈,建議使用下列的方法二構建交叉工具鏈。


方法二: 通過Crosstool-ng腳本工具來實現一次編譯,生成交叉編譯工具鏈,該方法相對於方法一要簡單許多,並且出錯的機會也非常少,建議大多數情況下使用該方法構建交叉編譯工具鏈。


方法三 : 直接通過網上下載已經製作好的交叉編譯工具鏈。該方法的優點不用多說,當然是簡單省事,但與此同時該方法有一定的弊端就是局限性太大,因為畢竟是別人構建好的,也就是固定的,沒有靈活性,所以構建所用的庫以及編譯器的版本也許並不適合你要編譯的程序,同時也許會在使用時出現許多莫名其妙的錯誤,建議讀者慎用此方法。

crosstool-ng是一個腳本工具,可以製作出適合不同平台的交叉編譯工具鏈,在進行製作之前要安裝一下軟體:
$ sudo apt-get install g++ libncurses5-dev bison flex texinfo automake libtool patch gcj cvs cvsd gawk
crosstool腳本工具可以在http://ymorin.is-a-geek.org/projects/crosstool下載到本地,然後解壓,接下來就是進行安裝配置了,這個配置優點類似內核的配置。主要的過程有以下幾點:
1. 設定源碼包路徑和交叉編譯器的安裝路徑
2. 修改交叉編譯器針對的構架

3. 增加編譯時的並行進程數,以增加運行效率,加快編譯,因為這個編譯會比較慢。
4. 關閉JAVA編譯器 ,減少編譯時間
5. 編譯
6. 添加環境變數
7. 刷新環境變數。
8. 測試交叉工具鏈

到此,嵌入式Linux系統移植四大部分的第一部分工作全部完成,接下來可以進行後續的開發了。



第二部分:bootloader的選擇和移植


01 Boot Loader 概念


就是在操作系統內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬體設備、建立內存空間的映射圖,從而將系統的軟硬體環境帶到一個合適的狀態,以便為最終調用操作系統內核准備好正確的環境,他就是所謂的引導載入程序(Boot Loader)。


02 為什麼系統移植之前要先移植BootLoader?


BootLoader的任務是引導操作系統,所謂引導操作系統,就是啟動內核,讓內核運行就是把內核載入到內存RAM中去運行,那先問兩個問題:第一個問題,是誰把內核搬到內存中去運行?第二個問題:我們說的內存是SDRAM,大家都知道,這種內存和SRAM不同,最大的不同就是SRAM只要系統上電就可以運行,而SDRAM需要軟體進行初始化才能運行,那麼在把內核搬運到內存運行之前必須要先初始化內存吧,那麼內存是由誰來初始化的呢?其實這兩件事情都是由bootloader來乾的,目的是為內核的運行准備好軟硬體環境,沒有bootloadr我們的系統當然不能跑起來。

03 bootloader的分類


首先更正一個錯誤的說法,很多人說bootloader就是U-boot,這種說法是錯誤的,確切來說是u-boot是bootloader的一種。也就是說bootloader具有很多種類,


由上圖可以看出,不同的bootloader具有不同的使用范圍,其中最令人矚目的就是有一個叫U-Boot的bootloader,是一個通用的引導程序,而且同時支持X86、ARM和PowerPC等多種處理器架構。U-Boot,全稱 Universal Boot Loader,是遵循GPL條款的開放源碼項目,是由德國DENX小組開發的用於多種嵌入式CPU的bootloader程序,對於Linux的開發,德國的u-boot做出了巨大的貢獻,而且是開源的。

u-boot具有以下特點:

① 開放源碼;
② 支持多種嵌入式操作系統內核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS;
③ 支持多個處理器系列,如PowerPC、ARM、x86、MIPS、XScale;
④ 較高的可靠性和穩定性;
⑤ 高度靈活的功能設置,適合U-Boot調試、操作系統不同引導要求、產品發布等;
⑥ 豐富的設備驅動源碼,如串口、乙太網、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、鍵盤等;
⑦ 較為豐富的開發調試文檔與強大的網路技術支持;
其實,把u-boot可以理解為是一個小型的操作系統。

04 u-boot的目錄結構


* board 目標板相關文件,主要包含SDRAM、FLASH驅動;
* common 獨立於處理器體系結構的通用代碼,如內存大小探測與故障檢測;
* cpu 與處理器相關的文件。如mpc8xx子目錄下含串口、網口、LCD驅動及中斷初始化等文件;
* driver 通用設備驅動,如CFI FLASH驅動(目前對INTEL FLASH支持較好)
* doc U-Boot的說明文檔;
* examples可在U-Boot下運行的示常式序;如hello_world.c,timer.c;
* include U-Boot頭文件;尤其configs子目錄下與目標板相關的配置頭文件是移植過程中經常要修改的文件;
* lib_xxx 處理器體系相關的文件,如lib_ppc, lib_arm目錄分別包含與PowerPC、ARM體系結構相關的文件;
* net 與網路功能相關的文件目錄,如bootp,nfs,tftp;
* post 上電自檢文件目錄。尚有待於進一步完善;
* rtc RTC驅動程序;
* tools 用於創建U-Boot S-RECORD和BIN鏡像文件的工具;

05 u-boot的工作模式


U-Boot的工作模式有 啟動載入模式和下載模式 。啟動載入模式是Bootloader的正常工作模式,嵌入式產品發布時,Bootloader必須工作在這種模式下,Bootloader將嵌入式操作系統從FLASH中載入到SDRAM中運行,整個過程是自動的。 下載模式 就是Bootloader通過某些通信手段將內核映像或根文件系統映像等從PC機中下載到目標板的SDRAM中運行,用戶可以利用Bootloader提供的一些令介面來完成自己想要的操作,這種模式主要用於測試和開發。

06 u-boot的啟動過程


大多數BootLoader都分為stage1和stage2兩大部分,U-boot也不例外。依賴於cpu體系結構的代碼(如設備初始化代碼等)通常都放在stage1且可以用匯編語言來實現,而stage2則通常用C語言來實現,這樣可以實現復雜的功能,而且有更好的可讀性和移植性。


1、 stage1(start.s代碼結構)
U-boot的stage1代碼通常放在start.s文件中,它用匯編語言寫成,其主要代碼部分如下:
(1) 定義入口。由於一個可執行的image必須有一個入口點,並且只能有一個全局入口,通常這個入口放在rom(Flash)的0x0地址,因此,必須通知編譯器以使其知道這個入口,該工作可通過修改連接器腳本來完成。
(2)設置異常向量(exception vector)。
(3)設置CPU的速度、時鍾頻率及中斷控制寄存器。
(4)初始化內存控制器 。
(5)將rom中的程序復制到ram中。
(6)初始化堆棧 。
(7)轉到ram中執行,該工作可使用指令ldrpc來完成。


2、 stage2(C語言代碼部分)

lib_arm/board.c中的start armboot是C語言開始的函數,也是整個啟動代碼中C語言的主函數,同時還是整個u-boot(armboot)的主函數,該函數主要完成如下操作:
(1)調用一系列的初始化函數。
(2)初始化flash設備。
(3)初始化系統內存分配函數。
(4)如果目標系統擁有nand設備,則初始化nand設備。
(5)如果目標系統有顯示設備,則初始化該類設備。
(6)初始化相關網路設備,填寫ip,c地址等。
(7)進入命令循環(即整個boot的工作循環),接受用戶從串口輸入的命令,然後進行相應的工作。

07 基於cortex-a8的s5pc100bootloader啟動過程分析


s5pc100支持兩種啟動方式,分別為USB啟動方式和NandFlash啟動方式:


1. S5PC100 USB啟動過程

[1] A8 reset, 執行iROM中的程序
[2] iROM中的程序根據S5PC100的配置管腳(SW1開關4,撥到4對面),判斷從哪裡啟動(USB)
[3] iROM中的程序會初始化USB,然後等待PC機下載程序
[4] 利用DNW程序,從PC機下載SDRAM的初始化程序到iRAM中運行,初始化SDRAM
[5] SDRAM初始化完畢,iROM中的程序繼續接管A8, 然後等待PC下載程序(BootLoader)
[6] PC利用DNW下載BootLoader到SDRAM
[7] 在SDRAM中運行BootLoader

2. S5PC100 Nandflash啟動過程

[1] A8 reset, 執行IROM中的程序
[2] iROM中的程序根據S5PC100的配置管腳(SW1開關4,撥到靠4那邊),判斷從哪裡啟動(Nandflash)
[3] iROM中的程序驅動Nandflash
[4] iROM中的程序會拷貝Nandflash前16k到iRAM
[5] 前16k的程序(BootLoader前半部分)初始化SDRAM,然後拷貝完整的BootLoader到SDRAM並運行
[6] BootLoader拷貝內核到SDRAM,並運行它
[7] 內核運行起來後,掛載rootfs,並且運行系統初始化腳本

08 u-boot移植(基於cortex_a8的s5pc100為例)


1.建立自己的平台

(1).下載源碼包2010.03版本,比較穩定
(2).解壓後添加我們自己的平台信息,以smdkc100為參考版,移植自己s5pc100的開發板
(3).修改相應目錄的文件名,和相應目錄的Makefile,指定交叉工具鏈。
(4).編譯
(5).針對我們的平台進行相應的移植,主要包括修改SDRAM的運行地址,從0x20000000
(6).「開關」相應的宏定義
(7).添加Nand和網卡的驅動代碼
(8).優化go命令
(9).重新編譯 make distclean(徹底刪除中間文件和配置文件) make s5pc100_config(配置我們的開發板) make(編譯出我們的u-boot.bin鏡像文件)
(10).設置環境變數,即啟動參數,把編譯好的u-boot下載到內存中運行,過程如下:
1. 配置開發板網路
ip地址配置:
$setenv ipaddr 192.168.0.6 配置ip地址到內存的環境變數
$saveenv 保存環境變數的值到nandflash的參數區

網路測試:
在開發開發板上ping虛擬機:
$ ping 192.168.0.157(虛擬機的ip地址)

如果網路測試失敗,從下面幾個方面檢查網路:
1. 網線連接好
2. 開發板和虛擬機的ip地址是否配置在同一個網段
3. 虛擬機網路一定要採用橋接(VM--Setting-->option)
4. 連接開發板時,虛擬機需要設置成 靜態ip地址

2. 在開發板上,配置tftp伺服器(虛擬機)的ip地址
$setenv serverip 192.168.0.157(虛擬機的ip地址)
$saveenv
3. 拷貝u-boot.bin到/tftpboot(虛擬機上的目錄)
4. 通過tftp下載u-boot.bin到開發板內存
$ tftp 20008000(內存地址即可) u-boot.bin(要下載的文件名)

如果上面的命令無法正常下載:
1. serverip配置是否正確
2. tftp服務啟動失敗,重啟tftp服務
#sudo service tftpd-hpa restart

5. 燒寫u-boot.bin到nandflash的0地址
$nand erase 0(起始地址) 40000(大小) 擦出nandflash 0 - 256k的區域
$nand write 20008000((緩存u-boot.bin的內存地址) 0(nandflash上u-boot的位置) 40000(燒寫大小)

6. 切換開發板的啟動方式到nandflash
1. 關閉開發板
2. 把SW1的開關4撥到4的那邊
3. 啟動開發板,它就從nandflash啟動

⑤ RK3399 移植WIFI RTL8822cs

具體的資料包由 WIFI模塊廠商提供。
驅動:RTL8822CS_WiFi_linux_v5.12.1.1-0-gf673ce3_COEX20200922-1e1e.20210125.rar

使用Rtl8822cs支持3.0模塊時,初始化不過,異常log如下:談核兄

解決方法:打含襲上以下補丁:

修改後重新編譯,燒錄到板子上結果如圖:氏豎

⑥ Linux下的iwpriv(iwlist、iwconfig)的簡單應用

姓名:張猛

引用自: http://blog.csdn.net/baggio1006/article/details/8838626

【嵌牛導讀】:無線網路飛速發展的今天,許多設備都提供了連接無線網路的功能。那麼Linux下的wifi到底該怎麼配置、連接呢??開始配置之前,我們要說說iw家族。iw是linux下常用的wifi配置消念世工具,網上有相應的庫和源碼。全名為wirelessTools。配置wifi模塊,並連接相應的無線網路過程:主要使用iwpriv命令

【嵌牛鼻子】:wifi   iw   配置   

【嵌牛提問】:配置流程是什麼?以及iw配置工具的命令的意思和用法拿肢。

【嵌牛正文】:

1. 掃描可用的無線網路:

iwlist wifi-name scanning

其中wifi-name為無線網卡的名字,比如網卡eth0就是系統默認的網卡名字, wifi-name可以用ifconfig查看,一般為ra0。

2. 看掃描到的網路信息,按要連接的網路類型進行配置。以下為掃描到的網路:

iwlist ra0scanning

===>rt_ioctl_giwscan. 11(11) BSS returned, data->length=1427

ra0       Scan completed :

Cell 01 - Address: C4:CA:D9:1D:9E:A0

Protocol:802.11b/g/n

ESSID:""

Mode:Managed

Frequency:2.412 GHz (Channel 1)

Quality=7/100  Signallevel=-87 dBm  Noiselevel=-82 dBm

Encryption key:off

Bit Rates:54 Mb/s

Cell 02 - Address: FC:75:16:A1:A9:16

Protocol:802.11b/g/n

ESSID:"jxj_rd"

Mode:Managed

Frequency:2.452 GHz (Channel 9)

Quality=94/100  Signallevel=-53 dBm  Noiselevel=-92 dBm

Encryption key:on

Bit Rates:54 Mb/s

IE: WPA Version 1

Group Cipher : TKIP

Pairwise Ciphers (2) : TKIP CCMP

Authentication Suites (1) : PSK

IE: 高森IEEE 802.11i/WPA2 Version 1

Group Cipher : TKIP

Pairwise Ciphers (2) : TKIP CCMP

Authentication Suites (1) : PSK

Cell 03 - Address: C4:CA:D9:02:2A:70

Protocol:802.11b/g/n

ESSID:""

Mode:Managed

Frequency:2.462 GHz (Channel 11)

Quality=83/100  Signallevel=-57 dBm  Noiselevel=-92 dBm

Encryption key:off

Bit Rates:54 Mb/s

Cell 04 - Address: 14:D6:4D:75:CA:9C

Protocol:802.11b/g/n

ESSID:"liangym"

Mode:Managed

Frequency:2.472 GHz (Channel 13)

Quality=100/100  Signallevel=-27 dBm  Noiselevel=-92 dBm

Encryption key:on

Bit Rates:54 Mb/s

IE: WPA Version 1

Group Cipher : CCMP

Pairwise Ciphers (1) : CCMP

Authentication Suites (1) : PSK

IE: IEEE 802.11i/WPA2 Version 1

Group Cipher : CCMP

Pairwise Ciphers (1) : CCMP

Authentication Suites (1) : PSK

如上:ESSID項的值即為無線網路的名字,如上的「jxj_rd」等。如果值為空,說明在無線路由勾選了隱藏ESSID的選項。

ESSID是很關鍵的,如果被隱藏了,也不是不能連接,而是需要破解,用到其他的工具,非常麻煩。至於如何破解,不是本文敘述的內容,有興趣的朋友可以網上搜索。

得到了網路的信息,接下來就是配置連接選項了。以連接"jxj_rd"為例,我們看看具體的過程:

(1) 設置要連接的網路類型:

iwpriv ra0 setNetworkType=Infra

(2) 設置要連接的無線網路的安全模式:

iwpriv ra0 setAuthMode=WPA2PSK

(3) 設置網路加密方式:(CCMP即為AES)

iwpriv ra0 setEncrypType=TKIP

(4) 設置連接時的密碼: ********為加密網路的密碼

iwpriv ra0 setWPAPSK=*******

(5) 連接該網路:有兩種方式:

<1> 用iwpriv命令

iwpriv ra0 setSSID=jxj_rd

<2> 用iwconfig命令

iwconfig ra0 essid jxj_rd

至此,如果密碼正確,就可以連接上網路jxj_rd了。如果你不放心,可以用命令查看狀態:

iwpriv ra0 connStatus

當然,你也可以用iwconfig命令查看狀態,這里不再贅述。

==========================================================

insmod   rt3070sta.ko

ifconfig ra0 up     啟用無線網卡,至於為什麼是ra0,因為我的使用手冊上是這樣做的

此時cat /proc/wireless   可以看到多了一個ra0

iwlist scanning 可以搜索到可用的網路  iwlist ra0 scanning  (只搜索ra0的無線網路)

iwpriv ra0 set SSID="name"無線網路配置  name是搜到的一個網路的名字。假如不要密碼這樣就行了。

iwpriv ra0 set WPAPSK="A3DDD"  輸入登陸密碼

iwconfig ra0 key open       打開密碼   輸入密碼後 一定要加這條命令哦,不然連接不上

ifconfig ra0 192.168.1.109 netmask 255.255.255.0為無線網卡指定IP地址

設置網關   route add default gw 192.168.1.1

之後我在ubantu上ping 192.168.1.109 成功。這些命令就是所謂的工具。

在超級終端ping 外網成功。

各種密碼的命令參數,這在iwpriv_usage.txt裡面可以查到。

無密碼:

iwpriv ra0 set SSID="Vodafone D100"

注意:在切換到無密碼的用戶時,若之前是有密碼用戶,則要iwconfig ra0 key off。

WPA型密碼:

網上說若路由器的加密方式是wpa的話要移植wpa_supplicant工具,我沒有這樣做,還是可以。

iwpriv ra0 set NetworkType=Infra       網路類型有Infra,Adhoc兩種,前者是基於AP的,後者是p2p

iwpriv ra0 set AuthMode=WPAPSK                OPEN,SHARED,WEPAUTO,WPAPSK,WPA2PSK,WPANONE

iwpriv ra0 set EncrypType=TKIP                NONE,WEP,TKIP,AES

iwpriv ra0 set SSID="Vodafone D100"

iwpriv ra0 set WPAPSK="1234567890"

WEP型密碼:

iwpriv ra0 set NetworkType=Infra

iwpriv ra0 set AuthMode=OPEN

iwpriv ra0 set EncrypType=WEP

iwpriv ra0 set DefaultKeyID=1

iwpriv ra0 set Key1="1234567890"

iwpriv ra0 set SSID="Vodafone D100"

切換用戶登陸:

直接重新輸入登陸名字和輸入密碼的命令,值得注意的是在切換有密碼和沒有密碼的用戶時要相應的iwconfig ra0 key open和iwconfig ra0 key off。

網上說若路由器的加密方式是wpa的話要移植wpa_supplicant工具,我沒有作過,看別人的http://blog.csdn.net/jimmy_1986/archive/2010/09/09/5872536.aspx

錯誤信息

PING 192.168.1.1 (192.168.1.1): 56 data bytes

ping: sendto: Network is unreachable

此原因是沒有設置ip   ifconfig ra0 192.168.1.109 up    解決。

ping 219.134.65.113   外網

ping: sendto: Network is unreachable

此原因是沒有設置網關   route add default gw 192.168.1.1   解決。

⑦ Win7筆記本電腦的WIFI網路如何共享給Ubuntu Linux伺服器了,謝謝大家,急啊

步驟是:
1. 確保電腦通過網卡(有線的乙太網卡)連接到Internet。
2. 在電腦上安裝虛擬機軟體VMWare Workstation,然後在虛擬機環境中安裝Ubuntu10.04操作系統。虛擬機的網卡一定要選擇Bridged,即橋接。這樣,虛擬機系統也能正常訪問Internet(選擇NAT方式應該也可以,沒試過)。
3. 在虛擬的Ubuntu環境下連接USB無線網卡,確保無線網卡在Ubuntu下正常工作後,創建一個Ad-hoc模式的無線連接。
4. 在虛擬的Ubuntu環境下安裝並配置Wiwiz客戶端。以上一步創建Ad-hoc的無線連接作為Internal NIC(如果不知道哪個是無線連接,可以用iwconfig命令看一下)。

⑧ 求助,Linux SDIO WIFI realtek8189 驅動移植

應該可以支持,你這種情況可能是無線網卡沒有載入到linux裡面去。 如果在linux的可移動設備里不能直接載入的話,需要你把無線網卡拔掉再插上,linux就能找到並載入你的無線網卡了。健康好心情您好!僅供參考,相互交流!更多交流在CSDN,365testin

⑨ 求助,ARM Linux移植無線網卡的連不上自己的無線網路

新版的linux2.6.27.9已自帶zd1211b的驅動。此驅動在rat-linux-2.6.27.9/drivers/net/wireless/zd1211rw/中。
要讓此驅動生效,得修改內核配置。
選中
networking support-->wireless-->Generic IEEE 802.11 Networking Stack (mac80211)
選中
device drivers-->netword device support-->wirelss lan-->ZyDAS ZD1211/ZD1211B USB-wireless support
重新編譯內核。下載到板子中,重啟。加入無線網卡。出現
usb 1-1: USB disconnect, address 2
usb 1-1: new full speed USB device using s3c2410-ohci and address 3
usb 1-1: configuration #1 chosen from 1 choice
usb 1-1: reset full speed USB device using s3c2410-ohci and address 3
zd1211rw 1-1:1.0: phy1
表示無線網卡已被識別。使用cat /proc/net/wireless 命令,可以查看到系統中多了個wlan0網卡。此時,網卡還沒工作。使用命
令ifconfig wlan0 up則出現firmware:requesting zd1211,然後沒反應了,這是因為沒有firmware的原因,從這里
http://downloads.sourceforge.net/zd1211/zd1211-firmware-1.4.tar.bz2?modtime=1191498990&big_mirror=0
下載到zd1211 firmware 1.4後,根據firmware的說明,將其中的zd1211_*文件拷貝到根文件系統/lib/firmware/zd1211目錄中。這
里再執行ifconfig wlan0 up命令,則出現
firmware: requesting zd1211/zd1211b_ub
firmware: requesting zd1211/zd1211b_uphr
zd1211rw 1-1:1.0: firmware version 4725
zd1211rw 1-1:1.0: zd1211b chip 0ace:1215 v4810 full 00-02-72 AL2230_RF pa0 g--N
網卡硬體開始正常工作了。其中,0ace:1215是網卡的ID,可以用主機linux系統命令lsusb查看到。
但此時,網卡還沒被正確配置,還不能正常使用。
要正常使用無線網卡,還要正確配置。linux下的配置工具是wireless-tools,可以在這里下載到它的最新版。
http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html
下載後,將源代碼解壓。再修改其中的makefile文件,將其中的
CC = gcc
AR = ar
RANLIB = ranlib
改為
CC = arm-linux-gcc
AR = arm-linux-ar
RANLIB = arm-linux-ranlib
再執行make,編譯完成後,將生成的iwconfig,iwlist文件拷貝到rat-linux for mini2440的根文件系統中的/bin目錄下,將
libiw.so.29拷貝到/lib目錄下。
啟動mini2440開發板,進入linux命令行後,執行ifconfig wlan0 up,啟動無線網卡。再執行iwlist scanning,此命令可以搜索到
可用的無線網路接入點。我的無線接入點是一台無線路由器,ESSID是"rat-linux",執行此命令後就會下列輸出
wlan0 Scan completed :
Cell 01 - Address: 00:19:C6:53:B9:CE
ESSID:"rat-linux"
Mode:Master
Channel:2
Frequency:2.417 GHz (Channel 2)
Quality=11/100 Signal level:66/100
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Extra:tsf=000000056306469f
Extra: Last beacon: 1065ms ago

其中可以看到我的無線接入點是需要密碼的。假設密碼是123456。使用如下的命令設置密碼
iwconfig wlan0 key 123456
為了能接無線網,還要使用下面的命令設置ESSID
iwconfig wlan0 essid "rat-linux"
其它的參數可以都採用默認的,不用再設了。可以使用下面的命令加入無線網了。

iwconfig wlan0 ap auto
再執行iwconfig wlan0,就可以看到下面的信息。
wlan0 IEEE 802.11bg ESSID:"rat-linux"
Mode:Managed Frequency:2.417 GHz Access Point: 00:19:C6:53:B9:CE
Bit Rate=1 Mb/s Tx-Power=27 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:1234-56 Security mode:open
Power Management:off
Link Quality=100/100 Signal level:66/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
這就表示已接入無線網。
最後,為無線網卡指定IP地址。命令如下
ifconfig wlan0 192.168.1.30 netmask 255.255.255.0
我的開發主機和無線網卡處於同一網段,因此是可以相互PING通的。因此可以用從開發主機上PING無線網卡的IP地址的方法來確網
卡是否工作正常。從主機上執行ping 192.168.1.30,正常PING通。
至此,無線網卡安裝全部完成。
最後,為了方便配置,可以將上述的配置命令寫入linux腳本文件,以後,只要執行此腳本,即可完成上述步驟的配置。腳本文件內
容如下。
#! /bin/sh
ifconfig wlan0 up
iwconfig wlan0 key 123456
iwconfig wlan0 essid "rat-linux"
iwconfig wlan0 ap auto
ifconfig wlan0 192.168.1.30 netmask 255.255.255.0

熱點內容
qq群里上傳的文件怎麼刪除 發布:2024-04-24 22:13:21 瀏覽:355
途岳配置升級了什麼 發布:2024-04-24 21:55:55 瀏覽:886
刷機安卓10狀態欄圓角如何修復 發布:2024-04-24 21:24:00 瀏覽:135
創建sql資料庫的命令是什麼 發布:2024-04-24 21:23:58 瀏覽:43
不是安卓該如何下載畫質怪獸 發布:2024-04-24 21:18:51 瀏覽:701
php載入網頁 發布:2024-04-24 21:15:20 瀏覽:161
遠程伺服器更換ip地址 發布:2024-04-24 21:14:43 瀏覽:528
什麼時候上線華為方舟編譯器軟體 發布:2024-04-24 21:10:21 瀏覽:631
安卓布局文件指的是哪個 發布:2024-04-24 21:08:05 瀏覽:889
磁帶存儲價格 發布:2024-04-24 21:04:22 瀏覽:902