sudo picocom -b 115200 /dev/ttyACM0
gives you a terminal thats actuall you typing on the actual vocore machineplease note : from here on you are logged in as "root" which means you can screw up anything but the hardware by making a typo (maybe even the hardware on some machines lol who knows) but thats how this thing rolls, its not meant to have umpteen users logging into it from all over the place. Also please note : in order to screw up the machine you are logging in FROM you would need some serious quantum entanglement, if you have that much liquid nitrogen or similar in the room we would advise you to try logging in somewhere else. ALSO please note IF you screw up, normally you can reinstall a bare (or self-compiled) image as long as "uBoot" works but in the worst case that requires removing the plastic casing and connecting GPIO "GND" and "RST" while powering on and then selecting flash from the menu, all of that is explained at the vocore site in what seems to be enough detail for us at least and we're not really rocket scientists yet, but we do understand this is not aimed at lvl3 or 4 geeks, probably best move to lvl 1 or lower first to grasp the basics for that , because once you start connecting holes on the circuit board you can actually do more than screw up the system WITHOUT quantum entangled electrons on both machines attached. It would be nice to see a vocore 3 with a little reset button that protrudes through the case but given the times and the extra cost it probably gets for a small thing like that which is already aimed at lvl0 enthusiasts in the first place seems unlikely. Who knows, the Vorlons might land and fix the place (tho they have a way of fixing it permanently) where was i ? (yea, happens a lot) - |
![]() |
ifconfig
would show you the network, for us we have enabled dhcp for the lan uci set network.lan.proto=dhcp
so LUCI (web interface) becomes available but not wifi.You're already root so it wont ask twice or for a password , caveat rootor, uci is used to alter settings in openwrt but it wont actually write them until you "commit". Ash is minimal so its bound to have something less somewhere than bash does but we'll assume it has everything needed to run a base linux system including the use of variables, iteration, condition and jumping (maybe even select or gosub type statements - im sure we'll find out)
uci commit In this case LUCI sit (on this boot at http://192.168.0.250) its not https although you can probably enable that, since wifi is not enabled, no wan, lan only youd have to be IN the network already (which makes it too late already, its like if mister Robot gets a job at Crotter it doesnt matter how complex your password is - he sits at the other side of the tunnel where it gets unencrypted, and if not he can probably just put the hashes on an sd card, JUST LIKE IN THE MOVIES :) so you open a browers and type "192.168.0.250" and SHEZAM ... please note : LUCI is mighty handy over doing everything from terminal unless you just like doing stuff from terminal, ofcourse you cant do EVERYTHING from there but about all administrative stuff for the router (which is what openwrt would mostly address) can be handled from there, including update / downgrade to another version of openWRT if you have the image. We intend to check every image we can find online and see what works "by default" on a fresh flash/install (its not really a flash there as such but semantics is not our hobby we are not pro after all) please note : as with all things vocore (and probably embedded systems : you are root, it wont ask twice it wont tell you to not put plastic bag over head and even if you more or less know what you're doing, a slip of the click can hack yow-ass yourself to the point of format c: required. If you do this as a passtime and you're not already a lvl0 or lvl-1 enthusiast get ready for some re-installing. Explaining LUCI is not for us, you can browse and go over all of it, check the vocore site and probably best also the OpenWrt site (whoever came up with the idea to do all those caps in the middle of words must be a real masochist but bem ... its worse in javascript actually. right click the images / "open in new tab" for now to see full size (yes its gonna load a lot and probably almost have the size of a standard page with analytics code by now but optimization of this page is not the priority (unless you wanna pay for it or something, money up front we'll get to it :) (haha) |
![]() ![]() |
El KladBlok #!/bin/ash for y in `seq 0 90` do printf "\xF8\xF8\x00\x00\x00\xF8\xaa\xaa\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" | dd bs=16 seek=$((1000 + ${y})) >/dev/fb0 done printf "\xFF" |dd bs=1 seek=1000 > /dev/fb0 printf "\xF8\x00\xFF" |dd > /dev/fb0 #!/bin/ash for y in `seq 0 100` do printf "\x00\xFF\x00\x00\x00\xff" | dd bs=6 seek=$((2500 + ${y})) >/dev/fb0 done #!/bin/ash for y in `seq 0 256` do dd if=/pix/010101 of=/dev/fb0 seek=$y done #!/bin/ash for y in `seq 100 150` do dd if=/pix/FF0000FF of=/dev/fb0 seek=$y done #!/bin/ash rm /pix/020202 for y in `seq 0 240` do printf "\x$1\x00" >> /pix/FF0000FF echo $y done dd if=/dev/urandom of=/dev/fb0 bs=1000 count=768 clear dd if=/pix/010101 of/dev/fb0 count=7 seek=0 dd if=/dev/urandom of=/dev/fb0 bs=1000 count=7 seek=8 dd if=/pix/010101 of/dev/fb0 count=7 seek=17 dd if=/dev/urandom of=/dev/fb0 bs=1000 count=7 seek=22 exit #!/bin/ash rm /pix/010101 for y in `seq 0 999` do printf '\x01' >> /pix/010101 echo $y done exit dd if=/dev/zero of=/dev/fb0 bs=1000 count=7 seek=1 #fill with random colored pixels: dd if=/dev/urandom of=/dev/fb0 bs=1000 count=7 seek=8 dd if=/dev/zero of=/dev/fb0 bs=1000 count=7 seek=17 dd if=/dev/urandom of=/dev/fb0 bs=1000 count=7 seek=22 exit head -c 2560 /dev/null > /tmpdat dd if=/tmpdat of=/dev/fb0 bs=2560 head -c 2560 /dev/random > /tmpdat dd if=/tmpdat of=/dev/fb0 bs=2560 head -c 2560 /dev/null > /tmpdat dd if=/tmpdat of=/dev/fb0 bs=2560 head -c 2560 /dev/random > /tmpdat dd if=/tmpdat of=/dev/fb0 bs=2560 head -c 2560 /dev/null > /tmpdat dd if=/tmpdat of=/dev/fb0 bs=2560 head -c 2560 /dev/random > /tmpdat dd if=/tmpdat of=/dev/fb0 bs=2560 for y in `seq 0 256` do a=$(printf '%x\n' $y) echo $a echo $y done exit head -c 5120 /dev/urandom > tmpdat head -c 2550 /dev/urandom > tmpdat head -c 2560 /dev/urandom > tmpdat dd if=/dev/zero bs=1 count=2560 | tr "\000" "\377" > tmpdat dd if=/dev/zero bs=1 count=1280 | tr "\000" "\377" > tmpdat rm tmpdat #for (var y=0,y<=256,y++); #for y in {0...256} #for y in {0 .. 256} #for y in 0 256 for y in `seq 0 256` do a=$(printf '%x\n' $y) echo $y rm tmpdat #for (i=0;i<=640;i++); #for i in {0...640} for i in `seq 0 640` do printf "%b" "\x$a\x00\x$a\x00" >> tmpdat #????? BGRa ???? BGRnull ??? done #thats pretty slow on an i5 #hashtables dus or how did the awk-guy #sudo dd if=tmpdat of=/dev/fb0 status=none bs=2560 seek=$y #$(($RANDOM%10)) #(sudo not found in ash ... it kinda makes sense that one lol) dd if=tmpdat of=/dev/fb0 status=none bs=2560 seek=$y #$(($RANDOM%10)) #head -c 2520 /dev/urandom > tmpdat #sudo dd if=tmpdat of=/dev/fb0 status=none bs=2560 seek=25 #$(($RANDOM%10)) done #} exit : cat /sys/class/graphics/fb0/virtual_size yes printf "xff" | dd bs=512 > /dev/fb0 yes printf "xff" | dd bs=64 seek=$((100*1024+200)) > /dev/fb0 https://unix.stackexchange.com/questions/192206/is-it-possible-to-access-to-the-framebuffer-in-order-to-put-a-pixel-on-the-scree printf "\x00\xFF\xFF\x00" | dd bs=4 seek=$((100 * 1024 + 200)) >/dev/fb0 #sudo fbset -fb /dev/fb0 -xres 400 -yres 800 -match printf "\x00\xFF\xFF\xFF\xFF\x00" | dd bs=6 seek=$((100 * 1024 + 200)) >/dev/fb0 scp -o -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa test root@192.168.0.247:/tmp/test
root@OpenWrt:/# ls bin mnt rom test test3.sh usr dev overlay root test.dat test4.sh var etc pix sbin test.sh tmp www lib proc sys test2.sh tulz root@OpenWrt:/#
rtxcat@Tyrnannoght:~$ scp -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa test6.bmp root@192.168.0.247:/tmp/ root@192.168.0.247's password: test6.bmp 100% 750KB 1.7MB/s 00:00this will put the file test6.bmp from the local pc (assuming you opened terminal inside the folder to /tmp folder on the vocore
rtxcat@Tyrnannoght:~$ scp -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa test6.bmp root@192.168.0.247:/fbdump $HOME root@192.168.0.247's password: fbdump 100% 752KB 1.9MB/s 00:00this will load a file in the root directory of the vocore / named fbdump to the homedir on the local machine
etcetera...
for ease we rendered a few images at 480x800 using the filter/render menu export as "windows bitmap" (duh...?) settings : run-length encoded : off / do not write color space information : on / advanced : 16bit -R5G6B5 scp'd it to /tmp on the cube and then dd if=/tmp/test8.bmp of=/dev/fb0
to take a screenshot from the framebuffer : cat /dev/fb0 > screenshotfilename
images to the right are jpgs for thumbnails because crotterfox doesnt want to display the bmps says they have errors (tho they display fine in gimp and imgviewer here) the thing IS : we copy the framebuffer to a raw screenshot and the picture is exactly as it was, but on the screen itself it has an offset to the right MASSIVE BUMMER |
|
root@OpenWrt:/bin# mem usage: mem [addr] [value] [bit] root@OpenWrt:/bin# mem 0x10000064 0x05540555; mem 0x10000604 0x1000; while [ 1 ] ; do mem 0x10000634 0x1000; sleep 1; mem 0x10000644 0x1000; sleep 1; done can not map memory. can not map memory. can not map memory. can not map memory. can not map memory. can not map memory. can not map memory. can not map memory. can not map memory. ^Ccan not map memory. ^C root@OpenWrt:/bin# ^C root@OpenWrt:/bin# ^C root@OpenWrt:/bin# ^C root@OpenWrt:/bin#
root@OpenWrt:/etc# cat rc.local echo 0 > /sys/devices/virtual/vtconsole/vtcon1/bind echo 0 > /sys/class/graphics/fbcon/cursor_blink echo -e '\x00\x36\x02\x00\x00\x00\x02\x00' > `find /sys/devices/platform/101c0000.ehci -name command` /root/demo &change to ( like this or in editor )
echo 0 > /sys/devices/virtual/vtconsole/vtcon1/bind echo 0 > /sys/class/graphics/fbcon/cursor_blink echo -e '\x00\x36\x02\x00\x00\x00\x02\x00' > `find /sys/devices/platform/101c0000.ehci -name command` #/root/demo & dd if=/dev/jogo_voc1.bmp of=/dev/fb0 madplay /test.mp3boots and plays the startup sample in the background while leaving the console available in terminal, clearing the screen after the startup log
root@OpenWrt:/etc# cat /proc/bus/input/devices I: Bus=0003 Vendor=c872 Product=1004 Version=0003 N: Name="VoCore Touch" P: Phys=usb-101c0000.ehci-1/input0 S: Sysfs=/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/input/input0 U: Uniq= H: Handlers=event0 B: PROP=0 B: EV=b B: KEY=400 0 0 0 0 0 0 0 0 0 0 B: ABS=3
hexdump seems to be standard installed |
![]() |
root@OpenWrt:/dev# du -h /dev/fb0 0 /dev/fb0 root@OpenWrt:/dev# cd /sys root@OpenWrt:/sys# ls block class devices fs module bus dev firmware kernel root@OpenWrt:/sys# cd devices root@OpenWrt:/sys/devices# ls platform system virtual root@OpenWrt:/sys/devices# cd system root@OpenWrt:/sys/devices/system# ls clockevents clocksource container cpu root@OpenWrt:/sys/devices/system# cd .. root@OpenWrt:/sys/devices# cd virtual root@OpenWrt:/sys/devices/virtual# ls bdi mem net sound vc watchdog graphics misc ppp tty vtconsole workqueue root@OpenWrt:/sys/devices/virtual# cd graphics root@OpenWrt:/sys/devices/virtual/graphics# ls fbcon root@OpenWrt:/sys/devices/virtual/graphics# cd fbcon root@OpenWrt:/sys/devices/virtual/graphics/fbcon# ls cursor_blink rotate rotate_all subsystem uevent root@OpenWrt:/sys/devices/virtual/graphics/fbcon# ls -l -rw-r--r-- 1 root root 4096 May 16 2020 cursor_blink -rw-r--r-- 1 root root 4096 Feb 14 16:08 rotate --w------- 1 root root 4096 Feb 14 16:08 rotate_all lrwxrwxrwx 1 root root 0 Feb 14 16:08 subsystem -> ../../../../class/graphics -rw-r--r-- 1 root root 4096 Feb 14 16:08 uevent root@OpenWrt:/sys/devices/virtual/graphics/fbcon# cat uevent root@OpenWrt:/sys/devices/virtual/graphics/fbcon# cat cursor_blink root@OpenWrt:/sys/devices/virtual/graphics/fbcon# cat subsystem cat: read error: Is a directory root@OpenWrt:/sys/devices/virtual/graphics/fbcon# cd subsystem root@OpenWrt:/sys/class/graphics# ls fb0 fbcon root@OpenWrt:/sys/class/graphics# cd fb0 root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# ls bits_per_pixel dev name stride blank device pan subsystem console mode rotate uevent cursor modes state virtual_size root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# cat blank root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# cat console root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# cat cursos root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# cat cursor root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# ls -l -rw-r--r-- 1 root root 4096 May 16 2020 bits_per_pixel -rw-r--r-- 1 root root 4096 May 16 2020 blank -rw-r--r-- 1 root root 4096 May 16 2020 console -rw-r--r-- 1 root root 4096 May 16 2020 cursor -r--r--r-- 1 root root 4096 May 16 2020 dev lrwxrwxrwx 1 root root 0 May 16 2020 device -> ../../../1-1:1.0 -rw-r--r-- 1 root root 4096 May 16 2020 mode -rw-r--r-- 1 root root 4096 May 16 2020 modes -r--r--r-- 1 root root 4096 May 16 2020 name -rw-r--r-- 1 root root 4096 May 16 2020 pan -rw-r--r-- 1 root root 4096 May 16 2020 rotate -rw-r--r-- 1 root root 4096 May 16 2020 state -r--r--r-- 1 root root 4096 May 16 2020 stride lrwxrwxrwx 1 root root 0 May 16 2020 subsystem -> ../../../../../../../../class/graphics -rw-r--r-- 1 root root 4096 May 16 2020 uevent -rw-r--r-- 1 root root 4096 May 16 2020 virtual_size root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# cat dev 29:0 root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# cat mode root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# cat modes U:480x800p-0 root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# cat state 0 root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# cat virtual_size 480,800 root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0# cd graphics root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics# ls fb0 root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics# cd f b0 root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# ls bits_per_pixel dev name stride blank device pan subsystem console mode rotate uevent cursor modes state virtual_size root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# cat * 16 29:0 cat: read error: Is a directory U:480x800p-0 fbusb 0,0 0 0 960 cat: read error: Is a directory MAJOR=29 MINOR=0 DEVNAME=fb0 480,800 root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0#
root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0# cat * 16 29:0 cat: read error: Is a directory U:480x800p-0 fbusb 0,0 0 0 960 cat: read error: Is a directory MAJOR=29 MINOR=0 DEVNAME=fb0 480,800 root@OpenWrt:/sys/devices/platform/101c0000.ehci/usb1/1-1/1-1:1.0/graphics/fb0#
reboot
command reboot does not require connecting the terminal again but you'll get a lot of garble as it doesdoes what you might suspect it does but hold, hold hold and hold until it stops moving - it will say "press enter to enter console before its actually done, if you do that nothing bad happens but its gonna start scrolling after that again for a bit" (you can "right-click / open image in new tab to see full size for now") no site optimization of any kind yet |
![]() ![]() ![]() ![]() |
if you want to shut down safely
poweroff
does what you might suspect it does but hold, hold hold and hold until it stops moving - it will say someting like "reboot: System halted" , the screen will display what it was displaying (thats bc screen mem is on-screen as we understand) the leds on the vocore will go out and you can safely unplug both, a bit like unmounting or safely removing flash drives so you're site its not doing anything and you boot up into a wrecked system the next time (we didnt know that one, but the equivalent of sudo shutdown -h more or less in ash then)
|
![]() |