O PocketBook é tão bom?

Ou uma história sobre quais falhas nos esperam




O PocketBook me admira. É o líder de mercado no espaço pós-soviético, no campo dos livros eletrônicos, todo mundo conhece essa empresa. Havia muitos posts lisonjeiros aqui sobre os produtos desta empresa. Eles nos dão belos anúncios, odes de louvor. Vamos nos aprofundar em hardware e software e tentar restaurar um antigo Pocketbook 515 e analisar a alma dos produtos desta empresa. Bem, vamos avaliar como eles são reais ou ruins. Sem enfeite.

Sobre o que vamos falar?


Pela vontade do destino, me deparei com o e-book do PocketBook 515. É velho e irracional compará-lo com modelos modernos, mas acredito que os princípios e problemas básicos devem ser herdados dele.

Me deparei com um livro de uma anfitriã anterior, porque era de buggy e tornou-se quase impossível usá-lo. Os sintomas foram os seguintes: o livro liga, carrega e ... E aqui está uma tela.



E é isso, sem menu, nada. Não responde aos botões.

Eu acho que lixo é guerra. Vamos consertar agora. Você precisa assistir o YouTube. A primeira coisa que eles recomendam é restaurar o firmware. Desligue o livro, mantenha pressionadas as duas teclas extremas e ligue-o (este é o mesmo desenho de circo, eu lhe digo). Bem, acho que é tão simples e estamos nas mulheres! Eu tento.



Atualização falhou ... E então eu entendo que a aventura começa ...

Caixa de Pandora ou enchimento de hardware


Honestamente, eu sempre admirei o PocketBook, o fato de que eles foram capazes de criar dispositivos legais, ocupam um nicho no mercado. Eu realmente queria trabalhar para eles, mas devido a razões geopolíticas, eles não me levaram para lá. Mas eu não esperava abrir uma caixa com ... Estranho.
Como sempre, quando você vê uma tarefa, nem vê a ponta do iceberg, mas uma espécie de cartão postal amarrotado da sua avó. E quando você trabalha na obra e não vê o fim da região, mas é tarde demais para recuar, você pensa: que diabos estou fazendo? É exatamente o mesmo aqui.

Parece que o motivo é simples: provavelmente um problema de memória. E como eu sei pelos comentários na postagem, que um cartão SD está instalado lá e que simplesmente não funcionará com o dd-snitch. Ou seja, você pode copiar um cartão, mas ele não funcionará. Portanto, estamos aguardando uma divertida aventura para restaurar a placa, além de estudar o firmware e um possível hack ... Mas primeiro as primeiras coisas. Primeiro, vamos olhar dentro do livro e ver todas as fontes de nossos problemas.

A abertura deste livro é muito simples, basta passar por qualquer cartão ao redor do perímetro e veremos as entranhas deste dispositivo.



A foto é exatamente como costumamos segurar o livro, virada para baixo e aberta. O que nós vemos? No canto superior direito do módulo wifi não vendido. Além disso, até o registro intermitente nos diz que poderia ser (a penúltima linha na foto acima). Por que wifi em um livro sem tela sensível ao toque - eu não consigo imaginar! No centro está uma bateria grande. À sua esquerda está um trem indo para a tela. Ao lado da bateria é aparentemente um controlador de carregamento. À direita está o cartão de memória malfadado! E o mais barato que vive muito, muito pouco tempo. Mas vamos voltar para ela. Não consideraremos pequenas coisas por falta de tempo. Vamos dar uma olhada no processador e, em geral, essa área é maior.



Allwinner A13 (careta). Isto é da família que se destaca em todos os tipos de Orange Pi e sua raça. Não gosto dele de todo o coração devido à falta de documentação normal e ao fato de que certa vez eles beberam muito sangue. É uma antipatia pessoal, inexplicável. No entanto, os criadores do PocketBook são ótimos companheiros, capazes de reduzir o consumo de energia, colocá-lo em hibernação e geralmente cortam tudo o que é poderoso nele para funcionar o maior tempo possível. Eu adoraria ver o código desses módulos. Falaremos mais sobre o código. Mas, em geral, o uso dessa família é diretamente fu fu fu (oi coluna Yandex).

À esquerda do processador está claramente (não vá para o vidente) linhas UART. Minhas mãos ardiam de soldar ali, mas de olhar para os logs de download. Mas minha tarefa não era investigar o dispositivo, mas corrigi-lo. Portanto, espero que um dia eu entrei nos meus ouvidos!

Um chip de RAM com capacidade de 2 GB é soldado em ângulo sob o processador! O que é bastante para tarefas tão modestas. Mas, julgando pelo fato de que tantos ramfs são usados, talvez seja. O que é mais interessante, este chip K4B2G1646Q-BCK0T00 é um SDRAM DDR3, ou seja, memória dinâmica e requer tempo para armazenar informações (corrija-me se estiver errado). Ou seja, consome energia, mesmo no modo de suspensão (ao contrário da SRAM). E como é garantido um longo modo de operação deste livro permanece um mistério para mim. Talvez a resposta seja que toda a RAM seja descartada no cartão de memória (ou em seu diff) ao alternar para o modo de suspensão. Não sei, um lugar muito interessante para pesquisar.

Então, um cartão de memória. Acho que até um cego verá que, embaixo do conector da placa, há um bloco de contato para o microcircuito. Por que colocar o cartão em um slot separado e até marcá-lo com tinta - não está claro para mim. Uma pesquisa no LiveJournal não deu um resultado, provavelmente, para que os chineses durante a montagem não pudessem bater o firmware, mas ele já seria costurado aqui. Além disso, você pode inserir um cartão de teste que testaria o hardware sem perder tempo piscando. Esta é a única explicação razoável. Por que existe um cartão tão barato que dura alguns anos - isso é compreensível - o preço da questão.

Olhando para o futuro, direi que você precisa substituí-lo imediatamente por um cartão SD industrial, como



E, de fato, em todas as suas framboesas, para evitar problemas, vale a pena mudar para esses cartões. Eles não são tão caros que arriscam a confiabilidade.

Em geral, ficou claro para mim que o cartão precisava ser trocado. E deve haver algum procedimento para sua substituição.

Resumindo, o hardware é muito interessante, é interessante como os drivers de vários nós deste livro são implementados. Gostaria muito de conversar com os desenvolvedores para descobrir mais. O mais interessante é trabalhar com memória e como o modo de suspensão é implementado. Mas o hardware é exatamente o que é visível. O mais curioso é o que está acontecendo no software! Então, e o software? Vamos ver o conteúdo do cartão.

O que no nosso mapa?


Em geral, analisar o conteúdo de um cartão pode resultar em um artigo separado. Portanto, se você não estiver muito interessado no que estava lá, poderá ir com segurança para outra seção.
O mapa é composto por 9 seções!



Dos quais 1, 2, 7,8,9 e 10 estão montados (o quarto não é).



Seção / dev / sdd1 em / media / dlinyj / Pocket515


Esta é a mesma seção que vemos quando conectamos o livro ao computador. Não há nada notável para nós lá.

Seção / dev / sdd2 em / media / dlinyj / Volumn


Ele contém um kernel e configurações de inicialização primária, bem como uma imagem de baixa tensão low_pwr.bmp , um arquivo regular com a extensão bmp. Como, colocar uma carga.



Não está claro por que a imagem do kernel é uma na raiz (arquivo bImage) e a outra na pasta linux



Supõe-se que um seja carregado durante o carregamento e o outro durante a operação completa. A pasta linux tem um tamanho de arquivo maior.

A pasta linux é a mais interessante. bImage é a imagem do kernel. cramfs.img - imagem do ramfs, para o modo de recuperação (o que vemos no momento em que a recuperação é iniciada). Embora no processo de pesquisa aprofundada, parece que algo muito importante está contido lá. Enfim, ninguém lê essa porcaria, você pode escrever qualquer bobagem. Trololo Arquivos * .Ini - faça o download das configurações.

O arquivo linux.bmp não pode ser aberto pelo editor e possui um tamanho de 35.290 bytes.O cão sabe o que é. Dos arquivos úteis estão o linux.ini e outros. Vou dar um exemplo do primeiro.

[global]
commandline = console=ttyS0,115200 root=/dev/mmcblk0p7 init=/init loglevel=1 rootwait

[segment]
img_name = c:\linux\bImage
img_size = 0x800000
img_base = 0x40008000

[script_info]
script_base = 0x43000000
script_size = 0x10000

[logo_info]
logo_name = c:\linux\linux.bmp
logo_show = 1

, .. , bmp- , - . recovery.ini . , .

[global]
commandline = console=ttyS0,115200 root=/dev/ram0 init=/linuxrc loglevel=8 initrd=0x41000000,8M rootfstype=cramfs ramdisk=8192 rootwait
....
[segment]
img_name = c:\linux\cramfs.img
img_size = 0x800000
img_base = 0x41000000


/dev/sdd10 on /media/dlinyj/Compressed type cramfs


ramfs. rootfs, .



/bin, busybox. , . sbin reboot. , , ( ), . , gpio

#!/bin/sh
/sbin/insmod /lib/modules/gpio_driver.ko

gpiotool -G H -O 0 -P 0
gpiotool -G H -O 0 -P 1
gpiotool -G H -O 0 -P 2
gpiotool -G H -O 0 -P 3
gpiotool -G H -O 0 -P 4
gpiotool -G H -O 0 -P 5

../bin/busybox reboot

, gpio sysfs.

— /etc/ /lib/modules. , :

epdc.ko — — — .
gpio_driver.ko — gpio

GPL , . .

/etc/ . .
device.sh — . fstab :

...
/ebrmain/cramfs.img	/ebrmain/cramfs	  auto	  defaults,loop 0 0
...

. . . , . , cramfs recovery. .. , , .

, .

/dev/sdd9 on /media/dlinyj/13351b4c-2ff0-46dd-9d4a-b2a1bed7cf99


. .

sudo ls -1a  /media/dlinyj/13351b4c-2ff0-46dd-9d4a-b2a1bed7cf99
.
..
explorer-2.tar
.freezestatus
.hashsum_1
lost+found
man2wall.txt
pbpk
runonce

. explorer-2.tar :



. . .

man2wall.txt — , :

sudo cat  /media/dlinyj/13351b4c-2ff0-46dd-9d4a-b2a1bed7cf99/man2wall.txt
/mnt/ext1/  PocketBook.pdf

.freezestatus — - , . 4pda .
, root.

drwxrwx---  2 systemd-resolve systemd-timesync   1024  27  2014 pbpk
drwxrwxrwx  2 systemd-resolve systemd-timesync   1024  27  2014 runonce

- .

/dev/sdd8 on /media/dlinyj/41931a84-c18c-407a-b9a1-9a08dfe5a7ae


. , , , . , , . , , :

/media/dlinyj/41931a84-c18c-407a-b9a1-9a08dfe5a7ae $ ls -la
 96642
drwxr-xr-x  14 root root     1024   7  2014 .
drwxr-x---+  6 root root     4096  21 16:09 ..
drwxr-xr-x   2 root root     2048   7  2014 bin
drwxr-xr-x   3 root root     1024   7  2014 config
drwxr-xr-x   2 root root     1024   7  2014 cramfs
-rw-r--r--   1 root root 62660608   7  2014 cramfs.img
-rw-r--r--   1 root root       22   7  2014 .def_id
drwxr-xr-x   3 root root     2048   7  2014 fonts
-rw-r--r--   1 root root     4858   7  2014 fsimage.md5
-rw-r--r--   1 root root 35871876   7  2014 fsimage.tar.gz
drwxr-xr-x   3 root root     1024   7  2014 language
drwxr-xr-x   5 root root     4096   7  2014 lib
drwxr-xr-x   2 root root     1024   7  2014 license
drwxr-xr-x   2 root root     1024   7  2014 logo
drwx------   2 root root    12288   7  2014 lost+found
lrwxrwxrwx   1 root root       15   7  2014 pocketbook -> bin/monitor.app
drwxr-xr-x  12 root root     1024   7  2014 share
drwxr-xr-x   2 root root     1024   7  2014 themes
-rw-r--r--   1 root root       12   7  2014 .version
drwxr-xr-x   3 root root     1024   7  2014 widgets

, , , . , /bin /ebrmain/cramfs/bin./. , cramfs.img ramfs, (, !!!).



/lib . , cramfs . 4pda, -.


monitor.app, 8, cramfs.img (sde8/cramfs.img/bin/monitor.app).
monitor.app , sde8 pocketbook, /sde8/bin/monitor.app, , , , monitor.app, cramfs.img.


fsimage.tar.gz . . , . . , share

ls -1 share/
alsa
antiword
book_store.bmp
book_store_Titelive.bmp
explorer-2
FBReader
fonts
icons
locale
man2wall.sh
obreeysync
player.cfg
s2pb
ssl
wifi-files-fix.sh
zlibrary
zoneinfo.lst
zoneinfo.tar.gz

, wifi , . , !

: ! , . , , ! ! , - ?

. GNU?


- - , . , , :). , Linux, , Sony. , , , , . , Linux GNU, , Pocketbook : , userspace? , license-violation@gnu.org. , PocketBook, ? :

!

PocketBook 515. , Linux. GNU General Public License, , . , , ( ) ? PocketBook 515.

PocketBook 515. .

( ) habr.com.

, , PocketBook , .

, !

.

Linux. Linux, 515, : github.com/pocketbook/Platform_A13

!

,

! ! , , , -, ( ), - - .

: libc, . , . .… .

.

. , , , GNU GPL. , rootfs busybox





glibc, . , .

, . , . , ?


? , , , git- userspace, .

, !
.

R&D , busybox glibc , :

busybox.net/downloads ( 1.26.2)
www.gnu.org/software/libc ( 2.50.3)

,


, , .

PocketBook 515


( ) PocketBook 626 626+. , . .
, . , . PocketBook. , 4pda. , (. ), , .


, 1000 , , .

- , . 450 .


III. :
1) .
2) (, vcom waveform), . yadi.sk/d/ur92mMug3SPVHh, ED050SC3 ED050SC5.
3) SDSN .

IV. , — 3 .

:

  1. . , , . , PocketBook ( ), . , , .
  2. , , .
  3. , (, ).
  4. - (SDSN), . , , .

, , - , , , , . , , , . , : , ! - ! .

4pda. , , PocketBook 626, . . , . , , . .

, , , :

  • .
  • (- ).
  • MBR-, ( ) ( hex-, ).
  • SDSN ( ).
  • .freezestatus, .
  • .
  • ...
  • ???
  • PROFIT!!!

, SDSN ( ) . . . /sys ( root). . , , Raspberry Pi! - Raspberry Pi Zero. , HDMI, USB-, . .



, serial. :
find /sys –name “serial” , SD- . home .

, , ! , ! ! , ,… , . …



… . , -. , -. ( ).
, , !


- . :

  1. . , , . , .
  2. , , , . . .
  3. SD- – - . - SD-, - . , , , . !
  4. , . , , rootfs ramfs, — . , , . – .
  5. . , , ? , . ( ) , , . , .
  6. . , . , : , TrustZone -. , , , . , , «» . , , . (, ;) )

, , , . , . , .

, « ». .

, - , .

P.S. PocketBook , !

Source: https://habr.com/ru/post/pt481708/


All Articles