- Orange PI, как WiFi маршрутизатор
- поднять точку доступа WIFI на Orange Pi
- 1 вариант
- 2 вариант. Ручной
- Запускаем и эмулируем Windows на Raspberry Pi с помощью QEMU
- Orange Pi One as a router
- Changing IP to static
- Installation and configuration of DHCP server
- Setting up NAT (Network Address Translation)
- Enable IPv4 forwarding
- Run NAT commands
Orange PI, как WiFi маршрутизатор
auto enxc0742bffd57f
allow-hotplug enxc0742bffd57f
#iface enxc0742bffd57f inet manual
iface enxc0742bffd57f inet static
address 10.33.0.2
netmask 255.255.255.0
iface enxc0742bffd57f inet6 static
address 2001::42:f0ff:fe51:f2a9
netmask 64
# gateway 2001:db8::1ead:ed:beef
#auto br0
#iface br0 inet static
# bridge_ports enxc0742bffd57f wlan0
# address 10.33.0.1
# netmask 255.255.255.0
# bridge_stp off
# post-up service hostapd restart
wlan0 иногда не хочет в мост, поэтому в /etc/rc.local добавить:
Посмотреть состояние моста
apt-get install mc ifupdown net-tools hostapd dnsmasq wvdial openvpn
apt-get purge network-manager
interface=br0
#listen-address=10.33.0.1
# range
dhcp-range=10.33.0.10,10.33.0.40,12h
# leases file
dhcp-leasefile=/tmp/dnsmasq.leases
# static address
#dhcp-host=11:22:33:44:55:66,192.168.51.60
# static address with leasetime
#dhcp-host=11:22:33:44:55:66,fred,192.168.51.60,45m
# block address
#dhcp-host=11:22:33:44:55:66,ignore
В файле /etc/default/hostapd раскомментируем и исправляем строку:
interface=wlan0
driver=nl80211
ssid=Internet
hw_mode=g
ieee80211n=1 # (для включения режима n, не отменяет необходимость предыдущей строки hw_mode=g. Если не планируется использование режима n, то строку ieee80211n не пишем)
channel=6 # (в режиме n 2.4GHz доступны 3 неперекрывающихся канала: 1, 6, 11)
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0
6.1 Проверка модема minicom
minicom -c on -b 9600 -D /dev/ttyUSB0
(выход: alt+A ZX)
ATD+79998887766; — набрать номер
Возможно потребуется переключить модем в правильный режим
usb_modeswitch -v 0x12d1 -p 0x14b7 -V 0x12d1 -P 0x14cc -M 55534243123456780000000000000011062000000100000000000000000000 -s 20
Описаны 2 варианта: через pppd и wvdial
Создать файл /etc/ppp/peers/grps
# Используемое для подключения устройство /dev/ttyUSB0 # chat-скрипт # В параметре "-T" передаётся имя точки доступа connect '/usr/sbin/chat -v -f /etc/chatscripts/gprs -T internet' # Надо ли менять маршрут по умолчанию # Закомментируйте если не надо defaultroute # Использовать ли DNS-сервера провайдера # Закомментируйте если не надо usepeerdns # Номер ppp-интерфейса (в данном случае будет ppp100) unit 100 # Подключаться в случае обрыва persist # Перепосылать пакеты авторизации каждые 60 секунд # Позволяет избежать обрыва соединения при отсутствии трафика chap-interval 60 # Идентификатор соединения, используемый для поиска паролей в соответствующих файлах, # А так же передаваемый ip-up и ip-down-скриптам ipparam Megafon # Имя пользователя (пароль описывается в файле "/etc/ppp/chap-secrets") user "gdata" # Отключаем любое сжатие nopcomp novjccomp nobsdcomp nodeflate noaccomp # Правильная обработка обрывов соединения lcp-echo-interval 2 lcp-echo-failure 3 # IP адрес мы будем получать от провайдера, а не назначать сами noipdefault
Запустить
#pon gprs
Остановить
#poff gprs
Прописать в /etc/interfaces
auto gprs iface gprs inet ppp provider gprs
Если соединение рвется, то
auto gprs iface gprs inet manual pre-up /usr/bin/pon gprs pre-down /usr/bin/poff gprs
The remote system is required to authenticate itself
Вписать в /etc/ppp/options noauth вместо auth
noauth name wvdial defaultroute replacedefaultroute
/etc/wvdial.conf
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT = 1,"IP","nternet.mts.ru"
Stupid Mode = 1
Phone = *99#
Auto DNS = on
; Phone =
ISDN = 0
Modem Type = Analog Modem
Password = internet
Username = internet
Modem = /dev/ttyUSB0
Baud = 230400
#Baud = 115200
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t mangle -A FORWARD -p tcp —tcp-flags SYN,RST SYN -j TCPMSS —clamp-mss-to-pmtu
Обманываем опсоса по «не тому» тарифу:
iptables -t mangle -A POSTROUTING -j TTL —ttl-set 64
Сделать traceroute ya.ru — должно быть 2 хопа с клиента
[system_default_sect]
MinProtocol = TLSv1
/etc/default/openvpn
AUTOSTART=»all»
Конфигурация ищет файл /etc/openvpn/tun.conf
sudo apt install apache2 libapache2-mod-php php-xml
$$$ включение ТВ/выхода
в /boot/bin/
сделать бэкап orangepipcplus.bin
sudo bin2fex orangepipcplus.bin orangepipcplus.fex
редактировать orangepipcplus.fex:
Для аналогового аудиовыхода вам нужно перейти в раздел [audio0] и включить следующую строку (возможно, это было включено по умолчанию):
audio_used = 1
Найдите раздел [disp_init] и измените следующие строки, например (disp_mode = 1, чтобы использовать параметры screen1; screen1_output_type = 2 для режима ТВ-выхода; screen1_output_mode — тип выходного сигнала, 11 для PAL и 14 для NTSC):
disp_mode = 1
screen1_output_type = 2
для PAL : screen1_output_mode = 11
для NTSC: screen1_output_mode = 14
Перейдите в раздел [tv_para] и включите использование ТВ-выхода:
tv_used = 1
sudo fex2bin orangepipcplus.fex orangepipcplus.bin
Включите драйвер ТВ-модуля в драйверы запуска системы:
sudo echo «tv» >> /etc/modules
Перезагрузите систему:
sudo reboot
$$$ стопануть Xы
/etc/init.d/nodm stop
sudo apt-get -y install x11vnc vnc4server xinetd vnc-java xfonts-base
sudo x11vnc -storepasswd yourpassword /etc/x11vnc.pass
This two lines are for starting. You can but this also to etc/rc.local so VNC starts every time the Linux is rebooted.
vncserver # first time use a password has to be setup as well, just follow the Questions presented after invoking
x11vnc -display :0 &
#dahua LQ
«C:\Program Files (x86)\VideoLAN\VLC\vlc.exe» «rtsp://video:video@192.168.11.113:554/cam/realmonitor?channel=1&subtype=2» «D:\lisolog\tmp\raivola480.mp4» —loop —no-qt-fs-controller —qt-start-minimized —qt-fullscreen-screennumber=1 —video-x=0 —video-y=0 —no-embedded-video —fullscreen —video-on-top —no-video-title-show
# axis LQ
#»C:\Program Files (x86)\VideoLAN\VLC\vlc.exe» «rtsp://video:video@192.168.11.122/axis-media/media.amp?resolution=704×576&audiochannel=1&audio=1» «D:\lisolog\tmp\raivola480.mp4» —loop —no-qt-fs-controller —qt-start-minimized —qt-fullscreen-screennumber=2 —video-x=2000 —video-y=100 —no-embedded-video —fullscreen —video-on-top —no-video-title-show
#3
#»C:\Program Files (x86)\VideoLAN\VLC\vlc.exe» » rtsp://video:video@192.168.11.114:554″ «D:\lisolog\tmp\raivola480.mp4» —loop —no-qt-fs-controller —qt-start-minimized —qt-fullscreen-screennumber=3 —video-x=4000 —video-y=100 —no-embedded-video —fullscreen —video-on-top —no-video-title-show
Включаем модули:
w1-sunxi
w1-gpio
w1-therm
sed -i ‘s/#w1/w1/g’ /etc/modules
reboot
поднять точку доступа WIFI на Orange Pi
apt-get update && sudo apt-get upgrade -y
apt-get install git iptables dnsmasq util-linux procps iproute2 iw haveged build-essential dkms wireless-tools bridge-utils hostapd dnsmasq -y
Для чипсета RT2870/3070 не забываем скачать firmware.
apt-get install firmware-ralink -y
Затем перезагружаемся:
reboot
Далее выполните:
iw list
видим Supported interface modes: AP, а заодно и список частот.
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
Затем перезагружаемся:
reboot
1 вариант
iw dev wlan0 del
git clone https://github.com/oblique/create_ap
cd create_ap
make install
Потом идем в /etc/network/interfaces и добавляем:
create_ap wlan0 eth0 -c4 OrangePI
create_ap wlan0 eth0 —daemon -m nat -w2 -g 10.11.10.1 -c11 miaou 87658765
create_ap wlan0 eth0 —daemon —country RU -w2 -g 10.11.10.1 -c11 miaou 87658765
2 вариант. Ручной
В файле /etc/default/hostapd раскомментируем и исправляем строку:
interface=wlan0
driver=nl80211
ssid=Internet
hw_mode=g
ieee80211n=1 # (для включения режима n, не отменяет необходимость предыдущей строки hw_mode=g. Если не планируется использование режима n, то строку ieee80211n не пишем)
channel=6 # (в режиме n 2.4GHz доступны 3 неперекрывающихся канала: 1, 6, 11)
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t mangle -A FORWARD -p tcp —tcp-flags SYN,RST SYN -j TCPMSS —clamp-mss-to-pmtu
Запускаем и эмулируем Windows на Raspberry Pi с помощью QEMU
sudo apt-get install git zlib1g-dev libsdl1 .2 -dev libpixman -1 -0 libpixman -1 -dev
git clone git: //git.qemu-project.org/qemu.git
./configure —target-list= «i386-softmmu» —enable-sdl —prefix=/usr
Отладка может продолжаться неопределённое время, (~15-20 минут). Последнее, что мы должны сделать, это подправить конфиги и отладить.
sudo nano /home/pi/qemu/tcg/arm/tcg-target.c sudo nano /home/pi/qemu/tcg/i386/tcg-target.c
Зажимаем Ctrl+W, открывается строка поиска, вводим: static void tcg_out_addi. Меняем на static inline void tcg_out_addi. Переходим ко второму конфигу, так же вызываем строку поиска и вводим этот текст: static void tcg_out_opc и меняем на static inline void tcg_out_opc. Если вы не нашли какую-то из строк, то ничего не делаем, а просто закрываем конфиг и выполняем следующий шаг (в первом конфиге я не нашёл нужную строку, однако эмулятор у меня работает нормально).
Если вы закончили с заменой строк, продолжаем дальше мучать нашу «малинку»:
sudo make sudo make install
Образы:
http://4pda.ru/forum/index.php?showtopic=318284
Переходим к запуску систему. Пишем в консоль:
qemu-system-i386 здесь тип образа (-hda, -fda, -cdrom) НазваниеВашегоОбраза.img -m Тут_Кол-во_ОЗУ_В_МБ(Без подчёркиваний разумеется).
RASPBIAN
root orangepi
Перенос /tmp /var/log в RAM
/etc/fstab:
tmpfs /tmp tmpfs defaults,noatime,nosuid 0 0
tmpfs /var/log tmpfs defaults,noatime,nosuid,size=16m 0 0
Проблемы
1. Нет пути до /sbin
The command could not be located because '/sbin' is not included in the PATH environment variable.
Надо export PATH=/sbin:$PATH
2. На интерфейсе присваивается ipv6 адрес
Править /etc/sysctl.conf
net.ipv6.conf.wlan0.disable_ipv6 = 1
Применить
sysctl -p
orangepi,linux,configure,orange,router,wifi,hostapd,dnsmasq,dhcp,одноплатник,сервер,настройка[/tags]
3. Отваливается SD карта
Попытаться проверить ошибки:
fsck -fy /dev/mmcblk0p2
Перемонтировать
mount -o remount, rw /
Исправить /etc/fstab к виду (для SD карты в raspberry)
proc /proc proc defaults 0 0 PARTUUID=6c586e13-01 /boot vfat defaults 0 2 PARTUUID=6c586e13-02 / ext4 defaults,noatime 0 1
, где PARTUUID взяты из вывода утилиты blkid
Orange Pi One as a router
As I have configured LTE modem successfully on the Orange Pi One, the next step is to convert the board into a router. It needs the following:
- must run a dhcp server (to allow my router to connect)
- must have IPv4 forwarding and NAT enabled
- must run wvdial as a service
- it would be good if the router could restart the LTE modem as it sometimes hungs
- (later) must have some firewall rules in place
- must restart into correct mode
Changing IP to static
When a new Orange Pi One is installed, it uses DHCP method to configure its interfaces. We need to create a static addres which will be serving DHCP for the router. A link here may help understand the process.
in /etc/network/interfaces file add:
auto eth0 iface eth0 inet static address 192.168.2.1 # actually the desired IP address netmask 255.255.255.0 # no gateway is on purpose. PPPD will create a gateway
Installation and configuration of DHCP server
In Lubuntu, the default dhcp server is isc-dhcp-server:
orangepi$ sudo apt-get install isc-dhcp-server
Configure the server. In /etc/dhcp/dhcpd.conf define our subnet:
# following line sets DNS servers manually. Better if it is # updated from the pppd daemon -- future option domain-name-servers 89.108.202.20, 89.108.195.20; subnet 192.168.2.0 netmask 255.255.255.0 < ># This is a very basic subnet declaration. subnet 192.168.2.0 netmask 255.255.255.0
After reboot we should get a DHCP-enabled server.
Setting up NAT (Network Address Translation)
This step will forward transmissions from internal network to the outside world. Some explanation may be found here and here.
Enable IPv4 forwarding
In /etc/sysctl.conf enable ip forwarding:
net.ipv4.ip_forward=1 # comment removed
Run NAT commands
orangepi$ sudo /sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE orangepi$ sudo /sbin/iptables -A FORWARD -i ppp0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT orangepi$ sudo /sbin/iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
It is best to make these commands automatic by creating an init.d script (with help from link):
- create an init.d script, say nat-setup, by copying skeleton script
- chmod the script to all executable
- run automatic script which will put the setup to relevant rcX.d folders:
orangepi$ sudo update-rc.d nat-setup defaults orangepi$ sudo update-rc.d nat-setup enable