Menu
Orange PI, как WiFi маршрутизатор

Orange PI, как WiFi маршрутизатор



1. Первый вход armbian

login root

password 1234

 

2. Networking

 

/etc/network/intarfaces 

 

auto lo
iface lo inet loopback


auto eth0
allow-hotplug eth0
iface eth0 inet static
address 172.16.30.30
netmask 255.255.255.0
gateway 172.16.30.254


auto wlan0
allow-hotplug wlan0
#iface wlan0 inet manual
iface wlan0 inet static
address 10.33.0.1
netmask 255.255.255.0
post-up service hostapd restart

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 добавить:

brctl addif br0 wlan0

 

Посмотреть состояние моста

brctl show

3. Установка пакетов

apt-get update

apt-get install mc ifupdown net-tools hostapd dnsmasq wvdial openvpn

apt-get purge network-manager

reboot

4. Dnsmasq: /etc/dnsmasq.conf

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

 

5. Hostapd: /etc/hostapd.conf

В файле /etc/default/hostapd раскомментируем и исправляем строку:

DAEMON_CONF="/etc/hostapd.conf"
 
Содержимое /etc/hostapd.conf:
 
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. GPRS

6.1 Проверка модема minicom

minicom -c on -b 9600 -D /dev/ttyUSB0
(выход: alt+A ZX)

ATZ - иниуиализация

AT+CSQ - уровень сигнала

ATD+79998887766; - набрать номер

 Возможно потребуется переключить модем в правильный режим

usb_modeswitch -v 0x12d1 -p 0x14b7 -V 0x12d1 -P 0x14cc -M 55534243123456780000000000000011062000000100000000000000000000 -s 20

Описаны 2 варианта: через  pppd и wvdial 

6.2 pppd

Создать файл /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

6.3 wvdial

 

/etc/ppp/peers/wvdial:

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

7. /etc/rc.local 

sysctl net.ipv4.ip_forward=1

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 хопа с клиента

 8. /etc/openvpn

 apt-get install openvpn

[system_default_sect]
MinProtocol = TLSv1
/etc/default/openvpn
AUTOSTART="all"
Конфигурация ищет файл /etc/openvpn/tun.conf

 9. Apache PHP

sudo apt install apache2 libapache2-mod-php php-xml 

 

$$$ sudo armbian-config


$$$ включение ТВ/выхода
в /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

$$$ перенос на emmc

sudo nand-sata-install

$$$ стопануть Xы
/etc/init.d/nodm stop

$$$ VNC

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 &


$$$ cams

#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=704x576&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


$$$ 1-wire

Включаем модули:
w1-sunxi
w1-gpio
w1-therm
sed -i 's/#w1/w1/g' /etc/modules
reboot


-- quiet console=hvc0

 

поднять точку доступа 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 раскомментируем и исправляем строку:

DAEMON_CONF="/etc/hostapd/hostapd.conf"
 
Содержимое:
 
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

 

Роутинг

sysctl net.ipv4.ip_forward=1

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

sudo apt-get uprage

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

 

cd qemu

./configure --target-list="i386-softmmu" --enable-sdl --prefix=/usr

sudo make

Отладка может продолжаться неопределённое время, (~15-20 минут). Последнее, что мы должны сделать, это подправить конфиги и отладить.

sudo nano /home/pi/qemu/tcg/arm/tcg-targe­t.c
sudo nano /home/pi/qemu/tcg/i386/tcg-targ­et.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

[tags]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
 


Lisolog @ / 2021