14.08.14 Первый запуск SomZ
Korogodin (обсуждение | вклад) (→Лог загрузки) |
Dneprov D (обсуждение | вклад) (→Лог загрузки) |
||
(не показаны 6 промежуточных версий 3 участников) | |||
Строка 146: | Строка 146: | ||
3.12.0-somz-dirty | 3.12.0-somz-dirty | ||
</source> | </source> | ||
+ | |||
+ | Пароль - "plda". | ||
== Лог загрузки == | == Лог загрузки == | ||
Строка 151: | Строка 153: | ||
После перезагрузки девайса настройки остаются в силе. От момента включения до ответа на пинг проходит около 10 секунд. | После перезагрузки девайса настройки остаются в силе. От момента включения до ответа на пинг проходит около 10 секунд. | ||
− | {{Начало скрытого блока|Заголовок = | + | {{Начало скрытого блока|Выравнивание_заголовка = left| Ссылка = left|Заголовок = ЛОГ ЗАГРУЗКИ:}} |
<source lang="bash"> | <source lang="bash"> | ||
root@plda:~# dmesg | root@plda:~# dmesg | ||
Строка 319: | Строка 321: | ||
zynq_gpio e000a000.ps7-gpio: gpio at 0xe000a000 mapped to 0xd0850000 | zynq_gpio e000a000.ps7-gpio: gpio at 0xe000a000 mapped to 0xd0850000 | ||
</source> | </source> | ||
+ | |||
+ | == Hello world == | ||
+ | |||
+ | На моей linux-машине предварительно установлен ISE 14.7, причем в Embedded-конфигурации. Традиционно в терминале определяем переменные: | ||
+ | <source lang="bash"> | ||
+ | source /opt/Xilinx/14.7/ISE_DS/settings64.sh | ||
+ | </source> | ||
+ | |||
+ | Теперь bash знает, где искать кросскомпиляторы arm-xilinx-linux-gnueabi-gcc и arm-xilinx-linux-gnueabi-g++. | ||
+ | |||
+ | === С === | ||
+ | |||
+ | Начнем с программы на Си, создаем файл <code>hello.c</code>: | ||
+ | <source lang="C"> | ||
+ | #include <stdio.h> | ||
+ | |||
+ | int main(void) | ||
+ | { | ||
+ | printf("Hello, world\n"); | ||
+ | return 0; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | Компилируем | ||
+ | <source lang="bash"> | ||
+ | arm-xilinx-linux-gnueabi-gcc hello.c -o hello | ||
+ | </source> | ||
+ | |||
+ | Копируем на девайс | ||
+ | <source lang="bash"> | ||
+ | scp ./hello root@192.168.0.156:/root/ | ||
+ | </source> | ||
+ | |||
+ | Запускаем | ||
+ | <source lang="bash"> | ||
+ | root@plda:~# ./hello | ||
+ | Hello, world | ||
+ | </source> | ||
+ | |||
+ | === С++ === | ||
+ | |||
+ | Создаем файл <code>hello.cpp</code>: | ||
+ | <source lang="C"> | ||
+ | #include <iostream> | ||
+ | |||
+ | using namespace std; | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | cout << "Hello, world!" << endl; | ||
+ | return 0; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | Компилируем | ||
+ | <source lang="bash"> | ||
+ | arm-xilinx-linux-gnueabi-g++ hello.cpp -o hello_cpp | ||
+ | </source> | ||
+ | |||
+ | Копируем на девайс | ||
+ | <source lang="bash"> | ||
+ | scp ./hello_cpp root@192.168.0.156:/root/ | ||
+ | </source> | ||
+ | |||
+ | Запускаем | ||
+ | <source lang="bash"> | ||
+ | root@plda:~# ./hello_cpp | ||
+ | Hello, world! | ||
+ | </source> | ||
+ | |||
+ | Вердикт - кросскомпиляторы от Xilinx'а применимы для данного BSP. | ||
[[Категория:HOWTO]] | [[Категория:HOWTO]] | ||
[[Категория:Impala]] | [[Категория:Impala]] | ||
+ | [[Категория:Oryx]] | ||
{{wl-publish: 2014-08-14 19:35:28 +0400 | Korogodin }} | {{wl-publish: 2014-08-14 19:35:28 +0400 | Korogodin }} |
Текущая версия на 00:28, 17 декабря 2014
Пора пощупать новую игрушку
Содержание |
[править] Вводные
В комплекте идет блок питания на 12 В. Питание возможно как от него, так и от USB OTG.
Стартер-кит поставляется с микро-SD флеш-картой, содержащей два раздела - boot и debian rootfs. Попробуем поработать с этим bsp. На плате bootsel есть переключатель источника загрузки - SD или QSPI. Выбираем SD.
В качестве интерфейса с внешним миром имеем Ethernet, достучаться до которого с ходу не получилось, и RS-USB в виде разъема USB B-type. При подключении USB к PC udev добавляет /dev/ttyUSB0
, через который с помощью ckermit мы можем получить терминал. Для этого воспользуемся традиционным скриптом:
set line /dev/ttyUSB0
set FLOW none
set speed 115200
set serial 8n1
SET CARRIER-WATCH Off
connect
Не забываем chmod +x
.
После запуска скрипта имеем приветственное окно Debian с запросом логина и пароля:
Connecting to /dev/ttyUSB0, speed 115200
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
Debian GNU/Linux 7 plda ttyPS0
plda login: root
Password:
Методом перебора найдена нужная комбинация: логин root, пароль plda:
Linux plda 3.12.0-somz-dirty #7 SMP PREEMPT Tue Mar 11 10:46:29 EET 2014 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@plda:~# ls -la
total 24
drwx------ 3 root root 4096 Jan 1 00:01 .
drwxrwxr-x 23 1000 1000 4096 Jan 1 00:03 ..
-rw------- 1 root root 340 Jan 1 1970 .bash_history
-rw-r--r-- 1 root root 570 Mar 11 2014 .bashrc
drwx------ 3 root root 4096 Jan 1 00:01 .config
-rw-r--r-- 1 root root 140 Mar 11 2014 .profile
root@plda:~# ifconfig
eth0 Link encap:Ethernet HWaddr d0:d1:d2:d3:d4:d5
inet addr:172.20.2.162 Bcast:172.20.255.255 Mask:255.255.0.0
inet6 addr: fe80::d2d1:d2ff:fed3:d4d5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84 errors:0 dropped:1 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6947 (6.7 KiB) TX bytes:648 (648.0 B)
Interrupt:54 Base address:0xb000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 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)
Прокинуть ssh до 172.20.2.162 не удается, пинг не идет, nmap утверждает, что все порты закрыты.
[править] Установка static IP
Добавляем в /etc/network/interfaces
:
iface eth0 inet static
address 192.168.0.156
netmask 255.255.255.0
gateway 192.168.0.1
Даем команду на рестарт сетевых интерфейсов:
...и теперь у девайса IP из нашей подсети:
eth0 Link encap:Ethernet HWaddr d0:d1:d2:d3:d4:d5
inet addr:192.168.0.156 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::d2d1:d2ff:fed3:d4d5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:100 errors:0 dropped:1 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8951 (8.7 KiB) TX bytes:1296 (1.2 KiB)
Interrupt:54 Base address:0xb000
[править] SSH
Девайс пингуется:
PING 192.168.0.156 (192.168.0.156) 56(84) bytes of data.
64 bytes from 192.168.0.156: icmp_seq=1 ttl=64 time=2.41 ms
64 bytes from 192.168.0.156: icmp_seq=2 ttl=64 time=1.17 ms
64 bytes from 192.168.0.156: icmp_seq=3 ttl=64 time=1.84 ms
...и у него открыт только 22 порт, т.е. SSH:
Starting Nmap 6.40 ( http://nmap.org ) at 2014-08-15 10:39 MSK
Nmap scan report for 192.168.0.156
Host is up (0.0012s latency).
Not shown: 999 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.0p1 Debian 4 (protocol 2.0)
MAC Address: D0:D1:D2:D3:D4:D5 (Unknown)
Удается зайти на устройство по SSH, жизнь налаживается:
Linux plda 3.12.0-somz-dirty #7 SMP PREEMPT Tue Mar 11 10:46:29 EET 2014 armv7l
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jan 1 00:29:16 1970
root@plda:~# uname -r
3.12.0-somz-dirty
Пароль - "plda".
[править] Лог загрузки
После перезагрузки девайса настройки остаются в силе. От момента включения до ответа на пинг проходит около 10 секунд.
Из интересного - у нас 256 Мб ОЗУ, rootfs на ext4 и строчка:
[править] Hello world
На моей linux-машине предварительно установлен ISE 14.7, причем в Embedded-конфигурации. Традиционно в терминале определяем переменные:
Теперь bash знает, где искать кросскомпиляторы arm-xilinx-linux-gnueabi-gcc и arm-xilinx-linux-gnueabi-g++.
[править] С
Начнем с программы на Си, создаем файл hello.c
:
int main(void)
{
printf("Hello, world\n");
return 0;
}
Компилируем
Копируем на девайс
Запускаем
Hello, world
[править] С++
Создаем файл hello.cpp
:
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
return 0;
}
Компилируем
Копируем на девайс
Запускаем
Hello, world!
Вердикт - кросскомпиляторы от Xilinx'а применимы для данного BSP.
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.