Jump to content

    
EIKA

Вход в режим аварийной загрузки у Anritsu SiteMaster S331L

Recommended Posts

Вряд ли кто-то знает, конечно. Но мало ли.

Anritsu SiteMaster S331L. После неудачной попытки обновления прошивки устройство залипло в режиме Loading OS...

Флешки с апгрейдами игонорируются.

Нужен вход в режим аварийной загрузки (bootstrap). И он таки есть у "соседней" модели S331E, и известно как у него войти, но у S331L нет клавиши Shift, и назначение других клавиш иное.

Гугл молчит на этот счет.

Share this post


Link to post
Share on other sites

Я ему написал, но они отмороженные. Уже был опыт общения с ними. Тикет, а там: какая страна, у кого покупали, какой серийник... Ууууу, так вам не положено общаться с US / UK. Вам в Питер в "Радар" или "Дататест". А там 200-300 тысяч за замену платы (конечно же, при этом никакая замена платы не была нужна).

 

В общем, судя по предыдущему опыту, крайне не юзер френдли бренд.

Edited by EIKA

Share this post


Link to post
Share on other sites
1 час назад, EIKA сказал:

В общем, судя по предыдущему опыту, крайне не юзер френдли бренд.

раз в maintеnance нет, то либо его действительно нет, либо производитель считает, что нефиг туда лазить в этой модели

у вас варианты

- попробовать брутфорс на клавишах, может и влетит в bootstrap, да долго и муторно и шанс невелик, зато свое и бесплатно

- покопаться в бинарниках, которые плодятся на юсб флешку в качестве фирмвари. редко кто пакует или шифрует - есть шанс поискать всякие буковки, бывает, что оставляют отладочную инфу

- вскрыть прибор (аккуратно конечно) и внимательно осмотреть все платы на предмет контактных площадок и надписей, слова uart или boot mode могут упростить вывод из комы

- накрайняк, поискать в продаже б/у плату som, наверняка на ней проц, мозги и флеш, в теории может и такое подойти, но могут слететь всякие калибровки и настройки

- да, и полезно поискать форумы любителей потрошить анритцу, сейчас ломают все что шевелится и что не шевелится, шевелят и тоже ломают, т.ч. ищите в т.ч. как не удивительно и на https://www.google.co.jp/

Share this post


Link to post
Share on other sites

Спасибо за подробный ответ!

По шагам.

1. В траблшутинге и ММ нет. Почему - не понятно. Думаю в районе пн-вт станет ясно из ответа производителя.

2. Брутить на 22 контролах из которых могут использоваться 19 весьма сложно. Я пробовал похожие и очевидные, результат ноль.

3. Бинарники уже копнул кулхацкер, они открытые и там много чего про бутстрап. Есть вызовы функций из меню загруженной ОС, тесты клавиш бутстрапа, но комбинацию через power on найти не удалось.

4. Вскрывать очень не хочу, но если бут будет на перемычке, придётся ;(

5. Менять часть прибора точно не буду,  как как не приемлю приборы без элаймента.

Но вообще я в шоке. Как так можно выпускать приборы без бутстрапа и такие кривые апдейты без защиты от ошибок и дураков. Уроды, мля ;(

Share this post


Link to post
Share on other sites
4 часа назад, EIKA сказал:

Спасибо за подробный ответ!

Но вообще я в шоке. Как так можно выпускать приборы без бутстрапа и такие кривые апдейты без защиты от ошибок и дураков. Уроды, мля ;(

сочувствую, видимо компанию Анрицу устраивает такое изготовление 331L, что в приборе за ~$4K (если я правильно понял ценник) не сделали нормальной и безопасной процедуру апдейта

а попробуйте (если не пробовали) выключить, вынуть/вставить аккум, потом зажать Esc и включить - таким вариантом 331D развешивают

визуально клавиатуры разнятся ровно на 1 клавишу, пресловутый Shift. если ничего более не поможет, то все же разобрать прибор - в доке очень мутная фотка, там виден 6 контактный технологический футпринт, но более интересно взглянуть на плату и ее сторону, где сами клавиши, в теории, если японцы пожабились, то там может быть место под конструкцию кнопки Shift для 331E, останется попробовать Shift-4-0.. но я все это не советовал, так, нафантазировал :)

Share this post


Link to post
Share on other sites
35 minutes ago, Jury093 said:

сочувствую, видимо компанию Анрицу устраивает такое изготовление 331L, что в приборе за ~$4K (если я правильно понял ценник) не сделали нормальной и безопасной процедуру апдейта

а попробуйте (если не пробовали) выключить, вынуть/вставить аккум, потом зажать Esc и включить - таким вариантом 331D развешивают

визуально клавиатуры разнятся ровно на 1 клавишу, пресловутый Shift. если ничего более не поможет, то все же разобрать прибор - в доке очень мутная фотка, там виден 6 контактный технологический футпринт, но более интересно взглянуть на плату и ее сторону, где сами клавиши, в теории, если японцы пожабились, то там может быть место под конструкцию кнопки Shift для 331E, останется попробовать Shift-4-0.. но я все это не советовал, так, нафантазировал :)

Я попробую, конечно. Но вряд ли.

В СайтМастерах в новых корпусах аккум несъемный. В них в отличие от классики Виллтрон A/Анритсу B/D нет отсека с лючком. И другая ОС. И другое назначение всех кнопок (в сравнении приборами того же времени, но другого назначения, типа VNA/BTS). Это по сути совсем новый прибор, и называли его 331-ым маркетологи, чтобы люди привыкали к 331-му. Но общего с D у него только эмуляция старого интерфейса через картинки для Win CE (КПКшная эмбеддед винда от Майкрософт).

Ценник прибора вроде ближе к 7к.

Edited by EIKA

Share this post


Link to post
Share on other sites

Загрузчик, как я понял, называется SPL.

Еще есть некий CPL - он виден как черный экран CPL V1.4 при выключении прибора.

Так вот, в SPL есть скрипт cpl.losh, где видно ветвление между режимами работы:

#*****  cpl.losh  *****#
#                      #
#**********************#

#*****  Init the display *****#
#video-init sonic 16


# New warm boot attempt - pull warmBoot variable value from the .var file
load-var /cpl/bootInfo.var
echo "warm boot is $bootInfo"

#save the warmBoot value to memory where the CPL can access it
w /b 0x8000040c $bootInfo


#***** Load and execute the CPL binary *****#
#echo "Loading cpl.exe...";
load elf /cpl/cpl.exe
#echo "jumping to /cpl/cpl.exe...";
jump



# The CPL.exe returns execution to LoLo at this point.
# It's return value will be resident in the $? LoLo variable.

bootMode = $?
echo "boot mode is $?";

#*****  Show the full screen splash *****#
bitmap /cpl/anritsu.bmp


#*****  Add additional bitmap display based on the cpl.exe's return value *****#
if ($bootMode == 0x000001c8)
	# Bootstrap mode 
	# Bitmaps size = 235 X 23
	# Note: the x axis size needs to be slightly less than original our you'll see a bar at the end of the bitmap.
	bitmap /cpl/Bootstrap.bmp 25,445 259,468
	#echo "Loading Bootstrap.bmp";
else 
	if	($bootMode == 0x00000008)
		# Master Reset
		# Bitmaps size = 222 X 25
		# Note: the x axis size needs to be slightly less than original our you'll see a bar at the end of the bitmap.
		bitmap /cpl/MasterReset.bmp 25,445 245,470
		#echo "Loading MasterReset.bmp";
	else 
		if	($bootMode == 0x0000001b)
			# Factory Reset
			# Bitmaps size = 222 X 25
			# Note: the x axis size needs to be slightly less than original our you'll see a bar at the end of the bitmap.
			bitmap /cpl/FactoryReset.bmp 25,445 245,470
			#echo "Loading FactoryReset.bmp";
		else
			#echo "No additional bitmaps need loading";
		endif
	endif
endif

#*****  Turn on the display now that our bitmaps are up *****#
video-on
#***** Save the CPL's return value so the application can inspect it. *****#
w /w 0x80000408 $bootMode


#***** Load and execute the WinCE image file *****#
loadfile = "/cpl/NK.bin"

if ($bootMode == 0x000001c8)
loadfile = "/cpl/bootstrap.bin";
endif
echo "load file set to $loadfile"


load bin $loadfile
loadfailed = $?

if ($loadfailed)
    echo "Failed to load $loadfile";
else
	#echo "Launching $loadfile...";	
    # Launch the CE image (bootstrap or main)
    exec;

endif

echo "Returned from launching $loadfile...";	

LoLo - это, видимо, бут-менеджер.

И прибор у меня сейчас завис на этом этапе:

#*****  Show the full screen splash *****#
bitmap /cpl/anritsu.bmp

anritsu.thumb.png.5f459beb72b7940a30cdc9e960a4041e.png

А мне надо попасть сюда:

#*****  Add additional bitmap display based on the cpl.exe's return value *****#
if ($bootMode == 0x000001c8)
	# Bootstrap mode 

Bootstrap.png.feaf93582f0d075ef063f0da2fb9f86e.png

 

cpl.exe возвращат код для LoLo, но от чего зависит код ответа - не понятно.

Сама картинка Bootstrap (см. выше) и фрагменты бутстрап-кода в прошивке для 331L есть. То есть, вопрос только в том, как его вызвать.

 

В файлах есть еще интересные упоминания типа:

frmBootstrap_KeyPress
frmBootstrap_KeyDown

Еще есть какой-то тест клавиш бутстрапа? Это тестирование кнопок - работает ли мембрана - что ли без загрузки ОС?

BOOL TestBootstrapKeys()
{
  unsigned __int8 *KeyMapping;
  int counter; 
  int v3;

  if ( KeyMapping[0].code == 255 )
    return 0;
 
  counter = 0;
  do
  {
    if ( KeyMapping[5] | (KeyMapping[6] << 8) | (KeyMapping[7] << 16) | (KeyMapping[8] << 24) )
    {
      if ( (*(KeyMapping[1] | (KeyMapping[2] << 8) | (KeyMapping[3] << 16) | (KeyMapping[4] << 24)) - 0x34) <= 2u )
        ++counter;
    }
    v3 = KeyMapping[9];
    KeyMapping += 9;
  }
  while ( v3 != 255 );
  return counter == 3;
}

Тут мы не поняли что именно делает код. Да и вряд ли он имеет прямое отношение к выбору меню загрузчика.

А тут видно, что у прибора всего 22 физических контрола:

.data:860074CC ; KEY_MAPPING KeyMapping[22]
.data:860074CC KeyMapping      KEY_MAPPING <0, aEsc, 0>
.data:860074CC                 KEY_MAPPING <3, aLeft, 0> 
.data:860074CC                 KEY_MAPPING <4, aRight, 0>
.data:860074CC                 KEY_MAPPING <5, aDown, 0>
.data:860074CC                 KEY_MAPPING <6, aUp, 0>
.data:860074CC                 KEY_MAPPING <0x10, a9, 0>
.data:860074CC                 KEY_MAPPING <0x11, a7, 0>
.data:860074CC                 KEY_MAPPING <0x12, a6, 0>
.data:860074CC                 KEY_MAPPING <0x13, a5, 0>
.data:860074CC                 KEY_MAPPING <0x14, a8, 0>
.data:860074CC                 KEY_MAPPING <0x15, a4, 0>
.data:860074CC                 KEY_MAPPING <0x23, aShift, 0>
.data:860074CC                 KEY_MAPPING <0x25, asc_860071EC, 0>
.data:860074CC                 KEY_MAPPING <0x26, aBack, 0>
.data:860074CC                 KEY_MAPPING <0x30, a0, 0>
.data:860074CC                 KEY_MAPPING <0x31, a1, 0>
.data:860074CC                 KEY_MAPPING <0x32, a3, 0>
.data:860074CC                 KEY_MAPPING <0x33, aEnter, 0>
.data:860074CC                 KEY_MAPPING <0x34, asc_8600720C, 0>
.data:860074CC                 KEY_MAPPING <0x35, a2, 0>
.data:860074CC                 KEY_MAPPING <0x45, aMenu, 0>
.data:860074CC                 KEY_MAPPING <0xFF, 0, 0>

Дальше нашли что-то более загадочное, а именно:

TestForSecretKeypresses в котором внутри есть Master Reset requested, Factory Reset requested, Standard Boot requested. Первые две строки есть в обычном юзерском меню S331L. А последнее - это, видимо, банальная перезагрузка.

Разрабы предусмотрели кучу логов, в том числе то, что нужно. Но как до них добраться?

DebugPrintf("Request to launch Bootstrap.bin received.\r\n");
    return 456;

 

В общем, я выкладываю образ апгрейда (он же является полноценным образом для развертывания с нуля).

 

Если кто-то готов в этом разобраться и выдать результат, такая работа будет оплачена.

Edited by EIKA

Share this post


Link to post
Share on other sites
51 минуту назад, EIKA сказал:

Загрузчик, как я понял, называется SPL.


.data:860074CC                 KEY_MAPPING <0x23, aShift, 0>

вот же ж Shift, есть смысл смотреть на плату кнопок или искать в инете ее изображение, чтобы в прибор не лазать. образ стащил, будет возможность - гляну, но не факт что что-нить пойму

Share this post


Link to post
Share on other sites

Вот тут непонятно. Если попытаться расписать все клавиши 1 к 1, то Back и Shift прикрутить однозначно некуда. Но остаются свободными вполне себе работавшие клавиши Auto Scale и Hold/Run.

 

Либо asc_* - это Auto Scale и Hold/Run (и валкодер вообще не участвует в кеймаппинге). И тогда методом исключения выходит, что Back и Shift вообще не выведены на панель.

 

S331L-keys.png

Edited by EIKA

Share this post


Link to post
Share on other sites

Там же обычный PC внутри скорее всего. Как правило в современных приборах обеспечивают подключение внешней клавиатуры, в которой есть целых 2 клавиши Shift. Пробовали?

Share this post


Link to post
Share on other sites
42 minutes ago, Oymyacon said:

Там же обычный PC внутри скорее всего. Как правило в современных приборах обеспечивают подключение внешней клавиатуры, в которой есть целых 2 клавиши Shift. Пробовали?

Так тут USB же реализован в WinCE, бутлоадер то как ее распознает?

Никакого обычного PC там нет. Это какой-то OMAP ARM + WinCE.

Более того, клавиатура не распознается даже в WinCE на рабочем приборе.

Share this post


Link to post
Share on other sites
6 минут назад, EIKA сказал:

Кеймаппинг верный вот такой. Шифта на кнопках по итогу нет :(

т.е. вы на плату посмотрели или пока теоретически раскладку нарисовали?

я с wince мало возился, но энкодер по идее должен обслуживаться из своего драйвера и отдельного маппинга контактов

и да, там омап из этих - omap35xx.h

Edited by Jury093

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.