вторник, 6 декабря 2016 г.

Сборка ядра Raspbian Jessie из исходников для Raspberry Pi 3 Model B

Собирать ядро будем на 64-битной хост-машине Ubuntu 16.04.

Скачиваем инструменты для сборки в любую локальную директорию (у меня /media/Data2/Kernel/raspberrypi):

cd /media/Data2/Kernel/raspberrypi
git clone https://github.com/raspberrypi/tools

Так как у нас 64-битная платформа, скопируем папку /media/Data2/Kernel/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin в наш путь с инструментами сборки /usr/local/tools :

cp /media/Data2/Kernel/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64 /usr/local/tools/linaro-raspbian-x64

Добавим путь к компилятору в переменную окружения PATH:

export PATH=$PATH:/usr/local/tools/linaro-raspbian-x64/bin

Получаем исходники самого ядра (опять использую директорию /media/Data2/Kernel/raspberrypi):

cd /media/Data2/Kernel/raspberrypi
git clone --depth=1 https://github.com/raspberrypi/linux

Для Raspberry Pi 3 переходим в папку linux, устанавливаем переменную окружения KERNEL и формируем дефолтную конфигурацию сборки ядра:

cd linux 
KERNEL=kernel7 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig

Теперь команда сборки ядра:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs

После удачной сборки надо записать файлы на загрузочную microsd-карту. Легче всего скачать уже готовый образ (raspbian jessie lite) и записать его, затем модифицировать содержимое карты файлами только что собранного ядра.

Вставим записанную microsd-карту с картридером в компьютер и выполним lsblk:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
fd0      2:0    1     4K  0 disk 
sda      8:0    0 232,9G  0 disk 
├─sda1   8:1    0   350M  0 part 
├─sda2   8:2    0 106,5G  0 part 
└─sda3   8:3    0   126G  0 part /media/Data2
sdb      8:16   0 465,8G  0 disk 
├─sdb1   8:17   0  97,7G  0 part /
├─sdb2   8:18   0   3,9G  0 part [SWAP]
├─sdb3   8:19   0  97,7G  0 part /media/adil/da1d5824-6b28-4395-a352-02d314a3439c
└─sdb4   8:20   0 266,6G  0 part /media/Data
sdc      8:32   1   7,4G  0 disk 
├─sdc1   8:33   1    63M  0 part /media/adil/boot
└─sdc2   8:34   1   7,4G  0 part /media/adil/0aed834e-8c8f-412d-a276-a265dc676112
sr0     11:0    1  1024M  0 rom  

Создадим папки для монтирования boot-раздела и раздела с файловой системой, и примонтируем к ним физические диски:

sudo mkdir /media/fat32
sudo mkdir /media/ext4
sudo mount /dev/sdc1 /media/fat32
sudo mount /dev/sdc2 /media/ext4

Копируем модули ядра в примонтированную папку (ругается "make: arm-linux-gnueabihf-gcc: Команда не найдена" потому, что для рута в /root/.bashrc в PATH'е не добавлен путь к установленному компилятору, но при копировании это не нужно):

KERNEL=kernel7
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/media/ext4 modules_install

Копируем бинарники ядра и devicetree в примонтированные папки, не забывая про создание резервных копий:

sudo cp /media/fat32/$KERNEL.img /media/fat32/$KERNEL-backup.img
sudo ./scripts/mkknlimg ./arch/arm/boot/zImage /media/fat32/$KERNEL.img
sudo cp ./arch/arm/boot/dts/*.dtb /media/fat32/
sudo cp ./arch/arm/boot/dts/overlays/*.dtb* /media/fat32/overlays/

Для разрешения доступа к shell'у по ssh создаем пустой файл ssh в папке /media/fat32/ :

touch /media/fat32/ssh

В локальной сети с действующим dhcp-сервером после включения платы мы можем обнаружить присвоенный ip-адрес следующим образом. Получаем:

$ nmap -p 22 -sV --open -n 192.168.1.1-255

Starting Nmap 7.01 ( https://nmap.org ) at 2016-12-06 14:50 MSK
...
Nmap scan report for 192.168.1.140
Host is up (0.00062s latency).
PORT   STATE SERVICE VERSION
22/tcp open  ssh     (protocol 2.0)
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port22-TCP:V=7.01%I=7%D=12/6%Time=5846A61D%P=x86_64-pc-linux-gnu%r(NULL
SF:,29,"SSH-2\.0-OpenSSH_6\.7p1\x20Raspbian-5\+deb8u3\r\n");
...

Подключаемся, используя логин pi, пароль raspberry :

ssh pi@192.168.1.140

Отмонтируем папки:

sudo umount /media/fat32
sudo umount /media/ext4

Запись образа raspberry pi на microsd-карту

1. Запись microsd-карты будем производить на Ubuntu 16.04 при помощи microsd-картридера. Скачиваем последний образ (на момент написания это raspbian jessy lite), разархивируем его ( результирующий файл 2016-11-25-raspbian-jessie-lite.img). Вставляем картридер с microsd-картой размером 8GB (у меня есть только такая), запускаем gparted (sudo gparted) и удаляем логические диски с карты. После этого выполняем lsblk :

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
fd0      2:0    1     4K  0 disk 
sda      8:0    0 232,9G  0 disk 
├─sda1   8:1    0   350M  0 part 
├─sda2   8:2    0 106,5G  0 part 
└─sda3   8:3    0   126G  0 part /media/Data2
sdb      8:16   0 465,8G  0 disk 
├─sdb1   8:17   0  97,7G  0 part /
├─sdb2   8:18   0   3,9G  0 part [SWAP]
├─sdb3   8:19   0  97,7G  0 part /media/adil/da1d5824-6b28-4395-a352-02d314a3439c
└─sdb4   8:20   0 266,6G  0 part /media/Data
sdc      8:32   1   7,4G  0 disk 
sr0     11:0    1  1024M  0 rom  

Наш диск имеет имя - /dev/sdc. Переходим в папку со скачанным образом (у меня /media/Data2/Downloads/Images/microsd) и записываем его на диск:

cd /media/Data2/Downloads/Images/microsd
sudo dd bs=4M if=./2016-11-25-raspbian-jessie-lite.img of=/dev/sdc

2. Для записи той же 8-гиговой microsd-карты под windows 10 нам понадобится gpl-программа imager, скачиваем, устанавливаем, вставляем usb-картридер с картой. Запускаем программу, выбираем в комбобоксе "Operating system" либо "Raspbian" (в этом случае прога скачает последний образ), либо "Use custom" и указываем уже скаченный образ (2020-02-13-raspbian-buster-lite.zip) (если вы сделали это самостоятельно). В комбобоксе "SD card" выбираем вставленную карту и нажимаем "Write".

Использованный материал:

вторник, 27 сентября 2016 г.

Подключение сенсорного экрана и семидюймового дисплея Waveshare Beaglebone LCD CAPE (7inch)

У нас имеется расширительная плата для BBB LCD Cape (7 inch), симидюймовая сенсорная панель, провода и USB2UART преобразователь, который шел в комплекте.

Изначально прошьем имеющийся на сайте debian-образ для семидюймового дисплея на microsd-карту ( как ). Загружаемся с карты и имеем рабочую linux-машину на базе lxde.

Теперь попробуем добавить поддержку экрана и тачпанели в свою компиляцию ядра на базе Debian 8. Для этого нам понадобится отредактировать device tree и пересобрать ядро.

В device tree для корректной работы lcd- и tsc-контроллеров надо внести следующие исправления (файлы, содержащие настройки device tree, у меня находятся в директории /media/Data/Kernel/bbb/bb-kernel/KERNEL/arch/arm/boot/dts):

1) добавим файлы настройки lcd-панели с разрешением 800x480:

-  файл настройки разрешения и частоты LCD (am335x-panel-800x480.dtsi):

&lcdc {
status = "okay";
};

/ {
/* Embest 7 inch LCD cape: */
panel {
compatible = "tilcdc,panel";
pinctrl-names = "default";
pinctrl-0 = <&lcd_cape_pins>;
panel-info {
ac-bias           = <255>;
ac-bias-intrpt    = <0>;
dma-burst-sz      = <16>;
bpp               = <32>;
fdd               = <0x80>;
tft-alt-mode      = <0>;
stn-565-mode      = <0>;
mono-8bit-mode    = <0>;
sync-edge         = <0>;
sync-ctrl         = <1>;
raster-order      = <0>;
fifo-th           = <0>;
};
display-timings {
native-mode = <&timing0>;
timing0: 800x480 {
hactive         = <800>;
vactive         = <480>;
hback-porch     = <40>;
hfront-porch    = <40>;
hsync-len       = <48>;
vback-porch     = <30>;
vfront-porch    = <13>;
vsync-len       = <3>;
clock-frequency = <30000000>;
hsync-active    = <0>;
vsync-active    = <0>;
};
};
};
};

- файл мультиплексирования LCD-пинов (am335x-pinmux-panel-800x480.dtsi):
#include <dt-bindings/board/am335x-bbw-bbb-base.h>
#include "am335x-panel-800x480.dtsi"

/* standard */

&am33xx_pinmux {
  lcd_24bit_pins: pinmux_lcd_24bit_pins {
    pinctrl-single,pins = <
        0xa0 0x08
        0xa4 0x08
0xa8 0x08
0xac 0x08
0xb0 0x08
0xb4 0x08
0xb8 0x08
0xbc 0x08
0xc0 0x08
0xc4 0x08
0xc8 0x08
0xcc 0x08
0xd0 0x08
0xd4 0x08
0xd8 0x08
0xdc 0x08
0xe0 0x00
0xe4 0x00
0xe8 0x00
0xec 0x00
>;
  };
};

/ {
panel {
pinctrl-0 = <&lcd_24bit_pins>;
};

};

2) изменение файла am355x_boneblack.dts (который подключается в файле am355x_boneblack.dtb ):

- подключим использование только что созданных файлов lcd-панели:

#include "am335x-panel-800x480.dtsi"
#include "am335x-pinmux-panel-800x480.dtsi"

- закомментим подключение настроек hdmi-контроллера:

/* #include "am335x-peripheral-nxp-hdmi.dtsi" */
/* #include "am335x-bone-pinmux-nxp-hdmi.dtsi" */

3) изменения файла am33xx.dtsi:

- включаем использование контроллера lcdc:

lcdc: lcdc@4830e000 {
compatible = "ti,am33xx-tilcdc";
reg = <0x4830e000 0x1000>;
interrupt-parent = <0x1>;
interrupts = <0x24>;
ti,hwmods = "lcdc";
status = "okay";
};


- включаем использование четырех пинов tsc-/adc-контроллера для передачи информации о прикосновениях (4-wire touchscreen):

tscadc: tscadc@44e0d000 {
  compatible = "ti,ti-tscadc";
  reg = <0x44e0d000 0x1000>;

  interrupt-parent = <&intc>;
  interrupts = <16>;
  ti,hwmods = "adc_tsc";
  status = "okay";

  tsc {
    ti,wires = <4>;
    ti,x-plate-resistance = <200>;
    ti,coordinate-readouts = <5>;
    ti,touch-type = <2>;
    ti,wire-config = <0x00 0x11 0x22 0x33>;
  };

  adc {
    ti,adc-channels = <4 5 6 7>;
  };

};

Запускаем пересборку ядра:

cd /media/Data/Kernel/bbb/bb-kernel/
./tools/rebuild.sh


Нам нужно подключить в конфигурации сборку следующих модулей ядра:

1) ti_am335x_tscadc.ko(CONFIG_MFD_TI_AM335X_TSCADC);
2) ti_am335x_tsc.ko(CONFIG_TOUCHSCREEN_TI_AM335X_TSC);
3) ti_am335x_adc.ko(CONFIG_TI_AM335X_ADC).


Аналогичная сборка драйверов (модулей) для другой 4-wire тачскрин-панели подробно описана тут.

Сформируем microsd-карту для записи и прошьем наш beagle bone в соответствии с этим руководством.

Использованный материал:
1) http://www.waveshare.com/wiki/LCD_CAPE_(7inch)

Ссылки (написание своего драйвера для тачскрина waveshare):
1) https://habr.com/ru/post/267655/

Обновление прошивки операторской панели Weintek MT607i

У нас есть операторская панель Weintek MT607i ( описание ), которая работает на базе WinCE 5.0. Процедура прошивки устройства обновленным бинарником выглядит следующим образом (в официальном описании пункт "WinCE Image Updating Only"). Скачиваем стабильный бинарник из следующей папки ftp-сервера Weintek. На момент написания статьи файл Readme.txt, содержащий описание имеющихся там файлов, говорил, что последней стабильной для английского языка является версия за 2012/4/25 NK_20120425.zip, разархивируем, получим файл NK.bin. Копируем на пустую SD-карту, отформатированную в Fat32, файл NK.bin (ВАЖНО! Карта должна быть размером 1GB (может быть 2GB - не тестил, но 4GB, 8GB и больше железка не видит и читать NK.bin c них не хочет)). Ставим переключатель 3 на задней части панели (DIP switch 3 ON). Включаем операторскую панель и ждем, пока горит красный светодиод под надписью COM на передней части панели. Потом выключаем панель, вынимаем карту. Операторская панель содержит обновленный образ WinCE.

Использованный материал:
1) ftp://ftp.weintek.com/mt600/DataSheet/MT607i_DataSheet_ENG_120814.pdf
2) ftp://ftp.weintek.com/mt600/MT600iV1/MT600i_WinCE_OS_Update_Procedure-05182010.pdf

понедельник, 22 августа 2016 г.

Чтение значения ADC с платы BBB

BBB имеет восемь встроенных пинов АЦП. Для того, чтобы на BBB появились соответствующие устройства, надо включить сборку следующих модулей при конфигурировании ядра (у меня 4.1.0-rc1-bone0):

1) ti_am335x_tscadc.ko(CONFIG_MFD_TI_AM335X_TSCADC);
2) ti_am335x_adc.ko(CONFIG_TI_AM335X_ADC). 


Модули лучше сделать встроенными (build-in): соответствующие опции будут выделены звездочкой (*). Модуль adc зависит от tscadc, поэтому настойки типа сборки касаются сразу всех модулей.

Необходимые опции menuconfig: 

1) ti_am335x_adc.ko(CONFIG_TI_AM335X_ADC)

Device Drivers --->
 [*] Industrial I/O support --->
   [*] Enable buffer support within IIO
   <*> Industrial I/O lock free software ring
     Analog to digital converters --->
       <*> TI's AM335X ADC driver


2) ti_am335x_tscadc.ko(CONFIG_MFD_TI_AM335X_TSCADC)

Device Drivers --->
  Multifunction device drivers --->
    <*> TI ADC / Touch Screen chip support

В device tree для корректной работы adc надо внести следующие исправления:

1) файл bb-kernel/KERNEL/arch/arm/boot/dts/am33xx.dtsi :

...
tscadc: tscadc@44e0d000 { compatible = "ti,am3359-tscadc"; reg = <0x44e0d000 0x1000>; interrupt-parent = <&intc>; interrupts = <16>; ti,hwmods = "adc_tsc"; status = "okay"; tsc { compatible = "ti,am3359-tsc"; }; adc { compatible = "ti,am3359-adc"; ti,adc-channels = <0 1 2 3 4 5 6 7>; }; };
...

В результате после загрузки в директории /sys/bus/iio/devices/iio:device0  должны появиться устройства in_voltage0_raw,  in_voltage1_raw ... , in_voltage7_raw:

cd /sys/bus/iio/devices/iio:device0
ls -la

Вывод:

root@arm:/sys/bus/iio/devices/iio:device0# ls -la
total 0
drwxr-xr-x 5 root root    0 Jan  1 00:03 .
drwxr-xr-x 4 root root    0 Jan  1 00:03 ..
drwxr-xr-x 2 root root    0 Jan  1 00:03 buffer
-r--r--r-- 1 root root 4096 Jan  1 00:03 dev
-rw-r--r-- 1 root root 4096 Jan  1 00:03 in_voltage0_raw
-rw-r--r-- 1 root root 4096 Jan  1 00:03 in_voltage1_raw
-rw-r--r-- 1 root root 4096 Jan  1 00:03 in_voltage2_raw
-rw-r--r-- 1 root root 4096 Jan  1 00:03 in_voltage3_raw
-rw-r--r-- 1 root root 4096 Jan  1 00:03 in_voltage4_raw
-rw-r--r-- 1 root root 4096 Jan  1 00:03 in_voltage5_raw
-rw-r--r-- 1 root root 4096 Jan  1 00:03 in_voltage6_raw
-rw-r--r-- 1 root root 4096 Jan  1 00:03 in_voltage7_raw
-r--r--r-- 1 root root 4096 Jan  1 00:03 name
lrwxrwxrwx 1 root root    0 Jan  1 00:03 of_node -> ../../../../../../firmware/devicetree/base/ocp/tscadc@44e0d000/adc
drwxr-xr-x 2 root root    0 Jan  1 00:03 power
drwxr-xr-x 2 root root    0 Jan  1 00:03 scan_elements
lrwxrwxrwx 1 root root    0 Jan  1 00:03 subsystem -> ../../../../../../bus/iio
-rw-r--r-- 1 root root 4096 Jan  1 00:03 uevent


Получение данных с первого из восьми встроенных АЦП:

cd /sys/bus/iio/devices/iio:device0
cat ./in_voltage0_raw

Вывод:
6

Источники:
1) http://processors.wiki.ti.com/index.php/AM335x_ADC_Driver's_Guide
2) http://beagleboard.org/support/BoneScript/potentiometer/
3) https://www.linux.com/learn/how-get-analog-input-beaglebone-black
4) https://www.youtube.com/watch?v=ncHVFsxGy9w

понедельник, 25 июля 2016 г.

Создание установочной флешки ОС Ubuntu/Fedora

Под линукс. У меня установлена Ubuntu 16.04 amd64/Fedora Workstation 34 x86_64. Я хочу создать liveusb-флешку с Ubuntu 14.04.4/Fedora Workstation 34 x86_64.

1. Скачиваем исошник 14.04.4 amd64 отсюда. Набираем в поисковой строке юнити "usb". В русской убунте приложение называется "Создание загрузочной флешки", в стандартной с американским языком "Startup Disk Creator". Вставляем usb-флешку размером минимум 2GB.

При установке версии 10.04.4 amd64 возникли проблемы. При записи при помощи "Startup Disk Creator" BIOS не видит флешку и не загружается с нее. Образ удалось записать под Windows с помощью программы PenDrive на флешку размером не больше 4Gb, предварительно отформатировав в FAT (не FAT32). Непосредственно при записи образа в PenDrive надо отказаться от форматирования флешки. Если взять флешку размером больше 4GB, её нельзя будет отформатировать в FAT16, только в FAT32. Это приводит к ошибке при загрузке после BIOS'а: "No DEFAULT or UI configuration directive found!".

2. Для Fedora Workstation 34 x86_64 скачиваем исошник отсюда. Набираем в поисковой строке приложений "Fedora Media Writer", устанавливаем, запускаем приложение. Вставляем usb-флешку размером минимум 2GB, записываем.

Под виндой. Сделаем liveusb-флешку под windows 7. Скачиваем исошник Fedora Workstation 34 x86_64 отсюда. Приложение для записи на флешку Fedora Media Writer отсюда. Устанавливаем, запускаем приложение. Вставляем usb-флешку размером минимум 2GB, записываем.

четверг, 31 марта 2016 г.

Полезные opensource-приложения для работы с BBB из-под windows-машины

1. Реализация сканера портов nmap - Zenmap.
2. Реализация ssh-клиента - Putty.
3. Аналог/реализация связки mc + shell-соединение через ssh в одной из панелей - WinSCP.
4. Бинарно-совместимый аналог dd - Win32 Disk Imager.

среда, 30 марта 2016 г.

Настройка DHCP-сервера на windows-ноуте для подключения к BBB

Ставим на ноут с Windows 7 Open DHCP Server через виндовый интсталлятор в папку по умолчанию c:\OpenDHCPServer (в папках с длинными путями a-la c:\Program Files\ и т.д. могут быть проблемы с запуском линуксовых приложений).

Обжимаем crossover ethernet-кабель и подключаем ноут к плате BeagleBone Black под управлением Debian 8 с настроенным по умолчанию получением ip-адреса через DHCP.

Выставляем в ноуте в настройках ethernet-адаптера статический ip-адрес 192.168.100.1 и маску 255.255.255.0. Открываем  в вашем любимом виндовом текстовом редакторе (у меня Notepad++) файл OpenDHCPServer.ini. В нем находим секцию [RANGE_SET] и устанавливаем параметр DHCPRange=192.168.100.10-192.168.100.200. Кроме этого, надо задать фильтрацию секции либо по MAC-адресу биглбона, либо по подсети (192.168.100.1). Чтобы биглбон с любым mac-адресом попадал в нашу секцию адресов (RANGE_SET) добавим строку FilterMacRange=00:00:00:00:00:00-ff:ff:ff:ff:ff:ff. Либо фильтрацию можно сделать через наш статический адрес следующим образом FilterSubnetSelection=192.168.100.1. Полезно стереть секции, специфичные для конкретных mac-адресов, которые имеются в файле настроек по умолчанию. Прописываем в секции [LISTEN_ON] наш статический ip-адрес - таким образом мы задается фильтр адресов, которых надо слушать серверу. Результирующий файл настроек OpenDHCPServer.ini под виндой у меня получисля следующим:

[LISTEN_ON]
192.168.100.1

[RANGE_SET]
DHCPRange=192.168.100.10-192.168.100.200
FilterMacRange=00:00:00:00:00:00-ff:ff:ff:ff:ff:ff
FilterSubnetSelection=192.168.100.1
SubnetMask=255.255.255.0


Таким образом мы установили пул, из которого будут выбираться адреса для раздачи. Запускаем на ноуте командный интерпретатор cmd и переходим в папку с сервером (cd c:\OpenDHCPServer). Запускаем RunStandAlone.bat. В консоли появляется ожидание подключения сетевого кабеля.

Запускаем BBB. На стадии загрузки ядра производится запрос адреса. Процесс получения отображается в консоли на ноуте. На BBB после загрузки можно будет проверить адрес через ifconfig. Они должны совпасть. После этого можно зайти c ноута на BBB через winscp или putty.

Использованные источники:
1) https://sourceforge.net/projects/dhcpserver/files/Open%20DHCP%20Server%20%28Regular%29/OpenDHCPServerManual.pdf/download

Установка IDE и компилятора Arduino на Ubuntu 14.04

Устанавливаем пакеты:

sudo apt-get install arduino arduino-core


Использованный материал:
1) http://playground.arduino.cc/Linux/Ubuntu

суббота, 20 февраля 2016 г.

Установка Apache2, MySQL, PHP5, phpMyAdmin на Ubuntu 14.04.3

Для экспериментов на локальном компе (Ubuntu 14.04.3) с известными php-фреймворками (например, joomla, drupal, modx, zend) следует установить БД MySQL, интерпретатор PHP, веб-сервер Apache2 и веб-приложение phpMyAdmin для работы с MySQL из браузера. 
БД, интерпретатор и веб-сервер на Ubuntu объединены в набор пакетов LAMP (Linux, Apache, MySQL, PHP):

sudo apt-get install lamp-server^ phpmyadmin

После корректной установки упомянутых пакетов в браузере должна открываться страница http://localhost c дефолтным содержимым (отображаемая страница находится по адресу /var/www/html/index.html). Если этого не происходит, можно перезапустить веб-сервер (sudo service apache2 restart).

Для того, чтобы получить доступ к веб-приложению phpMyAdmin через веб-сервер, необходимо известить последний о присутствии первого. Это можно сделать, создав символьную ссылку, связывающую конфигурацию веб-приложения (/etc/phpmyadmin/apache.conf) с веб-сервером (папка настроек /etc/apache2/conf-available/):

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf

Затем необходимо подключить конфигурацию скриптом внутри веб-сервера Apache2 (скрипт создаст соответствующую символьную ссылку в папке /etc/apache2/conf-enabled на папку /etc/apache2/conf-available):

sudo a2enconf phpmyadmin
sudo service apache2 reload

Теперь должна быть доступна страница http://localhost/phpmyadmin.

Если возникает ошибка "The mbstring extension is missing. Please check your PHP configuration.", необходимо поставить пакет php-mbstring:

sudo apt install php-mbstring

Использованные материалы:

пятница, 12 февраля 2016 г.

Удаление и создание БД mysql из консоли на Ubuntu 14.04.3

Подключаемся из консоли к серверу:

mysql -u root -p

Вводим рутовый пароль, который мы указали при установке mysql.
Удаляем старую БД (у меня mydb):

mysql> drop database mydb;

Создаем новую БД mydb, используя кодировку (character set) utf8 и сравнение (collate) utf8_general_ci:

mysql> create database mydb character set utf8 collate utf8_general_ci ;

Использованный материал:
1) https://habrahabr.ru/post/10983/
2) http://dev.mysql.com/doc/refman/5.7/en/charset-database.html

понедельник, 8 февраля 2016 г.

Установка python 2.7.11+, django 1.9.5 через pip, используя virtualenv под Ubuntu 16.04

Установка питона из репозитария ubuntu 16.04:

sudo apt-get install python

Проверяем версию python:

python --version
Python 2.7.11+

Установка пакетного менеджера pip:

sudo apt-get install python-pip

Установка virtualenv:

sudo pip install virtualenv

Создадим проект для этого учебного курса (я использую папку /media/Data/Projects/):

mkdir /media/Data/Projects/mysite
cd /media/Data/Projects/mysite

Создадим виртуальное окружение для него:

virtualenv dj1_9_5

Чтобы активировать окружение:

source dj1_9_5/bin/activate

Строка должна принять вид: (dj1_9_5) adil@adil:/media/Data/Projects/mysite$
Теперь устанавливаем django через pip под virtualenv:

pip install django==1.9.5

Проверяем версию django:

django-admin --version
1.9.5


Для запуска упомянутого учебного курса надо перейти в папку с проектом и выполнить (будем использовать локальный ip-адрес 127.0.0.1 и порт 8000):

python manage.py runserver 127.0.0.1:8000

Чтобы выйти из виртуального окружения, нужно набрать:

deactivate

понедельник, 1 февраля 2016 г.

Установка python 2.7.6 и django 1.6.1 в Windows 7 amd64

У меня ОС Windows 7 amd 64.

1. Устанавливаем python. Скачиваем python 2.7.6 отсюда. Устанавливаем в локальную папку (я буду использовать d:\Python27), устанавливаем for all users. Добавляем путь к бинарникам и скриптам в переменную окружения Path (Пуск-Компьютер-Свойства-Дополнительные параметры системы-Дополнительно-Переменные среды-Системные переменные):

D:\Python27;D:\Python27\Scripts

Проверяем версию:

python --version
2.7.6

2. Устанавливаем setuptools. Скачиваем файл ez_setup.py отсюда и сохраняем его в папку D:\Python27. Запускаем командный интерпретатор ("winkey+r"), затем набираем "cmd", переходим на диск d: (d:), затем в папку (cd D:\Python27), запускаем установку пакета (python ez_setup.py):

d:
cd D:\Python27
python ez_setup.py

Мы установили версию 19.6.2 пакета setuptools.

3. Устанавливаем pip c помощью easy_install. В командном интерпретаторе набираем:

easy_install pip

4. Устанавливаем virtualenv:

pip install virtualenv

5. Создадим виртуальное окружение для него:

virtualenv dj1_6_1

Чтобы активировать окружение, перейдем в папку со скриптами и запустим activate.bat:

cd d:\Python27\dj1_6_1\Scripts\
activate.bat

Строка должна принять вид: (dj1_6_1) d:\Python27\dj1_6_1\Scripts>

6. Пропишем путь к скриптам в переменную Path, чтобы запускать скрипиты activate/deactivate, не набирая полного пути (порядок действий как и в пункте 1):

D:\Python27\dj1_6_1\Scripts

7. Устанавливаем django c помощью pip, в командном интерпретаторе набираем:

cd d:\Python27
pip install django==1.6.1

Он нам поставил django 1.6.1. Это можно проверить, выполнив:

python manage.py --version
1.6.1

8. Для примера запустим  проект и приложение от официального учебного курса по django (локализация от команды djbook.ru). Для запуска переходим в папку с проектом (у меня F:\Projects\Python\mysite) и запускаем сервер:

cd F:\Projects\Python\mysite
python manage.py runserver 127.0.0.1:8000

Теперь из браузера можно посмотреть страницы работающего сервера, например http://127.0.0.1:8000/polls/.

Использованные материалы:
1) https://docs.djangoproject.com/en/1.9/howto/windows/
2) https://virtualenv.pypa.io/en/latest/userguide.html
3) http://stackoverflow.com/questions/4527958/python-virtualenv-questions