Toshiba Satellite a100-906

Приобрел себе 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

78 comments

  • Denis

    Спасибо огромное за эту статью!
    Уже два раза выручала меня!

    Только что настроил сканер отпечатков пальцев. Весёлая штука, наиграться не могу. Тут надо ещё попривыкнуть к ней.

    Скажи, а как-то можно этот сканер сейчас практически использовать?
    Как по нему может осуществляться идентификация?

  • 2Denis:
    Я сканер использую для логина в систему.

  • Denis

    Ух, круто! А расскажи, как ты подвязал эту систему к логину системы?

  • 2Denis:
    В последнем параграфе данной статьи все написано.

  • Denis

    Сорри, не понял.. 🙂 В последнем параграфе, это про то как “запечатлеть” и проверить свой отпечаток пальцев?
    А как к логину эту софтину прикручивать, не совсем понятно..?

  • Может мы читаем разные статьи, но я вижу такие строки:

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

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

  • Denis

    Ну да это я всё выполнил. В сообщении #51 я написал, что играюсь уже с ней 🙂 т.е. это я уже всё проделал.

    —————————
    # tf-tool –verify-user myuser

    ThinkFinger 0.3 (http://thinkfinger.sourceforge.net/)
    Copyright (C) 2006, 2007 Timo Hoenig

    Initializing… done.
    Please swipe your finger (successful swipes 1/1, failed swipes: 0)… done.
    Result: Fingerprint does match.
    ————————–

    а вот как эту штуку теперь к логину в систему прикручить не понятно…

  • Denis

    Кстати, а что такое PAM? 🙂 с этого надо наверное начинать.
    Я думал, что это и есть создание образа отпечатков пальцев. Пытаюсь инфу найти по этому ПАМу. На http://gentoo-wiki.com что-то нет упоминаний.

  • Denis

    А.. прочёл. Кое что понял. Но всё-равно заставить авторизоваться не смог.

    Насколько я понял эта строка::
    auth sufficient pam_thinkfinger.so
    как раз и укажет, что возможно теперь авторизоваться через сканер отпечатков пальцев.

    А как должен сам процесс авторизации выглядеть?
    Я ввожу логин, веду пальцем и ничего не происходит 🙂
    Я кстати добавил строку:
    auth sufficient pam_thinkfinger.so
    в файл /etc/pam.d/su, но авторизацию su тоже не получается сделать. Как должен выглядеть сам процесс авторизации через этот сканер?

  • Denis

    А.. прочёл. Кое что понял. Но всё-равно заставить авторизоваться не смог.

    Насколько я понял эта строка::
    auth sufficient pam_thinkfinger.so
    как раз и укажет, что возможно теперь авторизоваться через сканер отпечатков пальцев.

    А как должен сам процесс авторизации выглядеть?
    Я ввожу логин, веду пальцем и ничего не происходит 🙂
    Я кстати добавил строку:
    auth sufficient pam_thinkfinger.so
    в файл /etc/pam.d/su, но авторизацию su тоже не получается сделать. Как должен выглядеть сам процесс авторизации через этот сканер отпечатков?

  • PAM – Pluggable Authentication Modules.

    При запросе пароля, вы должны нажать Enter, после этого будет еще один запрос пароля. Проведите пальцем по сканеру. Если все сделано правильно, то вы будете авторизованы.

  • Denis

    Что-то не получилось. После ввода логина, предлагается ввести пароль, жму enter – секунды через две пишет, что пароль не верный. Водил пальцем, но ессно не помогло.
    Потому как мне и не предлагается второй раз пароль ввести, сразу говорится, что этот (пустой пароль) – неверный.
    Хотя прописал эту строку именно там и так как ты указал.. фиг знает в чём дело…

    (у меня, кстати, default runlevel в системе (/etc/inittab): 3, может это важно в решении проблемы..)

  • На данный момент мой конфиг выглядит так:

    #%PAM-1.0
    
    auth       required  pam_env.so
    auth       sufficient   pam_unix.so try_first_pass likeauth nullok
    auth       sufficient  pam_thinkfinger.so
    auth       required  pam_deny.so
    
    account    required  pam_unix.so
    
    password   required  pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 try_first_pass retry=3
    password   sufficient   pam_unix.so try_first_pass use_authtok nullok md5 shadow
    password   required  pam_deny.so
    
    session    required  pam_limits.so
    session    required  pam_unix.so
    
  • Denis

    Абсолютная аналогия. Наверное проблема в чём-то другом, что не появляется у меня повторный пароль…

  • Denis

    Кстати, а “pam_thinkfinger.so” это собственно что? “Библиотека”? Где она лежит? Может у меня таковой и нет…?

  • Ну и как без этой библиотеки у вас будет работать сканер? 😉

    Находится тут – http://thinkfinger.sourceforge.net/
    Собирать с параметром pam.

  • Denis

    А.. ну значит дело не в этой библиотеке 🙂 покуда сканер у меня работает отлично и проверяет отлично.

    На всякий случай ещё раз пересобрал этот пакет и заметил интересное сообщение в конце процесса установки:


    CONFIG_INPUT_UINPUT: is not set when it should be.
    Please check to make sure these options are set correctly.
    Failure to do so may cause unexpected problems.

    О какой опции он говорит? Где её выставлять?


    $ cat /usr/src/linux/.config | grep -i UINPUT
    $ uname -r
    2.6.22-gentoo-r8

  • В ядре, вестимо 😉

    # grep INPUT_UINPUT /usr/src/linux/.config
    CONFIG_INPUT_UINPUT=y
    
  • JukeBox

    Здраствуйте. После поломки клавиатуры, стандартная клавиатура от тоши была заменена на ужасную китайскую клаву. И в ходе установки gentoo возникли проблемы с конфигурации клавиатуры в иксах.
    Если вас не затруднит, не могли бы вы выложить свой xorg.conf, а то не пойму то ли у меня руки кудрявые, то ли проблема действительно в нестандартной клавиатуре.

  • 2JukeBox:
    Попробуйте пересобрать модуль клавиатуры.

    p.s. Я не использую HAL.

  • Ваш опыт мне пригодится..

    • Судя по линку, который вы оставили, мой опыт вам не пригодится. Полагаю, вы обычный спамер, пропихивающий свой линк во все возможные блоги.

  • Я бы не был так категоричен 😉

  • У меня такой же бук, только винда обычная стоит..

  • 2 _Andrey_:

    Вы автор этого блога?

  • Pingback: how to get bigger boobs naturally

Leave a Reply

Your email address will not be published. Required fields are marked *