1

Тема: [DVR] Хто що знає, що за дистрибутив HiLinux?

На двох відеореєстраторах (Raysharp та Soho) помітив прошивка базується на модифікаціях якогось дистрибутиву під назвою HiLinux.. ну хоча би так себе називає.. реліз називається 2.6.14-hi3511v100dmeb-less-release.. хто знає що це за дистрибутив такий?

2

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

HetmanNet
Скоріше за все, Raysharp і Soho самі не виробляють залізо, а купляють у китайського OEM-виробника. Потім клеять на нього наклейки зі своїм брендом, можливо іще софт трохи модифікують, в інший корпус запихають. А основну роботу виконує який-небудь HiangDuongMai, який заливає у свої залізяки власну збірку Лінукса, яку його інженери й назвали HiLinux.

3 Востаннє редагувалося HetmanNet (30.11.2016 13:30:09)

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

Torbins написав:

HetmanNet
Скоріше за все, Raysharp і Soho самі не виробляють залізо, а купляють у китайського OEM-виробника. Потім клеять на нього наклейки зі своїм брендом, можливо іще софт трохи модифікують, в інший корпус запихають. А основну роботу виконує який-небудь HiangDuongMai, який заливає у свої залізяки власну збірку Лінукса, яку його інженери й назвали HiLinux.

Ну RaySharp підійшов добре до процесу, правда деяке сміття лишилося після того хто модифікував (типу ping скрипту на початку завантаження, закоментованих строк які вказують на те як завантажував файли і т.п.).. але решта на своїх місцях..
Щодо SOHO то тут таке враження де вкинув там і лишив.. розкидані скрипти.. і т.д. таке враження що віндузяка збирав..
Можливо вендор заліза як раз і давав їм якийсь дистрибутив за основу.. бо навряд він його заливав, бо процеси завантаження linux здається різняться, таке враження що їх просто збирали з одного коду по різним манам.. можливо навіть це просто якийсь дистрибутив під проц на основі якого роблять (armv5tejl) давався виробником проца..

RaySharp

Processor       : ARM926EJ-Sid(wb) rev 5 (v5l)
BogoMIPS        : 143.76
Features        : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 16384
I assoc         : 4
I line length   : 32
I sets          : 128
D size          : 16384
D assoc         : 4
D line length   : 32
D sets          : 128

Hardware        : Hi3511v100
Revision        : 0000
Serial          : 0000000000000000

SOHO

Processor       : ARM926EJ-Sid(wb) rev 5 (v5l)
BogoMIPS        : 155.64
Features        : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 16384
I assoc         : 4
I line length   : 32
I sets          : 128
D size          : 16384
D assoc         : 4
D line length   : 32
D sets          : 128

Hardware        : Hi3511v100
Revision        : 0000
Serial          : 0000000000000000

4

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

і т.д. таке враження що віндузяка збирав..

:D да, в всьму винні віндузняки які збирають лінукс

бо процеси завантаження linux здається різняться, таке враження що їх просто збирали з одного коду по різним манам..

а якже відкритий код, легко правити баги, можна в них запросити підтримку і все таке, лінукс це круто і ще багато хвалених строк  :)

5

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

reverse2500 написав:

і т.д. таке враження що віндузяка збирав..

:D да, в всьму винні віндузняки які збирають лінукс

бо процеси завантаження linux здається різняться, таке враження що їх просто збирали з одного коду по різним манам..

а якже відкритий код, легко правити баги, можна в них запросити підтримку і все таке, лінукс це круто і ще багато хвалених строк  :)

Відкритий код вже частково допоміг, якщо знайду інфу по дистрибутиву то може знайду код до решти спільних компонентів.. ну мабуть окрім програми від виробника, та у кожного своя хоча не виключено що за основу має одну і ту саму..

6

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

HetmanNet
Там напевне не проц, а цілий SoC. Відповідно під нього виробник дає SDK в якому є ядро з усіма драйверами, та купа інших допоміжних штук типу базового юзерспейсу. Якщо знайдете десь той SDK, то в ньому не буде багатьох специфічних конкретно для ваших залізок речей. Тому білдити прошивку на основі чистого SDK і заливати в девайс я б не став. А сирці з усіма модифікаціями навряд знайдете. Тому можна буде хіба що в юзерспейсі щось трішки поміняти.

7 Востаннє редагувалося HetmanNet (30.11.2016 16:01:28)

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

Перша проблема. Треба внести зміни у файлову систему, але система вантажиться з флеш пам'яті, тобто після reboot все що запишу зникне бо існує лиш в оперативці.. уникнути цього мабуть можливо, бо в скриптах ініціалізації знайшов:

mount -t jffs2 /dev/mtdblock/3 /mnt/flash

Маємо:

brw-------    1 root     root      31,   0 Jan  1  1970 /dev/mtdblock/0
brw-------    1 root     root      31,   1 Jan  1  1970 /dev/mtdblock/1
brw-------    1 root     root      31,   2 Jan  1  1970 /dev/mtdblock/2
brw-------    1 root     root      31,   3 Jan  1  1970 /dev/mtdblock/3

Так розумію, в решті ховається решта..
Створив теку /mnt/root та пробував змонтувати, не вийшло:

mount: Mounting /dev/mtdblock/0 on /mnt/root failed: Input/output error
mount: Mounting /dev/mtdblock/1 on /mnt/root failed: Input/output error
mount: Mounting /dev/mtdblock/2 on /mnt/root failed: Input/output error

..
Тож питання, як отримати доступ до вмісту щоб його змінити?

P.S. Ступив, можна було глянути які файлові системи підтримує..

~ $ cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   sockfs
nodev   pipefs
nodev   futexfs
nodev   tmpfs
nodev   inotifyfs
nodev   eventpollfs
nodev   devpts
        ext2
        cramfs
nodev   ramfs
nodev   devfs
nodev   jffs2
        romfs
nodev   mqueue
nodev   rpc_pipefs
nodev   nfs
        iso9660
        vfat
nodev   usbfs

я так розумію, найбільш ймовірно в romfs знаходиться завантажувач, а в cramfs решта.. як вважаєте?

8

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

ARM926EJ ядро
для Hi3511v100 uboot є на github

9 Востаннє редагувалося reverse2500 (30.11.2016 16:05:05)

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

Тож питання, як отримати доступ до вмісту щоб його змінити?

завантажувач можна глянути по даташиту процесора, і він може бути не в процесорові, а окремо записаний в DataFlash, так що треба дивитись, завантажувач може ще бути запакований
І ще, це підключенння через RS-232 ?

10 Востаннє редагувалося HetmanNet (30.11.2016 16:39:23)

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

reverse2500 написав:

Тож питання, як отримати доступ до вмісту щоб його змінити?

завантажувач можна глянути по даташиту процесора, і він може бути не в процесорові, а окремо записаний в DataFlash, так що треба дивитись, завантажувач може ще бути запакований
І ще, це підключенння через RS-232 ?

Ні, це по telnet :D

До речі, лиш зараз додумався подивитися, чомусь забув:

~ $ cat /proc/self/mounts
rootfs / rootfs rw 0 0
/dev/root / ext2 rw,nogrpid 0 0
proc /proc proc rw,nodiratime 0 0
sysfs /sys sysfs rw 0 0
devfs /dev devfs rw 0 0
devpts /dev/pts devpts rw 0 0
/dev/mtdblock/3 /mnt/flash jffs2 rw,noatime 0 0
/dev/sda1 /root/tl_app/rec/a1 vfat rw,nodiratime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1 0 0
/dev/sda3 /root/tl_app/rec/a3 vfat rw,nodiratime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1 0 0
/dev/sda4 /root/tl_app/rec/a4 vfat rw,nodiratime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1 0 0

В /root запхані програма від виробника і скрипти її ініціалізації..

~ $ ls -l -a /root
drwxr-xr-x    7 root     root         1024 Nov 30 17:10 .
drwxr-xr-x   22 root     root         1024 May  5  2011 ..
-rwxr-xr-x    1 root     root           20 Mar 26  2010 .profile
-rw-r--r--    1 root     root           16 Nov 30 15:59 DVR_CTRL_PORT.txt
-rwxr-xr-x    1 root     root            0 Nov 30 17:10 cron.sh
-rwxr-xr-x    1 root     root          145 Mar 26  2010 go.sh
drwxr-xr-x    2 root     root         1024 Nov 10  2010 load_cfg
-rwxr-xr-x    1 root     root          282 Mar 26  2010 m127.sh
drwxr-xr-x    2 root     root         1024 Mar 26  2010 pci-drv
-rwxr-xr-x    1 root     root          227 May  5  2011 run_app.sh
-rwxr-xr-x    1 root     root          484 May  5  2011 run_app_common.sh
drwxr-xr-x    2 root     root         1024 Mar 26  2010 sample
drwxr-xr-x    4 root     root         1024 Nov 30 15:59 tl_app
drwxr-xr-x    3 root     root         1024 Apr 27  2011 tl_modules_host16

і здається туди можна писати.. може спробувати туди запхати скрипт, що при старті створить задачу для cron? Якщо df не бреше то є куди:

~ $ df      
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/root                45539     22864     20371  53% /
/dev/mtdblock/3           1024       512       512  50% /mnt/flash
/dev/sda1            244180224 243824896    355328 100% /root/tl_app/rec/a1
/dev/sda3            244180224 243824640    355584 100% /root/tl_app/rec/a3
/dev/sda4            244188416 243955712    232704 100% /root/tl_app/rec/a4

Правда з RaySharp навряд таке вийде (вище то SOHO), там здається краще попрацювали:

Прихований текст

~ $ df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/root                 6144      6004       140  98% /
/dev/mtdblock/3           9408      9408         0 100% /mnt/app
/dev/sda1               988212    252468    685544  27% /stm/disk/0/p1
tmpfs                     2048         0      2048   0% /mnt/tmpfs
~ $ ls -l /mnt/app
-rwxrwxrwx    1 1000     232       1356553 Jan  1  1970 mkisofs
drwxrwxrwx    1 1000     232          2008 Jan  1  1970 pic
-rwxrwxrwx    1 1000     232       3652834 Jan  1  1970 stm_hi3511_dvr
drwxrwxrwx    1 1000     232           196 Jan  1  1970 www
drwxrwxrwx    1 1000     232           240 Jan  1  1970 xml
~ $ cat /proc/self/mounts
rootfs / rootfs rw 0 0
/dev/root / jffs2 rw,noatime 0 0
proc /proc proc rw,nodiratime 0 0
sysfs /sys sysfs rw 0 0
devfs /dev devfs rw 0 0
devpts /dev/pts devpts rw 0 0
/dev/mtdblock/3 /mnt/app cramfs ro 0 0
/dev/sda1 /stm/disk/0/p1 ext2 rw,nosuid,nodev,nogrpid 0 0
tmpfs /mnt/tmpfs tmpfs rw 0 0
~ $ ls -a /root
.             ..            .ash_history

11

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

може уже і було знайдено, але ось ще частина інформації по процессору і Linux

12

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

Ще би китайську знати..  :[

13 Востаннє редагувалося Torbins (30.11.2016 16:38:17)

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

HetmanNet
Те, що після ребуту зітреться, то не проблема. Закиньте туди якийсь FTP сервак чи щось таке, й запустіть від рута. Вам треба скачати на комп файли /dev/mtdblock/0..3. А на компі хекс редактором чи іще чимось подивитеся, що в середині.

14

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

Ще би китайську знати..

я традиційну китайську знаю хоч погано, але як не зрозуміти що це є структура для процессора і там ясно які треба брати  файли

Linux-2.6.14 标准内核的 Phy 驱动并不成熟,因此将该部分代码升级到 Linux-2.6.23 版本
的 Phy 驱动,修改文件如下:
./drivers/net/phy/smsc.c
./drivers/net/phy/icplus.c
./drivers/net/phy/Kconfig
./drivers/net/phy/mdio_bus.c
./drivers/net/phy/cicada.c
./drivers/net/phy/phy_device.c
./drivers/net/phy/lxt.c
./drivers/net/phy/Makefile
./drivers/net/phy/davicom.c
./drivers/net/phy/broadcom.c
./drivers/net/phy/marvell.c
./drivers/net/phy/vitesse.c
./drivers/net/phy/phy.c
./drivers/net/phy/fixed.c
./drivers/net/phy/qsemi.c

google translate в допомогу

15 Востаннє редагувалося HetmanNet (30.11.2016 17:30:15)

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

Torbins написав:

HetmanNet
Те, що після ребуту зітреться, то не проблема. Закиньте туди якийсь FTP сервак чи щось таке, й запустіть від рута. Вам треба скачати на комп файли /dev/mtdblock/0..3. А на компі хекс редактором чи іще чимось подивитеся, що в середині.

Та ґаву зловив.. переплутав консолі і вирішив що в SOHO можна в root писати.. і зрадів, бо в SOHO там прога зі скриптами.. виявилося ні :(
Ну закинути туди ftp буде непросто.. а ось в RaySharp зустрічав у одному з конфігів закоментовану строчку:

mount -t nfs -o nolock 192.168.2.142:/home3/hi3511/ /home

Як вважаєш, буде простіше?

Тож поставив:

dnf install system-config-nfs

Розблокував nfs в firewalld:

firewall-cmd --zone=public --add-service=nfs
firewall-cmd --zone=public --add-service=rpc-bind

Змонтував.. перевірив.. все ок.. тепер треба робити образ.. і dd нам в поміч..

~ $ dd if=/dev/mtdblock/3 of=/home/soho3.bin    
2048+0 records in
2048+0 records out
~ $ dd if=/dev/mtdblock/2 of=/home/soho2.bin
24576+0 records in
24576+0 records out
~ $ dd if=/dev/mtdblock/1 of=/home/soho1.bin
4096+0 records in
4096+0 records out
~ $ dd if=/dev/mtdblock/0 of=/home/soho0.bin
2048+0 records in
2048+0 records out

Що запропонуєте далі? Яка стратегія?

У RaySharp на блок більше
~ $ dd if=/dev/mtdblock/0 of=/home/RaySharp0.bin
1024+0 records in
1024+0 records out
~ $ dd if=/dev/mtdblock/1 of=/home/RaySharp1.bin
2048+0 records in
2048+0 records out
~ $ dd if=/dev/mtdblock/2 of=/home/RaySharp2.bin
12288+0 records in
12288+0 records out
~ $ dd if=/dev/mtdblock/3 of=/home/RaySharp3.bin
16384+0 records in
16384+0 records out
~ $ dd if=/dev/mtdblock/4 of=/home/RaySharp4.bin
1024+0 records in
1024+0 records out

16 Востаннє редагувалося Torbins (30.11.2016 20:35:03)

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

Поставте хекс-редактор, та подивіться що в середині. Спробуйте змонтувати ці образи на компі. Далі треба буде проаналізувати їх вміст. Дуже часто в скриптах залишають невеличкі дірки для полегшення налагодження. На девайсі з рутом можна навіть спробувати модифікувати образ і залити назад. Тільки не треба чіпати образи розділів, які необхідні для завантаження. А хоча, маючи рут, можна просто на запис перемонтувати.
І де там у вас фірмовий софт лежить, на /dev/sda1? З нього також дамп зніміть.

17 Востаннє редагувалося HetmanNet (30.11.2016 20:49:06)

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

Torbins написав:

Поставте хекс-редактор, та подивіться що в середині. Спробуйте змонтувати ці образи на компі. Далі треба буде проаналізувати їх вміст. Дуже часто в скриптах залишають невеличкі дірки для полегшення налагодження. На девайсі з рутом можна навіть спробувати модифікувати образ і залити назад. Тільки не треба чіпати образи розділів, які необхідні для завантаження. А хоча, маючи рут, можна просто на запис перемонтувати.
І де там у вас фірмовий софт лежить, на /dev/sda1? З нього також дамп зніміть.

Ні, /dev/sda то жорсткий диск на який записується відео.. вся прошивка в чотирьох - п'яти блоках, які записані у flash пам'ять..

18

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

моя порада поставити radare2, Ida pro та спробувати аналізувати файли,  НЕХ редактор мало що допоможе

19

Re: [DVR] Хто що знає, що за дистрибутив HiLinux?

7zip зміг дещо розпакувати, а далі дивитися часу не було.