请严格按照以下步骤进行
准备头文件
下载编译需要的头文件:
更新内核支持NAT
编译或直接下载内核
打开这个链接,下载下面提供的内核文件:pcduino_a10_hwpack_20131226.tar
如果你有时间的话也可以按照他的教程来自己编译内核。也可以参考这里
内核安装
首先,将 pcduino_a10_hwpack_YYYYMMDD.tar.xz 放到pcDuino的~下。
-
为从nand 启动的板子更新kernel
依次执行如下命令:
-
为从存储卡启动的板子更新kernel
依次执行如下命令:
注意,此方法不会重装ubuntu
编译安装网卡驱动
参考这里
先执行一下:
然后下载驱动:
然后执行如下命令:
然后删除原有的8188cu.ko
注意,这里做完后最好不要重启,一重启网卡便连不上了,otg和无线都无效,只能通过hdmi或者debug port继续进行下一步
然后执行:
$unzip RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip
$cd RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911
$chmod +x install.sh
$sudo ./install.sh
等大概5min。
安装hostapd
执行如下命令:
$git clone https://github.com/jenssegers/RTL8188-hostapd
$cd RTL8188-hostapd/hostapd
$sudo make install
等大概5min
然后执行:
$cd RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/wpa_supplicant_hostapd
$tar xvf wpa_supplicant_hostapd-0.8_rtw_r7475.20130812.tar.gz
$cd wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/hostapd/ (这里和教程不一样)
$sudo make install
等大概5min
配置hostapd
这里注意一下,在控制台输入:
出现类似:
wlan4 Link encap:以太网 硬件地址 00:**:**:**:**:**
inet 地址:192.168.1.1 广播:192.168.1.255 掩码:255.255.255.0
inet6 地址: ***::***:*******:17fd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:23487 错误:0 丢弃:8569 过载:0 帧数:0
发送数据包:22220 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:4629020 (4.6 MB) 发送字节:10508030 (10.5 MB)
时,记下来你的无线网卡标识(这里是wlan4
)。
然后,执行:
然后修改:
保存以后执行:
然后你应该会看到hostapd成功运行了。
配置AP固定ip
执行:
在后面添加:
配置dhcp
执行:
在最后添加:
subnet 192.168.1.0 netmask 255.255.255.0{
range 192.168.1.2 192.168.1.200;
option routers 192.168.1.1;
}
执行:
应该可以看到isc-dhcp-server正常启动了。
设置开机启动
注意,这一步很重要,如果不设置开机启动,那么重启以后,wifi连不上,otg连不上,只能接hdmi或者debug port了。
依次执行:
(hostapd启动后dhcpd才能启动,dhcpd关闭hostapd才关闭)
$update-rc.d hostapd defaults 80 20
$update-rc.d isc-dhcp-server defaults 90 10
配置NAT
执行:
修改该文件:
然后安装:
reboot
重启完后(会比之前久一点),你会搜到wifi热点信号了。能连上,但是不能上网,于是我们继续。
设置转发
参考这里
开机后执行:
$sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
$sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
这时,你再重连一下热点,你会发现可以上网了!
设置开机启动转发
每次开机都要输入命令才能上网太麻烦了。我们把它设置成开机启动:
执行:
将#net.ipv4.ip_forward=1
的#
去掉。
然后执行:
添加:
现在开机就可以连上网了!
但是!
刷完内核以后,发现gpio驱动不见了。整个/lib/modules/3.4.29+/kernel/drivers/hardwarelib/
驱动都丢失了。搜索讨论了一番,应该是官方img里面的编译设置不是默认的设置(坑!)。
我们可以将官方的hardwarelib文件夹拷贝回来解决这个问题。到这里下载lib文件,放到~目录下。然后执行:
$ unzip hardwarelib.zip
$ sudo mv hardwarelib/ /lib/modules/3.4.29+/kernel/drivers/
$ sudo modprobe gpio
$ sudo modprobe adc
输入:
如果没有输出** faild,那么就成功了。