编译Openwrt固件/默认开启wifi

9 篇文章 2 订阅

编译Openwrt固件/默认开启wifi

 

本文转自:http://blog.chinaunix.net/uid-9688646-id-5029122.html

 

修改的文件为 ./package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
config wifi-device  radio$devidx
        option type     mac80211
        option channel  ${channel}
        option hwmode        11${mode_11n}${mode_band}
$dev_id
$ht_capab
        # REMOVE THIS LINE TO ENABLE WIFI:
        # option disabled 1

config wifi-iface
        option device   radio$devidx
        option network  lan
        option mode     ap
        option ssid     Hello-World
        option encryption none
        option disabled 0
EOF
        devidx=$(($devidx + 1))
        done


编译Openwrt固件/默认开启wifi

起因

  • 虽然单独置入wireless文件也不错,但是它是绑定mac地址的,所以再深入一点,就是这里做的

实验尝试

  • 在WR703中的确是最终生成wifi的配置的是
/lib/wifi/mac80211.sh
  • 可以修改它折腾它
  • 然后测试它,通过
rm -f /etc/config/wireless; wifi detect > /etc/config/wireless
  • 接着查看变化后的配置文件
cat /etc/config/wireless

想法

  • 可以通过直接覆盖wireless配置文件做到
  • 但是不够可爱,因为作为一份固件的话,它看起来不能适应不同的情况

源码中位置

  • 看起来是在一个mac80211的包里面
openwrt/trunk/package/mac80211/files/lib/wifi/mac80211.sh

修改

关闭wifi,修改热点名

  • 14.07 BB版本的修改
[版本]14.07总是难以记得,听起来就像14.09哈!
  1.                 cat <<eof< span="">
  2. config wifi-device  radio$devidx
  3.         option type     mac80211
  4.         option channel  ${channel}
  5.         option hwmode   11${mode_band}
  6. $dev_id
  7. $ht_capab
  8.         # REMOVE THIS LINE TO ENABLE WIFI:
  9.         # option disabled 1
  10.  
  11. config wifi-iface
  12.         option device   radio$devidx
  13.         option network  lan
  14.         option mode     ap
  15.         option ssid     'OpenWrt SLboat Mod' 
  16.         option encryption none
  17.  
  18. EOF
  19.         devidx=$(($devidx + 1))
  20.         done
  21. }
  22.  
  23. # base on ORG version:14.07,r42656
  24. # this file has mod by slboat,most mod for default wifi config file,so can default enable it
  25. # org file is inside the source: package/mac80211/files/lib/wifi/mac80211.sh
  26. # how we mod it:
  27. # http://see.sl088.com/id/1xm
  • 12.09版本的修改
  1. config wifi-device  radio$devidx
  2. 	option type mac80211
  3. 	option channel ${channel}
  4. 	option macaddr	$(cat /sys/class/ieee80211/${dev}/macaddress)
  5. 	option hwmode 11${mode_11n}${mode_band}
  6. $ht_capab
  7. 	# REMOVE THIS LINE TO DISABLE WIFI - SLBoat Mod:
  8. 	# option disabled 1
  9.  
  10. config wifi-iface
  11. 	option device   radio$devidx
  12. 	option network  lan
  13. 	option mode     ap
  14. 	option ssid 'OpenWrt SLBoat Mod' 
  15. 	option encryption none
  16.  
  17. EOF
  18. 	devidx=$(($devidx + 1))
  19. 	done
  20. }
  21.  
  22. # ORG version:12.09-rc1
  23. # this file has mod by slboat
  24. # org file is inside the source: package/mac80211/files/lib/wifi/mac80211.sh
  25. # how we mod it :
  26. # http://see.sl088.com/wiki/Openwrt_%E5%9B%BA%E4%BB%B6%E7%BC%96%E8%AF%91/%E9%BB%98%E8%AE%A4%E5%BC%80%E5%90%AFwifi

见识

如何编译openwrt,无线默认打开和修改SSID名称? - OPENWRT专版 - 恩山WIFI论坛 - Powered by Discuz! 沿途见识[1]

vade 发表于 2011-5-25 12:01
多谢 xujifsad, 搞定了。

修改的文件为 openwrt/trunk/package/mac80211/files/lib/wifi/mac80211.sh, ...

config wifi-device  radio$devidx
        option type     mac80211
        option channel  ${channel}
        option hwmode        11${mode_11n}${mode_band}
$dev_id
$ht_capab
        # REMOVE THIS LINE TO ENABLE WIFI:
        # option disabled 1

config wifi-iface
        option device   radio$devidx
        option network  lan
        option mode     ap
        option ssid     Hello-World
        option encryption none
        option disabled 0
EOF
        devidx=$(($devidx + 1))
        done

编译Openwrt固件/默认开启wifi

起因

  • 虽然单独置入wireless文件也不错,但是它是绑定mac地址的,所以再深入一点,就是这里做的

实验尝试

  • 在WR703中的确是最终生成wifi的配置的是
/lib/wifi/mac80211.sh
  • 可以修改它折腾它
  • 然后测试它,通过
rm -f /etc/config/wireless; wifi detect > /etc/config/wireless
  • 接着查看变化后的配置文件
cat /etc/config/wireless

想法

  • 可以通过直接覆盖wireless配置文件做到
  • 但是不够可爱,因为作为一份固件的话,它看起来不能适应不同的情况

源码中位置

  • 看起来是在一个mac80211的包里面
openwrt/trunk/package/mac80211/files/lib/wifi/mac80211.sh

修改

关闭wifi,修改热点名

  • 14.07 BB版本的修改
[版本]14.07总是难以记得,听起来就像14.09哈!
  1.                 cat <<eof< span="">
  2. config wifi-device  radio$devidx
  3.         option type     mac80211
  4.         option channel  ${channel}
  5.         option hwmode   11${mode_band}
  6. $dev_id
  7. $ht_capab
  8.         # REMOVE THIS LINE TO ENABLE WIFI:
  9.         # option disabled 1
  10.  
  11. config wifi-iface
  12.         option device   radio$devidx
  13.         option network  lan
  14.         option mode     ap
  15.         option ssid     'OpenWrt SLboat Mod' 
  16.         option encryption none
  17.  
  18. EOF
  19.         devidx=$(($devidx + 1))
  20.         done
  21. }
  22.  
  23. # base on ORG version:14.07,r42656
  24. # this file has mod by slboat,most mod for default wifi config file,so can default enable it
  25. # org file is inside the source: package/mac80211/files/lib/wifi/mac80211.sh
  26. # how we mod it:
  27. # http://see.sl088.com/id/1xm
  • 12.09版本的修改
  1. config wifi-device  radio$devidx
  2. 	option type mac80211
  3. 	option channel ${channel}
  4. 	option macaddr	$(cat /sys/class/ieee80211/${dev}/macaddress)
  5. 	option hwmode 11${mode_11n}${mode_band}
  6. $ht_capab
  7. 	# REMOVE THIS LINE TO DISABLE WIFI - SLBoat Mod:
  8. 	# option disabled 1
  9.  
  10. config wifi-iface
  11. 	option device   radio$devidx
  12. 	option network  lan
  13. 	option mode     ap
  14. 	option ssid 'OpenWrt SLBoat Mod' 
  15. 	option encryption none
  16.  
  17. EOF
  18. 	devidx=$(($devidx + 1))
  19. 	done
  20. }
  21.  
  22. # ORG version:12.09-rc1
  23. # this file has mod by slboat
  24. # org file is inside the source: package/mac80211/files/lib/wifi/mac80211.sh
  25. # how we mod it :
  26. # http://see.sl088.com/wiki/Openwrt_%E5%9B%BA%E4%BB%B6%E7%BC%96%E8%AF%91/%E9%BB%98%E8%AE%A4%E5%BC%80%E5%90%AFwifi

见识

如何编译openwrt,无线默认打开和修改SSID名称? - OPENWRT专版 - 恩山WIFI论坛 - Powered by Discuz! 沿途见识[1]

vade 发表于 2011-5-25 12:01
多谢 xujifsad, 搞定了。

修改的文件为 openwrt/trunk/package/mac80211/files/lib/wifi/mac80211.sh, ...

config wifi-device  radio$devidx
        option type     mac80211
        option channel  ${channel}
        option hwmode        11${mode_11n}${mode_band}
$dev_id
$ht_capab
        # REMOVE THIS LINE TO ENABLE WIFI:
        # option disabled 1

config wifi-iface
        option device   radio$devidx
        option network  lan
        option mode     ap
        option ssid     Hello-World
        option encryption none
        option disabled 0
EOF
        devidx=$(($devidx + 1))
        done

红色为我修改的内容,第一个“#”是添加的,目的是注释掉该行,后面添加的是使能wifi,
但我实际发现无线有时还是不能自动默认打开,请问还能是什么问题呢?

[OpenWrt] openwrt的一些琐事 - sydjm的专栏 - 博客频道 - CSDN.NET 沿途见识[2]

1、使路由器第一次启动后默认开启WIFI
修改文件openwrt/trunk/package/mac80211/files/lib/wifi/mac80211.sh的最后部分

  1. REMOVE THIS LINE TO ENABLE WIFI:

option disabled 1


2、如何单独编译内核模块安装包
make package/kernel/{compile, install} V=s
PS:OpenWRT的kernel modules 配置文件都在这

3、添加U盘/移动硬盘支持
添加USB挂载
Base system —> <*>block-mount  
添加硬盘格式支持()
Kernel modules —> Filesystems —> <*> kmod-fs-ext4 (移动硬盘EXT4格式选择)
Kernel modules —> Filesystems —> <*> kmod-fs-vfat(FAT16 / FAT32 格式 选择)
Kernel modules —> Filesystems —> <*> kmod-fs-ntfs (NTFS 格式 选择)
添加UTF8编码,CP437编码,ISO8859-1编码
Kernel modules —> Native Language Support —> <*> kmod-nls-cp437
Kernel modules —> Native Language Support —> <*> kmod-nls-iso8859-1
Kernel modules —> Native Language Support —> <*> kmod-nls-utf8
添加SCSI支持
Kernel modules —> Block Devices —> <*>kmod-scsi-core
添加USB相关支持
Kernel modules —> USB Support —> <*> kmod-usb-core.
Kernel modules —> USB Support —> <*> kmod-usb-ohci.
Kernel modules —> USB Support —> <*> kmod-usb-storage.
Kernel modules —> USB Support —> <*> kmod-usb-storage-extras.
Kernel modules —> USB Support —> <*> kmod-usb2.
添加自动挂载工具
Utilities —> Filesystem —> <*> badblocks

4、OpenWrt取消strip的方法
make package/foo/{clean,compile} V=99 STRIP=/bin/true
也就是说如果默认使用strip破坏了你的程序、库,可以使用STRIP=/bin/true来取消strip操作,直接在Makefile中定义也是可以的

5、UBOOT移植编译
http://www.right.com.cn/forum/thread-84684-1-1.html

6、用OpenWrt的交叉编译器编译外部程序文件,遇到如下错误:
mips-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined

    解决办法是在命令行输入:
export STAGING_DIR=(你的OpenWrt目录的绝对路径)/staging_dir

7、4G LTE的移植
大致步骤 移植4G网卡,改写网络配置文件,改写4G拨号脚本,配置WIFI和WIFI的DHCP。
涉及文件:
内核部分   driver/usb/serial/option.c   加PID,VID
文件系统部分:
/etc/config/network   加入WAN接口配置并配置为4G模式;加入WIFI接口,并配置为静态地址模式以便能自动启。
/etc/config/wireless  将wifi-iface的network字段与 /etc/config/network中的WIFI接口匹配相同
/etc/config/firewall    修改防火墙规则,使各个接口都可以通信。
/etc/config/dhcp      添加WIFI接口的DHCP功能
/etc/chatscripts/3g.ch  拨号脚本
以上所有文件内容在这个网页:
http://blog.csdn.net/sydjm/article/details/8490357

OpenWrt是一个基于Linux的嵌入式操作系统,可以运行在各种路由器和嵌入式设备上。OpenWrt固件编译是指将OpenWrt源代码编译成可在特定硬件平台上运行的固件的过程。 首先,我们需要准备编译环境。在Ubuntu或其他基于Debian的发行版上,可以通过以下命令安装所需的软件包: ``` sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc wget ``` 接下来,我们需要获取OpenWrt的源代码。可以使用以下命令来获取最新的OpenWrt源代码: ``` git clone https://git.openwrt.org/openwrt/openwrt.git ``` 获取源代码后,进入源代码目录: ``` cd openwrt ``` 在配置编译选项之前,可以运行以下命令更新源代码: ``` ./scripts/feeds update -a ./scripts/feeds install -a ``` 接下来,我们需要选择目标平台和配置编译选项。可以通过以下命令启动配置界面: ``` make menuconfig ``` 在配置界面中,可以选择目标平台、应用软件包、内核和其他编译选项。选择完成后,保存配置并退出。 最后,开始编译固件。可以运行以下命令来启动编译: ``` make -j4 ``` 编译过程可能需要一些时间,具体时间取决于计算机性能和配置选项。编译完成后,在`bin/targets`目录下可以找到编译生成的固件文件。 总之,OpenWrt固件编译的过程包括准备编译环境、获取源代码、配置编译选项和开始编译编译完成后,可以得到适用于特定硬件平台的OpenWrt固件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值