Bác nào ở HN vọc chán rồi để lại cho E nghiên cứu với nhé. Thanks các bác.
#!/bin/bash
### BEGIN INIT INFO
# Provides: autonet
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Auto config network
# Description: LNT <[email protected]>
### END INIT INFO
#Static IP of RPI
#[COLOR="#FF0000"]Thay bằng giá trị của bạn[/COLOR]
ADDR="10.0.0.123"
#Netmask
NMSK="255.255.255.0"
#Gateway of LAN
#[COLOR="#FF0000"]Thay bằng giá trị của bạn[/COLOR]
GWAY="10.0.0.1"
#Gateway of AP
#[COLOR="#FF0000"]Thay bằng giá trị của bạn (1)[/COLOR]
APADDR="10.0.1.1"
#ID of USB wifi
#[COLOR="#FF0000"]Thay bằng giá trị của bạn (2)[/COLOR]
ID="148f:1234"
#LAN cable plug in
LAN=`cat /sys/class/net/eth0/carrier|sed -e 's/^ *//g' -e 's/ *$//g'`
#USB wifi plug in
WIFI=`lsusb|grep -c $ID`
if [ $LAN -ne 0 ]; then
cat > /etc/network/interfaces <<EOF
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address $ADDR
netmask $NMSK
gateway $GWAY
EOF
if [ $WIFI -ne 0 ]; then
cat >> /etc/network/interfaces <<EOF
iface wlan0 inet static
address $APADDR
netmask $NMSK
EOF
fi
else
if [ $WIFI -ne 0 ]; then
cat > /etc/network/interfaces <<EOF
auto lo
iface lo inet loopback
#iface eth0 inet dhcp
#allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet static
address $ADDR
netmask $NMSK
gateway $GWAY
EOF
fi
fi
sleep 1
if [[ $NET -ne 0 ]]; then
ifdown eth0 && ifup eth0
fi
if [[ $WIFI -ne 0 ]]; then
ifdown wlan0 && ifup wlan0
fi
chmod +x /etc/init.d/autonet.sh
update-rc.d autonet.sh defaults
Tự động chọn cấu hình mạng phù hợp
Giả sử RPI của chúng ta đã cài đặt chạy trong các trường hợp
- Kết nối mạng cục bộ và internet qua cáp LAN
- Kết nối mạng cục bộ và internet qua USB wifi
- Kết nối mạng cục bộ và internet qua cáp LAN và USB wifi với vai trò access point
Nhu cầu của chúng ta là
- Trong mọi trường hợp 1, 2 và 3, RPI có cùng IP tĩnh
- Các máy nối với RPI AP thuộc lớp mạng con
Giải pháp của chúng ta là thay /etc/network/interfaces thích hợp cho từng trường hợp (do đó nên backup file này) và không ảnh hưởng đến các file cấu hình khác.
1. Tạo file /etc/init.d/autonet.sh với nội dung
Mã:#!/bin/bash ### BEGIN INIT INFO # Provides: autonet # Required-Start: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Auto config network # Description: LNT <[email protected]> ### END INIT INFO #Static IP of RPI #[COLOR="#FF0000"]Thay bằng giá trị của bạn[/COLOR] ADDR="10.0.0.123" #Netmask NMSK="255.255.255.0" #Gateway of LAN #[COLOR="#FF0000"]Thay bằng giá trị của bạn[/COLOR] GWAY="10.0.0.1" #Gateway of AP #[COLOR="#FF0000"]Thay bằng giá trị của bạn (1)[/COLOR] APADDR="10.0.1.1" #ID of USB wifi #[COLOR="#FF0000"]Thay bằng giá trị của bạn (2)[/COLOR] ID="148f:1234" #LAN cable plug in LAN=`cat /sys/class/net/eth0/carrier|sed -e 's/^ *//g' -e 's/ *$//g'` #USB wifi plug in WIFI=`lsusb|grep -c $ID` if [ $LAN -ne 0 ]; then cat > /etc/network/interfaces <<EOF auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet static address $ADDR netmask $NMSK gateway $GWAY EOF if [ $WIFI -ne 0 ]; then cat >> /etc/network/interfaces <<EOF iface wlan0 inet static address $APADDR netmask $NMSK EOF fi else if [ $WIFI -ne 0 ]; then cat > /etc/network/interfaces <<EOF auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet static address $ADDR netmask $NMSK gateway $GWAY EOF fi fi sleep 1 if [[ $NET -ne 0 ]]; then ifdown eth0 && ifup eth0 fi if [[ $WIFI -ne 0 ]]; then ifdown wlan0 && ifup wlan0 fi
Chú thích:
- Nếu cài đặt udhcp, xem giá trị này ở file /etc/udhcpd.conf, dòng "opt router"
Nếu cài đặt isc-dhcp-server, xem giá trị này ở /etc/dhcp/dhcpd.conf, dòng "option routers"
Thí dụ nếu gateway của RPI là 192.168.0.1 thì nên chọn gateway của AP là 192.168.1.1- Cắm USB wifi vào RPI, chạy lệnh lsusb để xem ID của USB
2. Đặt thuộc tính thực thi
Mã:chmod +x /etc/init.d/autonet.sh
3. Đăng ký tự chạy khi khởi động
Mã:update-rc.d autonet.sh defaults
4. Sử dụng
Mỗi khi thay đổi thiết bị kết nối mạng, chúng ta khởi động lại RPI, hay chạy lệnh /etc/init.d/autonet.sh
Tôi sẽ giúp anh, nhưng tò mò chút: chổ anh không có internet có dây?
sudo sakis3g --interactive
USBDRIVER="option"
USBINTERFACE="?"
APN="?????"
APN_USER=" "
APN_PASS=" "
MODEM="OTHER"
OTHER="USBMODEM"
USBMODEM="????:????"
# [COLOR="#FF0000"]sửa đường dẫn cho giống trên máy bạn[/COLOR]
/opt/sakis3g/sakis3g --sudo "connect"
# [COLOR="#FF0000"]sửa đường dẫn cho giống trên máy bạn[/COLOR]
/opt/sakis3g/sakis3g --sudo "disconnect"
#***************************************************
#! /bin/sh
# /etc/init.d/auto3g.sh
### BEGIN INIT INFO
# Provides: auto3g
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Simple script to start a program at boot
# Description: LNT <[email protected]>
### END INIT INFO
case "$1" in
start)
sleep 10
echo "connecting via sakis3g"
# [COLOR="#FF0000"]sửa đường dẫn cho giống trên máy bạn[/COLOR]
/opt/sakis3g/sakis3g --sudo "connect"
;;
stop)
echo "dissconnecting via sakis3g"
# [COLOR="#FF0000"]sửa đường dẫn cho giống trên máy bạn[/COLOR]
/opt/sakis3g/sakis3g --sudo "disconnect"
;;
*)
echo "Usage: /etc/init.d/auto3g.sh {start|stop}"
exit 1
;;
esac
exit 0
#*********************************************************
sudo chmod 755 /etc/init.d/auto3g.sh
sudo update-rc.d auto3g.sh defaults
Nếu có mạng LAN
Cấu hình mạng LAN
Nếu có USB Wifi, cấu hình access point
Trái lại Nếu có USB 3G
Cấu hình mạng 3G
Nếu có USB Wifi, cấu hình access point
Trái lại
Nếu có USB Wifi, cấu hình mạng wireless
Tự động kết nối 3G khi khởi động
1. Chạy sakis3g
Mã:sudo sakis3g --interactive
Sau khi kết nối được rồi, vào ‘more option’–’generate success report’, ghi nhớ dòng APN va MODEM
2. Tạo file /etc/sakis3g.conf với APN và MODEM vừa ghi
Mã:USBDRIVER="option" #USBINTERFACE="3" APN="????" APN_USER=" " APN_PASS=" " MODEM="????:????"
Sau đó thử kết nối bằng dòng lệnh
Mã:# [COLOR="#FF0000"]sửa đường dẫn cho đúng trên máy bạn[/COLOR] /opt/sakis3g/sakis3g --sudo "connect"
Ngắt kết nối
Mã:# [COLOR="#FF0000"]sửa đường dẫn cho đúng trên máy bạn[/COLOR] /opt/sakis3g/sakis3g --sudo "disconnect"
3. Tạo file /etc/init.d/auto3g.sh
Mã:#*************************************************** #! /bin/sh # /etc/init.d/auto3g.sh ### BEGIN INIT INFO # Provides: auto3g # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Simple script to start a program at boot # Description: LNT <lnt@ly-le.ìno> ### END INIT INFO case "$1" in start) sleep 10 echo "connecting via sakis3g" # [COLOR="#FF0000"]sửa đường dẫn cho đúng trên máy bạn[/COLOR] /opt/sakis3g/sakis3g --sudo "connect" ;; stop) echo "dissconnecting via sakis3g" # [COLOR="#FF0000"]sửa đường dẫn cho đúng trên máy bạn[/COLOR] /opt/sakis3g/sakis3g --sudo "disconnect" ;; *) echo "Usage: /etc/init.d/auto3g.sh {start|stop}" exit 1 ;; esac exit 0 #*********************************************************
Đặt thuộc tính thực thi
Mã:sudo chmod 755 /etc/init.d/auto3g.sh
Đăng ký script tự động chạy khi khởi động
Mã:sudo update-rc.d auto3g.sh defaults
Tự động kết nối 3G khi khởi động
1. Chạy sakis3g
Mã:sudo sakis3g --interactive
Sau khi kết nối được rồi, vào ‘more option’–’generate success report’, ghi nhớ dòng APN va MODEM
2. Tạo file /etc/sakis3g.conf với APN và MODEM vừa ghi
Mã:USBDRIVER="option" #USBINTERFACE="3" APN="????" APN_USER=" " APN_PASS=" " MODEM="????:????"
Sau đó thử kết nối bằng dòng lệnh
Mã:# [COLOR="#FF0000"]sửa đường dẫn cho đúng trên máy bạn[/COLOR] /opt/sakis3g/sakis3g --sudo "connect"
Ngắt kết nối
Mã:# [COLOR="#FF0000"]sửa đường dẫn cho đúng trên máy bạn[/COLOR] /opt/sakis3g/sakis3g --sudo "disconnect"
3. Tạo file /etc/init.d/auto3g.sh
Mã:#*************************************************** #! /bin/sh # /etc/init.d/auto3g.sh ### BEGIN INIT INFO # Provides: auto3g # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Simple script to start a program at boot # Description: LNT <lnt@ly-le.ìno> ### END INIT INFO case "$1" in start) sleep 10 echo "connecting via sakis3g" # [COLOR="#FF0000"]sửa đường dẫn cho đúng trên máy bạn[/COLOR] /opt/sakis3g/sakis3g --sudo "connect" ;; stop) echo "dissconnecting via sakis3g" # [COLOR="#FF0000"]sửa đường dẫn cho đúng trên máy bạn[/COLOR] /opt/sakis3g/sakis3g --sudo "disconnect" ;; *) echo "Usage: /etc/init.d/auto3g.sh {start|stop}" exit 1 ;; esac exit 0 #*********************************************************
Đặt thuộc tính thực thi
Mã:sudo chmod 755 /etc/init.d/auto3g.sh
Đăng ký script tự động chạy khi khởi động
Mã:sudo update-rc.d auto3g.sh defaults
USBDRIVER="option"
OTHER="USBMODEM"
USBMODEM="12d1:1436"
APN="m3-card"
APN_USER="mms"
APN_PASS="mms"
MODEM="12d1:1436"
USBINTERFACE="0"
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -i ppp0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT
sh -c "iptables-save > /etc/iptables.ipv4.nat"
Tôi đoán là anh nối RPI với cổng LAN của access point, chuyển qua cổng WAN thì không cần các dòng này.
Tuy nhiên nếu vẫn muốn giữ kết nối qua cổng LAN, sau khi gõ các dòng trên, anh lưu kết quả bằng câu lệnh
Mã:sh -c "iptables-save > /etc/iptables.ipv4.nat"
Mong bạn hướng dẫn giúp mình xử dụng D-com 3g. Mình dùng loại 173eu. Tỉ mỉ chút chứ mình mới tập linux. Mình ở quê nên dây mạng không kéo tới.Cho cả hai hệ điều hành Raspbian và Raspbmc. Cảm ơn bạn nhiều...
sudo apt-get install usb-modeswitch ppp
wget "http://dl.dropboxusercontent.com/u/64423922/sakis3g"
sudo chmod +x sakis3g
./sakis3g --interactive
Có người thử thay regulator của RPI bằng switching regulator 5V/3.3V thì công suất tiêu thụ giảm 1/3USB 3G phải được cấp nguồn riêng, cắm vào Pi nó không chạy đâu, vì ko đủ nguồn.
Có người thử thay regulator của RPI bằng switching regulator 5V/3.3V thì công suất tiêu thụ giảm 1/3
Gắn thêm tụ 220uF 10V thì không có hiện tượng sụt nguồn khi gắn thêm USB wifi. Cấp thêm nguồn cho hub 2 USB của RPI, không cần hub rời...
Ai rành về điện hướng dẫn mọi người làm... Linh kiện cần thiết rất rẻ tiền (món đắt nhất là 15k)
@hoatienii: cái này là ổ cứng cấp nguồn ngược lại RPi hả bác?
Chán lắm bác ơi. chạy mấy file 720p chơi,coi cho zui thì đc,vọc phá chơi,dùng để kéo torent hay fshare. chứ coi phim thì chán. bây giờ sắm hoàn thiện Rasp
Rasp : 600k (Ở hà nội bán,còn ở hcm thì 900,1 triệu)
Thẻ nhớ 4GB: 100k
Nguồn: 100k
Case: 150k
Cũng hết 1 chai rồi, Quan trọng là tính năng Hd player yếu. nếu bạn thik công nghệ thì mua về vọc, rất đáng tiền
Còn thik Hd player thì mua con Hd player thứ thiệt,vì xuất DTS và DTS MA phải có bản quyền trên chip,1 số android box vẫn chưa làm đc, 1 số khác thì hack nên đc(ổn định lâu dài hay ko thì chưa biết)
USB 3G phải được cấp nguồn riêng, cắm vào Pi nó không chạy đâu, vì ko đủ nguồn.
Bạn ssh vào Pi rồi gõ lênh sau:
Gõ lệnh sau để down sakis3g về.Mã:sudo apt-get install usb-modeswitch ppp
Copy sakis3g vào /usr/local/binMã:wget "http://dl.dropboxusercontent.com/u/64423922/sakis3g"
chạy sakis3gMã:sudo cp sakis3g /usr/local/bin
Rồi làm theo sakis3g để kết nối. Mình ko có USB giống loại của bạn. Bạn cứ làm, lỗi ở bước nào up hình lên cho ae ở đây sẽ giúp dùm.Mã:sudo sakis3g --interactive