Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #67, ИЮЛЬ 2004 г.

Мобильные юниксы vol. 2

Anton Karpov

Xakep, номер #067, стр. 067-082-4


Удобная раковина

В заключение саги расскажу о двух мелочах. Если ты продвинутый пользователь никсов, то у тебя наверняка в строке приглашения командного интерпретатора ($PS1) горит не просто user@host:/work/dir, а что-нибудь полезное. Для ноутбука такой полезной фичей была бы индикация уровня заряда батареи. Да не простая, а цветная. Например, у меня уровень заряда аккумулятора выводит программа vaiobat:

[(14:47)(57.99%)(p0):~ ] vaiobat

Battery 2832/4884 57.99% BAT1

Тогда полезное приглашение выводится следующим образом. Во FreeBSD у меня zsh:

# vi ~/.zshrc

function precmd {

PR_ACPI_RESULT=`vaiobat | awk '{print $3}'`

}

setprompt () {

setopt prompt_subst

PR_ACPI='${PR_ACPI_RESULT[(f)1]}%'

PROMPT=$'%{\e[1;31m%}[(%{\e[0m%}%{\e[1;33m%}%T%{\e[0m%}%{\e[1;31m%})(%{\e[1;32m%}${(e)PR_ACPI}%{\e[0m%}%{\e[1;31m%})(%l):%~ ]%{\e[0m%} '

}

setprompt

В Linux у меня bash:

$ export PS1='\e[1;32m(\e[1;33m\t\e[0m\e[1;32m)[\e[1;31m`bat|cut -d " " -f 3`\e[0m\e[1;32m]:\W\$ \e[0m'

Мобильный интернет

Сам по себе ноут – это хорошо, но что если надо выйти в сеть, а беспроводной точки доступа поблизости нет? Самый распространенный выход из ситуации – мобила с поддержкой GPRS и встроенным модемом, которую через USB-порт коннектят к нотебуку. Все это заводится под никсами в два счета. Для начала в ядре включается поддержка и эмуляции последовательного порта через USB (CONFIG_USB_SERIAL в Linux или модули ucom, uvscom, uplcom во FreeBSD). Таким образом, труба выступает в роли USB-модема. При ее подключении фря должна сообщить о создании девайса ucom0 (пятая фряха управляет устройствами через devfs, так что создание устройств руками через MAKEDEV-скрипт там уже не нужно), а Linux – о работоспособности девайса /dev/ttyUSB0 (или о создании /dev/usb/tts/0, если также используется devfs). После чего принимаемся за настройку pppd:

# vi /etc/ppp/peers/megafon:

/dev/ttyUSB0

57600

noauth

defaultroute

usepeerdns

updetach

persist

noipdefault

lock

connect '/usr/sbin/chat -v -f /etc/ppp/chat/megafon'

novjccomp

nopcomp

noaccomp

nodeflate

novj

nobsdcomp

Здесь приведены настройки для питерского "Мегафона", но ты можешь легко изменить конфиги под своего оператора, вписав нужную APN и логин с паролем. APN прописывается в строке OK AT+CGDCONT=1,"IP","internet.nw" chat-файла, здесь это "internet.nw", для логина (у "Мегафона" он отсутствует) в peers/megafon нужно добавить директиву user и создать файл pap-secrets.

# vi /etc/ppp/chat/megafon:

ABORT "ERROR"

TIMEOUT 5

"" "ATE1"

ABORT "BUSY"

ABORT "NO ANSWER"

ABORT "NO CARRIER"

OK AT+CGDCONT=1,"IP","internet.nw"

OK ATD*99***1#

TIMEOUT 125

"CONNECT" "\c"

Звоним командой:

# pppd call megafon

И через какие-то секунды мы уже в Сети. Или не в Сети – тогда смотрим ошибки в логфайле :).

Итог? Я не буду агитировать сносить с десктопов и ноутбуков винду или клеймить никсы позором за набитые шишки при настройке вещей, которые в винде делаются тремя кликами мыши. Один из лозунгов Linux – "Put the fun back into computing", так неужели это не приятно – заставить чертов кусочек железа работать как следует, всем на зависть. Если возникнут проблемы – нет, не пиши мне, а постарайся найти ответ сам во всемогущем Гугле и списках рассылки, так будет полезнее. Помни – все твои проблемы уже у кого-то возникали, надо просто уметь искать.

Назад на стр. 067-082-3  Содержание  Вперед на стр. 067-082-5