Собрал в базовом корпусе (этажерка), винт от старого ноута на 80Гб.
Решил попробовать установить Debian Wheezy. Образ взял с сайта www.igorpecovnik.com.
----------------------------------------------------------------------------
UPD Чтобы корректно работали все драйвера (вафля, синий-глаз, I2C, SPI и пр.), не советую пользоваться системой с версией ядра выше 4-ой (Джесси), лучше воспользуйтесь старой, доброй проверенной 3.4.ХХХ (Wheezy).
UPD2 Старые версии можно скачать здесь - http://mirror.igorpecovnik.com/archive/
----------------------------------------------------------------------------
Качаем с сайта www.igorpecovnik.com нужный image.
Все что описано ниже справедливо для v2.1 (13.6.2014). На самом сайте внизу можно увидеть, что обновления выходят довольно часто...
Я подключаю кубик к HDMI-разъему телевизора, поэтому качаю image "HDMI".
Записываем образ на диск любой доступной программкой, например "Win32 Disk Imager" для Винды.
Вставляем флешку в Cubietruck, подключаем клавиатуру, HDMI-кабель телевизора и подаем питание, HDD может быть уже подключен (v2.1 - LAN не советую подключать, у меня почему зависал на "update packages". v2.2 - пофиксили, можно запускать с кабелем LAN).
СТ весело заморгает светодиодами, отладочные сообщения старта не появятся - их автор отключил...
Первая загрузка идет долго - минуты 2-3. СТ будет расширять rootfs, обновлять пакеты и пр...
Далее автоматически перезагрузится и появится приглашение залогиниться, вводим логин root, пароль 1234 (пароль желательно сразу поменять).
Кстати в этот образ вшита возможность следить за температурой проца, отчасти это сыграло какую то роль при выборе системы (Cubian на данный момент не позволяет это сделать).
После логина в систему, можно увидеть температуру проца, HDD, объем памяти (см. сообщение приветствия).
Настраиваем сеть (я использую статику, адресацию применяем своей подсети), правим файл
Код: Выделить всё
root@cubie:~# nano /etc/network/interfaces
Код: Выделить всё
allow-hotplug eth0
iface eth0 inet static
address 192.168.69.50
netmask 255.255.255.0
gateway 192.168.69.1
Код: Выделить всё
root@cubie:~# nano /etc/resolv.conf
Код: Выделить всё
root@cubie:~# reboot
После настройки сети и выхода в инет делаем:
Код: Выделить всё
root@cubie:~# apt-get -y update && apt-get -y dist-upgrade && apt-get -y autoremove && apt-get -y autoclean
Код: Выделить всё
root@cubie:~# apt-get install mc
IP-адрес кубика прописали, порт 22 (можно поменять для дополнительной защиты)
----------------------------------------------------------------------------
Теперь разобьем наш диск на разделы, отформатируем.
Код: Выделить всё
root@cubie:~# fdisk -l
Итак, старые разделы нам надо удалить (ОСТОРОЖНО, ДАННЫЕ ПОТЕРЯЮТСЯ), и сделать 3 раздела: sda1 - swap (2048Мб), sda2 - rootfs (гигабайт 20) и раздел sda3 - будем монтировать в /srv.
Код: Выделить всё
root@cubie:~# fdisk /dev/sda
Директивой "d" удаляем старое (жмем "d" пока не появится собощение что типа разделов больше нет).
Создаем, нажимаем "n" - выбираем "p" примари - номер партиции 1 - первый сектор по умолчанию оставляем - last sector пишем +2048M.
Нажимаем "p" - посмотрим что получилось (у меня хард на 80Гб).
Код: Выделить всё
Device Boot Start End Blocks Id System
/dev/sda1 2048 4196351 2097152 83 Linux
Нажимаем "p" - посмотрим что получилось.
Код: Выделить всё
Device Boot Start End Blocks Id System
/dev/sda1 2048 4196351 2097152 82 Linux swap / Solaris
Директива "n" - затем "p" - номер партиции 2 - первый сектор по умолчанию оставляем - last sector пишем +20G - создали /dev/sda2.
Директива "n" - затем "p" - номер партиции 3 - первый сектор по умолчанию оставляем - last sector так же по-умолчанию (все оставшееся место) - создали /dev/sda3.
Нажимаем "p" - посмотрим что получилось.
Код: Выделить всё
Device Boot Start End Blocks Id System
/dev/sda1 2048 4196351 2097152 82 Linux swap / Solaris
/dev/sda2 4196352 46139391 20971520 83 Linux
/dev/sda3 46139392 156301487 55081048 83 Linux
Отформатируем раздел /dev/sda2 и /dev/sda3
Код: Выделить всё
root@cubie:~# mkfs.ext4 /dev/sda2
root@cubie:~# mkfs.ext4 /dev/sda3
Теперь перенесем систему на винт, сделать это очень просто, автор образа потрудился за нас и написал скрипт (только в нем надо поменять путь к винту с /dev/sda1 на /dev/sda2), его надо запустить:
Код: Выделить всё
root@cubie:~# /root/sata-install.sh
Нас попросят "прес кей" - жмем Enter и система уйдет в перезагрузку.
Загрузится уже с винта. В этом можно убедиться следующей командой:
Код: Выделить всё
root@cubie:~# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 20G 958M 18G 6% /
/dev/root 20G 958M 18G 6% /
devtmpfs 1000M 0 1000M 0% /dev
tmpfs 128M 164K 128M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 128M 0 128M 0% /run/shm
tmpfs 1.0G 88K 1.0G 1% /tmp
/dev/root 20G 958M 18G 6% /var/log.hdd
ramlog-tmpfs 256M 1.1M 255M 1% /var/log
Код: Выделить всё
root@cubie:~# dd if=/dev/zero of=/dev/sda1 bs=1024 count=2048K
2097152+0 records in
2097152+0 records out
2147483648 bytes (2.1 GB) copied, 266.515 s, 8.1 MB/s
У меня выполнялась долго - чуть более 4 мин...
Далее выполняем:
Код: Выделить всё
root@cubie:~# mkswap /dev/sda1
root@cubie:~# swapon /dev/sda1
Код: Выделить всё
/dev/sda1 swap swap defaults 0 0
Код: Выделить всё
root@cubie:~# free -m
total used free shared buffers cached
Mem: 1999 54 1945 0 3 27
-/+ buffers/cache: 23 1976
Swap: 2047 0 2047
Код: Выделить всё
/dev/sda3 /srv ext4 defaults,errors=remount-ro 0 0
Код: Выделить всё
# UNCONFIGURED FSTAB FOR BASE SYSTEM
/dev/sda2 / ext4 defaults,noatime,nodiratime,data=writeback,commit=600,errors=remount-ro 0 0
# Add swap and failopomojka
/dev/sda1 swap swap defaults 0 0
/dev/sda3 /srv ext4 defaults,errors=remount-ro 0 0
----------------------------------------------------------------------------
Правим время и для начала надо попроавить часовой пояс, для этого:
Код: Выделить всё
root@cubie:~# dpkg-reconfigure tzdata
На этом форуме много писали, что есть проблемы у плат RaspberryPi и Cubieboard-1(2), при перезагрузке сбивается время и поэтому запись в БД MySQL происходит неправильно.
На нашей плате - Cubietruck на борту имеется модуль RTC и часы при перезагрузке/отключении не сбиваются, по идее))
Я решил попробовать отключить демон ntpd и синхронизировать время командой ntpdate при загрузке системы и раз в сутки, при этому раз в сутки синхронизированное время системы записывается в часы RTC.
1. Отключаем демон ntpd, если он включен.
root@cubie:~# /etc/init.d/ntp status - проверить запущен или нет
root@cubie:~# /etc/init.d/ntp stop - оставновить сервис
root@cubie:~# /etc/init.d/ntp start - запустить сервис
2. Удаляем из автозагрузки.
root@cubie:~# update-rc.d -f ntp remove - удалить сервис ntp из автозагрузки
root@cubie:~# update-rc.d ntp defaults - включить автозагрузку сервиса пол умолчанию
Теперь устанавливаем пакет ntpdate, если он не установлен.
Затем в файл /etc/crontab добавляем в конец:
Код: Выделить всё
@reboot root ntpdate 0.ru.pool.ntp.org >> /var/log/ntpdate.log 2>&1
Возможность вывода в лог делал для отладки, если надо оставить навсегда - то необходимо реализовать ротацию логов...
Теперь что касается харверных часов.
Проверяем время системное:
Код: Выделить всё
root@cubie:~# date
Sat Jun 21 23:24:23 MSK 2014
Код: Выделить всё
root@cubie:~# hwclock -r
Sat 21 Jun 2014 7:25:22 PM MSK -1.722259 seconds
Исправим эту оплошность:
Код: Выделить всё
root@cubie:~# nano /etc/adjtime
Код: Выделить всё
root@cubie:~# hwclock -r
Sat 21 Jun 2014 11:27:21 PM MSK -1.823798 seconds
В системе по пути /etc есть папки типа /etc/cron.daily/ , /etc/cron.monthly/ и т.п.
Соответственно в эти папки можно запихнуть свои скрипты на bash'e, они будут выполняться по временным промежуткам, соответ. названиям директорий.
К примеру: нам надо выполнять синхронизацию времени системы раз в сутки и записывать это время в харверные часы RTC на плате Cubietruck.
1. Создаем скрипт:
Код: Выделить всё
root@cubie:~# touch /etc/cron.daily/ntpdate.sh
Код: Выделить всё
root@cubie:~# chmod +x /etc/cron.daily/ntpdate.sh
Код: Выделить всё
root@cubie:~# nano /etc/cron.daily/ntpdate.sh
Код: Выделить всё
#!/bin/sh
# Запускаем синхронизацию с пулом адресов 0.ru.pool.ntp.org, результат (положительный и ошибки если есть) пишем в лог-файл /var/log/ntpdate.log
ntpdate 0.ru.pool.ntp.org >> /var/log/ntpdate.log 2>&1
# Значение времени системы записываем в часы RTC на плате
hwclock --systohc
Проверяем работу, смотрим содержимое файла /etc/crontab - там есть строка:
Код: Выделить всё
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
Проверка заключается в том, что надо дождаться этого времени и посмотреть файл /var/log/ntpdate.log на предмет результата синхронизации с интетом и файл /var/log/syslog,
там должна быть строчка типа:
Код: Выделить всё
Jun 26 06:25:15 localhost kernel: [108239.582972] sunxi-rtc sunxi-rtc: actually set time to 2014-6-26 6:25:15