Подробный мануал по Lenovo S10 3C и Linux

Статья уже не актуальна и клавиатура работает после обновления BIOS. Подробности тут

Итак, сегодня я могу сказать, что на Lenovo S10 3C уже можно устанавливать Ubuntu и нормально пользоваться, включая ACPI.
Я попытаюсь обобщить в одном посте всю информацию собранную мною в сети, а также предоставленную пользователями этого сайта. Все описанное ниже будет справедливо для Ubuntu 10.04 Netbook Remix. В новых релизах возможно что то заработает «искаропки»

Для начала готовим загрузочную флешку с Ubuntu Netbook Remix и загружаемся с нее с параметрами

noapic acpi=off

Выбор опций загрузки в Ubuntu вызывается по клавише F6.
Первым делом после установки нам нужно завести клавиатуру, ибо совместно с ACPI она не работает. Для этого создаем файл с произвольным названием, скажем lenovo.c и вставляем в него следующий код:

#include
#include
#define I8042_COMMAND_REG 0x64
int main(int argc, char *argv[]) {
char data = 0xae; // enable keyboard
ioperm(I8042_COMMAND_REG, 1, 1);
if (argc == 2 && argv[1][0] == '0')
  data = 0xad; // disable keyboard
outb(data, I8042_COMMAND_REG);
return 0;
}

Далее скомпилируем исходник получив бинарный файл который и будет «лечить» клавиатуру

gcc lenovo.c -o lenovo_keyboard

Кому лень это делать или не знает как внизу поста я прикреплю скомпилированные бинарники для архитектуры x86 и x86_64

Копируем получившийся файл в /usr/local/bin и дадим права на его исполнение:

sudo cp lenovo_keyboard /usr/local/bin
sudo chmod 777 /usr/local/bin/lenovo_keyboard

Теперь нужно сделать так чтобы данный код исполнялся каждый раз при загрузке системы. Для этого откроем /etc/rc.local и приведем его в такой вид:

#!/bin/sh -e
/usr/local/bin/lenovo_keyboard 1
exit 0

Теперь перезагрузившись клавиатура должна работать.

Wi-Fi на Lenovo S10 3C искаропки на 10.04 тоже отказалась работать. Я не буду повторяться, так как уже написал небольшой пост о том как поднять на данном устройства Wi-Fi.

Для полноценной работы с нетбуком нужен работоспособный спящий режим (S2RAM). Спящий режим сам по себе работает, только клавиатура после выхода из спячки отваливается и приходится либо перезагружаться либо подключать внешнюю клавиатуру чтобы запустить lenovo_keyboard, что очень омрачает. Выход из этой ситуации я нашел. Наверняка таких способов может быть куча, но я сделал так:

Создаем событие acpid и скрипт который будет выполняться когда это событие будет отловленно системой. (Открытие закрытие крышки нетбука)

sudo nano -w /etc/acpi/events/wakeup

В открывшийся файл вставляем следующее:

event=button/lid LID 00000080
action=/etc/acpi/wakeup.sh

Сохраняем, закрываем и перейдем к самому скрипту. Скриптом это назвать сложно, но оно работает.

sudo nano -w /etc/acpi/wakeup.sh

В открывшийся файл вставляем:

#!/bin/bash
cd /usr/local/bin
./lenovo_keyboard

Сохраним и дадим скрипту права на исполнение

sudo chmod 777 /etc/acpi/wakeup.sh

Теперь при выходе из спящего режима уже начиная с этапа ввода пароля клавиатура должна работать..

Скачать архив с исходниками

Оцените статью