The first blog gave me a long course design, that is, the topic "3G wireless router. The development platform used in this development project is the Raspberry Pi Development Board. The following is the question .....
Objective: To set Raspberry Pi as a 3G wireless router and access the Internet through Huawei's e261.
Tools: Raspberry Pi Development Board, 3G wireless network adapter E261, wireless network adapter RT5370,
Steps:
1. Convert E261 Mode
1. View connected USB devices
pi@raspberrypi ~ $ lsusbBus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless AdapterBus 001 Device 005: ID 1a40:0101 Terminus Technology Inc. 4-Port HUBBus 001 Device 006: ID 058f:6387 Alcor Micro Corp. Flash DriveBus 001 Device 007: ID 12d1:1446 Huawei Technologies Co., Ltd.
The ID of the last line is the vendor ID and device ID of E261. In this case, E261 is equivalent to a storage device and must be converted to a Modem device.
2. Install usb_modeswitch
pi@raspberrypi ~ $ sudo aptitude install usb-modeswitch
3. modify the configuration file
pi@raspberrypi ~ $ sudo nano /etc/usb_modeswitch.conf
Add the following content at the end of the file:
######################################################### Huawei, newer modemsDefaultVendor= 0x12d1DefaultProduct=0x1446TargetVendor= 0x12d1TargetProductList="1001,1406,140b,140c,1412,141b,1436,14ac"CheckSuccess=20MessageContent="55534243123456780000000000000011062000000100000000000000000000"
4. Re-unplug E261 and execute lsusb again
pi@raspberrypi ~ $ lsusbBus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless AdapterBus 001 Device 005: ID 1a40:0101 Terminus Technology Inc. 4-Port HUBBus 001 Device 006: ID 058f:6387 Alcor Micro Corp. Flash DriveBus 001 Device 007: ID 12d1:1436 Huawei Technologies Co., Ltd.
The device number has changed to 1436, indicating that the conversion is successful.
Note that if you use another 3G network card, the configuration file is different.
Ii. Download and install ppp, sakis3g, and umtskeeper to implement dial-up Internet access
The ppp package establishes a Point-to-Point Protocol-based daemon for managing communications between you and network operators. Sakis3g is a script used to dial up the Internet. It has an interactive dialing interface, which is very convenient. Umtskeeper uses sakis3g to automatically reconnect to the 3G network. You can also use wvdial to dial up the Internet,
Run the aptitude install wvdial command to install the ppp package. The following describes the previous method.
1. Install ppp
pi@raspberrypi ~ $sudo apt-get install ppp
2. For ease of management, create the folder umtskeeper/put umtskeeper and sakis3g in this folder.
Create the umtskeeper folder and download umtskeeper
sudo mkdir umtskeepercd umtskeepersudo wget "http://zool33.uni-graz.at/petz/umtskeeper/src/umtskeeper.tar.gz"sudo tar -xzvf umtskeeper.gzsudo chmod +x umtskeeper
The official Sakis3g website has been suspended, but other images can be used.
sudo wget "http://downloads.sourceforge.net/project/vim-n4n0/sakis3g.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fvim-n4n0%2Ffiles%2F&ts=1363537696&use_mirror=tene~t" -O sakis3g.tar.gzsudo tar -xzvf sakis36.tar.gzsudo chmod +x sakis3g
3. dial-up Internet access
sudo ./sakis3g --interactive "connect"
Enter the interaction interface as follows:
(If an error occurs during dialing, restart Raspberry Pi)
Enter the information of the APN.
China Unicom's APN is 3 gnet, and the user name and password seem to be optional. I fill in user and pass
View connection information
./sakis3g connect info
Disconnect
sudo ./sakis3g --interactive "disconnect"
4. Set automatic dial-up for Internet access at startup
You have downloaded umtskeeper in step 2. You can also use it to call sakis3g for networking. The command is as follows:
sudo ./umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1436' APN='CUSTOM_APN' CUSTOM_APN='3gnet' APN_USER='user' APN_PASS='pass'" --sakisswitches "--sudo --console" --devicename 'Huawei' --log --silent --monthstart 8 --nat 'no'
Write the preceding command to rc. local.
Edit rc. local
pi@raspberrypi ~ $sudo nano /etc/rc.local
Insert the following content before the exit0 line
/home/pi/umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1436' APN='CUSTOM_APN' CUSTOM_APN='3gnet' APN_USER='user' APN_PASS='pass'" --sakisswitches "--sudo --console" --devicename 'Huawei' --log --silent --monthstart 8 --nat 'no'
Save and exit. Next time, you can start dial-up Internet access.
3. Create a Wireless AP
1. Configure the wireless network card as a fixed IP Address
Enter the command
sudo nano /etc/network/interfaces
Edit the network configuration file
Comment out the following lines:
#allow-hotplug wlan0#iface wlan0 inet manual#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf#iface default inet dhcp
Add the following lines
iface wlan0 inet static address 192.168.10.1netmask 255.255.255.0
Here we need to note that 192.168.10.1 is the gateway ip address allocated to the router of the raspberry pi. This cannot be the same as the ip addresses of other routing gateways in the LAN.
2 install hostapd
Use hostapd in Linux to establish a Wireless AP Service
Run the following command to install hostapd:
sudo apt-get install hostapd
Edit the default hostapd configuration file
sudo nano /etc/default/hostapd
Find
# DAEMON_CONF = ""
Modify as follows:
DAEMON_CONF = "/etc/hostapd. conf"
Edit the hostapd configuration file
sudo nano /etc/hostapd/hostapd.conf
Add the following content
# Use the wireless network adapter wlan0 as the Access Point interface = wlan0 # Use the nl80211 driver = nl80211 # The SSID of the shared network is RaspberryPissid = RaspberryPi # The network adapter works in the 802.11G mode hw_mode = g #11 channel = 11 # WPA2 configuration wpa = 2 # wpa password is encrypt = raspberry # Authentication Mode for WPA-PSK encryption mode = WPA-PSKwpa_pairwise = CCMP rsn_pairwise = CCMPbeacon_int = 100 auth_algs = 3wmm_enabled = 1
Save and exit
Enter the command
sudo service hostapd restart
Restart the hostapd service.
3. Install the dhcp service
DHCP service is used to assign Dynamic IP addresses to clients.
Enter the command to install the dhcp service
sudo apt-get install isc-dhcp-server
Backup configuration file
sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
Edit a new configuration file
sudo nano /etc/dhcp/dhcpd.conf
Copy and paste the following content
default-lease-time 600;max-lease-time 7200;log-facility local7;subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.10 192.168.10.100; option routers 192.168.10.1; option broadcast-address 192.168.10.127; option domain-name-servers 8.8.8.8,8.8.4.4; default-lease-time 600; max-lease-time 7200;}
Save and exit
Modify the isc-dhcp-server File
sudo nano /etc/default/isc-dhcp-server
The configuration file path added to DHCP and the parameters used as the AP Interface
DHCPD_CONF = "/etc/dhcp/dhcpd. conf"
INTERFACES = "wlan0"
Restart the service
sudo service isc-dhcp-server restart
4. Configure route forwarding
So far, we have already established a wireless hotspot. The mobile phone's WiFi function can be connected to the RaspberryPi hotspot, but it cannot access the Internet. The reason is that the Wireless AP is not responsible for data exchange, that is, the data packets sent to the Wireless AP through the client cannot be sent to the target host, and naturally no response is required.
In Linux, iptables is used to complete packet forwarding. It is the core of the routing function.
Before adding iptables forwarding rules, you must enable the kernel's IP forwarding function:
echo "1" > /proc/sys/net/ipv4/ip_forward
The above command only temporarily enables the IP forwarding function. It will expire after the next restart. If it is not invalid, you can directly modify the system configuration file/etc/sysctl. conf.
sudo nano /etc/sysctl.conf
Find here
#net.ipv4.ip_forward=1
Remove the preceding annotator #
Save and exit
Enter the command
sudo sysctl -p
Make this setting effective immediately
The following is the key part. set IP Forwarding rules,
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADEsudo iptables -A FORWARD -i ppp0 -o wlan0 -j ACCEPTsudo iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT
Ppp0 is a 3G Nic interface, and MASQUERADE indicates data packet disguise. Internal data of the router is sent out or external data is imported through this interface. If there is an Ethernet port, you can change ppp0 to eth0 to implement forwarding on this Ethernet port, that is, to implement the function of a common wireless router.
Save IP Forwarding rules
sudo bashiptables-save > /etc/iptables.up.rulesExit
Enter the command
sudo nano /etc/network/if-pre-up.d/iptables
Copy and paste the following two lines to the editing window.
#!/bin/bash/sbin/iptables-restore < /etc/iptables.up.rules
Save and exit
At this point, the configuration of the 3G router has been completed. Enter
sudo reboot
Restart Raspberry Pi to search for the wireless signal of RaspberryPi. After the connection, you can access the Internet.
--------------------------------
Reprinted, please indicate the source (after all, google has read a lot of information and many posts in English)