Привет, В данной статье собрана информация из различных источников о переводе досок семейства Cubieboard из разряда бесполезных игрушек.
Платформа отладки для продвинутого разработчика C#.
Это Linux, это хардкор, ребята Нам нужна SD-карта объемом не менее 2 ГБ.
И собственно само перепрофилированное устройство, в моем случае это Cubieboard2 Для начала вам нужна уже установленная на Nand и работающая система.
В моем случае это было lubuntu-сервер-13.08-v1.06 .
Так как оттуда вам понадобится один небольшой, но очень важный файл.
Эта система больше не используется.
Если вы хотите написать что-то вроде «Hello C# world в Linux», то вам этого достаточно, так как в данную систему входит пакет на базе mono версии 2.10.8.1. К сожалению, в этой версии есть несколько неприятных ошибок, которые не позволяют сделать что-то более серьезное.
А кто сказал, что будет легко, это.
Собственно, я уже повторяюсь.
Итак, продолжим.
Здесь: https://romanrm.net/a10/debian загрузите установщик для вашего SoC. Почему этот? Потому что это один из немногих, где система установлена на необходимом минимуме, без кучи изначально ненужных пакетов.
Распакуйте и запишите на SD-карту.
В Linux это можно сделать одной командой: bzip2 -dc a20-debian-server-2gb*.
bz2 > /dev/sdX Где /dev/sdX путь к вашей SD-карте.
Под Windows его можно распаковать, например, с помощью 7Zip и запишите на SD-карту, используя Win32дискимагер .
Вставьте SD-карту в устройство и загрузитесь.
Для особых типов устройств, таких как МК802, требуются дополнительные действия по установке загрузчика, но мне этого делать не пришлось.
Необходимо иметь локальный доступ к устройству, например монитор+клавиатура, либо я использовал переходник USB-UART TTL 3,3В, параметры 115200/8/N/1. Потому что сеть пока не работает. Имя пользователя/пароль для входа: корень/пароль Монтируем наш Nand и копируем оттуда тот небольшой, но очень важный файл.
Чтобы не искать каждый раз устройство на просторах домашней сети, так как в устройствах, собранных на А20, разработчики не удосужились присвоить устройству жидкий МАС-адрес, и после каждой перезагрузки он генерируется случайным образом, соответственно DHCP-сервер назначает другой IP-адрес.cp /boot/script.bin /boot/script.bak mount /dev/nanda /mnt cp /mnt/script.bin /boot/ umount /dev/nanda sync
Мы поместили это в его файл /etc/сеть/интерфейсы следующий: auto lo
iface lo inet loopback
auto eth0
# for DHCP
#iface eth0 inet dhcp
# hwaddress ether c0:b0:c0:a8:1:f5
# Static IP
iface eth0 inet static
hwaddress ether c0:bo:c0:a8:1:17
address 192.168.1.23
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
nameserver 192.168.1.1
Генерация новых ключей для SSH-сервера, смена пароля root rm /etc/ssh/ssh_host_*
dpkg-reconfigure openssh-server
passwd
reboot
После перезагрузки вы сможете подключиться к системе с помощью нашего любимого SSH-клиента.
Обновляем систему до актуального состояния, устанавливаем локали и время apt-get update
aptitude dist-upgrade
dpkg-reconfigure locales
dpkg-reconfigure tzdata
Если вы используете SD-карту объемом более 2 ГБ, то имеет смысл расширить раздел данных, чтобы охватить всю карту.
Делается это следующим образом на примере уже переразбитого диска: root@debian:/dev# fdisk /dev/mmcblk0
Command (m for help): p
Disk /dev/mmcblk0: 8018 MB, 8018460672 bytes
4 heads, 16 sectors/track, 244704 cylinders, total 15661056 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cb560
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 2048 127071 62512 e W95 FAT16 (LBA)
/dev/mmcblk0p2 131072 15661055 7764992 83 Linux
Давайте посмотрим, где находится раздел 2. Важно сохранить начальный адрес.
В моем случае это было 131072. Удаляем раздел с данными, не пугайтесь, физически мы их не удаляем, даже если в этот момент что-то пойдет не так.
Ничего плохого не произойдет. Потому что данные еще не были записаны на диск.
Command (m for help): d
Partition number (1-4): 2
Создать новый раздел Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (1-4, default 2):
Using default value 2
First sector (127072-15661055, default 127072):
Здесь важно не ошибиться и не согласиться со значениями по умолчанию, а ввести ранее записанное значение первого сектора раздела.
First sector (127072-15661055, default 127072): 131072
Last sector, +sectors or +size{K,M,G} (131072-15661055, default 15661055):
Using default value 15661055
Проверяем, что все правильно и записываем изменения в таблицу разделов.
Потребуется перезагрузка.
Command (m for help): p
Disk /dev/mmcblk0: 8018 MB, 8018460672 bytes
4 heads, 16 sectors/track, 244704 cylinders, total 15661056 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000cb560
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 2048 127071 62512 e W95 FAT16 (LBA)
/dev/mmcblk0p2 131072 15661055 7764992 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
Теперь вам нужно сообщить системе, что она может использовать все свободное пространство раздела.
resize2fs /dev/mmcblk0p2
И мы проверяем root@debian:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 7.3G 746M 6.3G 11% /
.
skip.
Уф, теперь начинается самое интересное.
Так как официального порта для Armv7l нет, по крайней мере при попытке установки сообщает, что mono-runtime нет в списке доступных пакетов.
Нам нужна экспериментальная версия.
Для начала нам нужно перенести систему со стабильной ветки Wheezy на sid+experimental.
Вот файл /etc/apt/sources.list к следующему просмотру deb ftp://ftp.debian.org/debian experimental main
deb ftp://ftp.debian.org/debian sid main contrib non-free
Дальше все стандартно apt-get update
apt-get dist-upgrade
reboot
Ну и в чем именно заключалась вся эта суета? root@debian:~#apt-get -t experimental install mono-devel
.
skip.
root@debian:~# uname -a
Linux debian 3.4.79-r0-s20-rm2+ #54 SMP Tue Feb 18 01:09:07 YEKT 2014 armv7l GNU/Linux
root@debian:~t# mono -V
Mono JIT compiler version 3.2.8 (Debian 3.2.8+dfsg-4)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: normal
Notifications: epoll
Architecture: armel,vfp+hard
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen
Теги: #cubieboard #Debian #mono 3 #manual #C++
-
Кинжал 2 – Это Элементарно (Часть 2)
19 Oct, 24 -
Новости Отрасли За Неделю
19 Oct, 24 -
Защита Сау Тп Более Американская
19 Oct, 24 -
Сборка Мини-Куба Бедлама
19 Oct, 24