Предыстория написания этой статьи.
После установки последней на тот момент офицальной прошивки 0.9.5020 с полной уверенностью в успехе я активировал опцию "аппаратного ускорения" в главном меню на вкладке "Информация". Система выдала мелкое предупреждение на английском языке об ответственности за активацию данной опции и запросила перезагрузку, после которой на дисплее моего Azbox Premium HD появилось только одно слово BOOTING, которое не пропадало на протяжении 1,5 месяца. И с этого момента начались мои блуждания по Интернету в поисках решения данной проблемы. Такая беда постигла не только моего азика, но и многих его "собратьев" по всему миру. Вариант отправки ресивер в мастерскую для меня не подходит по сугубо личным соображениям, поэтому я его не рассматривал.
В итоге накопил несколько вариантов решения проблемы BOOTING-а. Испробовал практически все из них, но моему ресиверу они не помогали.
Наконец наступила развязка, ход которой я выставляю на обозрение, как HELP по решению аналогичной ситуации. Буду рад, если данный метод еще кому-нибудь поможет в решении похожей проблемы.
ПРЕДОСТЕРЕЖЕНИЕ: !!! данная методика пригодна только в конкретном случае и не является универсальной !!!
Что представляет собой включение акселерации в ресиверах Azbox?
Если в телнете дать команду cat /proc/cpuinfo
(показывает частоту процессора и шины), то с включенным акселератором увидим
System bus frequency : 231750000 Hz
CPU frequency : 347625000 Hz
DSP frequency : 347625000 Hz
, а с выключенным
System bus frequency : 200250000 Hz
CPU frequency : 300375000 Hz
DSP frequency : 300375000 Hz
Теперь запаситесь терпением и начнем.
1. Для начала необходимо подготовить шнур, с помощью которого можно работать с консолью-отладчиком YAMON в Azbox-е . Два варианта его конструирования хорошо расписанны в http://www.pristavka.de/index.php/topic,6173.0.html и http://www.pristavka.de/index.php/topic,6771.0.html. Я попробовал оба. Шнур от телефона Nokia 6030 под модели KQ-U8A фирмы Х3 работал у меня только с Windows XP (не нашел драйверов для систем выше XP), а полноценный вариант СОМ-порта и в Windows 7 x64. Для работы с СОМ-портом использовал известные программы: Hyper Terminal WinXP (портированный и на Windows 7), putty и Hercules. Скорость соединения по СОМ-порту установите на 115200. Все протоколы сохраняйте в файл, так легче потом прослеживать хронологию событий. Описание команд YAMON-а без труда найдете в Интернете.
2. Переходим в YAMON: нажимаем Ctrl+C при появлении
**********************************
* YAMON ROM Monitor
* Revision 02.06-SIGMADESIGNS-01-2.8.0.1
**********************************
Memory: code: 0x11000000-0x11040000, 0x11200000-0x11204000
reserved data: 0x11240000-0x12440000, PCI memory: 0x12440000-0x12840000
Environment variable 'start' exists. After 1 seconds
it will be interpreted as a YAMON command and executed.
Press Ctrl-C (or do BREAK) to bypass this.
Если видим:
YAMON>
, то все ОК, если нет, то рестартуем ресивер и пробуем еще раз.
3. Далее выполнаяем команду YAMON> setxenv , которая выводит на экран все переменные xenv. Среди всего списка ищем вот эту (0x00) 4 x.pll3 0x01020065 (в ней и записана повышенная частота CPU - значение 65 , а нам нужно 57 для нормальной частоты).
Выполняем команду
YAMON> setxenv -b x.pll3 0x01020057 (тем самым меняем значение 65 на 57) и видим:
YAMON> setxenv -b x.pll3 0x01020057
Original value: 0x01020065, New value: 0x01020057
Updating XENV block at 0x48000000.
.
XENV verification OK.
YAMON>
Перезагружаем ресивер, входим в YAMON по Ctrl+C и делаем YAMON> setxenv и в последней переменнной видим нормальноое значение:
(0x00) 4 x.pll3 0x01020057, РАЗГОН СНЯТ. Можно посмотреть лог выше YAMON-а, там должно быть:
CPU clock frequency: 300.37MHz. и System clock frequency: 200.25MHz., вместо прежних 347.62MHz. и 231.75MHz. соответственно.
4.Чтобы потом не забыть - подключаем ресивер к телевизору через SCART.
5. Теперь скачиваем архив BACK_TO_ORIGINAL_FW.rar по ссылке: http://rapidshare.com/files/40727507...L_FW.rar.html. В этом архиве находятся два файла: backup_kernel и update. Нам понадобится файл backup_kernel.
6. Далее понадобится tftp-сервер, с которого будем загружать нужный нам файл. Я использовал tftpd32.335 как под Windows XP так и под Windows 7 х64. Как его настроить думаю разберетесь сами, это не сложно. И так переходим к самому интересному. В корневую директорию tftp кидаем наш файл backup_kernel, стартуем TFTP и переходим к боксу.
Для начала на боксе надо инициализировать сетевую карту (сетевой кабель LAN должен быть подключен). В YAMON-e это делается так:
YAMON> net init
Ethernet driver for EM86XX (v1.0)
(MAC 00:02:14:16:b6:35, tx_desc/rx_desc = 16/32)
em86xx_eth:pen(em86xx_eth) - Full-duplex mode
em86xx_eth:pen(em86xx_eth) - 100 Mbit/s
em86xx_eth ethernet start
ipaddr: 192.168.0.200
subnetmask: 255.255.255.0
gateway: 192.168.0.10
YAMON> net up
em86xx_eth ethernet start
YAMON> ping 192.168.0.10
64 bytes ICMP-ECHO-REPLY user data received from 192.168.0.10
, где 192.168.0.200 - ip адрес ресивера, 192.168.0.10 - ip адрес компьютера. Адреса можно использовать произвольные, главное что-бы две первые группы цифр совпадали (в моем случае это 192.16.
Если не увидели 64 bytes ICMP-ECHO-REPLY user data received from 192.168.0.10, то разбирайтесь с установками сети, т.к. все последующие операции без работающей сети бессмысленны.
Далее выполняем:
YAMON> load -b tftp://192.168.0.10/backup_kernel 0xb0100000
About to load tftp://192.168.0.10/backup_kernel
Press Ctrl-C to break
.................................................. ..............
.................................................. ..............
.................................................. ..............
................
Start = 0xb0100000, range = (0xb0100000,0xb077ffff), format = BINARY
Length = 0x680000 (6815744)
Checksum = 0x903d15ef
YAMON> pflash write -f 0x80000 0xb0100000 0x680000
0x00080000 - 0x006fffff will be erased
0x00080000 - 0x006fffff will be written
Erasing :
.................................................. ..............................
........................
Writing :
.................................................. ..............................
.................................................. ..............................
.................................................. ...............
Verifying (RAM 0xb0100000, size 0x680000) : OK.
YAMON>
, далее я подключал к ресиверу флешку с прошивкой patch.bin и делал перезагрузку ресивера. Для многих в этом месте должна наступить развязка, но у меня как оказалось была изменена еще одна переменная xenv и поэтому я копал дальше.
Примечание: 0xb0100000 - это адрес ОЗУ, куда первоначально загружается backup_kernel, а команда pflash write -f 0x80000 0xb0100000 0x680000 пишет из ОЗУ во флеш для замены ядра линукса.
7. Ради эксперемента можно проделать следующее. Скачать по ссылке: http://www.multiupload.com/8O4KKE6UI7 архив xrpc_xload_vmlinux_ES4_prod.bin_vmlinux.bin.tar. В этом архиве находятся два файла: vmlinux.bin и xrpc_xload_vmlinux_ES4_prod.bin. Нам понадобится файл xrpc_xload_vmlinux_ES4_prod.bin. Выполните:
YAMON> load -b tftp://192.168.0.10/xrpc_xload_vmlinux_ES4_prod.bin 0xx90020000
About to load tftp://192.168.0.10/xrpc_xload_vmlinux_ES4_prod.bin
Press Ctrl-C to break
.................................................. ..............
.................................................. ..............
.................................................. ..............
.........
Start = 0x90020000, range = (0x90020000,0x9066bf43), format = BINARY
Length = 0x64bf44 (6602564)
Checksum = 0xb57b7a66
YAMON> xrpc 0x90020000
xrpc succeeded
YAMON> load zbf 0xb3000000
Checking zboot signature.. it's a zboot file, signature OK.
Decompressing to 0x90020000 ..
Output length: 0x0096843a(9864250)
load compressed zboot file from 0xb3000000 to 0x90020000 OK
YAMON> go
em86xx_eth ethernet stop
Linux version 2.6.15-sigma (kevin@kevin-laptop) (gcc version 3.4.2) #138 PREEMPT
Thu Jan 22 21:35:07 KST 2009
Configured for SMP863x (revision ES6/RevA), detected SMP8634 (revision ES9/RevC)
., бла, бла, бла И... и мы попадаем в меню ресивера. Можно полазить по менюшкам, с компа подключиться по Telnet, FTP и что-нибудь еще сотворить с ресивером, благо методов и способов на форумах предостаточно. Я с этим заморачиваться не стал.
Примечание: load -b tftp://192.168.0.10/xrpc_xload_vmlinux_ES4_prod.bin 0xx90020000 - это мы загрузили правильное ядро в ОЗУ и запустили его выполнение - load zbf 0xb3000000: go.
8. Теперь исправляем переменную y.start "copy 0xade00000 0x91400000 0x120000; go 0x91400000" на y.start "xrpc 0xac080090; load zbf 0xb3000000; go", тем самым изменяем параметры запуска ядра:
YAMON> setxenv y.start "xrpc 0xac080090; load zbf 0xb3000000; go"
После этого делаем перезагрузку ресивера (флешка с прошивкой у нас подключена):
ничего не трогаем,
бла, бла, бла
Press Ctrl-C (or do BREAK) to bypass this.
xrpc succeeded
Checking zboot signature.. it's a zboot file, signature OK.
Decompressing to 0x90020000 ..
Output length: 0x0096843a(9864250)
load compressed zboot file from 0xb3000000 to 0x90020000 OK
бла, бла, бла
И... и видим на экране телевизора уже подзабытое меню update. Далее как обычно форматируем DOM, обновляемся с USB и громко кричим - "Я реанимировал свой азик" !
Примечание: выражаю личную искреннюю благодарность за помощь по спасению моего ресивера nitrogen 14, Gennadyi, Anatol, Satdream и Еноту !!!
После установки последней на тот момент офицальной прошивки 0.9.5020 с полной уверенностью в успехе я активировал опцию "аппаратного ускорения" в главном меню на вкладке "Информация". Система выдала мелкое предупреждение на английском языке об ответственности за активацию данной опции и запросила перезагрузку, после которой на дисплее моего Azbox Premium HD появилось только одно слово BOOTING, которое не пропадало на протяжении 1,5 месяца. И с этого момента начались мои блуждания по Интернету в поисках решения данной проблемы. Такая беда постигла не только моего азика, но и многих его "собратьев" по всему миру. Вариант отправки ресивер в мастерскую для меня не подходит по сугубо личным соображениям, поэтому я его не рассматривал.
В итоге накопил несколько вариантов решения проблемы BOOTING-а. Испробовал практически все из них, но моему ресиверу они не помогали.
Наконец наступила развязка, ход которой я выставляю на обозрение, как HELP по решению аналогичной ситуации. Буду рад, если данный метод еще кому-нибудь поможет в решении похожей проблемы.
ПРЕДОСТЕРЕЖЕНИЕ: !!! данная методика пригодна только в конкретном случае и не является универсальной !!!
Что представляет собой включение акселерации в ресиверах Azbox?
Если в телнете дать команду cat /proc/cpuinfo
(показывает частоту процессора и шины), то с включенным акселератором увидим
System bus frequency : 231750000 Hz
CPU frequency : 347625000 Hz
DSP frequency : 347625000 Hz
, а с выключенным
System bus frequency : 200250000 Hz
CPU frequency : 300375000 Hz
DSP frequency : 300375000 Hz
Теперь запаситесь терпением и начнем.
1. Для начала необходимо подготовить шнур, с помощью которого можно работать с консолью-отладчиком YAMON в Azbox-е . Два варианта его конструирования хорошо расписанны в http://www.pristavka.de/index.php/topic,6173.0.html и http://www.pristavka.de/index.php/topic,6771.0.html. Я попробовал оба. Шнур от телефона Nokia 6030 под модели KQ-U8A фирмы Х3 работал у меня только с Windows XP (не нашел драйверов для систем выше XP), а полноценный вариант СОМ-порта и в Windows 7 x64. Для работы с СОМ-портом использовал известные программы: Hyper Terminal WinXP (портированный и на Windows 7), putty и Hercules. Скорость соединения по СОМ-порту установите на 115200. Все протоколы сохраняйте в файл, так легче потом прослеживать хронологию событий. Описание команд YAMON-а без труда найдете в Интернете.
2. Переходим в YAMON: нажимаем Ctrl+C при появлении
**********************************
* YAMON ROM Monitor
* Revision 02.06-SIGMADESIGNS-01-2.8.0.1
**********************************
Memory: code: 0x11000000-0x11040000, 0x11200000-0x11204000
reserved data: 0x11240000-0x12440000, PCI memory: 0x12440000-0x12840000
Environment variable 'start' exists. After 1 seconds
it will be interpreted as a YAMON command and executed.
Press Ctrl-C (or do BREAK) to bypass this.
Если видим:
YAMON>
, то все ОК, если нет, то рестартуем ресивер и пробуем еще раз.
3. Далее выполнаяем команду YAMON> setxenv , которая выводит на экран все переменные xenv. Среди всего списка ищем вот эту (0x00) 4 x.pll3 0x01020065 (в ней и записана повышенная частота CPU - значение 65 , а нам нужно 57 для нормальной частоты).
Выполняем команду
YAMON> setxenv -b x.pll3 0x01020057 (тем самым меняем значение 65 на 57) и видим:
YAMON> setxenv -b x.pll3 0x01020057
Original value: 0x01020065, New value: 0x01020057
Updating XENV block at 0x48000000.
.
XENV verification OK.
YAMON>
Перезагружаем ресивер, входим в YAMON по Ctrl+C и делаем YAMON> setxenv и в последней переменнной видим нормальноое значение:
(0x00) 4 x.pll3 0x01020057, РАЗГОН СНЯТ. Можно посмотреть лог выше YAMON-а, там должно быть:
CPU clock frequency: 300.37MHz. и System clock frequency: 200.25MHz., вместо прежних 347.62MHz. и 231.75MHz. соответственно.
4.Чтобы потом не забыть - подключаем ресивер к телевизору через SCART.
5. Теперь скачиваем архив BACK_TO_ORIGINAL_FW.rar по ссылке: http://rapidshare.com/files/40727507...L_FW.rar.html. В этом архиве находятся два файла: backup_kernel и update. Нам понадобится файл backup_kernel.
6. Далее понадобится tftp-сервер, с которого будем загружать нужный нам файл. Я использовал tftpd32.335 как под Windows XP так и под Windows 7 х64. Как его настроить думаю разберетесь сами, это не сложно. И так переходим к самому интересному. В корневую директорию tftp кидаем наш файл backup_kernel, стартуем TFTP и переходим к боксу.
Для начала на боксе надо инициализировать сетевую карту (сетевой кабель LAN должен быть подключен). В YAMON-e это делается так:
YAMON> net init
Ethernet driver for EM86XX (v1.0)
(MAC 00:02:14:16:b6:35, tx_desc/rx_desc = 16/32)
em86xx_eth:pen(em86xx_eth) - Full-duplex mode
em86xx_eth:pen(em86xx_eth) - 100 Mbit/s
em86xx_eth ethernet start
ipaddr: 192.168.0.200
subnetmask: 255.255.255.0
gateway: 192.168.0.10
YAMON> net up
em86xx_eth ethernet start
YAMON> ping 192.168.0.10
64 bytes ICMP-ECHO-REPLY user data received from 192.168.0.10
, где 192.168.0.200 - ip адрес ресивера, 192.168.0.10 - ip адрес компьютера. Адреса можно использовать произвольные, главное что-бы две первые группы цифр совпадали (в моем случае это 192.16.
Если не увидели 64 bytes ICMP-ECHO-REPLY user data received from 192.168.0.10, то разбирайтесь с установками сети, т.к. все последующие операции без работающей сети бессмысленны.
Далее выполняем:
YAMON> load -b tftp://192.168.0.10/backup_kernel 0xb0100000
About to load tftp://192.168.0.10/backup_kernel
Press Ctrl-C to break
.................................................. ..............
.................................................. ..............
.................................................. ..............
................
Start = 0xb0100000, range = (0xb0100000,0xb077ffff), format = BINARY
Length = 0x680000 (6815744)
Checksum = 0x903d15ef
YAMON> pflash write -f 0x80000 0xb0100000 0x680000
0x00080000 - 0x006fffff will be erased
0x00080000 - 0x006fffff will be written
Erasing :
.................................................. ..............................
........................
Writing :
.................................................. ..............................
.................................................. ..............................
.................................................. ...............
Verifying (RAM 0xb0100000, size 0x680000) : OK.
YAMON>
, далее я подключал к ресиверу флешку с прошивкой patch.bin и делал перезагрузку ресивера. Для многих в этом месте должна наступить развязка, но у меня как оказалось была изменена еще одна переменная xenv и поэтому я копал дальше.
Примечание: 0xb0100000 - это адрес ОЗУ, куда первоначально загружается backup_kernel, а команда pflash write -f 0x80000 0xb0100000 0x680000 пишет из ОЗУ во флеш для замены ядра линукса.
7. Ради эксперемента можно проделать следующее. Скачать по ссылке: http://www.multiupload.com/8O4KKE6UI7 архив xrpc_xload_vmlinux_ES4_prod.bin_vmlinux.bin.tar. В этом архиве находятся два файла: vmlinux.bin и xrpc_xload_vmlinux_ES4_prod.bin. Нам понадобится файл xrpc_xload_vmlinux_ES4_prod.bin. Выполните:
YAMON> load -b tftp://192.168.0.10/xrpc_xload_vmlinux_ES4_prod.bin 0xx90020000
About to load tftp://192.168.0.10/xrpc_xload_vmlinux_ES4_prod.bin
Press Ctrl-C to break
.................................................. ..............
.................................................. ..............
.................................................. ..............
.........
Start = 0x90020000, range = (0x90020000,0x9066bf43), format = BINARY
Length = 0x64bf44 (6602564)
Checksum = 0xb57b7a66
YAMON> xrpc 0x90020000
xrpc succeeded
YAMON> load zbf 0xb3000000
Checking zboot signature.. it's a zboot file, signature OK.
Decompressing to 0x90020000 ..
Output length: 0x0096843a(9864250)
load compressed zboot file from 0xb3000000 to 0x90020000 OK
YAMON> go
em86xx_eth ethernet stop
Linux version 2.6.15-sigma (kevin@kevin-laptop) (gcc version 3.4.2) #138 PREEMPT
Thu Jan 22 21:35:07 KST 2009
Configured for SMP863x (revision ES6/RevA), detected SMP8634 (revision ES9/RevC)
., бла, бла, бла И... и мы попадаем в меню ресивера. Можно полазить по менюшкам, с компа подключиться по Telnet, FTP и что-нибудь еще сотворить с ресивером, благо методов и способов на форумах предостаточно. Я с этим заморачиваться не стал.
Примечание: load -b tftp://192.168.0.10/xrpc_xload_vmlinux_ES4_prod.bin 0xx90020000 - это мы загрузили правильное ядро в ОЗУ и запустили его выполнение - load zbf 0xb3000000: go.
8. Теперь исправляем переменную y.start "copy 0xade00000 0x91400000 0x120000; go 0x91400000" на y.start "xrpc 0xac080090; load zbf 0xb3000000; go", тем самым изменяем параметры запуска ядра:
YAMON> setxenv y.start "xrpc 0xac080090; load zbf 0xb3000000; go"
После этого делаем перезагрузку ресивера (флешка с прошивкой у нас подключена):
ничего не трогаем,
бла, бла, бла
Press Ctrl-C (or do BREAK) to bypass this.
xrpc succeeded
Checking zboot signature.. it's a zboot file, signature OK.
Decompressing to 0x90020000 ..
Output length: 0x0096843a(9864250)
load compressed zboot file from 0xb3000000 to 0x90020000 OK
бла, бла, бла
И... и видим на экране телевизора уже подзабытое меню update. Далее как обычно форматируем DOM, обновляемся с USB и громко кричим - "Я реанимировал свой азик" !
Примечание: выражаю личную искреннюю благодарность за помощь по спасению моего ресивера nitrogen 14, Gennadyi, Anatol, Satdream и Еноту !!!
Комментарий