Что то типа путевых записок, и размышлений об жизни, ну и о FreeBSD конечно, иногда какие нибудь новости и что то типа переводов.

15.05.2016

Приключения DIR-825

Что енто тут никто не пишет, обленились все.

А вот попался, мне тут в руки DIR-825, даже уже прошитый OpenWRT но как то не очень хотевший работать. Ну то есть, он включался, хитро мигал и ... опять мигал. Как далее подтвердилось, он и правда вошел в вечный ребут.
После нескольких попыток, хитро понажимать кнопки и повыдёргивать шнур, было решено всё же добраться до потрохов, благо уже который год подряд, на письменном столе, в виде макетной платы, всё так же поживает мой преобразователь для RS232. Сказано, сделано, но вот незадача, в интернетах имеется всего пара замыленных фото, а распайки именно этой ревизии DIR-825 B2 (B1 если верить cpuinfo) ну ни в какую не видно, пусть теперь вот мир обогатится.
DIR-825 B2 (B1 cpuinfo)
Кстати забавное отступление, обнаружил, как можно толково снимать свои железки, оказывается, тренога на подоконнике, 50mm объектив и всё очень даже вот как симпатично, ну и утреннее солнышко.
serial port
```
  PIN1*–>3.3V 
  PIN2–>RX 
  PIN3–>TX 
  PIN4–>GND
```
* first square

В принципе,насчёт, последовательного порта, вики скорее права, но тут немного вмешался мой колхоз, с этим переходником на соплях, да и паяльником в виде молотка, но в конце концов пины были надёжно распаяны и всё вроде как заработало.

А внутри местами чудесное, вот это например
# cat /proc/meminfo 
MemTotal:          11816 kB
MemFree:            1016 kB
MemAvailable:       3136 kB
Buffers:            1220 kB
Cached:             1684 kB
SwapCached:            0 kB
Active:             2664 kB
Inactive:            740 kB
Active(anon):        516 kB
Inactive(anon):        8 kB
Active(file):       2148 kB
Inactive(file):      732 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:           504 kB
Mapped:             1160 kB
Shmem:                24 kB
Slab:               4012 kB
SReclaimable:        604 kB
SUnreclaim:         3408 kB
KernelStack:         216 kB
PageTables:          108 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:        5908 kB
Committed_AS:       1668 kB
VmallocTotal:    1048372 kB
VmallocUsed:        1292 kB
VmallocChunk:    1044380 kB
# cat /proc/cpuinfo 
system type             : Atheros AR7161 rev 2
machine                 : D-Link DIR-825 rev. B1
processor               : 0
cpu model               : MIPS 24Kc V7.4
BogoMIPS                : 452.19
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 16
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VCED exceptions         : not available
VCEI exceptions         : not available

И если cpuinfo, вроде нормален, о вот показания meminfo, заставляют глубоко задуматься, как блин так, ну и вот
# free
             total       used       free     shared    buffers     cached
Mem:         11816      10796       1020         24       1220       1684
-/+ buffers/cache:       7892       3924
Swap:            0          0          0
# ps w
  PID USER       VSZ STAT COMMAND
    1 root      1516 S    /sbin/procd
    2 root         0 SW   [kthreadd]
    3 root         0 SW   [ksoftirqd/0]
    4 root         0 SW   [kworker/0:0]
    5 root         0 SW<  [kworker/0:0H]
    6 root         0 SW   [kworker/u2:0]
    7 root         0 SW<  [khelper]
    8 root         0 SW   [kworker/u2:1]
   68 root         0 SW<  [writeback]
   70 root         0 SW<  [crypto]
   71 root         0 SW<  [bioset]
   73 root         0 SW<  [kblockd]
  108 root         0 SW   [kswapd0]
  158 root         0 SW   [fsnotify_mark]
  194 root         0 SW   [spi0]
  406 root         0 SW<  [ipv6_addrconf]
  412 root         0 SW<  [deferwq]
  415 root         0 SW<  [kworker/0:1H]
  434 root         0 SW   [kworker/0:2]
  479 root         0 SWN  [jffs2_gcd_mtd5]
  549 root      1168 S    /sbin/ubusd
  550 root      1176 S    /bin/ash --login
  715 root         0 SW<  [cfg80211]
  787 root      1168 S    /sbin/logd -S 16
  810 root      1620 S    /sbin/netifd
  852 root      1052 S    /usr/sbin/dropbear -F -P /var/run/dropbear.1.pid -p 22 -K 300
  955 root      1172 R    ps w

Становится скорее всего абсолютно понятно, что так оно ну никак не взлетит.

Так же попутно, открыл для себя ещё немного этой чёрной магии, найдя вот эту замечательную заметку Boot into OpenWrt Failsafe Mode and reflash a firmware, которая научила, как залить на мало живую тушку OpenWRT возможно живительную firmware. Так как коннектился я к ней по RS232, то было не очень понятно, как же туда закинуть образ, как оказалось просто, даже в рескьюре режиме, на локальных портах, у роутера поднимается 192.168.1.1 через который и можно с ним взаимодействовать,хотя в моём случае всё было не так просто, так как роутеру совсем плохо, то через ком, ему не нормально конфиги поредактировать, да даже команды из-за куцего режима терминала, воспринимают ввод только через pipe, благо нам от роутера не так и много то надо. Однако, так просто как в заметке не вышло, так как для старта dropbeard тупо не было необходимых условий, была не поднята шина ubus. А с роутера, как выше сказал, нельзя было ничего интерактивно ввести ни пароль для ssh, да даже согласится на приём ключа удалённого хоста. Хотя...
yes | user@192.168.1.99
решило проблему с ключем хоста, а потом был найден способ сгенерировать и ключ для ssh
/# dropbearkey -t rsa -f ~/.ssh/id_dropbear
Generating key, this may take a while...
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCykyumfqgPeeLtMFjRSZbSUqcYAI2exCQShEvYrpPXNAurdI4SlN5WRY+mcR5Zfi7ITnh88daaUhMR2IZCG7uxGysPo1nc8pUhF2crVyNuffpwJ3vGt+PbuY/tlDj5I0PGda5IIC6vWZE7MVdmfljNVeAafOSmzX452TiKX9zq+o+/54+4vEI+Z0/iP5Fi0+kf8Y5zXClrXkLfojJbq9TFZTTHZP3I4pblZruSlgLRwU2MADxRQMUXraS4fMOAfBC4e/jaRCoZznJuTV1tIGsXCWnCYDdJWw0cAQKrnJZTaGPOKiIgRC453YJgraR/l2r80FrUfVWN8Cs+5483WSIz root@OpenWrt
Fingerprint: md5 01:46:a6:92:7b:a9:a7:57:d3:09:6c:00:3d:b4:a3:8b
Закидываем его, на свой хост в .ssh/authorized_keys и качаем напрямую scp