Пару месяцев назад приобрёл себе новый нетбук. Дефолтный SLED меня не порадовал своей тормознутостью, захотелось чего-нибудь быстрого и экзотичного. И вот на welinux наткнулся на заметку про Tiny Core. Понравилось, поставил, столнулся с проблемой неработающего Wifi. Начал копать и откопал.
Для начала нужно определить название Wifi чипа.
Для этого используем lspci. В Tiny Core по умолчанию этой команды нет, необходимо установить пакет pci-utils.
Анализируем вывод и находим такую строчку:
08:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)
Из неё делаем вывод, что чип у нас broadcom bcm4312.
Далее идем на linuxwireless.org и читаем мануал.
Пишут там следующее
lspci -vnn | grep 14e4
08:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g [14e4:4315] (rev 01)
Отсюда можно узнать точную модель. В данном случае "4315".
На сайте есть таблица, по которой можно понять поддерживается ли ваш чип и какой версией ядра.
Напротив моего чипа в таблице было следующее:
supported 2.6.32 and later
А ядро по умолчанию в Tiny Core 2.6.29. "Надо собрать своё" - догадался Штирлиц.
Будем собирать. Для сборки нам понадобится, как минимум, gcc и make. Их надо поставить через пакетный менеджер.
Качаем с kernel.org текущее стабильное ядро.
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.2.tar.bz2
tar xf linux-2.6.33.2.tar.bz2
cd linux-2.6.33.2
Качаем стандартный для Tiny Core конфиг ядра тут. (Main - Downloads - Current Release - src), кладем в папку с исходниками ядра и переименовываем в ".config"
wget http://distro.ibiblio.org/pub/linux/distributions/tinycorelinux/2.x/release/src/config-2.6.29.1-tinycore
mv config-2.6.29.1-tinycore .config
Далее включаем конфигуратор, правим, если что нужно править(я ничего не трогал), выходим, перезаписываем .config и приступаем к сборке.
make menuconfig
make
make bzImage
make modules
make INSTALL_MOD_PATH=./mod_dir modules_install
Собранные модули нужно добавить в initrd следующим образом(инструкция[eng]:
mkdir extract
cp /mnt/sda1/boot/tinycore.gz ./extract
cd extract
zcat tinycore.gz | sudo cpio -i -H newc -d
rm -rf lib/modules/2.6.29.1-tinycore
cp -r ../mod_dir/lib/modules/2.6.33.2-tinycore ./
cd ..
sudo depmod -b extract 2.6.29.1-tinycore
sudo ldconfig -r extract
find extract| sudo cpio -o -H newc | gzip -2 > ../tinycore.gz
advdef -z4 tinycore.gz
Всё собрано, осталось перенести в нужное место и подготовить загрузчик.
cp tinycore.gz /mnt/sda1/boot/tinycore2.gz
cp arch/x86/boot/bzImage /mnt/sda1/boot/bzImage2
Далее открываем /mnt/sda1/boot/grub/menu.lst любым редактором и добавляем туда.
title tinycore2
kernel /boot/bzImage_tr quiet
initrd /boot/tinycore2.gz
Сохраняем, перезагружаемся.
После перезагрузки набираем iwconfig.
Должен появиться наш интерфейс.
Но и это еще не всё!
Еще нам нужна прошивка. Cтавим из репозитория b43-fwcutter. А потом делаем так(тоже с linuxwireless)
wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
tar xjf broadcom-wl-4.150.10.5.tar.bz2
cd broadcom-wl-4.150.10.5/driver
sudo b43-fwcutter wl_apsta_mimo.o
sudo mkdir /lib/firmware
sudo cp -r b43 /lib/firmware/
Ну и перезагружаем модуль:
sudo rmmod b43
sudo modprobe b43
Далее "sudo wicd-start" ну и wicd-curses, например. Где и видим-таки наши долгожданные сети.
Проверил, работает, не ломается при переходе в suspend и обратно. В общем всё супер.
В качестве бонуса после пересборки ядра заработала прокрутка на тачпаде, с которой достаточно долго ковырялся до этого.
понедельник, 26 апреля 2010 г.
Настройка Wifi на нетбуке HP Mini 501 под Tiny Core Linux
Подписаться на:
Комментарии к сообщению (Atom)
4 комментария:
Открытый драйвер у тебя не ругался по поводу невозможности активировать DMA? У меня в Archlinuх'e он прямо в логах предложил активировать в ядре B43_FORCE_PIO_MODE и пересобрать ядро. Мне показалось проще собрать проприетарный драйвер из AUR'а.
Сколько времени он у тебя собирал новое ядро?
А где он должен был ругаться? В dmesg такого не видел.
Конечно проще, но в Tiny Core нет AUR'a. :-)
Точно время не засекал, примерно от 40 минут до часа.
mv config-2.6.29.1-tinycore .config
а зачем делать после этого make menuconfig, когда есть old?
Отправить комментарий