2019-12-29 16:32:23 wingceltis 阅读数 17
  • Linux系列之走进Linux新世界

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    20504 人正在学习 去看看 马永亮

AIO-RK3399J Linux-开机自动连接wifi

修订记录

日期 版本 作者/邮箱 修订说明
2019-12-29 V1.0 wingceltis-c/wingceltis@aliyun.com 初始版本


简述

本篇文章只是为了记录方便以后查找。

配置WIFI

0.安装wpa_supplicant
在终端直接执行wpa_supplicant判断wpa_supplicant是否安装
正常wpa_supplicant是已经有的,如果没有的话需要执行如下指令,没有网络这个指令执行不了,可以先插网线。

sudo apt-get install wpa_supplicant

1.创建配置文件

touch /etc/wpa_supplicant/wpa_supplicant.conf

2.配置wifi

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
network={
        ssid="wifi_name"
        psk="wifi_passwd"
        scan_ssid=1
        proto=WPA RSN
        key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
        pairwise=TKIP CCMP
        group=CCMP TKIP WEP104 WEP40
}

3.配置网卡
下面的指令手动执行下


#关闭有线连接 可不执行
ifconfig eth0 down
#打开无线连接
ifconfig wlan0 up
#杀死以前配置进程
killall wpa_supplicant
#启动wifi配置,使文件生效。 
#执行这条语句可能会报错ioctl[SIOCSIWMODE]: Operation not permitted,这个是没有影响的,可以继续往下走。
wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf
#启动有点慢,等一下启动完毕
sleep 3s
#---------- dhcp 动态获取IP -------------
#杀死以前的dhcp进程
killall udhcpc
#启动dhcp获取ip
udhcpc -b -i wlan0
#---------- 静态配置IP -------------
#ifconfig wlan0 192.168.1.122 netmask 255.255.255.0
#route add default gw 192.168.1.1

开机启动

1.创建开机脚本

sudo touch /etc/init.d/connet_wifi
sudo chmod +x /etc/init.d/connet_wifi

2.配置脚本

sudo vi /etc/init.d/connet_wifi
#!/bin/sh
#这下面的几句是必须要加的
### BEGIN INIT INFO
# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO

#关闭有线连接
#ifconfig eth0 dowN
#打开无线连接
ifconfig wlan0 up
#杀死以前配置进程
killall wpa_supplicant
#启动wifi配置,使文件生效
wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf
#启动有点慢,等一下启动完毕
sleep 3s
#杀死以前的dhcp进程
killall udhcpc
#启动dhcp获取ip
udhcpc -b -i wlan0
#static ip
#ifconfig wlan0 192.168.1.122 netmask 255.255.255.0
#route add default gw 192.168.1.1

3.加载到开机启动

sudo systemctl enable connet_wifi

参考链接:
https://blog.csdn.net/qq_29630271/article/details/72751076
https://www.jianshu.com/p/bab8784df6b2

2019-08-27 23:58:17 Daniel_Leung 阅读数 459
  • Linux系列之走进Linux新世界

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    20504 人正在学习 去看看 马永亮

0 引言

本博客是关于linux wifi模块的使用(包括设置wifi自动连接),以下都是本人亲身经历和切身感受。此博客秉承以下原则:

  • 没有原理性介绍,我不是这个工具的作者,写了也是抄的。
  • 没有太详细的操作步骤,操作步骤尽量指向官方文档。
  • 没有遇到的或者不值一提的,我都不会写上去。
作者 Daniel.Leung
组织 池鱼 - YiiGaa
邮箱 YiiGaa@126.com
日期 2019-08-27

1 背景

在公司上班时,一般是一个windows的PC作为常用机器,还有一个用于编译和模拟生产环境的ubuntu服务器。决定做自由职业者后,本来可以用docker模拟出一个ubuntu的服务器的,但是奢侈的习惯一旦养成是没法回头的…所以我还是多买了个dell的服务器,然后就悲剧了。

  • 无网线,房间里没有插网口的地方,路由在很远的地方,用的都是wifi。
  • 服务器没有wifi模块,无法联网。

2 解决办法

解决办法倒是有三个:

  • 把机器搬到客厅,网线插到路由里,但是家人说放个电脑在那不好看(塑料亲情)…这个方案就完蛋了。
  • 用一个旧的路由做桥接,就是用另外的路由连wifi,然后网线插到这个路由里。成功了,欢喜。但总感觉路由离我这么近辐射很大,然后我晚上就关了。然后就发现这个傻逼TP-Link居然每次断电后都需要重新设置…(也许是我的旧路由固件有点老了)。然后在我设置了第三次后忍无可忍了,有了第三个方案。
  • 给服务器买个usb网卡。让服务器自己连上wifi。搞完是挺好的,但是弄的过程还是比较痛苦的,而且网上找到的资料都比较零散,所以决定写一个教程。

3 linux使用wifi模块

3.1 wifi模块的选择

首先先买一个wifi模块,usb插入的那种。这里选用的标准大概是:

  • 需要支持linux内核的
  • 是否需要安装驱动,傲娇的我选择了需要安装驱动的,因为不需要安装驱动的需要80多…
  • 是否需要支持5G,我这里选择了支持5G的,因为家里的无线设备比较多,只用2.4G的话肯定会有冲突。不过前提是有5G的wifi网络。
    最后我选择了,COMFAST CF-811AC,一个需要安装驱动,支持linux内核,支持5G的usb网卡。挺小的,跟无线鼠标的接收器一样大,40多块钱。

在大学的时候,当时也做过一个usb的wifi网卡,当时零件都是蹭实验室的,就没怎么花钱,但是那个网个网卡从硬件到驱动做了差不多一个月,其实就是闲的…那时候就是对嵌入式痴迷了,都总感觉自己要无敌了,什么都想做,做了过飞行器,声控遥控车。回忆起来好青葱的岁月。题外话,题外话…

3.2 安装驱动

如果买了不需要安装驱动的,这一个跳过,但是安个驱动真的值40块钱么…
跟网卡一起包装的还有一个光盘,庆幸了一下自己的服务器有光驱,但是插入光盘,脸都绿了,里面居然自由Mac和windows的驱动,为什么么有linux的…
在官网想下载,更悲剧的是,官网上就自由windows的驱动。

本着不给我解决我就退货的态度找了淘宝店家,店家提供了一个适合我机器内核的驱动。然后按照店家说的步骤安装就行。无非就是make一下代码,make install一下,但我记得当时驱动代码在make的时候报了错,好像gcc的版本问题,我是自己把它的代码改了。如果不知道的话,也可以找店家解决,方正不解决就退货,不能退就一万字差评。

3.3 wifi连接

进入正题,wifi模块的使用

3.3.1 安装工具

需要安装以下的包,所以在用无线之前,还是需要先用有线网的,下面的软件也可以在后面的命令中按照错误提示安装。

  • iw
  • wpa_supplicant
  • udhcpc

3.3.2 启用wifi模块

默认情况下,wifi模块是不启用的,即执行ifconfig时没有wifi网卡
在这里插入图片描述
这时候,输入命令ifconfig -a即会显示没启用的无线网卡,如果还是没有,就是驱动没安好,或者安装好了没重启。
在这里插入图片描述
上面截图中的wlx200db033b7fa就是这个无线网卡。
启动无线网卡命令:

sudo ip link set 网卡 up

上面的命令中网卡为上面ifconfig -a中查到的无线网卡标识,我这里是ip link set wlx200db033b7fa up,下面一样,后面不做重复
启动后,再看用ifconfig,无线网卡就能查到了,说明现在网卡就是启动的

3.3.3 查看可连的wifi

sudo iw 网卡 scan | grep SSID

在这里插入图片描述
SSID:后面的就是wifi名字

3.3.4 连接wifi

先建立一个conf文件,放在哪里都行,能访问就可以,我习惯把配置文件都放在/home/user(这里是你的用户)/init/下

我这里起名是account_setting.conf,文件内容是

ctrl_interface=/var/run/wpa_supplicant
network={
        ssid="lalala"
        psk="00005419"

}

这里ctrl_interface后面的值不需要动。反正我机器上这个路径也不存在,但是好使…
ssid的值替换成你的wifi名,尽量不要有中文和奇奇怪怪的符号,不知道到时候解析有没有问题,psk是密码。这里的配置是普通的wifi密码配置,如果是其他奇怪的加密方式,那就要看查一下wpa_supplicant配置的相关规则了。

配置好了之后,输入命令

sudo wpa_supplicant -B -c 配置文件位置 -i 网卡

配置文件位置是上面account_setting.conf的绝对路径。
在这里插入图片描述

3.3.5 获取ip地址

连接上wifi后还不能上网,需要获取ip地址

sudo udhcpc -b -i 网卡

在这里插入图片描述
获取成功后,ifconfig查看以下网卡是否有ip了,或者日常的ping一下百度,ping成功了就是能上网了。
在这里插入图片描述
这里的获取ip方法,每次获取都是一样的,只要路由的ip个数足够。也有每次不一样的方式,用dhclient 网卡这个命令就行。这里可能有些网络是需要固定ip才能上网的,这里我没用到,所以如果需要的话,靠你自己了…

4 开机自动连接wifi

上面的内容,已经可以连接wifi了,但是比较扯的是,需要每次开机都手动连接(可能有图形界面的不用,但是有图形界面的话上面的连接也不用一顿操作了)。所以需要做一个脚本驱动开机自动启动。

4.1 文件夹准备

准备一个文件夹,4.2和4.3文件需要放在同一个文件夹里,如果不在一起,那你需要自己改4.3的脚本了。

4.2 wifi账号密码配置文件准备

上面3.3.4 连接wifi提到过,上面做了这里跳过
创建account_setting.conf文件,内容

ctrl_interface=/var/run/wpa_supplicant
network={
        ssid="lalala"
        psk="00005419"

}

这里ctrl_interface后面的值不需要动。反正我机器上这个路径也不存在,但是好使…
ssid的值替换成你的wifi名,尽量不要有中文和奇奇怪怪的符号,不知道到时候解析有没有问题,psk是密码。这里的配置是普通的wifi密码配置,如果是其他奇怪的加密方式,那就要看查一下wpa_supplicant配置的相关规则了。

4.3 脚本准备

创建bootstrapping.sh文件,内容

#!/bin/bash
wifiname='网卡'
accountsetting='account_setting.conf'

ip link set $wifiname up&&
wpa_supplicant -B -c $(dirname $0)/$accountsetting -i $wifiname &&
udhcpc -b -i $wifiname

上面的网卡需要替换成你的网卡标识,account_setting.conf为wifi配置文件名。

4.4 修改权限

chmod 755 这两个文件

这里防止开机启动时由于权限不足而无法启动脚本。

4.5 开机启动配置

以下以ubuntu为例子
在/etc/rc.local文件(其他系统都有这个开机启动的配置文件)追加我们的脚本
在这里插入图片描述
/home/daniel-leung/init/wificonf/bootstrapping.sh4.3 脚本准备的脚本路径,一定要写在exit 0之前。

5 后记

这个我wifi连接居然弄了半天,不过估计用的机会很少,一是一般都喜欢用有图形的系统,二是一般无图形的服务器系统都是有网线的。
站在巨人肩膀上还是有必要的,所以以后能安图形界面还是要安一个。

2018-10-08 10:42:35 yuxisanno139 阅读数 407
  • Linux系列之走进Linux新世界

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    20504 人正在学习 去看看 马永亮
2019-02-26 10:46:12 sac761 阅读数 951
  • Linux系列之走进Linux新世界

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    20504 人正在学习 去看看 马永亮

找到原有的wpa_supplicant.conf文件,没有的话自己找个位置创建一个,我的是片上linux系统,目录在/data/cfg/wpa_supplicant.conf

在该文件写入如下内容:

ctrl_interface=/var/run/wpa_supplicant       //wpa_supplicant命令执行文件目录
ap_scan=1

network={
ssid="WiFi-AP"   //WiFi 名字
psk="12345678"  //WiFi 密码
key_mgmt=WPA-PSK  //加密方式
# key_mgmt=NONE  //不加密
}

之后执行一下命令:

开起wifi服务
wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf
重新读取上述配置:
wpa_cli reconfigure
并重新连接:
wpa_cli reconnect

用ifconfig -a命令看一下是否连接成功

下面进行开机自动启动的配置:

我的是片上系统,自启脚本目录在/etc/init.d ,这里面的脚本开机自动调用 Sxx表示调用顺序

我建立了一个S100auto_wifi_link,里面写入这几条命令

wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf
wpa_cli reconfigure
wpa_cli reconnect
 

OK,就配置好了.

我是在开发板上这样配置,在linuxPC上原理也是一样,可能路径有些不同.另外如果在开发板上配置遇到只读空间的问题,可以先在编译固件之前把文件在对应位置放好,编译出来固件就可以了.

 

之后我还给开发板设置了固定IP,这样每次开机联网后ssh它的命令就不用变了.

固定IP设置:

打开路由器管理网页(tplink的是tplogin.cn),找到"IP与MAC绑定"功能,将开发板的mac地址和一个IP绑定起来.

如果开发板的mac地址每次重启都会变,那么用这个命令给它固定设置:

vendor_storage -w "VENDOR_WIFI_MAC_ID 56D61ACEAE8C"
//56D61ACEAE8C是要设置的mac地址

OK,大吉大利,一切搞定.

2017-10-06 22:54:57 nvd11 阅读数 5388
  • Linux系列之走进Linux新世界

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    20504 人正在学习 去看看 马永亮

archlinux 开机自动连接wifi

archlinux 开机后连接wifi很简单
利用wifi-menu命令就可以选择热点和输入密码

但是重启后又要再来一次。

如果安装了gui, 当然可以利用Networkmanager管理

但是如果没有安装gui情况下。

一般使用的是netctl

第一步 安装无线网络必须的管理工具

pacman -S dialog wpa_supplicant netctl wireless_tools wpa_actiond

这时管理工具netctl就安装上了

第二步

查看 /etc/netctl/
是否有已经生成的热点文件, 如果未有。 则用wifi-menu从新连接一次。

[root@archlinux ~]# ls /etc/netctl
examples  hooks  interfaces  JasonPoon
[root@archlinux ~]# cat /etc/netctl/JasonPoon
Description='Automatically generated profile by wifi-menu'
Interface=wlp58s0
Connection=wireless
Security=wpa
ESSID=JasonPoon
IP=dhcp
Key=1QAZ2WSX
[root@archlinux ~]# 

上面 JasonPoon 就是生成配置文件。

包含的网卡名字。 热点名字和热点密码。 当然这个文件只有root才能查看。

第三步

启动netctl服务。

下面的命令是启动wifi,(代替wifi-menu,不在需要选择热点和输入密码)

systemctl start netctl-auto@wlp58s0.service

下面的命令是令到开机自动连接wifi

systemctl enable netctl-auto@wlp58s0.service

其中wlp58s0是我的无线网卡名字。 可以利用ifconfig查看,
上面的配置文件也有写。

这样重启后, 即使未有任何账户登录系统, 系统也是连网的。
也就是说可以利用ssh 远程reboot并重新连接了!

Linux连接WiFi

阅读数 167

没有更多推荐了,返回首页