﻿define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>/dev/head &#187; openwrt</title>
	<atom:link href="http://devhead.ru/cat/openwrt/feed" rel="self" type="application/rss+xml" />
	<link>http://devhead.ru</link>
	<description>Статьи и видео уроки</description>
	<lastBuildDate>Mon, 30 Jan 2017 11:12:34 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.37</generator>
	<item>
		<title>Создание образа со своего роутера со всеми до установленными пакетами,а так же последующее восстановление</title>
		<link>http://devhead.ru/read/sozdanie-obraza-so-svoego-routera-so-vsemi-do-ustanovlennymi-paketamia-tak-zhe-posleduyushhee-vosstanovlenie</link>
		<comments>http://devhead.ru/read/sozdanie-obraza-so-svoego-routera-so-vsemi-do-ustanovlennymi-paketamia-tak-zhe-posleduyushhee-vosstanovlenie#comments</comments>
		<pubDate>Fri, 14 Dec 2012 12:39:55 +0000</pubDate>
		<dc:creator><![CDATA[garynych]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[полный backup настроек]]></category>
		<category><![CDATA[роутер]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/sozdanie-obraza-so-svoego-routera-so-vsemi-do-ustanovlennymi-paketamia-tak-zhe-posleduyushhee-vosstanovlenie</guid>
		<description><![CDATA[(короче, полный backup а не просто настройки…) Допустим Вам лень или не умеете собирать сами прошивку, и скачали стандартную с OpenWrt, и добавили нужные вам пакеты и настроили всё. Но вдруг понадобилось всё снести… и теперь придётся всё начинать заново… согласитесь, лень или просто нет времени … Backup прошивки: В putty скомандовать cat /dev/mtd5 &#62; [&#8230;]]]></description>
				<content:encoded><![CDATA[<p align="center">(короче, <b>полный </b><b>backup</b> а не просто настройки…)</p>
<p>Допустим Вам лень или не умеете собирать сами прошивку, и скачали стандартную с OpenWrt, и добавили нужные вам пакеты и настроили всё.</p>
<p>Но вдруг понадобилось всё снести… и теперь придётся всё начинать заново…</p>
<p>согласитесь, лень или просто нет времени …</p>
<p align="center"><span id="more-1744"></span></p>
<p><b> Backup прошивки:</b></p>
<p>В putty скомандовать<b> </b><strong>cat /dev/mtd5 &gt; /tmp/factory.bi</strong><strong>n</strong></p>
<p><img src="http://devhead.ru/wp-content/uploads/2013/01/01_c0000497b024d75fa8bc75ac523f9cb2.png" /></p>
<p>в папке /tmp появиться прошивочка под именем <b>factory.</b><b>bin</b></p>
<p>&nbsp;</p>
<p>перенесём её, к примеру в “закрома” на пк,  ;)</p>
<p><img src="http://devhead.ru/wp-content/uploads/2013/01/02_eeca69df2d269837369d0844fa570707.png" /></p>
<p><b>Restore прошивки:</b></p>
<p>Положить свой ранее созданный образ<b> в /</b><b>tmp</b></p>
<p>и скомандовать:</p>
<p><strong>cd /tmp &amp;&amp; mtd -e firmware -r write factory.bin firmware</strong></p>
<p><img src="http://devhead.ru/wp-content/uploads/2013/01/03_3802d5d9487a1f662122e5357d38afc0.png" /><br /><strong>Стирает, записывает, перегружает – всё сам… просто тупо ждём.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/sozdanie-obraza-so-svoego-routera-so-vsemi-do-ustanovlennymi-paketamia-tak-zhe-posleduyushhee-vosstanovlenie/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Добавление 3G модема в качестве wan интерфейса на примере роутеров tp-link 3420 и 3220</title>
		<link>http://devhead.ru/read/dobavlenie-3g-modema-v-kachestve-wan-interfejsa-na-primere-routerov-tp-link-3420-i-3220</link>
		<comments>http://devhead.ru/read/dobavlenie-3g-modema-v-kachestve-wan-interfejsa-na-primere-routerov-tp-link-3420-i-3220#comments</comments>
		<pubDate>Fri, 30 Nov 2012 19:18:35 +0000</pubDate>
		<dc:creator><![CDATA[garynych]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[tp-link 3220]]></category>
		<category><![CDATA[tp-link 3420]]></category>
		<category><![CDATA[роутер]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/dobavlenie-3g-modema-v-kachestve-wan-interfejsa-na-primere-routerov-tp-link-3420-i-3220</guid>
		<description><![CDATA[Подключаем 3g usb модем Прошивку качаем с http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/ar71xx/generic/ (для роутеров версии 2 ,прошивки не подходят... там надо колдовать) нас интересуют,только с окончаниями sguashfs-factory (если роутер ещё с заводской прошивкой) и sguashfs-sysupgade (если роутер уже прошит прошивкой openwrt) к примеру для 3420 она зовётся так: openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory и openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-sysupgrade ,соответственно ... нам нужно доустановить такие пакеты comgt [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><span style="font-size: 18px"><strong>Подключаем 3g usb модем</strong></span></p>
<p>Прошивку качаем с http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/ar71xx/generic/</p>
<p><span style="font-size: 10px;color: #ff0000"><em><strong>(для роутеров версии 2 ,прошивки не подходят... там надо колдовать)</strong></em></span></p>
<p>нас интересуют,только с окончаниями sguashfs-factory (если роутер ещё  с заводской прошивкой) и sguashfs-sysupgade (если роутер уже прошит  прошивкой openwrt)</p>
<p>к примеру для 3420 она зовётся так:   openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory и  openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-sysupgrade ,соответственно  ...</p>
<p><span style="font-size: 18px"><strong>нам н</strong></span><span style="font-size: 18px"><strong>ужно доустановить такие пакеты</strong></span></p>
<p>comgt<br /> kmod-usb-core<br /> kmod-usb-serial<br /> kmod-usb-serial-option<br /> kmod-usb-uhci тут Необходимо удалить пакет kmod-usb-ohci перед установкой kmod-usb-uhci<br /> kmod-usb2<br /> ppp<br /> kmod-usb-acm (для cdma ) если у Вас umts , то не нужно…<br /> usb-modeswitch (этот и ниже,для переключения в режим модема,если устр.в режиме только модем,то они не нужны)<br /> usb-modeswitch-data<br /> luci-proto-3g (этот для настройки модема через web интерфейс)<span style="font-size: 18px"><strong></strong></span></p>
<ul>
</ul>
<p><span style="font-size: 18px"><strong></strong></span><span id="more-1700"></span> <strong><img src="../wp-content/uploads/2012/11/137640538365d61d2c941867486f562a.png" /> </strong> я интерфей обозвал MEGAFON а у Вас он WAN :)  нажимаем edit и выбираем как на картинке  <img src="../wp-content/uploads/2012/11/a234244461299ca665c1f81513e13da2.png" /> попадаем в настройки и выставляем свои (у меня hyawei e1550 и мегафон) так что кроме APN и выбора порта модема,ничего больше не нужно...  <img src="../wp-content/uploads/2012/11/3bcb677ab57613ba9fbcf3de729999aa.png" /> нажимаем Save&amp;Apply</p>
<p><img src="../wp-content/uploads/2012/11/639aa71244db5e7e4e6a33af049fef32.png" /></p>
<p>вот вы и в интернете ...</p>
<p>если не наблюдаете соединение,то попробуйте перезагрузить роутер...</p>
<p>а если в интернет так и не вышли,то смотрите Status-&gt;System log там можно понять почему !</p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/dobavlenie-3g-modema-v-kachestve-wan-interfejsa-na-primere-routerov-tp-link-3420-i-3220/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>USB накопитель в качестве корня файловой системы используя block-mount для OpenWRT (Attitude Adjustment)</title>
		<link>http://devhead.ru/read/usb-nakopitel-v-kachestve-kornya-fajlovoj-sistemy-ispolzuya-block-mount-dlya-openwrt-attitude-adjustment</link>
		<comments>http://devhead.ru/read/usb-nakopitel-v-kachestve-kornya-fajlovoj-sistemy-ispolzuya-block-mount-dlya-openwrt-attitude-adjustment#comments</comments>
		<pubDate>Thu, 29 Nov 2012 08:56:28 +0000</pubDate>
		<dc:creator><![CDATA[garynych]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[block mount]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[tp-link 3220]]></category>
		<category><![CDATA[tp-link 3420]]></category>
		<category><![CDATA[роутер]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/usb-nakopitel-v-kachestve-kornya-fajlovoj-sistemy-ispolzuya-block-mount-dlya-openwrt-attitude_adjustment-i-dobavlenie-3g-modema-v-kachestve-wan-interfejsa-na-primere-routerov-tp-link-3420-i-3220</guid>
		<description><![CDATA[Для работы,нужны такие софтины,как putty и winSCP Прошивку качаем с http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/ar71xx/generic/ (для роутеров версии 2 ,прошивки не подходят... там надо колдовать) нас интересуют,только с окончаниями sguashfs-factory (если роутер ещё с заводской прошивкой) и sguashfs-sysupgade (если роутер уже прошит прошивкой openwrt) к примеру для 3420 она зовётся так: openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory и openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-sysupgrade ,соответственно ... после прошивки роутера,нужно [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Для работы,нужны такие софтины,как <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html"><strong>putty</strong></a> и <strong><a href="http://winscp.net/eng/docs/lang:ru">winSCP</a></strong></p>
<p>Прошивку качаем с http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/ar71xx/generic/</p>
<p><span style="font-size: 10px; color: #ff0000;"><em><strong>(для роутеров версии 2 ,прошивки не подходят... там надо колдовать)</strong></em></span></p>
<p>нас интересуют,только с окончаниями sguashfs-factory (если роутер ещё с заводской прошивкой) и sguashfs-sysupgade (если роутер уже прошит прошивкой openwrt)</p>
<p>к примеру для 3420 она зовётся так:  openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory и openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-sysupgrade ,соответственно ...</p>
<p><span id="more-1663"></span> <strong>после прошивки роутера,нужно присвоить </strong><strong>пароль для root, можно установить из web админки а можно по telnet :</strong></p>
<p><span style="font-size: 10px;"><em>(если вы из под windows 7,то по умолчанию клиент telnet там выключен и его надо включить)</em></span><strong> </strong> <strong><img src="../wp-content/uploads/2012/11/c86eeaceed10.png" height="461" width="598" /></strong> telnet 192.168.1.1  Наберите:</p>
<ul>
<li><span class="kw2">passwd</span> root</li>
<li>Введите Ваш новый пароль дважды. (что вводите,видно не будет)</li>
</ul>
<p><strong>теперь вход через pytty по ssh </strong> <img class="alignleft" src="../wp-content/uploads/2012/11/03fa4b22bd22.png" height="426" width="448" /></p>
<p>&nbsp;</p>
<p><img src="../wp-content/uploads/2012/11/ba01b17e22f4.jpg" height="406" width="640" /></p>
<p><strong>или через winSCP по протоколу SCP </strong><img src="../wp-content/uploads/2012/11/4edaa7a96889.png" height="373" width="523" /> <img src="../wp-content/uploads/2012/11/25cfda9b6ccd.jpg" height="423" width="640" /> <span style="font-size: 18px;"><strong> </strong></span></p>
<p><span style="font-size: 18px;"><strong>1 Подготовка USB накопителя</strong></span>. <strong><span style="font-size: 10px;">Для этого я использовал linux (ubuntu),можно не устонавливая,просто запустить для ознакомления и найти  GParted и запустив отформатировать,вот как там выглядит...</span></strong></p>
<p><strong><span style="font-size: 10px;"> </span></strong> <img src="../wp-content/uploads/2012/11/5a2d9785a6395c9892739be3eeace568.png" /> <img src="../wp-content/uploads/2012/11/12f2b2c8fc00b15c7d5e7f4637fbe283.png" /> итак, разбить флешку на 3 раздела Первый под swap (где то 130mb) Второй под корневую систему (зависит что хотите устанавливать… мне достаточно 100mb за глаза) Третий под Ваши нужды… (всё оставшееся место) и необходимо отформатировать разделы в фс (мне нравится ext4) флешка готова…</p>
<p><strong> </strong> <strong>2 Установить необходимые модули</strong></p>
<p>kmod-usb-core    <br />kmod-usb-uhci     <br />kmod-usb2     <br />kmod-usb-storage     <br />block-mount  <br />kmod-fs-ext4</p>
<pre class="brush: bash"><br />
</pre>
<p><strong>3 Перенос системы</strong></p>
<p>вставляем флешку в роутер и в putty выполняем <strong>mount</strong> и смотрим как определились разделы Нас интересует второй. К примеру он <strong>/dev/sda2</strong> и автоматом примонтировался Далее так же в putty выполняем <strong>umount /dev/sda2</strong> затем через winSCP открываем /etc/config/fstab И приводим его к такому состоянию:</p>
<pre class="brush: xhtml">config global automount
            option from_fstab 1
            option anon_mount 1

config global autoswap
            option from_fstab 1
            option anon_swap 0 

config mount
            option target /hdd
            option device /dev/sda3
            option fstype ext4
            option options rw,sync
            option enabled 1
            option enabled_fsck 1

config swap
            option device /dev/sda1
            option enabled 1</pre>
<p>выходим с сохранением изменения затем переходим снова в putty и выполняем по очереди: <strong> </strong></p>
<blockquote><p><strong>mount -t ext4 /dev/sda2 /mnt</strong></p></blockquote>
<blockquote><p><strong> </strong> <strong>mkdir /tmp/root/</strong></p></blockquote>
<blockquote><p><strong> </strong> <strong>mount -o bind / /tmp/root</strong> <strong> </strong> <strong> </strong></p></blockquote>
<blockquote><p><strong>cp /tmp/root/*</strong> <strong> /mnt -a</strong></p></blockquote>
<blockquote><p><strong>umount /mnt</strong></p></blockquote>
<p><strong><span style="font-size: 10px;">бывает что при вводе mkdir /tmp/root/ ,выдаёт ошибку,просто перегрузите роутер и повторите с пункта 3</span></strong> <strong> </strong></p>
<p>теперь опять через winSCP открываем /etc/config/fstab И приводим его к такому состоянию:</p>
<pre class="brush: bash">config global automount
          option from_fstab 1
          option anon_mount 1

config global autoswap
          option from_fstab 1
          option anon_swap 0

config mount
          option target /
          option device /dev/sda2
          option fstype ext4
          option options rw,sync
          option enabled 1
          option enabled_fsck 1</pre>
<p>сохраняем и в putty выполняем <strong>reboot</strong> . роутер перегружается и теперь система грузится с флешки и теперь можно напихать пакетов на выделенные для этого мегабайты ;) <img src="../wp-content/uploads/2012/11/82b295e98d4cf7d4e93ba137d1e3763e.png" /> можно и в web админке посмотреть (System-&gt;Software),что всё получилось... <img src="../wp-content/uploads/2012/11/c741fd79ac792a11a5af721fd9327cea.png" /></p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/usb-nakopitel-v-kachestve-kornya-fajlovoj-sistemy-ispolzuya-block-mount-dlya-openwrt-attitude-adjustment/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OpenWRT Dropbear reverse tunnel</title>
		<link>http://devhead.ru/read/openwrt-dropbear-reverse-tunnel</link>
		<comments>http://devhead.ru/read/openwrt-dropbear-reverse-tunnel#comments</comments>
		<pubDate>Tue, 10 Apr 2012 11:39:05 +0000</pubDate>
		<dc:creator><![CDATA[andreykyz]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[dropbear]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tunnel]]></category>

		<guid isPermaLink="false">http://devhead.ru/?p=1559</guid>
		<description><![CDATA[У меня недавно появилась задача. Мне понадобился ssh доступ на рабочий компьютер. Чтобы можно было использовать его вычислительных мощности для сборки OpenWRT. Мой домашний ноутбук делал полную сборку за 5 часов. А рабочий за 30-40 минут. Но тут была проблема, компьютер на работе был за NAT'ом. И на прямую к нему подключиться нельзя. Спасло то [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>У меня недавно появилась задача. Мне понадобился ssh доступ на рабочий компьютер. Чтобы можно было использовать его вычислительных мощности для сборки OpenWRT. Мой домашний ноутбук делал полную сборку за 5 часов. А рабочий за 30-40 минут. Но тут была проблема, компьютер на работе был за NAT'ом. И на прямую к нему подключиться нельзя. Спасло то что дома у меня был чистый ip и технология reverse tunnel. В качестве сервера я решил использовать wi-fi точку доступа <a href="http://wiki.openwrt.org/ru/toh/tp-link/tl-wr1043nd">TP-Link TL-WR1043ND</a> с OpenWRT и Dropbear.</p>
<p><span id="more-1559"></span></p>
<h3>Что у нас дано?</h3>
<p>Упрощённая сетевая схема:</p>
<p><a href="http://devhead.ru/wp-content/uploads/2012/04/openwrt_reverse_tunnel1.png"><img class="aligncenter size-full wp-image-1563" title="Openwrt reverse tunnel scheme." src="http://devhead.ru/wp-content/uploads/2012/04/openwrt_reverse_tunnel1.png" alt="OpenWRT Dropbear ssh reverse tunnel scheme" width="587" height="309" /></a><a href="http://devhead.ru/wp-content/uploads/2012/04/openwrt_reverse_tunnel.png"><br />
</a></p>
<h3>Настройка рабочего компьютера(Work)</h3>
<p>Рабочий компьютер должен всегда держать соединение с сервером. Даже после перезагрузки сервера соединение должно переустанавливаться.</p>
<p>Первое что нужно сделать, это ключи авторизации. т.к. когда я буду дома вводить на работе пароль буден некому.</p>
<p>И так создаем пару ключей:</p>
<blockquote><p>ssh-keygen -b 1024 -t dsa</p></blockquote>
<p>Затем копируем его на сервер</p>
<blockquote><p>scp .ssh/id_dsa.pub root@openwrt.router:/etc/dropbear/authorized_key -p 1022</p></blockquote>
<p>у меня Dropbear висит на 1022 порту, поэтому я его указываю. Если у вас 22, то можно не указывать</p>
<p>Теперь нужно добавить установку тунеля по Cron. Я взял скрипт <a href="http://www.brandonhutchinson.com/ssh_tunnelling.html">отсюда</a> немного его переделав. Скрипт я положил сюда: <strong>/etc/cron.d/ssh_reverse_tunnel.sh</strong>, вот его содержимое:</p>
<pre class="brush: bash">#!/bin/bash

LISTENING_HOST=0.0.0.0
LISTENING_PORT=12345

SSHD_HOST=openwrt.router
SSHD_USER=root
SSHD_PORT=1022

# $COMMAND is the command used to create the reverse ssh tunnel
COMMAND="ssh -f -N -R $LISTENING_HOST:$LISTENING_PORT:localhost:22 $SSHD_USER@$SSHD_HOST -p $SSHD_PORT"

# Is the tunnel up? Perform two tests:

# 1. Check for relevant process ($COMMAND)
pgrep -f -x "$COMMAND" &gt; /dev/null 2&gt;&amp;1 || $COMMAND

# 2. Test tunnel by looking at "netstat" output on $REMOTE_HOST
ssh $SSHD_USER@$SSHD_HOST -p $SSHD_PORT netstat -an 2&gt;/dev/null | egrep "tcp.*:$LISTENING_PORT.*LISTEN" \
   &gt; /dev/null 2&gt;&amp;1
if [ $? -ne 0 ] ; then
   pkill -f -x "$COMMAND"
   $COMMAND
fi</pre>
<p>Сам тунель устанавливается этой коммандой:</p>
<p>ssh -f -N -R $LISTENING_HOST:$LISTENING_PORT:localhost:22 $SSHD_USER@$SSHD_HOST -p $SSHD_PORT</p>
<p>где:</p>
<p>$LISTENING_HOSH - ip адрес на котором будут слушаться подключения, которые будут пробразываться на рабочий компьютер</p>
<p>$LISTENING_PORT - соответственно порт</p>
<p>localhost:22 - это куда пообрасывается соединение</p>
<p>$SSHD_USER@$SSHD_HOST -p $SSHD_PORT - login, внешний ip адрес и порт роутера</p>
<p>Задание для Cron я сделал выполняющиеся каждые 5 минут. Сначала вводим в консоли:</p>
<blockquote><p>crontab -e</p></blockquote>
<p>и вставляем:</p>
<blockquote><p>*/5 * * * * /etc/cron.d/ssh_reverse_tunnel.sh 2&gt;&amp;1 1&gt;/dev/null &amp;</p></blockquote>
<h3>Настройка сервера(OpenWRT router)</h3>
<p>В качестве сервера у меня, как сказано выше, будет точка доступа TL-WR1043ND. В качестве ssh сервера я решил использовать Dropbear т.к. он занимает меньше места чем OpenSSH server и имеет весь нужный мне функционал.</p>
<p>Вся настройка заключается в добавлении строчки:</p>
<blockquote><p>option 'GatewayPorts' 'on'</p></blockquote>
<p>в файл <strong>/etc/config/dropbear</strong></p>
<p>и смене прав на файл с ключом:</p>
<blockquote><p>chmod 0600 /etc/dropbear/authorized_key</p></blockquote>
<h3>Ноутбук(Home)</h3>
<p>Ну вот и все почти все готово. Подключаемся к работе так:</p>
<blockquote><p>ssh user@openwrt.local -p 12345</p></blockquote>
<p>где:</p>
<p>user - пользователь на работе</p>
<p>openwrt.local - локальный адрес роутера</p>
<p>12345 - порт для которого открыт туннель</p>
<h3>Ссылки</h3>
<ol>
<li><a class="external free" title="ssh tunnelling" href="https://forum.openwrt.org/viewtopic.php?id=11721" rel="nofollow">ssh tunnelling</a></li>
<li><a class="external free" title="[Howto] Dropbear with public key authentication" href="http://www.brandonhutchinson.com/ssh_tunnelling.html" rel="nofollow">[Howto] Dropbear with public key authentication</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/openwrt-dropbear-reverse-tunnel/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Компиляция/портирование своей программы под OpenWRT</title>
		<link>http://devhead.ru/read/kompilyaciyaportirovanie-svoej-programmy-pod-openwrt</link>
		<comments>http://devhead.ru/read/kompilyaciyaportirovanie-svoej-programmy-pod-openwrt#comments</comments>
		<pubDate>Fri, 23 Dec 2011 06:45:59 +0000</pubDate>
		<dc:creator><![CDATA[andreykyz]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/kompilyaciyaportirovanie-svoej-programmy-pod-openwrt/</guid>
		<description><![CDATA[Недавно мне понадобилось установить мою программу написанную на C(Си) на точку доступа под управлением OpenWRT. Уже была написана статья по сборке этой программы под Windows при помощи GCC из Cygwin. Для сборки же OpenWRT и всех поставляемых программ используется система сборки Buildroot и система пакетов ipkg. После долгих исследований OpenWrt Wiki и других сайтов найти [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Недавно мне понадобилось установить мою программу написанную на C(Си) на точку доступа под управлением OpenWRT. Уже была написана <a target="_blank" title="Компиляция программы из Linux в Windows при помощи Сygwin, GCC и Eclipse CDT " href="../kompilyaciya-programmy-iz-linux-v-windows-pri-pomoshhi-sygwin-gcc-i-eclipse-cdt/">статья</a> по сборке этой программы под Windows при помощи GCC из Cygwin. Для сборки же OpenWRT и всех поставляемых программ используется система сборки <a target="_blank" title="Buildroot: making Embedded Linux easy" href="http://buildroot.uclibc.org/">Buildroot</a> и система пакетов <a target="_blank" href="http://www.dd-wrt.com/wiki/index.php/Ipkg">ipkg</a>. После долгих исследований <a target="_blank" href="http://wiki.openwrt.org/">OpenWrt Wiki</a> и других сайтов найти актуальную документации не удалось. В итоге после сборки информации по крупицам я всетаки собрал пакет ipkg со своей программой. Дабы не пропасть приобретенным знаниям я решил написать данную статью.</p>
<p><span id="more-1467"></span></p>
<p><strong>Получение исходных кодов</strong></p>
<p>Я собираю OpenWrt из исходных кодов ветки trunk. Получить её можно либо при помощи git:</p>
<blockquote>
<p>git clone git://nbd.name/openwrt.git</p>
</blockquote>
<p>Либо при помощи svn:</p>
<blockquote>
<p>svn co svn://svn.openwrt.org/openwrt/trunk/ openwrt/</p>
</blockquote>
<p>Как получить другие ветки, в том числе с пакетами, написано <a target="_blank" href="https://dev.openwrt.org/wiki/GetSource" title="OpenWrt source repository downloads">т</a><a target="_blank" title="OpenWrt source repository downloads" href="https://dev.openwrt.org/wiki/GetSource">ут</a>.</p>
<p><strong>Подготовка к добаленю своего пакета</strong></p>
<p>Переходим в полученный каталог</p>
<blockquote>
<p>cd openwrt</p>
</blockquote>
<p>и получаем так называетмые <a target="_blank" title="OpenWrt Feeds" href="http://wiki.openwrt.org/doc/devel/feeds">feeds(дополнительные пакеты)</a>. Получаемые feeds можно отредактировать в файле feeds.conf.default</p>
<blockquote>
<p>./scripts/feeds update -a &amp;&amp; ./scripts/feeds install -a</p>
</blockquote>
<p>Потом выполняем комадну</p>
<blockquote>
<p>make preq</p>
</blockquote>
<p>И мы узнаем каких пакетов нехватает у нас в системе(в операционной системе)</p>
<p><strong>Добавление своего пакета</strong></p>
<p>Переходим в каталог package</p>
<blockquote>
<p>cd package/</p>
</blockquote>
<p>Создаем коталог под наш пакет(у меня он называется ecu)</p>
<blockquote>
<p>mkdir ecu</p>
</blockquote>
<p>Копируем исходники нашей программы. Я собираю простую программу которая собирается простым Makefile'ом</p>
<blockquote>
<p>mkdir ecu/ecu-src/</p>
<p>cp -r моя_программа/* ecu/ecu-src/</p>
</blockquote>
<p>Содержимое каталога ecu-src/</p>
<blockquote>
<p>$ ls -R ecu-src/<br />ecu-src/:<br />Makefile  src</p>
<p>ecu-src/src:<br />crc.c  crc.h  main.c</p>
</blockquote>
<p>Содержимое ecu-src/Makefile</p>
<blockquote>
<p>cat ecu-src/Makefile</p>
</blockquote>
<p>&nbsp;</p>
<pre class="brush: bash">ecu: main.o crc.o
        $(CC) $(LDFLAGS) main.o crc.o -o ecu
main.o: src/main.c src/crc.h
        $(CC) $(CFLAGS) -c src/main.c
crc.o: src/crc.c
        $(CC) $(CFLAGS) -c src/crc.c
clean:
        rm *.o ecu</pre>
<p>&nbsp;</p>
<p>Теперь на нужно интегрировать исходники с Makefile'ом в систему сбоки OpenWRT. Для этого нужно создать специальный Makefile в каталоге ecu/. Содержимое моего файла:</p>
<blockquote>
<p>include $(TOPDIR)/rules.mk</p>
<p>PKG_NAME:=ecu<br />PKG_RELEASE:=1<br />PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)</p>
<p>include $(INCLUDE_DIR)/package.mk</p>
<p>&nbsp;</p>
<p>define Package/ecu<br /> SECTION:=utils<br /> CATEGORY:=Utilities<br /> TITLE:=Embedded clock updater<br />endef</p>
<p>&nbsp;</p>
<p>define Package/ecu/description<br />Big comments....<br /> ...<br />endef</p>
<p>define Build/Prepare<br /> mkdir -p $(PKG_BUILD_DIR)<br /> $(CP) ./ecu-src/* $(PKG_BUILD_DIR)/<br />endef</p>
<p>define Package/ecu/install<br /> $(INSTALL_DIR) $(1)/bin<br /> $(INSTALL_BIN) $(PKG_BUILD_DIR)/ecu $(1)/bin/<br />endef</p>
<p>$(eval $(call BuildPackage,ecu))</p>
</blockquote>
<p><strong>Сборка OpenWRT с добавленным пакетом пакетом</strong></p>
<p>Переходим в корневой каталог openwrt/ и открываем menuconfig</p>
<blockquote>
<p>make menuconfig</p>
</blockquote>
<p>Далее выбираем все что нам нужно для дистрибутива( на эту тему есть <a title="Видеонаблюдение на основе роутера " href="../videonablyudenie-na-osnove-routera/">статья</a>)  и самое главное наш новый пакет. Я добавил свою программу в секцию utils то я ищу её в ней</p>
<p><img src="../../wp-content/uploads/2011/12/openwrt_utils.png" height="146" width="340" /></p>
<p>Выбираю, собирать отдельным пакетом:</p>
<p><img src="../../wp-content/uploads/2011/12/openwrt_ecu.png" /></p>
<p>Все, теперь выходим и запускаем сборку</p>
<blockquote>
<p>make</p>
</blockquote>
<p>или если у вас многоядерный процессор</p>
<blockquote>
<p>make -jn</p>
</blockquote>
<p>где n - колличество ядер + 1</p>
<p>А вот и наш пакетик</p>
<blockquote>
<p><strong>bin/ar71xx/packages/ecu_1_ar71xx.ipk</strong></p>
</blockquote>
<p><strong>Возможные проблемы</strong></p>
<p>Если в ходе сборки появляется это<strong><br /></strong></p>
<blockquote>
<p>...<br /> make[3] -C package/ecu compile<br />make -r world: build failed. Please re-run make with V=99 to see what's going on<br />make: *** [world] Ошибка 1</p>
</blockquote>
<p>то перезапускаем сборку с рекомендованным ключем(очень подробный вывод)</p>
<p>make V=99</p>
<p>и ждем, у меня, например была такая ошибка</p>
<blockquote>
<p>...<br />src/main.c: In function 'main':<br />src/main.c:113:2: error: 'for' loop initial declarations are only allowed in C99 mode<br />src/main.c:113:2: note: use option -std=c99 or -std=gnu99 to compile your code<br />src/main.c:118:4: error: 'for' loop initial declarations are only allowed in C99 mode<br />...</p>
</blockquote>
<p>не понравился синтаксис моего файла, я добавил рекомендуемый ключ компиляции, так:</p>
<blockquote>
<p>cat package/ecu/ecu-src/Makefile</p>
</blockquote>
<p>&nbsp;</p>
<pre class="brush: bash">ecu: main.o crc.o
	$(CC) $(LDFLAGS) main.o crc.o -o ecu
main.o: src/main.c src/crc.h
	$(CC) $(CFLAGS) -std=gnu99 -c src/main.c
crc.o: src/crc.c
	$(CC) $(CFLAGS) -std=gnu99 -c src/crc.c
clean:
	rm *.o ecu</pre>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/kompilyaciyaportirovanie-svoej-programmy-pod-openwrt/feed</wfw:commentRss>
		<slash:comments>53</slash:comments>
		</item>
		<item>
		<title>OpenWRT и TP-LINK TL-MR3220 v1.2</title>
		<link>http://devhead.ru/read/openwrt-i-tp-link-tl-mr3220-v1-2</link>
		<comments>http://devhead.ru/read/openwrt-i-tp-link-tl-mr3220-v1-2#comments</comments>
		<pubDate>Mon, 19 Dec 2011 20:46:51 +0000</pubDate>
		<dc:creator><![CDATA[ignusius]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[max232]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[tp-link]]></category>
		<category><![CDATA[роутер]]></category>

		<guid isPermaLink="false">http://devhead.ru/?p=1446</guid>
		<description><![CDATA[Приобрёл недавно замечательный роутер TP-LINK TL-MR3220 v1.2 с целью прошивки на него OpenWRT. Мой выбор пал на него из-за того, что это самое дешёвое и мощное решение, с полной поддержкой OpenWRT. Я несомненно рад покупке, особенно на фоне и печальном опыте с пропроетарщиной от Broadcom. Основные технические характеристаки: CPU: Atheros AR7241@400MHzRam: 32MiBFlash: 4MiB Network: 4 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Приобрёл недавно замечательный роутер TP-LINK TL-MR3220 v1.2 с целью прошивки на него OpenWRT. Мой выбор пал на него из-за того, что это самое дешёвое и мощное решение, с полной поддержкой OpenWRT. Я несомненно рад покупке, особенно на фоне и печальном опыте с пропроетарщиной от Broadcom. <span id="more-1446"></span> <strong></strong></p>
<p><strong>Основные технические характеристаки:</strong></p>
<blockquote>
<p>CPU: Atheros AR7241@400MHz<br />Ram: 32MiB<br />Flash: 4MiB <br />Network: 4 x 1 <br />USB: 2.0<br />Serial: Yes <br />JTag: No</p>
</blockquote>
<p><span style="color: #ff0000">Минус, это отсутствие JTag и в очень плохом качестве платы, будьте аккуратны при пайке ибо дорожки сползают на "Ура". </span></p>
<p>Первым делом, что нужно сделать - это спаять преобразователь уровней на базе MAX232, на нашем сайте есть<a href="uart"> соответствующая статья. </a>После этого нужно впаять контакты на плате роутера:</p>
<p style="text-align: center"><a href="../wp-content/uploads/2011/12/mr-3220_v1.2.jpg"><img class="aligncenter  wp-image-1459" src="../wp-content/uploads/2011/12/mr-3220_v1.2-1024x762.jpg" alt="Разобранный TP-LINK MR-3220 v1.2" height="457" width="614" /></a></p>
<p>Эта железяка устроена так, что она должна скачивать с сервера tftp прошивку т.к. стоит загрузчик u-boot, а не наоборот как в случае с D-Link Dir-320 и д.р c загрузчиком CFE.</p>
<h3>Подымаем tftp-сервер</h3>
<p>Наигравшись с нерабочим в Ubuntu поделием под названием atftpd, я решил поставить tftpd.</p>
<blockquote><p>sudo apt-get install openbsd-inetd tftpd tftp</p></blockquote>
<p>Настройка tftpd:</p>
<blockquote><p>sudo vi /etc/inetd.conf</p></blockquote>
<blockquote><p>Правим конфиг:</p></blockquote>
<blockquote><p>tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot</p></blockquote>
<p>Создадим директорию /tftpboot и добавляем права:</p>
<blockquote><p>sudo mkdir /tftpboot</p></blockquote>
<blockquote><p>sudo chmod -R 777 /tftpboot</p></blockquote>
<blockquote><p>sudo chown -R nobody /tftpboot</p></blockquote>
<p>Копируем прошивку и называем её как: <strong>code.bin</strong></p>
<blockquote><p>cp openwrt-trunk/bin/ar71xx/openwrt-ar71xx-generic-tl-mr3220-v1-squashfs-factory.bin  /tftpboot/code.bin</p></blockquote>
<p>Запуск службы inetd:<code></code></p>
<blockquote><p><code>sudo /etc/init.d/openbsd-inetd restart</code></p></blockquote>
<h3>Настройка сетевых интерфейсов</h3>
<p>Настраиваем в вашем дистрибутиве Linux сеть,а именно нужно выставить следующие параметры: <strong></strong></p>
<p><strong>IP-address: </strong>192.168.1.27</p>
<p><strong>Netmask: </strong>255.255.255.0</p>
<h3>Прошивка роутера</h3>
<ul>
<li>Подключаемся к роутеру через UART-RS232.</li>
<li>Включаем роутер</li>
<li>Когда в окне появится "Autoboot in ..", тогда быстро набираем <strong>tpl</strong></li>
<li>Видим приглашение типа: ar7100&gt;</li>
<li>Далее колдовство:</li>
</ul>
<blockquote>
<pre>ar7100&gt; erase 0x9f020000 +0x3c0000</pre>
<pre>ar7100&gt; tftpboot 0x81000000 code.bin</pre>
<pre>ar7100&gt; cp.b 0x81000000 0x9f020000 0x3c0000</pre>
<pre>ar7100&gt; bootm 0x9f020000</pre>
</blockquote>
<p>Вот и всё! Заметьте, что такой способ прошивки используется только один раз, после чего роутер можно прошивать средствами mtd. Для более подробного разъяснения воспользуйтесь<a href="http://wiki.openwrt.org/ru/toh/tp-link/tl-mr3420"> вот этой документацией</a>.</p>
<pre></pre>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/openwrt-i-tp-link-tl-mr3220-v1-2/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Видеонаблюдение на основе роутера</title>
		<link>http://devhead.ru/read/videonablyudenie-na-osnove-routera</link>
		<comments>http://devhead.ru/read/videonablyudenie-na-osnove-routera#comments</comments>
		<pubDate>Wed, 30 Nov 2011 10:41:08 +0000</pubDate>
		<dc:creator><![CDATA[ignusius]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[dvr]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[видео наблюдение]]></category>

		<guid isPermaLink="false">http://devhead.ru/?p=1365</guid>
		<description><![CDATA[Мне недавно отдали на растерзание  роутер AsusWL-520GU, который валялся у моего друга без дела. У меня он тоже занимался тунеядством и умиротворённо валялся в углу собирая на себе пыль ;) Недавно у меня появилось время и желание для  экспериментов над  этой несчастной железкой.  Естественно использовать роутер по назначению в моём случае было бы кощунством ибо [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Мне недавно отдали на растерзание  роутер <strong>AsusWL-520GU</strong>, который валялся у моего друга без дела. У меня он тоже занимался тунеядством и умиротворённо валялся в углу собирая на себе пыль ;) Недавно у меня появилось время и желание для  экспериментов над  этой несчастной железкой.  Естественно использовать роутер по назначению в моём случае было бы кощунством ибо зачем мне ещё один роутер и я решил сделать, что-то такое... ну в общем мысль остановилась на создании <strong>DVR</strong>. Железяка оказалась  не очень мощная, но и не совсем дохлая, тем более на неё openwrt встаёт без проблем. Этот роутер хорош, что в нём есть usb, а это уже упрощает многое.  <span id="more-1365"></span> <strong></strong></p>
<p><strong>Характеристики:</strong></p>
<ul>
<li>Broadcom BCM5354KFBG SoC @ 240MHz</li>
<li>16MB Samsung K4S281632I SRAM</li>
<li>4MB MX 29LV320C</li>
</ul>
<h2>Openwrt</h2>
<p><a href="openwrt-sborka-iz-isxodnikov-i-proshivka-dir-320">Собираем openwrt</a>, (ветка Kamikaze) естественно нужно уложится в 4 Мб.</p>
<p><strong>Основные моменты:</strong></p>
<ul>
<li>Добавление  поддержки usb (1.1 и 2.0)  и usb-storage</li>
</ul>
<p><strong> Kernel modules  ---&gt;   USB Support  ---&gt;</strong></p>
<blockquote>
<p>--- kmod-usb-core............................................ Support for USB<br /> &lt;*&gt; kmod-usb-ohci............................... Support for OHCI controllers<br /> &lt;*&gt; kmod-usb-storage..................................... USB Storage support<br /> &lt;*&gt; kmod-usb-uhci............................... Support for UHCI controllers<br /> &lt;*&gt; kmod-usb-video............................. Support for USB video devices<br /> &lt;*&gt; kmod-usb2................................... Support for USB2 controllers</p>
</blockquote>
<ul>
<li>Добавление  поддержки web -камеры по стандарту uvc (в вашем случае может быть и другая, смотрите список возможных)</li>
</ul>
<p><strong> Kernel modules  ---&gt;Video Support  ---&gt;</strong></p>
<blockquote>
<p>&lt;*&gt; kmod-video-core...................................... Video4Linux support<br /> &lt; &gt;   kmod-video-cpia2...................................... CPIA2 video driver (NEW)<br /> &lt; &gt;   kmod-video-gspca-core................ GSPCA webcam core support framework (NEW)<br /> &lt; &gt;   kmod-video-konica.............................. Konica USB webcam support (NEW)<br /> &lt; &gt; kmod-video-ov511................................ OV511 USB webcam support (NEW)<br /> &lt; &gt; kmod-video-ovcamchip................... OV6xxx/OV7xxx Camera Chip support (NEW)<br /> &lt; &gt; kmod-video-pwc................................ Philips USB webcam support (NEW)<br /> &lt; &gt; kmod-video-sn9c102........................... SN9C102 Camera Chip support (NEW) <br /> &lt;*&gt; kmod-video-uvc............................. USB Video Class (UVC) support</p>
</blockquote>
<ul>
<li>Установка motion (для реализации DVR)</li>
</ul>
<p><strong> Multimedia  ---&gt;</strong></p>
<blockquote>
<p>&lt; &gt; motion................................. webcam motion sensing and logging (NEW)</p>
</blockquote>
<ul>
<li>Поддержка файловых систем для флешки</li>
</ul>
<p><strong> Kernel modules  ---&gt;Filesystems  ---&gt; </strong></p>
<blockquote><p>&lt;*&gt; kmod-fs-ext4..................................... EXT4 filesystem support</p></blockquote>
<ul>
<li><a href="../openwrt-sborka-iz-isxodnikov-i-proshivka-dir-320/">Далее по инструкции</a></li>
<li>Если кому лень собирать , то можно воспользоваться моим образом, но при условии, что у вас такое же железо. <a href="../../download/openwrt-brcm47xx-squashfs.trx">Скачать</a></li>
</ul>
<h2>Железо</h2>
<p>Теперь мы знаем как собрать и залить на роутер прошивку .  Первым делом модернизируем некоторые вещи.</p>
<ul>
</ul>
<p>После долгих тестов, я выяснил что проц на роутере сильно греется (при нагрузке от DVR) из-за чего начинает всё жутко тормозить, я предпринял решение приклеить радиатор и это реально помогло.</p>
<ul>
</ul>
<p><a href="../../wp-content/uploads/2011/11/2.jpg"><img class="alignleft size-medium wp-image-1366" src="../../wp-content/uploads/2011/11/2-300x225.jpg" height="225" width="300" /></a></p>
<p>Я бы не советовал использовать питание от usb порта роутера ибо можно его сжечь, если не рассчитать нагрузку, чтобы себя обезопасить и не волноваться, припаиваемся на прямую :)</p>
<ul>
</ul>
<p><a href="../../wp-content/uploads/2011/11/3.jpg"><img class="alignleft size-medium wp-image-1367" src="../../wp-content/uploads/2011/11/3-300x225.jpg" height="225" width="300" /></a></p>
<p><img src="../../download/4.jpg" height="266" width="152" /></p>
<p>Вот так выглядит всё в сборе</p>
<ul>
</ul>
<p><a href="../../wp-content/uploads/2011/11/1.jpg"><img class="alignleft size-medium wp-image-1370" src="../../wp-content/uploads/2011/11/1-225x300.jpg" height="300" width="225" /></a></p>
<h2>Настройка<strong> </strong></h2>
<p><strong>Настройка motion</strong></p>
<p>редактируем /etc/motion.conf</p>
<blockquote><p>vi  /etc/motion.conf</p></blockquote>
<p>Ищем параметры и изменяем</p>
<blockquote><p>setup_mode off  --&gt; setup_mode on</p></blockquote>
<blockquote><p>;on_event_start value  --&gt; on_event_start value</p></blockquote>
<p><strong>on_event_start value</strong> - это параметр который указывает, что запись идёт когда в кадре есть движение.</p>
<p>Запускаем motion, он создаст папку /usr/local/apache2/htdocs/cam1/ и начнёт в неё запись.  Если там есть файлы, то всё ОК.  Удаляем их:</p>
<blockquote><p>rm /usr/local/apache2/htdocs/cam1/*</p></blockquote>
<p><strong>Монтирование flash-карты</strong></p>
<p>Первым делом нужно отформатировать флешку в файловую систему EXT4 (ну или другую, по желанию)</p>
<blockquote><p>mount /dev/sdb1 /usr/local/apache2/htdocs/cam1/</p></blockquote>
<p><strong>Автозагрузка</strong></p>
<p>Теперь последний штрих, добавляем в автоматическую загрузку монтирование флешки и запуск motion</p>
<blockquote><p>vi /etc/rc.local</p></blockquote>
<p>Добавляем следующее:</p>
<blockquote>
<p>mount /dev/sdb1 /usr/local/apache2/htdocs/cam1/</p>
<p>motion &amp;</p>
<p>exit 0</p>
</blockquote>
<h2>Подводные камни</h2>
<p>OpenWRT не поддерживает Wi-Fi моего роутера и это печально, но у кого железо иное, того я могу назвать счастливчиком ;) Ещё есть нюанс что роутер  не сохраняет системное время без питания, так, что ему нужен интернет, чтобы синхронится с ntp-сервером. Вот пример, видно, что время не синхронизировано:</p>
<p><a href="../../wp-content/uploads/2011/11/02-19700101000352-01.jpg"><img class="alignleft size-medium wp-image-1371" src="../../wp-content/uploads/2011/11/02-19700101000352-01-300x225.jpg" height="225" width="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/videonablyudenie-na-osnove-routera/feed</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Openwrt сборка из исходников и прошивка Dir-320 A1</title>
		<link>http://devhead.ru/read/openwrt-sborka-iz-isxodnikov-i-proshivka-dir-320-a1</link>
		<comments>http://devhead.ru/read/openwrt-sborka-iz-isxodnikov-i-proshivka-dir-320-a1#comments</comments>
		<pubDate>Tue, 15 Nov 2011 06:00:11 +0000</pubDate>
		<dc:creator><![CDATA[ignusius]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[DIR-320]]></category>
		<category><![CDATA[DIR-330]]></category>
		<category><![CDATA[embedded linux]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[прошивка]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/openwrt-sborka-iz-isxodnikov-i-proshivka-dir-320/</guid>
		<description><![CDATA[В этой статье собирается различная информация об OpenWRT. Весь нужный набор утилит завязан на Linux.  Ради примера выбран Dir-320 как самый лучший по соотношению цена-производительность-функционал. СпецификацииD-Link Dir-320 A1: CPU : Broadcom BCM5354KFBG Flash : Spansion S29AL032D (4Mbytes) RAM : 32Mbytes SAMSUNG Switch : ? Wi-Fi : BCM4318 Serial : yes USB : yes JTAG : yes Serial pinout [x] : TX [x] : GND [x] : VCC [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>В этой статье собирается различная информация об OpenWRT. Весь нужный набор утилит завязан на Linux.  Ради примера выбран Dir-320 как самый лучший по соотношению цена-производительность-функционал. <span id="more-498"></span></p>
<h3><span class="mw-headline">Спецификации</span><span class="mw-headline">D-Link Dir-320 A1:</span></h3>
<p>CPU : Broadcom BCM5354KFBG</p>
<p>Flash : Spansion S29AL032D (4Mbytes)</p>
<p>RAM : 32Mbytes SAMSUNG</p>
<p>Switch : ? Wi-Fi : BCM4318</p>
<p>Serial : yes</p>
<p>USB : yes</p>
<p>JTAG : yes</p>
<p>Serial pinout [x] : TX [x] : GND [x] : VCC 3.3V [ ] [x] : RX <a id="D-Link_Dir-330" name="D-Link_Dir-330"></a></p>
<h3><span class="mw-headline">Спецификации D-Link Dir-330</span></h3>
<p>CPU : Broadcom BCM5836PKPBG</p>
<p>Flash : Spansion S29GL064A (8Mbytes)</p>
<p>RAM : 2x16Mbytes Switch : 5325e</p>
<p>Wi-Fi : BCM4318</p>
<p>Serial : yes</p>
<p>USB : yes</p>
<p>JTAG : yes</p>
<p>Serial(UART) pinout:[x] : RX[x] : TX[x] : NC[x] : NC[x] : GND[x] : VCC</p>
<p><a id=".D0.A1.D0.B1.D0.BE.D1.80.D0.BA.D0.B0_.D0.B8.D0.B7_.D0.B8.D1.81.D1.85.D0.BE.D0.B4.D0.BD.D0.B8.D0.BA.D0.BE.D0.B2" name=".D0.A1.D0.B1.D0.BE.D1.80.D0.BA.D0.B0_.D0.B8.D0.B7_.D0.B8.D1.81.D1.85.D0.BE.D0.B4.D0.BD.D0.B8.D0.BA.D0.BE.D0.B2"></a></p>
<h2><span class="mw-headline">Сборка из исходников</span></h2>
<p>Собирать будем в UBUNTU для D-Link dir-320. <a id=".D0.97.D0.B0.D0.B1.D0.B8.D1.80.D0.B0.D0.B5.D0.BC_.D0.B8.D1.81.D1.85.D0.BE.D0.B4.D0.BD.D0.B8.D0.BA.D0.B8" name=".D0.97.D0.B0.D0.B1.D0.B8.D1.80.D0.B0.D0.B5.D0.BC_.D0.B8.D1.81.D1.85.D0.BE.D0.B4.D0.BD.D0.B8.D0.BA.D0.B8"></a></p>
<h3><span class="mw-headline">Забираем исходники</span></h3>
<p>Для начала поставим Subversion</p>
<blockquote>
<div># sudo apt-get install subversion</div>
</blockquote>
<p>Вытянем самые свежие исходники, ветка называетя Kamikaze</p>
<blockquote>
<div># svn co svn://svn.openwrt.org/openwrt/trunk/ openwrt &amp;&amp; cd openwrt</div>
</blockquote>
<p>Если нужны стабильные то тянем отсюда</p>
<blockquote>
<div># svn co svn://svn.openwrt.org/openwrt/branches/backfire backfire_dir-320 &amp;&amp; cd backfire_dir-320</div>
</blockquote>
<p><a id=".D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.B0.D0.B2.D0.BB.D0.B8.D0.B2.D0.B0.D0.B5.D0.BC_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B_.D0.BD.D0.B5.D0.BE.D0.B1.D1.85.D0.BE.D0.B4.D0.B8.D0.BC.D1.8B.D0.B5_.D0.B4.D0.BB.D1.8F_.D1.81.D0.B1.D0.BE.D1.80.D0.BA.D0.B8" name=".D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.B0.D0.B2.D0.BB.D0.B8.D0.B2.D0.B0.D0.B5.D0.BC_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B_.D0.BD.D0.B5.D0.BE.D0.B1.D1.85.D0.BE.D0.B4.D0.B8.D0.BC.D1.8B.D0.B5_.D0.B4.D0.BB.D1.8F_.D1.81.D0.B1.D0.BE.D1.80.D0.BA.D0.B8"></a></p>
<h3><span class="mw-headline">Устанавливаем пакеты необходимые для сборки</span></h3>
<p>У меня нехватало вот этого:</p>
<blockquote>
<div># sudo aptitude install g++ flex libncurses5-dev zlib1g-dev patch gettext gawk</div>
</blockquote>
<p>Так же можно проверить чего не хватает, набрав в корне дерева с исходниками вот это:</p>
<blockquote>
<div># make prereq</div>
</blockquote>
<p><a id=".D0.A1.D0.B0.D0.BC.D0.B0_.D1.81.D0.B1.D0.BE.D1.80.D0.BA.D0.B0" name=".D0.A1.D0.B0.D0.BC.D0.B0_.D1.81.D0.B1.D0.BE.D1.80.D0.BA.D0.B0"></a></p>
<h3><span class="mw-headline">Сама сборка</span></h3>
<div>Устанавливаем исходники дополнительных пакетов и делаем возможным их включение в прошивку:</div>
<blockquote>
<div># ./scripts/feeds update -a &amp;&amp; ./scripts/feeds install -a</div>
</blockquote>
<p>Проверяем, установлено ли все необходимое програмное обеспечение для создания прошивки и собираем tools и toolchain, т.к. процессор в роутере MIPS и софт нужен от этой же архитектуры:</p>
<blockquote>
<div># make prereq &amp;&amp; make tools/install &amp;&amp; make toolchain/install</div>
</blockquote>
<div>Создаём конфиг для сборки</div>
<blockquote>
<div># make menuconfig</div>
</blockquote>
<p>Теперь выбрав нужные приложения редактируем конфиг ядра:</p>
<blockquote>
<div># make kernel_menuconfig</div>
</blockquote>
<p>Ручное редактирование конфига  ядра не обязательно. И для первого раза я советую добавить только поддержку русского языка для разных кодировок, например если вы собираетесь монтировать флешку в FAT32 вам потребуется cp866 или cp1251.</p>
<p>Обычно мастерство сборки придет с опытом, мне понадобилось перепрошить точку 3 раза пержде чем я выбрал подходящий набор программ.</p>
<p>После всех настроек запускаем саму сборку:</p>
<blockquote>
<div># make</div>
</blockquote>
<p>Довольно часто бывает, что во время сборки появляется ошибка. В таком случае запускаем make с выводом отладочной информации:</p>
<blockquote><p># make V=99</p></blockquote>
<h2><span class="mw-headline">Прошивка</span></h2>
<p><a id=".D0.A2.D1.83.D0.BF.D0.B0.D1.8F_.D0.BF.D1.80.D0.BE.D1.88.D0.B8.D0.B2.D0.BA.D0.B0" name=".D0.A2.D1.83.D0.BF.D0.B0.D1.8F_.D0.BF.D1.80.D0.BE.D1.88.D0.B8.D0.B2.D0.BA.D0.B0"></a></p>
<h3><span class="mw-headline">Тупая прошивка</span></h3>
<p>Устанавливаем tftp клиент, многие под Линукс используют интерактивный tftp, но мне больше приглянулся atftp. Ставим его:</p>
<blockquote>
<div># sudo apt-get install atftp</div>
</blockquote>
<p>Втыкаем провод, один конец в комп другой в LAN 1 роутера. Настраиваем сеть предварительно отключив Network manager:</p>
<blockquote>
<div># sudo ifconfig eth0:1 192.168.1.2 up</div>
</blockquote>
<p>Пишем указанную строчку ниже в консоли, включаем питание на роутере, считаем до 3-х и жмем энтер.</p>
<blockquote>
<div># atftp --option "mode octet" --option "timeout 60" --verbose --trace -p -l openwrt-brcm47xx-squashfs.trx 192.168.1.1</div>
</blockquote>
<p><a id=".D0.9F.D1.80.D0.BE.D1.88.D0.B8.D0.B2.D0.BA.D0.B0_.D1.81_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_serial_console_.28uart.29" name=".D0.9F.D1.80.D0.BE.D1.88.D0.B8.D0.B2.D0.BA.D0.B0_.D1.81_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_serial_console_.28uart.29"></a></p>
<h3><span class="mw-headline">Прошивка с использование serial console (uart)</span></h3>
<p>Подключаем консоль к компьтеру. В моём случае это был usb-to-com адаптер т.е. /dev/ttyUSB0. Если у вас будут встроенные в компьютер порты то смотрите в сторону /dev/ttyS1 или /dev/ttyS2 Открываем какую-нибудь терминальную софтину - putty, picocom, minicom. Я использовал minicom так:</p>
<blockquote>
<div>$ minicom -l -8 -c on -s</div>
</blockquote>
<div>Настройки:</div>
<div><a href="../../wp-content/uploads/2010/11/Minicom_settings_uart.png"><img class="alignleft size-full wp-image-785" title="Minicom_settings_uart" alt="" src="../../wp-content/uploads/2010/11/Minicom_settings_uart.png" width="584" height="187" /></a></div>
<p>Включаем питание роутера и зажимаем Ctrl-C пока не выпадем в меню CFE. На экране видим приглашение :</p>
<blockquote>
<div>CFE&gt;</div>
</blockquote>
<p>Немного остановимся. Сейчас нужно перейти в консоль и сконфигурировать интерфейс так:</p>
<blockquote><p>ifconfig eth0:2 192.168.0.25</p></blockquote>
<p>Даём комманду, которая поднимает на роутере TFTP сервер на несколько секунд , т.е. после этого он примет от нас по tftp всё что мы ему подсунем.:</p>
<blockquote>
<div>CFE&gt; flash -noheader : flash1.trx</div>
</blockquote>
<p>И сразу же выполняем:</p>
<blockquote>
<div>atftp --option "mode octet" --option "timeout 60" --verbose --trace -p -l openwrt-brcm47xx-squashfs.trx 192.168.0.2</div>
</blockquote>
<p>Сразу говорю, с первого раза можно не успеть.</p>
<p><a id=".D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8" name=".D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8"></a></p>
<h2><span class="mw-headline">Ссылки</span></h2>
<ol>
<li><a class="external text" title="http://www.vpm.net.ua/?p=90" href="http://www.vpm.net.ua/?p=90" rel="nofollow">Вот эта статья воодушевила</a></li>
<li><a class="external text" title="http://www.macfreek.nl/mindmaster/OpenWRT_Network_Configuration" href="http://www.macfreek.nl/mindmaster/OpenWRT_Network_Configuration" rel="nofollow">OpenWRT Network Configuration</a></li>
<li><a class="external text" title="http://www.e-kit.ru/2007/232/index.htm" href="http://www.e-kit.ru/2007/232/index.htm" rel="nofollow">Схема uart 2 com адаптера</a></li>
<li><a class="external text" title="http://www.hardware.zp.ua/mobile/data-cable-max232.html" href="http://www.hardware.zp.ua/mobile/data-cable-max232.html" rel="nofollow">Дата кабель на микросхеме MAX232</a></li>
<li><a class="external text" title="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=12053&amp;highlight=dir330" href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=12053&amp;highlight=dir330" rel="nofollow">jtag pinout</a></li>
<li><a class="external text" title="http://www.dd-wrt.com/wiki/index.php/Dir-330" href="http://www.dd-wrt.com/wiki/index.php/Dir-330" rel="nofollow">Про Dir-330 на dd-wrt.com</a></li>
<li><a class="external text" title="http://patsevanton.blogspot.com/2009/09/dlink-dir-320-com-usb-hdd.html" href="http://patsevanton.blogspot.com/2009/09/dlink-dir-320-com-usb-hdd.html" rel="nofollow">Dlink DIR-320 + Адаптер COM-порта + USB-HDD</a></li>
<li><a class="external text" title="http://www.dd-wrt.com/phpBB2/files/pcbdir_330_431.jpg" href="http://www.dd-wrt.com/phpBB2/files/pcbdir_330_431.jpg" rel="nofollow">JTAG pinout for D-Link DIR-330 JPG</a></li>
<li><a class="external text" title="http://www.tiaowiki.com/w/Universal_JTAG_User_Manual_%28Parallel%29" href="http://www.tiaowiki.com/w/Universal_JTAG_User_Manual_%28Parallel%29" rel="nofollow">Universal JTAG User Manual (Parallel)</a></li>
<li><a class="external text" title="http://www.jtagtest.com/pinouts/ejtag" href="http://www.jtagtest.com/pinouts/ejtag" rel="nofollow">ejtag</a></li>
<li><a class="external text" title="http://www.dd-wrt.com/phpBB2/viewtopic.php?p=377309&amp;sid=fd5ea940cc937b61708babbd63171749" href="http://www.dd-wrt.com/phpBB2/viewtopic.php?p=377309&amp;sid=fd5ea940cc937b61708babbd63171749" rel="nofollow">Железный тюнинг Dir-320</a></li>
<li><a class="external text" title="http://dipcore.com/?p=316" href="http://dipcore.com/?p=316" rel="nofollow">dir-320 UART pinout</a></li>
<li><a class="external text" title="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=28236&amp;highlight=dir330+serial" href="http://www.dd-wrt.com/phpBB2/viewtopic.php?t=28236&amp;highlight=dir330+serial" rel="nofollow">Install DD-WRT on a D-Link DIR-330 router</a></li>
<li><a class="external text" title="http://oldwiki.openwrt.org/OpenWrtDocs%282f%29Hardware%282f%29D%282d%29Link%282f%29DIR%282d%29330.html" href="http://oldwiki.openwrt.org/OpenWrtDocs%282f%29Hardware%282f%29D%282d%29Link%282f%29DIR%282d%29330.html" rel="nofollow">OpenWrtDocs/Hardware/D-Link/DIR-330</a></li>
<li><a class="external text" title="http://www.dd-wrt.com/wiki/index.php/%D0%9F%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0_DIR-320" href="http://www.dd-wrt.com/wiki/index.php/%D0%9F%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0_DIR-320" rel="nofollow">прошивка Dir-320</a></li>
<li><a class="external text" title="http://www.shadowandy.net/wp/wp-content/uploads/dir320_serial.jpg" href="http://www.shadowandy.net/wp/wp-content/uploads/dir320_serial.jpg" rel="nofollow">Dir-320 serial jpg</a></li>
<li><a class="external text" title="http://www.linux-mips.org/wiki/JTAG" href="http://www.linux-mips.org/wiki/JTAG" rel="nofollow">MIPS JTAG</a></li>
<li><a class="external text" title="http://msevm.com/md/769/dlink.htm" href="http://msevm.com/md/769/dlink.htm" rel="nofollow">Восстановление АДСЛ-модемов DLink</a></li>
<li><a class="external text" title="http://wl500g.info/showpost.php?p=175027&amp;postcount=2255" href="http://wl500g.info/showpost.php?p=175027&amp;postcount=2255" rel="nofollow">Прошивка Dir-320 через serial console</a></li>
<li><a class="external text" title="http://oldwiki.openwrt.org/OpenWrtDocs%282f%29Customizing%282f%29Hardware%282f%29Serial_Console.html" href="http://oldwiki.openwrt.org/OpenWrtDocs%282f%29Customizing%282f%29Hardware%282f%29Serial_Console.html" rel="nofollow">Поиск распиновки последовательной консоли</a></li>
<li><a class="external text" title="http://www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_Serial-Cable-Port" href="http://www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_Serial-Cable-Port" rel="nofollow">LaFonera_Hardware_Serial-Cable-Port</a></li>
<li><a class="external free" title="http://klauth.telenet.ru/dl/0004A2A02.html" href="http://klauth.telenet.ru/dl/0004A2A02.html" rel="nofollow">http://klauth.telenet.ru/dl/0004A2A02.html</a></li>
<li><a class="external free" title="http://sites.google.com/site/zigfisher/Home/sinus-1054-dsl" href="http://sites.google.com/site/zigfisher/Home/sinus-1054-dsl" rel="nofollow">http://sites.google.com/site/zigfisher/Home/sinus-1054-dsl</a></li>
<li><a class="external free" title="http://dd-wrt.com/phpBB2/viewtopic.php?t=32983&amp;highlight=dir330" href="http://dd-wrt.com/phpBB2/viewtopic.php?t=32983&amp;highlight=dir330" rel="nofollow">http://dd-wrt.com/phpBB2/viewtopic.php?t=32983&amp;highlight=dir330</a></li>
<li><a class="external free" title="http://www.nslu2-linux.org/wiki/HowTo/AddASerialPort" href="http://www.nslu2-linux.org/wiki/HowTo/AddASerialPort" rel="nofollow">http://www.nslu2-linux.org/wiki/HowTo/AddASerialPort</a></li>
<li><a class="external free" title="http://www.hardware.zp.ua/mobile/data-cable-max232.html" href="http://www.hardware.zp.ua/mobile/data-cable-max232.html" rel="nofollow">http://www.hardware.zp.ua/mobile/data-cable-max232.html</a></li>
<li><a class="external free" title="http://www.e-kit.ru/2007/232/index.htm" href="http://www.e-kit.ru/2007/232/index.htm" rel="nofollow">http://www.e-kit.ru/2007/232/index.htm</a></li>
<li><a class="external free" title="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu/" href="http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu/" rel="nofollow">http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu/</a></li>
<li><a class="external free" title="http://www.xakep.ru/magazine/xa/125/114/1.asp" href="http://www.xakep.ru/magazine/xa/125/114/1.asp" rel="nofollow">http://www.xakep.ru/magazine/xa/125/114/1.asp</a></li>
<li><a class="external text" title="http://bredsaal.dk/transmission-bittorrent-client-on-openwrt" href="http://bredsaal.dk/transmission-bittorrent-client-on-openwrt" rel="nofollow">Transmission bittorrent client on OpenWRT</a></li>
<li><a class="external text" title="http://bredsaal.dk/openwrt-usb-automount-on-boot" href="http://bredsaal.dk/openwrt-usb-automount-on-boot" rel="nofollow">OpenWrt USB automount on boot</a></li>
<li><a class="external free" title="https://dev.openwrt.org/ticket/7740" href="https://dev.openwrt.org/ticket/7740" rel="nofollow">https://dev.openwrt.org/ticket/7740</a></li>
<li><a class="external free" title="http://tinyhack.com/2010/04/04/d-link-dir-300-serial-port-and-sd-mod/" href="http://tinyhack.com/2010/04/04/d-link-dir-300-serial-port-and-sd-mod/" rel="nofollow">http://tinyhack.com/2010/04/04/d-link-dir-300-serial-port-and-sd-mod/</a></li>
<li><a class="external free" title="http://www.prist.ru/info.php/articles/i2c_spi_rs_lecroy_analyze.htm" href="http://www.prist.ru/info.php/articles/i2c_spi_rs_lecroy_analyze.htm" rel="nofollow">http://www.prist.ru/info.php/articles/i2c_spi_rs_lecroy_analyze.htm</a></li>
<li><a class="external free" title="http://www.gaw.ru/html.cgi/txt/interface/spi/index.htm" href="http://www.gaw.ru/html.cgi/txt/interface/spi/index.htm" rel="nofollow">http://www.gaw.ru/html.cgi/txt/interface/spi/index.htm</a></li>
<li><a class="external free" title="http://sites.google.com/site/bifferboard/sd_mmc_howto" href="http://sites.google.com/site/bifferboard/sd_mmc_howto" rel="nofollow">http://sites.google.com/site/bifferboard/sd_mmc_howto</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/openwrt-sborka-iz-isxodnikov-i-proshivka-dir-320-a1/feed</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->