Настраиваем Raspbian под себя.

Вот чем хорош Линукс, так это тем, что настраивается он не через графические программы со шлюхами и Блэк Джеком, а через простые текстовые файлы.

Текстовый файл — он и в Африке текстовый файл. Проще уже некуда. Причем, для его редактирования (т.е. изменения конфигурации системы) ничего не надо. Нужен любой, текстовый редактор. Пойдет самый-самый простецкий. А если Вы законфигурировали свою систему на столько капитально, что она вообще никак не поднимается, проблемы тоже нет. Берете «запоротый» диск с системой и подключаете его на другой комп, или загружаетесь с другого носителя. Вообще неважно любым каким способом, важно хоть как-то получить доступ к конфигурационным файлам и поправить их. Проще некуда!

Итак, начнем с того, что изменим имя компьютера. Мне не нравятся длинные имена компов и пользователей. Поэтому вместо длинного имени raspberry я пропишу имя rpi. Имя компа хранится в файле /etc/hostname.

Давайте зайдем в консоль — нажмите Crtl-Alt-F1, введите имя pi, затем введите пароль raspberry. Если все нормально сделаете, то вы попадете в систему. Иначе говоря, вы увидите приглашение системы:

pi@raspberry ~ $

Теперь наберите команду для вызова простецкого текстового редактора nano и наберите сразу имя файла, который мы собираемся поправить — /etc/hostname. Это еще не всё! Дело в том, что мы собираемся вносить изменения в систему. Систему имеет право менять только администратор системы, имя которого root. Но в таких дистрибутивах, как Debian, Ubuntu и их производных (в частности Raspbian) имеется возможность выполнять команды не переключаясь со своей учетной записи на учетную запись root-а. Правда, такая возможность предоставляется всего лишь на исполнение одной (отдельной) команды. Но это неважно!

Так вот, чтобы выполнить системную root-овскую команду не переключаясь на root-а, нужно в начале этой команды дописать префикс — sudo.

Должно получиться следующее:

$ sudo nano /etc/hostname

Система запросит _ВАШ_ пароль (а не root-овский!!!) и попытается выполнить вашу команду.

В нашем случае, загрузится редактор nano, редактор загрузит файл /etc/hostname и отобразит его содержимое на экране. Все что нам нужно — это удалить строку raspberry и вписать вместо нее rpi.

Затем для сохранения изменений нажимаем клавишу F3. Редактор запросит подтвердить имя файла, просто нажимаем Enter. И наконец нажимаем F2 для выхода из редактора.

Всё! Можно сказать, что мы изменили имя компа. Когда в следующий раз вы войдет в консоль, то увидите красивое лаконичное приглашение

pi@rpi ~ $

Далее, мне совершенно не нравится английская локаль. Я хотел бы традиционно юзать американскую и русскую. Поэтому я запускаю в консоли утилиту конфигурации raspi-config

$ sudo raspi-config

На экране появится окошко с меню. Выбираем пункт change_locale. Придется подождать несколько секунд. Появится список всех локалей.

В списке нужно найти английскую локаль. Я уже сейчас точно не помню как она называется, но это единственная локаль, отмеченная звездочкой.

Клавишей пробела снимите звездочку. Далее найдите американскую локаль en_US, UTF-8 UTF-8 и отметьте ее. Так же отметьте русскую локаль — ru_RU, UTF-8 UTF-8. Нажмите клавишу Tab, отметится экранная кнопка Ok и нажмите Пробел.

В следующем окне установите русский язык по умолчанию для всей системы.

Придется еще раз подождать, пока система сгенерит локали.

После очередной перезагрузки по методу а-ля-Шиндовс система будет руссифицирована: все менюшки и подсказки будут русские.

Что дальше? А дальше, имеется огромное желание подключить RPi к интернету.

Для этого нужно подправить файл /etc/network/interfaces. Файл достаточно простой, блудить с настройками просто негде. Вот, например, содержимое моего файла:

auto lo
iface lo inet loopback

# Интерфейс должен подниматься автоматически:
auto eth0

# Если в сетке поднят DHCP-сервер, расскоментируйте следующую строку:
#iface eth0 inet dhcp
# Если DHCP-сервера нет, то задайте статические параметры интерфейса:
iface eth0 inet static
    address 192.168.1.16
    netmask 255.255.255.0
    gateway 192.168.1.1

# Беспроводного интерфейса у меня нет, заглушу все параметры
#allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp

здесь

address 192.168.1.16 — это IP-адрес платы RPi
netmask 255.255.255.0 — маска сети
gateway 192.168.1.1 — IP-адрес шлюза, через который RPi будет вылазить в мир (заходить в Интернет)

У меня нет беспроводного выхода, поэтому я поотключал все ненужные мне сетевые параметры.

Но это еще не все установки, которые нам нужно выполнить для полноценного выхода в Интеренет! У нас еще не прописаны DNS-сервера. Давайте подправим файл /etc/resolv.conf. Файл еще проще. По моему, проще уже не бывает. Вот мой файл

nameserver 195.38.33.2
nameserver 195.38.32.3

Вот теперь это почти всё! Если вы планируете с RPi обращаться к компам в своей сетке, то вам нужно прописать их имена в файле /etc/hosts/. Если не планируете — то можно перезагружаться и получать удовольствие.

На всякий случай, вот содержимое моего файла /etc/hosts, вдруг кому-то будет не понятно, как с ним работать:

127.0.0.1    localhost
::1        localhost ip6-localhost ip6-loopback
fe00::0        ip6-localnet
ff00::0        ip6-mcastprefix
ff02::1        ip6-allnodes
ff02::2        ip6-allrouters

127.0.1.1    rpi

192.168.1.12    turion
192.168.1.13    eee
192.168.1.14    p24
192.168.1.15    rover
192.168.1.20    rimma
192.168.1.30    ball
192.168.1.30    s2

Давайте проверим, что интернет заработал. Я обычно пингую наш екатеринбургский портал e1.ru

pi@rpi ~ $ ping e1.ru
PING e1.ru (194.226.146.5) 56(84) bytes of data.
64 bytes from e1.ru (194.226.146.5): icmp_req=1 ttl=55 time=45.8 ms
64 bytes from e1.ru (194.226.146.5): icmp_req=2 ttl=55 time=51.7 ms
64 bytes from e1.ru (194.226.146.5): icmp_req=3 ttl=55 time=44.7 ms
64 bytes from e1.ru (194.226.146.5): icmp_req=4 ttl=55 time=45.1 ms
64 bytes from e1.ru (194.226.146.5): icmp_req=5 ttl=55 time=44.9 ms
^C

--- e1.ru ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 12156ms
rtt min/avg/max/mdev = 44.772/46.511/51.786/2.677 ms

если не получается, то нужно попробовать пропинговать свой шлюз:

pi@rpi ~ $ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_req=1 ttl=64 time=4.56 ms
64 bytes from 192.168.1.1: icmp_req=2 ttl=64 time=4.41 ms
64 bytes from 192.168.1.1: icmp_req=3 ttl=64 time=4.37 ms
64 bytes from 192.168.1.1: icmp_req=4 ttl=64 time=4.33 ms
^C
--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 4.332/4.420/4.562/0.098 ms

А если и он не пингуется, то посмотреть — может быть интерфейс не поднялся?

pi@rpi ~ $ ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:6a:83:22
          inet addr:192.168.1.16  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4015 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3698 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3259259 (3.1 MiB)  TX bytes:469014 (458.0 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

А может быть тупо кабель не подключен?

Если всё срослось как надо, то зайдите в графическую консоль и запустите браузер. Попробуйте походить по Инетенету.

Я тут рассказал много чего интересного, но вполне самого обычного для Линукса. При всем при этом, невероятных размеров кусок не менее интересного так и не был даже упомянут. Что ж! Длинные статьи не всегда удобно читать. Особенно в настоящее время, когда мир переходит к изложению «Воины и Мира» Толстого в объемах СМС-ки или сообщения Твитера. Народ отвык поглощать большие объемы несжатой информации. Время такое, ничего не сделаешь!

Поэтому, мне остается только напомнить вам консольную команду для закачки интернет ресурсов. Запускайте команду и оставляйте RPi скачивать фильмы и «тяжелые» дистрибутивы:

$ wget -c http://путь.к.серверу/путь/к/файлу/на/сервере/сам_файл

Скоро должен выйти Debian Wheezy, буду пытаться с помощью RPi заполучить дистрибутив.

UPDATE

Я совсем забыл сказать, что я проапгрейдил систему:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

Наудивление, система проапгрейдилась. Закачалалось аж 38.6 МБ (60 пакетов), при этом система выросла всего на 13.3 кБ.

После чего установил файловый менеджер mc и утилиту htop

$ sudo apt-get install mc htop

mc и htop заработали сразу.

А вообще, количество пакетов поражает воображение:

pi@rpi ~ $ apt-cache stats
Всего имён пакетов: 47718 (954 k)
Всего структур пакетов: 47718 (2 290 k)
  Обычных пакетов: 36181
  Полностью виртуальных пакетов: 316
  Одиночных виртуальных пакетов: 4323
  Смешанных виртуальных пакетов: 1035
  Отсутствует: 5863
Всего уникальных версий: 37219 (2 680 k)
Всего уникальных описаний: 37216 (893 k)
Всего зависимостей: 221029 (6 189 k)
Всего отношений Версия/Файл: 37891 (606 k)
Всего отношений Описание/Файл: 37216 (595 k)
Всего отношений Provides: 7421 (148 k)
Всего развёрнутых строк: 142 (1 474 )
Всего информации о зависимостях: 906 k
Пустого места в кэше: 69,9 k
Полное учтённое пространство: 12,0 M

Попробовать что ли устанвить geany? Или, скажем, кросскомпилятор для MSP430…

Хм… geany установился. Я написал мега-прогу, откомпилировал запустил. Странно, все работает.

К сожалению в системе нельзя сделать PrintScreen, поэтому пришлось фотографировать:

DSC00257

Сейчас займусь установкой тулчейна MSP430.

Чуднό… Игрушка для взрослых. Ой, чуднό-о…

Хм 😦 тулчейн  naken430 (https://zhevak.wordpress.com/2011/07/28/легкий-ассемблер-для-msp430/) успешно скачался по сети и так же успешно откомпилировался и устновился. Правда, компиляция заняла не 5 секунд, как на «взрослом» компе, минуты полторы. Но все остальные операции RPi выполнял почти мгновенно.

Интересно отметить, что объем кода для архитектуры i386 и для ARM11 — разный, причем для ARM11 объем кода получается заметно меньше. Вот какие цифры получились для i386 и для ARM11:

naken430asm : 54765 байт против 44567 байт
naken430util :  38368 байт против 33747 байт

Чтобы не мучиться с проектом, я тупо подсоединился по SSL и скопировал свой рабочий проект (ну, в смысле проект, который я пишу на работе)  с рабочего компа на RPi.

Ничего удивительного не произошло. Проект откомпилировался байт-в-байт. Компиляция заняла какие-то доли секунды. Необчно только то, что все это делается не на громоздком рабочем компе, а на каком-то игрушечном недо-компике. Шаблон слегка рвет.

Сейчас стоит задача установить на RPi дрова для работы с LaunchPad-ом, а то как заливать код в микроконтроллеры с RPi?

Что еще заметил — у RPi нет RTC (часы с батарейкой). Поэтому при загрузке он постоянно выводит дату 17 Декабря. Но при подключении к Интернету, время-дата синхронизируются с NTP-серверами и проблем вообще никаких нет.

Advertisements

10 responses to “Настраиваем Raspbian под себя.

  1. Долго компьютер грузится?

    • Одна минута 15 секунд (https://zhevak.wordpress.com/2013/01/06/запуск-raspbian-wheezy/)

      После переконфигурации не мерял, но примерно так же.

      Но что Вы хотите от одного горшка на 700 МГц?

      Вот, что показывает RPi в /proc/cpuinfo:
      BogoMIPS : 697.95

      А вот — цифры с моего настольного компа (Пень-4 2.4 ГГц, два горшка):
      bogomips : 4799.07
      bogomips : 4800.29

      Но комп гремит вентиляторами, греется и мотает счетчик. А RPi — вообще не слышно работает, не греется и ничего не жрет. Самое то для ненагруженного сервера, который 7/24 (т.е. круглосуточно не выключаясь впахивает по нескольку лет).

  2. > Правда, такая возможность предоставляется всего лишь
    > на исполнение одной (отдельной) команды

    real@ECSE2:~$ sudo -s
    [sudo] password for real:
    root@ECSE2:~# exit
    exit
    real@ECSE2:~$

    • Ага.

      Я не хотел уходить в своих рассуждениях в этом направлении. Попробуйте написать короткое эссе не углубляясь в огромное множество интересных деталей и полезных приемов в Линуксе! Краткого не получится. По любому придется чем-то жертвовать. Но раз уж Вы решили уточнить, то спасибо!

      Линукс интересен тем, что в каком направлении не пойдешь, всегда снимаешь богатый урожай знаний. Копать можно до бесконечности, ни каких ограничений и козней! Это не Шиндовс.

      Да, и я в таком случае тоже уточню. Для выхода не надо набирать на клаве «exit», достаточно нажать Ctrl-d, т.е. ввести символ «конец файла».

  3. Вальдемар

    Привет из Пензы. В конфиге сети «очипятка». Замените «getway» на «gateway». Иначе сеть без шлюза). И добавьте про ifconfig и перестартовку интерфейса). В целом, за статью респект.

    • Спасибо, Владимир, за найденные неточности. Поправлю.

      На счет ifconfig и рестарта — мысль хорошая. Я подумаю, как это написать. Сейчас пока ничего не буду обещать. У меня пока мысли немного не здесь. Супруга в праздники сломала ногу, поэтому в башке у меня совсем другие проблемы кружат стаями.

  4. iface etch0 inet static — Здесь опечатка. Правильно будет — iface eth0 inet static. Я в свой добавил — auto eth0. Это автостарт интерфейса при загрузке демьяновой малины. И еще. Файл resolv.conf, а не resolve.conf. Иначе не будет интернет работать). Пинговать правильно — sudo ping 80.95.37.230 или другой адрес, где сидят «враги»))). Перестартовка интерфейса без перезагрузки — /etc/init.d/networking restart.
    ПС: Супруге скорейшего выздоровления и здоровья.

    • Да, конечно же — eth0 и resolv.conf! Просто думаю одно, а пишу другое. Большое спасибо за замечания и дополнения!

  5. > Правда, компиляция заняла не 5 секунд, как на “взрослом” компе,
    > минуты полторы.
    Это со всем барахлом от компилятора до исходников на SD-карте или на USB-винчестере?

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s