См. также старую версию этой странички.
Вот раньше, бывало, приходилось извращаться по-страшному, применяя к ядру неимоверное количество патчей и компилируя всякие-там модули ядра.
Теперь – другие времена: всё оборудование на моём стареньком домашнем компьютере работает без всяких патчей.
Только одна неприятность: я вынужден был запретить (с помощью dselect hold
) upgrade X-сервера, т.к. старый драйвер для моей (тоже старой) двухголовой видеокарты (Matrox Parhelia P650) несовместим с новым X-сервером.
Для нормальной работы беспроводной bluetooth-гарнитуры (headset) очень важно выбрать правильную bluetooth-антенну.
Проверено: для моего SCO-наушника (т.е. моно и 8000Гц) без проблем и без всяких патчей работает супердешёвая ($1.25 на ebay, доставка бесплатно) bluetooth-антенна:
Скачиваем СТАНДАРТНОЕ ядро (для более новых и/или нестандартных ядер патч, возможно, не будет работать):
cd /usr/src/
lftp -e "get linux-2.6.30.tar.bz2 ; quit" ftp.kernel.org:/pub/linux/kernel/v2.6/
tar xjf linux-2.6.30.tar.bz2
ln -sf linux-2.6.30 linux
cd /usr/src/linux
Сохраняем мою конфигурацию ядра (предварительно распаковав с помощью гунзип
) в файл /usr/src/linux/.config
Ну всё, теперь можно компилировать ядро командами
make prepare && make menuconfig && make-kpkg --rootcmd=fakeroot kernel_headers kernel_image modules_image
(Перед компиляцией откроется меню, где вы должны изменить конфигурацию ядра в соответствии с запросами вашего компьютера.)
По окончании процесса в /usr/src появляются два (или три) новых deb-файла, которые надо установить с помощью dpkg -i
Примечание: на работе, где у меня стоит супер-пупер навороченный Змей-Горыныч о восьми головах, я перед компиляцией ядра дополнительно даю команду export CONCURRENCY_LEVEL=8
, которая указывает программе make-kpkg
, что можно одновременно запускать до восьми компилляционных процессов.
Примечание: После апрейда lenny (дело было где-то между сентябрём 2008 и февралём 2009) мой bluetooth-наушник вдруг перестал работать. Долго не мог понять, в чём
дело. Оказалось, надо было просто добавить пользователя (меня то есть) в группу netdev
командой adduser shalaev netdev
hcitool scan
, которая выдаёт нам адрес наушника (что-то вроде 00:11:22:33:44:55
). Прописываем этот адрес в файл ~/.asoundrc
и
запускаем из-под обычного пользователя:
bluetooth-applet &
Примечание: новая версия bluetooth-applet
может сама сканировать радиоэфир и обнаружить наушник. Ей только надо дать пин-код (в моём случае – 1234). Таким образом,
простому человеку уже необязательно знать о существовании hcitool
.
Далее, тестируем подключение командой
aplay -Dplug:headset file.wav
где file.wav
какой-нибудь звуковой файл.
Если все предыдущие процедуры прошли удачно, то эта команда подсоединит наушник и сыграет в него файл.
Примечание: иногда следует попробовать aplay -D headset file.wav
вместо aplay -Dplug:headset
file.wav
. Кроме того, при несовпадении частоты file.wav
(напр., 40000Гц – высокое качество) с частотой наушника (низкое качество, 8000Гц) возможны искажения звука до
неузнаваемости, но телефонным разговорам по twinkle это не вредит.
Всё, настройка закончена. Можно запускать twinkle (звонить родным и знакомым).
aptitude install ia32-libs lib32gcc1 lib32ncurses5 libc6-i386 util-linux devscripts kernel-package
важно, чтобы поддержка reiserfs и reiserfs4 была встроена в ядро:
export CONCURRENCY_LEVEL=8
mkdir -p ~/tmp/kernel
cd ~/tmp/kernel
lftp -e "get linux-2.6.39.tar.bz2 ; quit" ftp.kernel.org:/pub/linux/kernel/v2.6/
wget -O reiser4-for-2.6.39-1.patch.gz "http://sourceforge.net/projects/reiser4/files/reiser4-for-linux-2.6/reiser4-for-2.6.39-1.patch.gz/download"
gpg --verify linux-2.6.39.tar.bz2.sign linux-2.6.39.tar.bz2
apt-get source apparmor
rm -r linux-2.6.39 linux *.deb
tar xjf linux-2.6.39.tar.bz2
ln -sf linux-2.6.39 linux
cd linux
for i in ../apparmor-2.7.102/kernel-patches/2.6.39/*.patch ; do cat $i | patch -p1 ; done
zcat ../reiser4-for-2.6.39.patch.gz | patch -p1
linux32 make oldconfig && linux32 make menuconfig && \
make-kpkg clean --cross-compile - --arch=i386 && \
time (linux32 make-kpkg --append-to-version a --cross-compile - --arch=i386 --rootcmd=fakeroot clean && \
linux32 make-kpkg --append-to-version a --cross-compile - --arch=i386 --rootcmd=fakeroot kernel_headers \
--initrd kernel_image kernel_headers modules_image \
&& make clean )
← выполнение последней команды длится 80 минут:
real 7m35.171s
user 29m54.110s
sys 7m40.200s
export LANG=C
Затем открываем новую bash-сессию командой
fakeroot deb-reversion -k bash ../linux-image-*64.deb
В этой новой сессии выполняем команды
sed "s/Architecture: amd64/Architecture: i386/" DEBIAN/control > tmp.txt
mv tmp.txt DEBIAN/control
exit
Аналогично
fakeroot deb-reversion -k bash ../linux-headers-*64.deb
sed "s/Architecture: amd64/Architecture: i386/" DEBIAN/control > tmp.txt
mv tmp.txt DEBIAN/control
exit
rm ../*.deb
mv *.deb ..
cd ..
mkdir tmp
for fName in linux-{image,headers}-*_amd64.deb ; do
dpkg-deb -x $fName tmp
dpkg-deb --control $fName tmp/DEBIAN
sed "s/amd64/i386/g" tmp/DEBIAN/control > tmp.txt
mv tmp.txt tmp/DEBIAN/control
dpkg -b tmp $(basename $fName amd64.deb)i386.deb
rm -r tmp/*
done
rm linux-{image,headers}-*_amd64.deb