Home News

Toshiba Satellite a100-906

01.09.2018

Приобрел себе Toshiba Satellite a100-906, снес Windows и принялся ставить свой любимый Linux-дистрибутив Gentoo. Стоит заметить, что Ubuntu и Kubunu на этом лэптопе работают без проблем (пришлось только исправить /etc/X11/xorg.conf для поддержки родного разрешения – 1280×800).

Конфигурация Toshiba Satellite a100-906:

# lspci 00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03) 00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (rev 03) 00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02) 00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02) 00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02) 00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02) 00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02) 00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02) 00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02) 00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02) 00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2) 00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02) 00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE (rev 02) 00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02) 01:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce Go 7600] (rev a1) 05:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02) 07:06.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller 07:06.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller 07:06.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) 07:06.3 Class 0805: Texas Instruments PCIxx12 SDA Standard Compliant SD Host Controller 07:08.0 Ethernet controller: Intel Corporation PRO/100 VE Network Connection (rev 02) Настройка /etc/make.conf:

Конфигурацию прописал согласно инструкции по Toshiba Satellite P100 :

# Core Solo/Duo GCC 4.1 #CFLAGS="-O2 -march=prescott -fomit-frame-pointer -pipe" # Core Solo/Duo GCC 4.2 #CFLAGS="-O2 -march=prescott -mtune generic -fomit-frame-pointer -pipe" # Core 2 Solo/Duo GCC 4.2 #CFLAGS="-O2 -march=nocona -mtune generic -fomit-frame-pointer -pipe" # Core 2 Solo/Duo GCC 4.1 CFLAGS="-O2 -march=nocona -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CXXFLAGS="${CFLAGS}" MAKEOPTS="-j3" INPUT_DEVICES="evdev keyboard mouse synaptics" VIDEO_CARDS="nv nvidia vesa" LINGUAS="en" Hibernate и Suspend-to-ram:

Настройку делал согласно статье HOWTO: Software Suspend2 . Со старой версией биос (кажется 2.20) работал и suspend-to-disk, и suspend-to-ram.

С какого то момента перестал работать suspend-to-ram, хотя раньше работал без проблем. Не знаю, что еще можно сделать :(

Проблема крылась в кривом DSDT нового биоса. Решение проблемы я описал в статье Toshiba a100-906, BIOS 5.90 + suspend-2-ram .

На данный момент у меня установлено ядро 2.6.22-gentoo-r2, прошит биос версии 5.90 – работает suspend-2-ram и suspend-2-disk.

А где девайс /dev/ppp?..

Неудобно каждый раз после ребута выполнять команду mknod /dev/ppp c 108 0 . Можно прописать ее в /etc/conf.d/local.start и забыть о проблеме.

Вторым вариантом (предпочтителен) является изменение параметра RC_DEVICE_TARBALL в /etc/conf.d/rc с NO на YES.

К сожалению у меня первый и второй вариант не устроили (второй не дружит с udev версии 114 в моей системе, хотя на десктопе он работает). Поэтому был использован третий вариант (и как оказалось, весьма удобный).

В файле /etc/conf.d/net пишем следующие строки (или правим уже существующие):

preup() { # if device not exist, make it [ ! -e /dev/ppp ] && mknod /dev/ppp c 108 0 # Remember to return 0 on success return 0 } CD-ROM и DMA:

К сожалению CD-ROM на современных лэптопах (с ICH7 на борту – $ lspci | grep -i ide ) не корректно определяется – как PATA устройство, на самом деле таковым не являясь. Скорость работы с приводом оставляет желать лучшего. Стандартный танец с hdparm -d1 /dev/hdc приводит к ошибке. Но решить эту проблему проще – нужно при загрузке подсказать ядру что привод у вас SATA – прописываем в конфиге загрузчика combined_mode=libata – перегружаемся и наслаждаемся.

Наиболее простым решением будет полностью отключить старую подсистему ( ATA/ATAPI/MFM/RLL support ), и воспользоваться новой ( Serial ATA (prod) and Parallel ATA (experimental) drivers ).

Вариант с отключением ATA/ATAPI/MFM/RLL support годится только в том случае, если у вас отсутствуют PATA-устройства.

Bluetooth:

Возникла проблема Bluetooth – пропало устройство, lsusb не видел его. Оказывается, переключатель на корпусе не подключает Bluetooth к USB. Для решения данной проблемы можно воспользоваться кернел-модулем omnibook , а точнее его svn-версией.

# svn co https://svn.sourceforge.net/svnroot/omnibook/omnibook/trunk omnibook-svn # cd omnibook-svn # make # make install # echo "options omnibook ectype=14" > /etc/modules.d/omnibook # modules-update # depmod -a # modprobe omnibook

Все, устройство доступно.

Wi-Fi:

В данный момент использую ядро 2.6.22-gentoo-r1. Драйвера для Intel Corporation PRO/Wireless 3945ABG net-wireless/iwlwifi .

Установка проста – размаскать необходимые пакеты, установить их (при необходимости переконфигурировать ядро в соответствии с просьбой пакета iwlwifi).

Для ядра версии 2.6.21 и более ранних нужно установить патч net-wireless/mac80211 .

Полезные ссылки:

Intel® Wireless WiFi Link 4965AGN и Intel® PRO/Wireless 3945ABG.

Wi-Fi. Linux. Краткий курс.

Wi-Fi. Linux. Краткий курс. Часть 2.

Video и LCD:

В консоли получилось выставить неродное разрешение 1024×768 используя vesafb (работает так же и vesafb-tng). Но при переключении из “иксов” в консоль изображение растягивается на весь монитор, и выглядит не очень приятно. Установить родное разрешение не удалось вообще. Попытка использовать nvidiafb (video=nvidiafb без дополнительных аргументов) приводила к установке правильного разрешения (во всяком случае отображаемые точки выглядели не искаженными), но на экране был набор мусора. Попытка передать ядру еще и аргументы, приводило к установке неродного разрешения, прочесть что либо было весьма проблематично.

Похоже, что установить разрешение 1280×800 в консоли не получится (vbetest из пакета sys-libs/lrmi):

# vbetest VBE Version 3.0 NVIDIA [256] 640x400 (256 color palette) [257] 640x480 (256 color palette) [259] 800x600 (256 color palette) [261] 1024x768 (256 color palette) [270] 320x200 (5:6:5) [271] 320x200 (8:8:8) [273] 640x480 (5:6:5) [274] 640x480 (8:8:8) [276] 800x600 (5:6:5) [277] 800x600 (8:8:8) [279] 1024x768 (5:6:5) [280] 1024x768 (8:8:8) [304] 320x200 (256 color palette) [305] 320x400 (256 color palette) [306] 320x400 (5:6:5) [307] 320x400 (8:8:8) [308] 320x240 (256 color palette) [309] 320x240 (5:6:5) [310] 320x240 (8:8:8) [317] 640x400 (5:6:5) [318] 640x400 (8:8:8)

(не забываем к значению в квадратных скобочках прибавить 512 – это и будет требуемое значение для кернела для параметра vga)

Яркость подсветки LCD можно регулировать записью нужного значения в

# echo 10 > /proc/acpi/video/GFX0/LCD/brightness

В ядре 2.6.21 яркость регулируется с помощью Fn комбинаций на клавиатуре. В Мортоновском ядре 2.6.22 яркость не регулируется.

Modem:

Настройка модема оказалась весьма простой. В кернеле включаем поддержку модема:

Device Drivers ---> Sound ---> Advanced Linux Sound Architecture ---> PCI devices ---> Intel/SiS/nVidia/AMD MC97 Modem

Устанавливаем пакет slmodem и прописываем демон в стартап, в секцию default:

# USE="-usb" emerge -av slmodem # rc-update add slmodem default

Хороший вариант прописать флаг -use в /etc/portage/package.use дабы при обновлении мира slmodem не компилялся с поддержкой usb.

Правим конфиг /etc/conf.d/slmodem – указываем нужную страну.

Добавляем пользователя в группу dialout:

# gpasswd -a USER_ID dialout

На данный момент в подсистеме ALSA присутствует ошибка – попытка набрать номер тут же заканчивается неудачей – NO CARRIER . Переписка с разработчиком slmodem прояснила, что проблема кроется в ALSA. Разработчики которой, извещены о данной ошибке. Прошло уже больше месяца, выходят новые версии ALSA, а модем не работает.

Последняя подходящая версия ядра – 2.6.19. Более поздние не позволяют работать с модемом. Можно, наверное, попробовать установить на свежее ядро старую версию ALSA. Увы, установка alsa-driver-1.0.13 на ядро gentoo-sources-2.6.22 успехом не увенчалась – не компилируются.

Card reader: Device Drivers ---> MMC/SD Card support ---> MMC support MMC block device driver TI Flash Media MMC/SD Interface support

Добавляем в /etc/fstab строчку:

/dev/mmcblk0 /mnt/mmcsd vfat noauto,users,rw,iocharset=utf8,codepage=866 0 0 Fingerprint (сканер отпечатков пальцев):

Одним работающим устройством в системе стало больше. На bugs.gentoo.org берем ебилд thinkfinger, копируем его в локальное дерево портежей – /usr/local/portage/sys-auth/thinkfinger, создаем дигест и емержим пакет:

# cd /usr/local/portage/sys-auth/thinkfinger # ebuild thinkfinger-0.2.2-r1.ebuild digest # emerge thinkfinger

Сканируем свой отпечаток пальца и настраиваем pam:

# tf-tool --acquire # tf-tool --verify # mv /tmp/test.bir /etc/pam_thinkfinger/DESIRED_USER_NAME.bir

В файле /etc/pam.d/system-auth прописываем следующие строки (те, что выделены жирным шрифтом):

auth required pam_env.so auth sufficient pam_unix.so likeauth nullok auth sufficient pam_thinkfinger.so auth required pam_deny.so
rss