A2 & Oberon GOOGLE trans to English      Помощь      Поиск      Пользователи  Файловый архив


 Страниц (1): [1]   

> Без описания
qrx
Отправлено: 17 Апреля, 2016 - 17:06:39
Post Id


Newbie


Покинул форум
Сообщений всего: 1
Дата рег-ции: Апр. 2016  
Откуда: Электросталь
Репутация: 0




Первый раз запустил A2.

Скачал с https://sourceforge.net/projects/a2oberon/files/ несколько образов A2
A2_Rev-5668_serial-trace.iso
A2_Rev-6498_serial-trace.iso

Запустил их на VMware. А2 успешно загружается.
В главном меню я выбираю Apps -> WebBrowser.
Браузер загружает страницу bluebottle.ethz.ch, которая не загружается.
Я убираю этот адрес и пишу другой, нажимаю кнопку go, но ничего не происходит.

Как в А2 проверить настройку сети, работает ли ping, как можно управлять браузером?

Спасибо
 
 Top
sage Администратор
Отправлено: 18 Апреля, 2016 - 13:56:22
Post Id


Full Member


Покинул форум
Сообщений всего: 218
Дата рег-ции: Июнь 2008  
Откуда: Киев, Украина
Репутация: 0




qrx пишет:
Первый раз запустил A2.
Скачал с https://sourceforge.net/projects/a2oberon/files/ несколько образов A2
A2_Rev-5668_serial-trace.iso
A2_Rev-6498_serial-trace.iso

Проверил на VMware Workstation 7.1.4 build-385536
Образ A2: A2_Rev-6498_serial-trace.iso
Сетевой адаптер в VMware - NAT
Загрузка прошла успешно.
Цитата:
Немножко забегая вперёд, расскажу, как можно быстро организовать обмен файлами между А2 и хост-машиной.
VMware по-умолчанию при создании виртуальной машины предлагает создать и виртуальный диск. Размер роли не играет, можно указать и 1 GB.
Далее, при первом запуске А2 активируем пункт меню Files -> Partitions. Запускается Partition Tool. Находим (VMware Virtual IDE Hard Drive) в списке доступных носителей/разделов. На нём будет два раздела IDE0#0 тип: 256 (Whole disk) и IDE0#1 тип: -1 (Unallocated). Кликаем мышкой на этом неразмеченном разделе и в приложении Partition Tool в нижнем меню выбираем Partitions -> Create. Указываем размер неразмеченного пространства, тип 5 (Extended partition). Далее опять вибираем неразмеченный раздел внутри Extended partition, снова кликаем Partitions -> Create, и на этот раз указываем тип 12 (это FAT32). Далее выбираем созданный раздел FAT32 и в нижнем меню кликаем Partitions -> Format.
Отформатированный раздел можно теперь монтировать. Монтировать просто: кликаем на нужный раздел, нажимаем в нижнем меню FSTools -> Mount. При переключении на FSTools приложение автоматически инициализирует все параметры по-умолчанию, их можно не менять. По-умолчанию новый монтированный раздел будет называться Auto0.
Далее можно, например, выделить часть текста в Kernel log, скопировать в буфер обмена, кликнуть на Edit -> Text в главном меню A2. Запустится Notepad. Вставляем в него текст из буфера. В верхней части окна есть что-то наподобие адресной строки как в браузерах. Пишем в ней, например, Auto0:1.Text, нажимаем кнопку Store - текст сохранится на примонтированный нами раздел под именем 1.Text
Хорошим тоном считается, по завершении работы с разделами FAT32, демонтировать их от системы перед перезагрузкой/выключением, иначе потом в следующий раз при попытке монтировать раздел, будет выдано сообщение в лог, что раздел был некорректно демонтирован, и примонтирован он будет в read-only режиме!
Демонтировать также просто, опять заходим в Partition Tool, выбираем раздел и жмём FSTools -> Unmount.
Далее, после выключения A2, заходим в свойства виртуальной машины и мапим виртуальный диск под какой-то буквой в Windows. Перед повторным запуском A2 необходимо диск отмапить обратно.

И так, смотрим Kernel Log (фрагмент которого я скопировал, описанным выше способом):

InitNetwork: Module initialized. Searching for installed devices...
InitNetwork: LinkDevice 'Loopback' found.
InitNetwork: LinkDevice 'Loopback': Get interface configuration. Error code: 0
InitNetwork: Add interface for LinkDevice 'Loopback'. Error code: 0
{P cpuid= 1, pid= 77
=== Interface ===
Interface name: Loopbackv6
Attached device: Loopback (LinkLinked)
MAC address: 00:00:00:00:00:00:00:00
Local address: ::1
Default routers:
Prefix: ::/64
DNS server: none
}
InitNetwork: Add interface for LinkDevice 'Loopback'. Error code: 0
{P cpuid= 1, pid= 77
=== Interface ===
Interface name: Loopbackv4
Attached device: Loopback (LinkLinked)
MAC address: 00:00:00:00:00:00:00:00
Local address: 127.0.0.1
Netmask: 255.255.0.0
Gateway address:
Subnet: 127.0.0.0
Net broadcast: 127.0.255.255
DNS server: none
}
InitNetwork: LinkDevice 'AM79C970#0' found.
InitNetwork: LinkDevice 'AM79C970#0': Get interface configuration. Error code: 0
InitNetwork: Add interface for LinkDevice 'AM79C970#0'. Error code: 0
{P cpuid= 1, pid= 77
=== Interface ===
Interface name: v6link-localAM79C970#0
Attached device: AM79C970#0 (LinkLinked)
MAC address: 00:0C:29:5B:23:9B:00:00
Local address: E80::20C:9FF:E5B:39B
Default routers:
Prefix: E80::/64
DNS server: none
}
InitNetwork: Add interface for LinkDevice 'AM79C970#0DHCP: Starting DHCP on interface ''. Error code: v4autoAM79C970#00'...

InitNetwork: Finished searching for installed devices.{P cpuid= 0
, pid= 83 DHCP: Discover - xid 1863085837}
{P cpuid= 1, pid= 83 DHCP: BootP reply from ; IP offered: 192.168.77.132}
{P cpuid= 1, pid= 83 DHCP: Offer received - xid 1863085837 msgType 2}
{P cpuid= 1, pid= 83 DHCP: Request - xid 1863085837}
{P cpuid= 1, pid= 83 DHCP: Ack - xid 1863085837 msgType 5
localIP: 192.168.77.132; mask: 255.255.255.0; gateway: 192.168.77.2}
DHCP: DNS.domain set to: localdomain
DHCP: Finished DHCP on interface 'v4autoAM79C970#0'. Error code: 0
{P cpuid= 1, pid= 83
=== Interface ===
Interface name: v4autoAM79C970#0
Attached device: AM79C970#0 (LinkLinked)
MAC address: 00:0C:29:5B:23:9B:00:00
Local address: 192.168.77.132
Netmask: 255.255.255.0
Gateway address: 192.168.77.2
Subnet: 192.168.77.0
Net broadcast: 192.168.77.255
DNS server: 192.168.77.2
}

Мы видим, что A2 успешно установила драйвер для сетевого адаптера (Attached device: AM79C970#0 (LinkLinked))
Перед этим успешно был добавлен Loopback адаптер (Attached device: Loopback (LinkLinked)), это адаптер который рализует интерфейс localhost или 127.0.0.1
А также видим, что на интерфейсе AM79C970#0 успешно отработал DHCP и он автоматически сконфигурирован. В моём случае интерфейс получил адрес 192.168.77.132
qrx пишет:
В главном меню я выбираю Apps -> WebBrowser.
Браузер загружает страницу bluebottle.ethz.ch, которая не загружается.
Я убираю этот адрес и пишу другой, нажимаю кнопку go, но ничего не происходит.

Как это не грустно отмечать, приложение WebBrowser сырое, адрес bluebottle.ethz.ch давно не существует, а он захардкожен в приложении...
Некоторые странички WebBrowser показывать всё же может, и то если странички без CSS стилей.
qrx пишет:
Как в А2 проверить настройку сети

Сеть сконфигурирванна, что видно по содержимому лога.
Проверить, что сеть работает можно косвенно, например, запустив какое-нибудь сетевое приложение.
Например, можно посмотреть на работу приложения VNC Tetris. В A2 есть VNC Tetris Server.
В любом текстовом поле (даже в логе) пишем:

VNCTetrisServer.Run ~

Далее, кликаем на этой строчке средней кнопкой мышки.
VNC Tetris Server стартует и слушает порт 5999.
Скачиваем VNC клиент, например UltraVNC
Строка подключения в моём случае 192.168.77.132:5999, подключаюсь, работает!
Прикрепил картинку, как это у меня выглядит.

qrx пишет:
, работает ли ping

Приложения ping в A2 нет.
qrx пишет:
, как можно управлять браузером?

Таким браузером надо либо не пользоваться, либо написать новый. К сожалению...
qrx пишет:
Спасибо

И Вас благодарю за интересные вопросы! Рад был помочь!
(Добавление)
qrx пишет:
Как в А2 проверить настройку сети

Полезная сетевая утилита, которая опять же не поможет проверить правильность настройки сети, но активные подключения покажет - TCP Tracker (запуск: Inspect -> TCPTraffic).
Например, запустив TCP Tracker увидим, что VNCTetrisServer действительно слушает порт 5999.
Цитата:
Ещё некоторы возможности.
Чтобы сделать в A2 скриншот, достаточно исполнить HotKeys.Open ~, после этого по нажатию клавиши F10 будет делаться скриншот всего экрана.
А для перекидывания файлов с диска на диск, открываем столько копий файлового менеджера сколько нам надо и между ними работает Drag-n-drop.

Прикреплено изображение
A2_VNCTetrisServer_.PNG
 
 Top
sage Администратор
Отправлено: 18 Апреля, 2016 - 21:52:27
Post Id


Full Member


Покинул форум
Сообщений всего: 218
Дата рег-ции: Июнь 2008  
Откуда: Киев, Украина
Репутация: 0




Покопал немного дальше в поисках чего-то подобного утилите ipconfig в A2.
Получить список всех устройств довольно просто.
Вот, примерный код:

MODULE NetworkTest; (** AUTHOR ""; PURPOSE ""; *)

IMPORT
Commands, Plugins, Network;

PROCEDURE Test*(context: Commands.Context);
VAR
table, table2: Plugins.Table;
plugin: Plugins.Plugin;
i, i2: LONGINT;
devLink: Network.LinkDevice;
adr: Network.LinkAdr;
str: ARRAY 32 OF CHAR;
BEGIN

(* Query the plugins registry *)
Plugins.main.GetAll(table);

FOR i := 0 TO LEN(table) - 1 DO
context.out.Int(i, 0); context.out.String(": ");
context.out.String(table[i].name); context.out.String(" (");
context.out.String(table[i].desc); context.out.Char(')');
context.out.Ln;
IF table[i] IS Plugins.Registry THEN
table[i](Plugins.Registry).GetAll(table2);
IF table2 # NIL THEN
FOR i2 := 0 TO LEN(table2) - 1 DO
plugin := table2[i2];
context.out.Char(9X);
context.out.Int(i2, 0); context.out.String(": ");
context.out.String(plugin.name); context.out.String(" (");
context.out.String(plugin.desc); context.out.Char(')');
context.out.Ln;
IF plugin IS Network.LinkDevice THEN
devLink := plugin(Network.LinkDevice);

(* Device type *)
context.out.Char(9X); context.out.Char(9X); context.out.String("Type:"); context.out.Char(9X);
CASE devLink.type OF
Network.TypePointToPoint: context.out.String("PointToPoint");
| Network.TypeEthernet: context.out.String("Ethernet");
ELSE
context.out.String("Unknown")
END;
context.out.Ln;

(* Device link status *)
context.out.Char(9X); context.out.Char(9X); context.out.String("Link:"); context.out.Char(9X);
CASE devLink.Linked() OF
Network.LinkNotLinked: context.out.String("NotLinked");
| Network.LinkLinked: context.out.String("Linked");
| Network.LinkUnknown: context.out.String("Unknown");
ELSE
context.out.String("Unknown")
END;
context.out.Ln;

(* Device local address (MAC address) *)
IF devLink.adrSize > 0 THEN
context.out.Char(9X); context.out.Char(9X); context.out.String("MAC address:"); context.out.Char(9X);
adr := devLink.local;
Network.LinkAdrToStr(adr, 8(*devLink.adrSize*), str); context.out.String(str); context.out.Ln
END;

END
END
END
END
END

END Test;


BEGIN
END NetworkTest.

NetworkTest.Test ~
SystemTools.Free NetworkTest ~

Но с помощью этого кода для сетевых адаптеров можно получить только MAC-адреса (и это естественно, поскольку адаптеры ведают только Ethernet протоколом, это их уровень).

(Добавление)
И действительно, уровнем выше, в модуле IP есть команда IPConfig.
Исполнив
IP.IPConfig ~
получим исчерпывающую информацию по конфигурации сети (по-моему, даже более исчерпывающую, чем выдаёт ipconfig в Windows):
{P cpuid= 0, pid= 230 
=== Interface ===
Interface name: v4autoAM79C970#0
Attached device: AM79C970#0 (LinkLinked)
MAC address: 00:0C:29:5B:23:9B:00:00
Local address: 192.168.77.132
Netmask: 255.255.255.0
Gateway address: 192.168.77.2
Subnet: 192.168.77.0
Net broadcast: 192.168.77.255
DNS server: 192.168.77.2
}
{P cpuid= 0, pid= 230
=== Interface ===
Interface name: v6link-localAM79C970#0
Attached device: AM79C970#0 (LinkLinked)
MAC address: 00:0C:29:5B:23:9B:00:00
Local address: E80::20C:9FF:E5B:39B
Default routers:
Prefix: E80::/64
DNS server: none
}
{P cpuid= 0, pid= 230
=== Interface ===
Interface name: Loopbackv4
Attached device: Loopback (LinkLinked)
MAC address: 00:00:00:00:00:00:00:00
Local address: 127.0.0.1
Netmask: 255.255.0.0
Gateway address:
Subnet: 127.0.0.0
Net broadcast: 127.0.255.255
DNS server: none
}
{P cpuid= 0, pid= 230
=== Interface ===
Interface name: Loopbackv6
Attached device: Loopback (LinkLinked)
MAC address: 00:00:00:00:00:00:00:00
Local address: ::1
Default routers:
Prefix: ::/64
DNS server: none
}
Interfaces:
----------------------

IP statistics:
----------------------
NIPSentToSubnet 1
NIPSentToGateway 0
NIPSentBroadcast 2
NIPCantFragment 0
NIPRcvTotal 9
NIPTooSmall 0
NIPBadVersion 0
NIPOptions 0
NIPBadChecksum 0
NIPBadLength 0
NIPTrim 9
NIPBadHdrLen 0
NIPNotForUs 1
NIPCantReassemble 0
NIPSrcIsBroadcast 0
NIPDelivered 8
NIPNoReceiver 0
NIPForwarded 0
NIPSentLocalLoopback 0
NIPSentPointToPoint 3


Вывод немножко поломанный. Это потому, что в ранних версиях A2 вывод в лог выполнялся только через модуль KernelLog. Потом изменился формат вызова команд, появилось понятие контекста (Commands.Context).
Через контекст можно делать в том числе и вывод в лог.
Так вот, часть информации, выводимой IP.IPConfig, выводится через KernelLog, а часть через Commands.Context.

Помимо KernelLog и Commands.Context в A2 можно выводить события (модуль Events). Для каждого события указывается класс и подкласс. Очень похоже на логирование событий в ОС семейства Windows NT.
 
 Top
sage Администратор
Отправлено: 19 Апреля, 2016 - 10:51:22
Post Id


Full Member


Покинул форум
Сообщений всего: 218
Дата рег-ции: Июнь 2008  
Откуда: Киев, Украина
Репутация: 0




sage пишет:
qrx пишет:
, работает ли ping

Приложения ping в A2 нет.
Вввёл в заблуждение...
Оказывается есть ping!
Ping.Ping host [pingSize] [timeout] ~
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« Установка A2 »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Locations of visitors to this page
[Valid RSS]

RSS

Valid CSS!


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0184]     [ Gzipped ]