Первая часть из цикла, как я настраивал сервер
Ты помнишь как все начиналось(с)
Это часть руководства для общественного пользования, много публицистики.
Для тех, кому надо решение, сразу по ссылке
По счастливому стечению обстоятельств, досталось мне в пользование интересное устройство Lenovo Q190. Неттоп с селероном на борту, 2мя гигами и wifi модулем, да еще и очень компактного размера, чуть больше чем мой домашний роутер.
Агрегат покупался сразу из расчета, что он станет моим домашним роутером, т.к. имеет wi-fi модуль, а самое главное его назначение — это работа в качестве vpn-сервера для резервного, а иногда и основного Интрнет канала для офиса.
Настройка началась с установки Ubuntu 12.04, т.к. это линукс, и к тому же у меня на ноутбуке тоже стоит такая же версия ОС, выбрал я ее по соображениям LTS, я консервативный IT’шник. Как установить ubuntu не буду рассказывать, проще может быть только утренний поход в туалет.. Хотя нет, ubuntu поставить проще =)
После установки ждал неприятный сюрприз, wi-fi модуль не желал определяться. И так и сяк — никак. Пришлось вскрыть коробку, чтобы определить что же за плата стоит в неттопе
Мне повезло в сервере стояла wi-fi модуль который был произведен Realtek, модуль этот имеет маркировку RTL8188ee. Гугление почти сразу дало результат, что да, в ubuntu оно не работает без дополнительных телодвижений, но в версии ядра linux выше 3.10 проблема устранена. А что нам стоит поставить новое ядро? Взял и поставил иии.. И ничего, не работает. Как так? Читаем дальше.
Ааа! Надо драйвер поставить вот отсюда, скачал для версии RTL8188ce, там сборка для нескольких версий wi-fi модулей в том числе и для ee. Попробовал сделать make, make install, но лезет ошибка. Не создается драйвер.
Внимательно почитав описание драйвера понял, что надо бы и впредь сначала читать, а только потом делать. Драйвер подходит только для ядра, версия которого ниже 3.10. Ну как смогли поставить ядро так и удалим его, дабы первую версию (3.8) не успел удалить.
Удалил лишние ядра, к тому моменту их наплодилось уже порядка 4х, я тестировал, мне можно. Запускаю сборку драйвера и снова ошибка
$ make install make -C /lib/modules/3.11.6-031106-generic/build M=/home/ildar-server/test/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013 modules make[1]: Вход в каталог `/usr/src/linux-headers-3.11.6-031106-generic' CC [M] /home/ildar-server/test/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.o In file included from /home/ildar-server/test/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:39:0: /home/ildar-server/test/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/pci.h:247:15: ошибка: expected «=», «,», «;», «asm» or «__attribute__» before «rtl_pci_probe» /home/ildar-server/test/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c: В функции «rtl_action_proc»: /home/ildar-server/test/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:885:32: ошибка: «struct ieee80211_conf» не содержит элемента с именем «channel» /home/ildar-server/test/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:886:32: ошибка: «struct ieee80211_conf» не содержит элемента с именем «channel» /home/ildar-server/test/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c: В функции «rtl_send_smps_action»: /home/ildar-server/test/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.c:1451:24: ошибка: «struct ieee80211_conf» не содержит элемента с именем «channel» make[2]: *** [/home/ildar-server/test/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013/base.o] Ошибка 1 make[1]: *** [_module_/home/ildar-server/test/rtl_92ce_92se_92de_8723ae_88ee_linux_mac80211_0012.0207.2013] Ошибка 2 make[1]: Выход из каталога `/usr/src/linux-headers-3.11.6-031106-generic' make: *** [all] Ошибка 2
Не силен я в чтении логов, поэтому гуглить.
И вновь продолжается бой! Та-да-да-да
К сожалению и в нерусских языках я тоже слабоват, переводчик мне помог в чтении зарубежных форумов, где проблема имеет достаточно широкое освещение. Вот там я и понял, что кажись дело труба, даже уже намеревался поменять модуль на любой другой, который сам заведется, благо сам модуль установлен по аналогии с ноутбучным, в pci-e слот. Но потом попалась мне ветка на форуме, а именн 5й пост в этой ветке, где предложили решение.
В файл pci.h, который лежит в корне распакованного архива с драйверами, нужно добавить 4 строки
#ifndef __devinit #define __devinit #define __devinitdata #endif
Затем надо докачать несколько пакетов и запустить установку
sudo apt-get install gcc build-essential # нужно перейти в директорию где лежат файлы драйвера # и выполнить все как написано cd /dir_driver sudo make clean sudo make sudo make install
После этого я перезагрузился для верности, и wi-fi определился в NetworkManager’e. Моему счастью не было предела
В следующей части расскажу как я настраивал сеть и VPN-соединение