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"
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"
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-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
[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