предполагается что Gentoo установлен и есть доступ к системе
Так как места всего 4Gb,то будем компилить ядро на другом компьютере со схожей архитектурой.
mkdir -p ./eeePCcd eeePCwget http://mirror.corbina.net/pub/Linux/gentoo/releases/x86/current-stage3/stage3-i686-20110125.tar.bz2tar xvjpf stage3-*.tar.bz2emerge -avt mirrorselectmirrorselect -i -o >> ./etc/make.confmirrorselect -i -r -o >> ./etc/make.confmount -t proc none ./procmount -o bind /dev ./devchroot ./ /bin/bashenv-updatesource /etc/profileexport PS1="(chroot) $PS1"passwd root
Как альтернатива, можно примонтировать флешку 8Gb и более)))), где $usb ваш девайс
Я перенес туда portage и src
emerge -avt ntfs3gmount -t ntfs-3g -o 'sync rw no_subtree_check no_root_squash' /dev/$usb /mnt/usbmv /usr/portage /mnt/usb/mv /usr/src /mnt/usb/ls -s /mnt/usb/portage /usr/portagels -s /mnt/usb/src /usr/src
Далее, не зависимо от выбранного варианта, пойдет одинаковая конфигурация
Настраиваем make.conf для нашего eeePC
nano /etc/make.conf
CFLAGS="-O3 -march=pentium-m -pipe -fomit-frame-pointer -s"CXXFLAGS="${CFLAGS}"CHOST="i686-pc-linux-gnu"ACCEPT_KEYWORDS="~x86"USE="-kde -gnome -java -qt -qt3 -qt4 -ipv6 -doc -berkdb -readline -selinuxX nptl nptlonly unicode gtk2 gtk jpeg png gif mp3 ogg -dvdrw -dvdr sse sse2 opengl syslog vim-syntax truetype type1 pdf exif sambafbcon netboot acpi laptop usb dhcp madwifi sslbash-completion libnotify spell xhtml dbus libxml2 alsa curl ffmpeg mad sndfile vorbis wavpack sse sse2 -ht mmx threads xml idlea52 aac encode mmx network oss sdl theora xvid cairo flac wma musepack win32codecsdjvu tiff flac hal"VIDEO_CARDS="i810 intel vesa vgs"ALSA_CARDS="hda-intel intel8x0"# n CPUMAKEOPTS="-j9"PORTDIR_OVERLAY="/usr/portage"LINGUAS="ru"FEATURES="-sandbox -unmerge-orphans"
Добавляю DNS д.Гугла
echo 'nameserver 8.8.8.8' >> /etc/resolv.conf
Выкачиваем порты
emerge --sync
Конфигурируем ядро
cp /usr/share/zoneinfo/Asia/Yekaterinburg /etc/localtimeUSE="-doc symlink" emerge gentoo-sourcescd /usr/src/linux
make menuconfig
Отмечаем все что связано с сетью, фс, и драйверами
Проверяем на наличие вот этих строк
nano ./.config
CONFIG_MODULES=yCONFIG_MODULE_UNLOAD=yCONFIG_NETDEVICES=yCONFIG_WIRELESS_EXT=yCONFIG_WLAN_80211=yCONFIG_SYSCTL=yCONFIG_CRYPTO=yCONFIG_MAC80211=yCONFIG_ATH5K=yCONFIG_CFG80211=yCONFIG_CRYPTO_HMAC=yCONFIG_CRYPTO_AES=yCONFIG_BRIDGE=y
Дополнительная проверка, у меня все было нормально
В nano ./drivers/net/wireless/ath/ath5k/base.c в этот кусок кода
hw->wiphy->interface_modes =BIT(NL80211_IFTYPE_STATION) |BIT(NL80211_IFTYPE_ADHOC) |BIT(NL80211_IFTYPE_MESH_POINT);
добавив стоку BIT(NL80211_IFTYPE_AP) |, что бы получилось как показано ниже:
hw->wiphy->interface_modes =BIT(NL80211_IFTYPE_STATION) |BIT(NL80211_IFTYPE_ADHOC) |BIT(NL80211_IFTYPE_AP) |BIT(NL80211_IFTYPE_MESH_POINT);
Обязательная процедура, иначе драйвер не с компилируются, если ставим из исходников
nano /usr/src/linux/.configCONFIG_CFG80211=mmake menuconfigexitmake && make modules_installcp /usr/src/linux/arch/x86/boot/bzImage /boot/kernel-2.6.37-gentoo
За место kernel-2.6.37-gentoo можете выбрать произвольное имя
Компилируем самостоятельно самые свежие драйвера
Ниже будет пример как выкачать из портов, что мне помогло я уже и не знаю
Делал один раз пока, повторить нет возможности, т.к. сносить ради эксперимента лень...
Сперва выкачиваем и компилим Wireless driver
cd /usr/srcwget http://www.orbit-lab.org/kernel/compat-wireless-2.6-stable/v2.6.37/compat-wireless-2.6.37-rc6-3.tar.bz2tar xvjpf compat-wireless-2.6.37-rc6-3.tar.bz2cd /usr/src/compat-wireless-2.6.37-rc6-3makemake installmake unload
Я закомментировал эти строчки так как не помню помогли они или нет
Эти строчки я использовал когда ставил из портов
Потом я ставил и без них, поочередно включая/отключаю эти строки с перемешкой ручной компиляцией
Так что попробуйте сперва без этого пункта
echo "net-wireless/rtl8180" >> /usr/portage/package.keywords
echo "net-wireless/rt2x00 rt2500" >> /usr/portage/package.use
Ставим из портов
Основные
Программная реализация AP
emerge -avt net-wireless/hostapd
Драйвер и утилиты madwifi
emerge -avt net-wireless/madwifi-ng net-wireless/madwifi-ng-tools
Необходимы пакеты: DHCP и DNS (DNS в принципе не нужен, но я его накатил, пусть будет)
emerge -avt dhcp bind
Файрфол
emerge -avt net-firewall/iptables
Если будет раздовать и по вайфаю и по лану
emerge -avt net-misc/bridge-utils
Второстепенные (вообще нужны они или нет...но я поставил)
emerge -avt sys-apps/baselayoutemerge -avt dev-libs/opensslemerge -avt net-dialup/freeradiusemerge -avt net-wireless/wireless-toolsemerge -avt net-dns/dnsmasqemerge -avt hotplugemerge -avt pciutils
Настраиваем net
ln -s /etc/init.d/net.lo /etc/init.d/net.wlan0rc-update add net.wlan0 defaultnano /etc/conf.d/netmodules_wlan0=( "!wpa_supplicant !iwconfig" )config_wlan0=( "10.0.0.1 netmask 255.255.255.0" )essid_wlan0="AAArbuzov"mode_wlan0="master"channel_wlan0="7"routes_eth0="224.0.0.0/4"
Последняя строчка нам пригодится для мультикаста
Настраиваем простой файрвол
iptables -Fiptables -t nat -Fiptables -A INPUT -i eth0 -d 224.0.0.0/240.0.0.0 -j ACCEPTiptables -A INPUT -i wlan0 -p tcp --dport 4022 -j ACCEPTiptables -A FORWARD -i wlan0 -s 10.0.0.0/255.255.255.0 -j ACCEPTiptables -A FORWARD -i eth0 -d 10.0.0.0/255.255.255.0 -j ACCEPTiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Вкл.форвард и сохраняем
echo 1 > /proc/sys/net/ipv4/ip_forward/etc/init.d/iptables saverc-update add iptables default
Включаем форвардинг пакетов
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confecho "net.ipv4.conf.default.rp_filter = 1" >> /etc/sysctl.conf
Настраиваем wpa_supplicant
nano /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicantctrl_interface_group=0ap_scan=1network={ssid="AAArbuzov"proto=RSNkey_mgmt=WPA-PSKpairwise=CCMP TKIPgroup=CCMP TKIPwpa_psk="secretpassword"}
Настраиваем DHCP сервер
cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
nano /etc/dhcp/dhcpd.conf
ddns-update-style none;authoritative;subnet 10.0.0.0 netmask 255.255.255.0 {range 10.0.0.100 10.0.0.250;option domain-name-servers 10.0.0.1;option routers 10.0.0.1;option broadcast-address 10.0.0.255;default-lease-time 10000;max-lease-time 20000;}
Добавляем в автозагрузку
rc-update add dhcpd default
Указываем интерфейс для DHCP сервера и стартуем
nano /etc/conf.d/dhcpd
DHCPD_IFACE="wlan0"
/etc/init.d/dhcpd start
Приступаем к настройки Hostapd
cp /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.backup
nano /etc/hostapd/hostapd.conf
interface=wlan0driver=nl80211logger_syslog=-1logger_syslog_level=2logger_stdout=-1logger_stdout_level=2dump_file=/tmp/hostapd.dumpctrl_interface=/var/run/hostapdctrl_interface_group=0ssid=AAArbuzovcountry_code=RUhw_mode=gchannel=7macaddr_acl=0auth_algs=3wpa=2wpa_passphrase=secretpasswordwpa_key_mgmt=WPA-PSKwpa_pairwise=CCMP TKIP
Этих настроек мне хватило
Далее все понятно
/etc/init.d/net.wlan0 restartrc-update add hostapd default
Такой командой можно подебажить
hostapd -dd /etc/hostapd/hostapd.conf
Запускается так, после перезагрузки поднимется автоматически
hostapd -B /etc/hostapd/hostapd.conf
Настраиваем DNSmasq
cp /etc/dnsmasq.conf /etc/dnsmasq.conf.backupecho "interface=wlan0" > /etc/dnsmasq.confrc-update add dnsmasq default/etc/init.d/dnsmasq start
Дальше настраиваем программу для проброса, так сказать, мультикаста в локальную сеть
Так как igmpproxy мне не подошел, то я использовал udpxy
Я не нашел в портах, поэтому лил с оф.сайта http://sourceforge.net/projects/udpxy/
wget http://downloads.sourceforge.net/project/udpxy/udpxy/Chipmunk-1.0/udpxy.1.0-Chipmunk-19.tgztar -xzvf udpxy.1.0-Chipmunk-19.tgzmakemake installnano /etc/init.d/udpxyudpxy -a wlan0 -p 4022 -m eth0chmod 755 /etc/init.d/udpxyupdate-rc add udpxy default
После установки пакета udpxy можно проверить работу услуги IPTV, записав небольшой медиа-файл.
На пример, если в списке каналов присутствует строка вида udp://@200.0.0.200:1234, то работу IPTV можно проверить так:
udpxrec -M 10Mb -T -v -c 200.0.0.200:1234 /tmp/test.mpg
При этом будет создан файл /tmp/test.mpg размером 10 мегабайт, содержащий небольшой фрагмент телепередачи, который можно просмотреть любым медиа-проигрывателем.
Запускаем наш udpxy
udpxy -a wlan0 -p 4022 -m eth0
Останется только немного изменить список каналов, предоставляемым вашим провайдером.
На пример, строку вида udp://@200.0.0.200:1234 надо заменить на http://192.168.0.1:4022/udp/200.0.0.200:1234
Произвести сканирование на клиенте можно командой
iwlist scan|grep ESSID
З.Ы: Этот HowTo, если его таковым можно назвать, делал из разных источников. И что истинно оказалось нужным остается только гадать. Но это полный список того как я издевался над своим eeePC. Так что жду вопросов/поправок/дополнений...
Комментариев нет:
Отправить комментарий