Фотогалереи

Услуги

Помощь при использовании сайта

Подробный мануал по 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 <unistd.h>
#include <sys/io.h>
#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

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

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

4.52941
17 votes
Ваша оценка: Нет


Настройки просмотра комментариев

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

Ошибка в пути к файлу
есть
#!/bin/sh -e
/usr/bin/local/lenovo_keyboard 1
exit 0
надо
#!/bin/sh -e
/usr/local/bin/lenovo_keyboard 1
exit 0

Аватар пользователя admin

Исправил, запечатался.

Аватар пользователя anonymous

Сделал acpi_listen

root@123-lenovo:/home/123# acpi_listen
button/lid LID 00000080 00000002
button/lid LID 00000080 00000003

Есть идеи?

Аватар пользователя admin

Не работает? Скрипту права на исполнение давали?

Аватар пользователя anonymous

Спасибо за "пинок"
Сделал sudo chmod 777 /etc/acpi/wakeup.sh и sudo chmod 777 /etc/acpi/events/wakeup

Спасибо за помощь)
p.s. в 11.04 wifi из коробки работает =)

Аватар пользователя admin
/etc/acpi/events/wakeup

Это не скрипт, он не исполняется, так что можете убрать права на исполнение.

Аватар пользователя anonymous
admin пишет:
/etc/acpi/events/wakeup

Это не скрипт, он не исполняется, так что можете убрать права на исполнение.

Правельно это папка...на которую тоже надо дать права

Аватар пользователя anonymous

#include
#include

у него не написано что надо инклудить) а надо
#include
#include

Аватар пользователя admin

anonymous пишет:

Правельно это папка...на которую тоже надо дать права

Сам ты папка (c)

Это уважаемый не папка, это файл с описанием события нужное acpid.

Аватар пользователя anonymous

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

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

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

sudo chmod 777 /usr/local/bin/lenovo_keyboard

а не sudo chmod 777 /etc/acpi/wakeup.sh ????