使用RT3070使開發板上網

来源:https://www.cnblogs.com/NickQ/archive/2018/04/30/8973880.html
-Advertisement-
Play Games

原文地址: "http://www.cnblogs.com/NickQ/p/8973880.html " 使開發板上網 USB驅動部分 在arch/arm/mach s3c2440/mach smdk2440.c中,修改Usb時鐘。 Wireless tools移植 修改Makefile 使用mak ...


原文地址:http://www.cnblogs.com/NickQ/p/8973880.html

使開發板上網

  • USB驅動部分

    在arch/arm/mach-s3c2440/mach-smdk2440.c中,修改Usb時鐘。
#include <mach/regs-clock.h> /* Add 2018/04/25-14:54:18  By Nick, for usb_s3c2440_init() */
#include <plat/udc.h>        /* Add 2018/04/25-14:54:26  By Nick   to support USB device gadget, 2017.5.4 */
#include <linux/delay.h>

/*  USB device UDC support add by 2018/04/25-14:54:57  By Nick */
static struct s3c2410_udc_mach_info smdk2440_udc_cfg __initdata = {
        .pullup_pin = S3C2410_GPG(9),
};

/* Add by 2018/04/25-14:55:19  By Nick, fix device descriptor read/64, error -62 bug, value refer to datasheet P255 */
int usb_s3c2440_init(void)
{
    /* Input Frequency is 12.0000MHz, and MDEV=0x38 PDIV=2 SDIV=2, so output frequency 48.00MHz */
    unsigned long upllvalue = (0x38<<12)|(0x02<<4)|(0x02);
    while (upllvalue != __raw_readl(S3C2410_UPLLCON))
    {
        __raw_writel(upllvalue, S3C2410_UPLLCON);
        mdelay(1);
    }
    return 0;
}

調用初始化函數

//在smdk2440_map_io函數中調用usb_s3c2440_init(),修改USB時鐘
static void __init smdk2440_map_io(void)
{
        s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
        s3c24xx_init_clocks(12000000);
        s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));
        usb_s3c2440_init();
}
  • 配置內核,使能USB和無線網卡(RT3070)驅動

[*] Networking support  --->  
        -*-   Wireless  --->
     <*>   cfg80211 - wireless configuration API                        
     [ ]     nl80211 testmode command                                    
     [ ]     enable developer warnings                               
     [ ]     cfg80211 regulatory debugging                             
     [*]     enable powersave by default                             
     [ ]     cfg80211 DebugFS entries                                 
     [*]     cfg80211 wireless extensions compatibility                
     [*]   Wireless extensions sysfs files                               
     {*}   Common routines for IEEE802.11 drivers                          
     [ ]   lib80211 debugging messages                               
     <*>   Generic IEEE 802.11 Networking Stack (mac80211)                 
                  Default rate control algorithm (Minstrel)  --->                 
     [ ]   Enable mac80211 mesh networking (pre-802.11s) support            
     [ ]   Export mac80211 internals in DebugFS                             
     [ ]   Select mac80211 debugging features  ---> 
Device Drivers  --->
       Generic Driver Options  --->
      (/sbin/hotplug) path to uevent helper                                  
      [ ] Maintain a devtmpfs filesystem to mount at /dev                    
      [ ] Select only drivers that don't need compile-time external firmware
      [ ] Prevent firmware from being built  
      -*- Userspace firmware loading support                                
      [*]   Include in-kernel firmware blobs in kernel binary              
      ()    External firmware blobs to build into the kernel binary         
      [ ] Driver Core verbose debug messages                                 
      [ ] Managed device resources verbose debug messages
    [*] Network device support  --->
           [*]   Wireless LAN  --->
               <*>   Ralink driver support  --->
               < >   Ralink rt2500 (USB) support                                    
               < >   Ralink rt2501/rt73 (USB) support                                 
               <*>   Ralink rt27xx/rt28xx/rt30xx (USB) support                      
                 [ ]     rt2800usb - Include support for rt33xx devices                 
                 [ ]     rt2800usb - Include support for rt35xx devices (EXPERIMENTAL)  
                 [ ]     rt2800usb - Include support for rt53xx devices (EXPERIMENTAL)  
                 [ ]     rt2800usb - Include support for unknown (USB) devices          
                 [*]   Ralink debug output
  • Wireless tools移植

    tar zxvf wireless_tools.29.tar.gz
    cd wireless_tools.29

    修改Makefile

    ## Compiler to use (modify this for cross compile).
    CC = /opt/xtools/arm920t/bin/arm-linux-gcc
    ## Other tools you need to modify for cross compile (static lib only).
    AR = /opt/xtools/arm920t/bin/arm-linux-ar
    RANLIB = /opt/xtools/arm920t/bin/arm-linux-ranlib

    使用make編譯.
    將生成的命令工具:ifrename、iwevent、wgetid、iwspy、iwlist、iwconfig、iwpriv,libiw.so.29拷貝到開發板的/bin下,並分別賦予許可權chmod 777 iw* libiw.so.29.

  • 製作openssl庫

    tar zxvf openssl-1.0.0s.tar.gz 
    mkdir install 

    修改Makefile

  1. 修改路徑

    INSTALL_PREFIX=
    INSTALLTOP=/home/nick/s3c2440/3rdparty/openssl-1.0.0s/install
    OPENSSLDIR=/home/nick/s3c2440/3rdparty/openssl-1.0.0s/install
  2. 修改編譯選項

    CC= /opt/xtools/arm920t/bin/arm-linux-cc
    CFLAG= -O
    DEPFLAG= -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_STORE
    PEX_LIBS=
    EX_LIBS=
    EXE_EXT=
    ARFLAGS=
    AR= /opt/xtools/arm920t/bin/arm-linux-ar $(ARFLAGS) r
    RANLIB= /opt/xtools/arm920t/bin/arm-linux-ranlib
  3. 使用sudo make && sudo make install 編譯安裝
    拷貝libcrypto.a; libssl.a到開發板的/lib下
    在下一步wpa_supplicant中需要使用這個庫,因此install將會被引用。

  • wpa_supplicant移植

    tar zxvf wpa_supplicant-0.7.3.tar.gz 
    cd ./wpa_supplicant-0.7.3/wpa_supplicant/
    cp defconfig .config 

    修改.config

    CC=/opt/xtools/arm920t/bin/arm-linux-gcc -L /home/nick/s3c2440/3rdparty/openssl-1.0.0s/install/lib
    #CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
    #CFLAGS += -Os
    CFLAGS += -I/home/nick/s3c2440/3rdparty/openssl-1.0.0s/install/include
    #CPPFLAGS += -I../src/include -I../../src/router/openssl/include
    #LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl
    LIBS += -L /home/nick/s3c2440/3rdparty/openssl-1.0.0s/install/lib

    使用make編譯
    將wpa_cli,wpa_supplicant,wpa_passphrase拷貝到開發板的/bin目錄下。並給予許可權 chmod 777:wpa_cli,wpa_supplicant,wpa_passphrase

  • 開發板配置以及操作

    在/etc目錄下創建wpa_supplicant.conf配置文件

    cd /etc
    wpa_passphrase ssid psk >> wpa_supplicant.conf

    ssid 是WIFI的用戶名
    psk 是WIFI的密碼
    例如:wpa_passphrase 16402_1 1640216402 >> wpa_supplicant.conf

cat ./wpa_supplicant.conf network={ ssid="16402_1" #psk="1640216402" psk=136a6b18bd0d21eb12d6bc591fa652d628cbb438e8f29fcfeb8d763c0bf15ec2 } [nick@NickQ_fl2440 ~]#
修改wpa_supplicant.conf,加入加密方式等配置

cat wpa_supplicant.conf 
network={
        ssid="16402_1"
        key_mgmt=WPA-PSK
        proto=WPA2
        pairwise=TKIP CCMP
        group=TKIP CCMP
        psk="1640216402"
}

key_mgmt=WPA-PSK 表示 採用WPA-PSK共用密鑰的認證方式
proto=WPA2 表示 WPA2加密方式
pairwise = TKIP CCMP 和 group =TKIP CCMP 表示 自動匹配加密演算法CCMP或TKIP;

啟動RT3070並配置RT3070無線網卡參數

wpa_supplicant -B -d -Dwext -iwlan0 -c/etc/wpa_supplicant.conf 

其中:
-d :增加調試信息
-B:後臺守護進程
-c:指定配置文件
-Dwext:wext為驅動名稱
-iwlan0 :wlan0為網路介面名稱

iwconfig 查看連接狀態,已連接

[nick@NickQ_fl2440 ~]# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:"16402_1"  
          Mode:Managed  Frequency:2.437 GHz  Access Point: 14:75:90:7C:18:AC   
          Bit Rate=6.5 Mb/s   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
          Link Quality=51/70  Signal level=-59 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:1   Missed beacon:0

ifconfig 查看網路狀態,發現無IP地址

[nick@NickQ_fl2440 ~]# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 00:A1:B0:40:6F:1E  
          inet6 addr: fe80::2a1:b0ff:fe40:6f1e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:600 (600.0 B)  TX bytes:876 (876.0 B)

配置網路IP,子網掩碼,網關

配置網路IP,子網掩碼:ifconfig wlan0 192.168.168.100 netmask 255.255.255.0
配置預設網關:route add default gw 192.168.168.1 
配置DNS:    echo "nameserver 8.8.8.8" > /etc/resolv.conf

Ping測試

[nick@NickQ_fl2440 ~]# ping baidu.com
PING baidu.com (220.181.57.216): 56 data bytes
64 bytes from 220.181.57.216: seq=0 ttl=55 time=25.000 ms
64 bytes from 220.181.57.216: seq=1 ttl=55 time=65.000 ms
64 bytes from 220.181.57.216: seq=2 ttl=55 time=65.000 ms
  • 開機自啟動

    cd /etc/init.d/
    vim S20_conf_wifi
    #!/bin/sh
    ifconfig wlan0 up
    wpa_supplicant -B -d -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
    ifconfig wlan0 192.168.168.100 netmask 255.255.255.0
    route add default gw 192.168.168.1 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • .NET Core 基於Nuget包。它是一個.nupkg尾碼的zip文件。工具dotnet 工具vs2017 的程式包管理控台這兩個工具都可以用命令行來下載安裝,更新,上傳包(上傳要先在網站註冊賬號);也可以用vs裡面的UI工具管理。項目文件控制包項目文件(.csproj尾碼)是一個xml文件,描... ...
  • 本文是分析 .net Framework 源代碼的系列,主要告訴大家微軟做 ScrollViewer 的思路,分析很簡單 看完本文,可以學會如何寫一個 ScrollViewer ,如何定義一個 IScrollInfo 或者給他滾動添加動畫 ...
  • 在 win10 的 17025 可以容易讓 UWP 觸摸失效。做法是創建一個視窗背景是透明的 wpf 程式,把他置頂,這時所有 uwp 程式就無法觸摸 ...
  • 在 Windows 有一些字元是不能作為文件名,嘗試重命名一個文件,輸入`/` 就可以看到windows 提示的不能作為文件名的字元 ...
  • 1.Linux操作系統的簡易介紹 Linux系統一般有4個主要部分:內核、shell、文件系統和應用程式。內核、shell和文件系統一起形成了基本的操作系統結構,它們使得用戶可以運行程式、管理文件並使用系統。 (1)內核 內核是操作系統的核心,具有很多最基本功能,如虛擬記憶體、多任務、共用庫、需求載入 ...
  • 問題詳情: 新版的Windows改變了更新策略,無法設置為不更新系統。在系統更新後,之前的部分設定也會神奇丟失,包括之前設定的解決的這個卡頓問題。於是重新爬文章找解決方案,在這裡做個備份。 本文章內容參考自: 微軟官網:https://support.microsoft.com/en-us/help ...
  • 這次作業主要基於Linux-0.12的源代碼,分析Linux是如何組織進程,進程的狀態之間是如何轉換,以及進程是如何調度的。 一. 進程的概念: 1.進程就是:程式在數據集合上的一次運行過程,是系統進行資源分配和調度的獨立單位。 2.對進程的靜態描述為:是一個數據集合,以及在其上運行的程式。 3.我 ...
  • 一、grep命令介紹 命令格式:grep [-cinvABC] ‘word’ filename,常用選項如下: -c:表示列印符合要求的行數。 -i:表示忽略大小寫。 -n:表示輸出符合要求的行及其行號。 -v:表示列印不符合要求的行。 -A:後面跟一個數字(有無空格都可以),例如-A2表示列印符合 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...