Search the Community

Showing results for tags 'tutorial'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Announcements & first aid
    • Announcements
    • Board doesn't start
  • Community forums
    • Common issues
    • Peer to peer technical support
    • Feature Requests
    • TV boxes
    • General chit chat
  • Bug tracker
    • Allwinner A20
    • Allwinner H2 & H3
    • Allwinner H5 & A64
    • Allwinner H6
    • Armada A388, A3700
    • Amlogic S905(x), S922X
    • NXP (Freescale)
    • Rockchip 3288 & 3328
    • Rockchip 3399
    • Other supported boards
  • Development
    • Development

Marker Groups

  • Members

Product Groups

  • Misc


  • Armbian


  • Applications


  • Community Calendar

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







Found 73 results

  1. Hi, I've been running Octoprint on armbian for several months with good results of a couple of printers with good performance no relevant problems. Installation process is not complex but I decided to build a simple a plug&play meta-distribution like OctoPi for Rpi boards but based on armbian so it can be used potentially in any of the supported boards. I started with the popular Opi Zero as it is really cheap and the four cores of the H2+ processor handle perfectly a 3d printer load and is 3 times cheaper than a typical RPI3B that octoPi requires. You can find it here: Built-in features are: Core (installed and enabled): Optimized armbian Debian buster. Latest stable octoprint version. Selection of top octoprint plugins. HAProxy with self signed keys for ssl access. Avahi service: Bonjur addvertisement (this enable to acces with host-name.local via ssh or http/s) SSH console access. USB OTG console access (if available in the board) Enabled i2c-dev,spidev (if available on the board) 3D printer related software (installed but disabled): Klipper PlatformIo core for building 3D printer firmware. Marlin 1.1.x & Marlin 2.x.x firmware (bugfix versions) Extras (installed but disabled): MPGStreamer USB camera support (experimental) SMB shares to remote edit configuration files from a remote PC. Feedback and contributions are welcome. Thanks armbian guys for the awesome work you do.
  2. Hello everyone! Is there anyone who tried to run Docker on armbian? Ok, let's start from the beginning: I am from the Hypriot Team (we made Docker available on ARM) and recently saw some guys successfully playing with Docker on armbian. Meanwhile, we know, that our Docker runs at least on the Cubietrack and Lamobo R1/BananaPi R1 on top of armbian! This is awesome because, you know, IoT is coming, and Docker on ARM helps get a grip on many challenges induced by IoT. However, we were only able to support Docker on Raspberry Pis so far... Imagine if Docker would run on more than just a few ARM boards! Armbian seems an awesome platform to extend the family of Docker compatible boards. So, I wonder if there is anyone who tried to run Docker on armbian? If you are now curious about this topic and wanna get started, please see this blog post of how to install Docker on ARM within no time: Looking forward to get in touch with you guys!
  3. Normally you could install (if you use a 64Bit arm-system/OS) the 64Bit version of stockfish with apt install stockfish stockfish is a uci-chess-engine where some Chessboard-Display-Apps can conenct to (later I would show how to use this with TCP) Then you will get (at this time) the Version 8 64Bit = 8 64 = 11/2016 But the actual stockfish-engine is at Version 10 = 12/2018 ( see ) So I did clone the git-master at as .zip After unzipping and cd to ./Stockfish-master/src you could do -make clean -make help BUT there is for arm only a ARCH=armv7 (32Bit) option When using the ARCH=general-64 option make build ARCH=general64 COMP=gcc COMPCXX=g++ then the start of the compile did fail because g++ says that he didnt knows the -m64 commandline-option I searched the Web and found there no solution So I did take a look into the Makefile and first I didnt found anything about -m64, but then I discoverd in the gcc-options the follwing part which I then deleted: else CXXFLAGS += -m$(bits) LDFLAGS += -m$(bits) after that I did create a aarch64-ARCH-section under the armv7-ARCH-section: ifeq ($(ARCH),aarch64) arch = any prefetch = yes bits = 64 endif arch = any is copied from the "general-64" section, prefetch is copied from the "armv7"-section and maybe the "bits = 64" is obsolete? Now we can compile - there are two options: dpkg -l|grep 'g++' ii g++ 4:6.3.0-4 arm64 GNU C++ compiler ii g++-6 6.3.0-18+deb9u1 arm64 GNU C++ compiler make build ARCH=aarch64 COMP=gcc COMPCXX=g++ make build ARCH=aarch64 COMP=gcc COMPCXX=g++-6 When the compile has completed you will have the executeable stockfish in your ./Stockfish-master/src directory. see stockfish_10_64 as attached binary at the end of this thread-message When started you will see: Stockfish 140319 64 by T. Romstad, M. Costalba, J. Kiiski, G. Linscott Enter uci and you will see the stockfish-info: id name Stockfish 140319 64 id author T. Romstad, M. Costalba, J. Kiiski, G. Linscott option name Debug Log File type string default option name Contempt type spin default 24 min -100 max 100 option name Analysis Contempt type combo default Both var Off var White var Black var Both option name Threads type spin default 1 min 1 max 512 option name Hash type spin default 16 min 1 max 131072 option name Clear Hash type button option name Ponder type check default false option name MultiPV type spin default 1 min 1 max 500 option name Skill Level type spin default 20 min 0 max 20 option name Move Overhead type spin default 30 min 0 max 5000 option name Minimum Thinking Time type spin default 20 min 0 max 5000 option name Slow Mover type spin default 84 min 10 max 1000 option name nodestime type spin default 0 min 0 max 10000 option name UCI_Chess960 type check default false option name UCI_AnalyseMode type check default false option name SyzygyPath type string default <empty> option name SyzygyProbeDepth type spin default 1 min 1 max 100 option name Syzygy50MoveRule type check default true option name SyzygyProbeLimit type spin default 7 min 0 max 7 uciok You could leave the stockfish chess-engine with quit I will add (these days) a tutorial for setting up stockfish as TCP-Service (via inetd) and then we could connect via Windows/Android/Linux ChessBoard-Display-Apps to play with the stockfish engine on your 64Bit ARM-System Preview-Information-Links for setting up , connecting and playing with the engine: stockfish_10_64
  4. On some devices (mostly headless) like Pine A64 LTS and other SBCs with Allwinner SoCs is Lima blacklisted by default or not supported by distribution. For getting Lima work, you need to use distribution, which have already Mesa with Lima support (Mesa 20.1+) (or compile latest Mesa from sources, but this is not included in this tutorial). At the moment of writing, it's Ubuntu Focal and Debian Bullseye. I personally prefer Debian more, so in my case, download Debian Bullseye image for your SBC and burn it into the board. After booting into your board, find file named /etc/modprobe.d/blacklist-NAMEOFYOURSBC.conf (for me it's blacklist-pinea64-lts.conf), find line with: blacklist lima and comment it by adding # at begin of this line, so it will look like this: # blacklist lima Reboot the device and Lima should work finely. If you will have any questions or issues, let me know - gamiee
  5. I did that on a NanoPi Neo with the FriendlyARM PCM5102A Hat (;product_id=169 ) using kernel 4.14.87-sunxi and armbian 5.67 (or later would be only 5.65?) (before that I did use legacy kernel 3.4.x with the PCM510A) and the armbian-BuildSystem plus (THANKS to) informations in threads from @dony71 , @Christos, @Valery Rezvyakov and the the Reference-Threads you could find above ---------------------------------------------------------------------------------------------------------------------------------- BACKUP DTB (on NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- cp /boot/dtb/sun8i-h3-nanopi-neo.dtb /boot/dtb/sun8i-h3-nanopi-neo.dtb_org ---------------------------------------------------------------------------------------------------------------------------------- CONVERT dtb to dts (on NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- dtc -I dtb -O dts /boot/dtb/sun8i-h3-nanopi-neo.dtb -o /boot/dtb/sun8i-h3-nanopi-neo.dts ---------------------------------------------------------------------------------------------------------------------------------- EDIT /boot/dtb/sun8i-h3-nanopi-neo.dts ---------------------------------------------------------------------------------------------------------------------------------- nano /boot/dtb/sun8i-h3-nanopi-neo.dts - change: status from "disabled" to "okay" ---------------------------------------------------------------------------------------------------------------------------------- FROM i2s@1c22000 { #sound-dai-cells = <0x0>; compatible = "allwinner,sun8i-h3-i2s"; reg = <0x1c22000 0x400>; interrupts = <0x0 0xd 0x4>; clocks = <0x3 0x38 0x3 0x54>; clock-names = "apb", "mod"; dmas = <0x13 0x3 0x13 0x3>; resets = <0x3 0x2b>; dma-names = "rx", "tx"; status = "disabled"; phandle = <0x4e>; }; TO i2s@1c22000 { #sound-dai-cells = <0x0>; compatible = "allwinner,sun8i-h3-i2s"; reg = <0x1c22000 0x400>; interrupts = <0x0 0xd 0x4>; clocks = <0x3 0x38 0x3 0x54>; clock-names = "apb", "mod"; dmas = <0x13 0x3 0x13 0x3>; resets = <0x3 0x2b>; dma-names = "rx", "tx"; status = "okay"; phandle = <0x4e>; }; ---------------------------------------------------------------------------------------------------------------------------------- CONVERT (BACK) dts to dtb (on NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- dtc -I dts -O dtb /boot/dtb/sun8i-h3-nanopi-neo.dts -o /boot/dtb/sun8i-h3-nanopi-neo.dtb_I2S_okay ---------------------------------------------------------------------------------------------------------------------------------- COPY new dtb over dtb (on NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- cp /boot/dtb/sun8i-h3-nanopi-neo.dtb_I2S_okay /boot/dtb/sun8i-h3-nanopi-neo.dtb ---------------------------------------------------------------------------------------------------------------------------------- COPY sun8i-h3-I2S-out.dts to home (working directory on NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- copy sun8i-h3-I2S-out.dts --> /home/guido/ ---------------------------------------------------------------------------------------------------------------------------------- armbian-add-overlay (on NanoPi Neo) does only work if you got the kernel-headers installed for your actual kernel-version (at this time the lastest kernel-header are (via armbian-config -> Software -> Install Headers) Linux kernel headers for 4.14.84-sunxi on armhf - so NOT for kernel 4.19.y) ---------------------------------------------------------------------------------------------------------------------------------- root@npi-neo( armbian-add-overlay ./sun8i-h3-I2S-out.dts Compiling the overlay Copying the compiled overlay file to /boot/overlay-user/ Reboot is required to apply the changes ---------------------------------------------------------------------------------------------------------------------------------- dtbo is created (on NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- root@npi-neo( ls -l /boot/overlay-user/ insgesamt 4 -rw-r--r-- 1 root root 1323 Dez 7 19:34 sun8i-h3-I2S-out.dtbo ---------------------------------------------------------------------------------------------------------------------------------- user-overlay is created in /boot/armbianEnv.txt (on NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- verbosity=1 logo=disabled console=both disp_mode=1920x1080p60 overlay_prefix=sun8i-h3 overlays=usbhost1 usbhost2 rootdev=UUID=33ca90d6-130b-4d5f-a8f4-95b3b97ef5c0 rootfstype=ext4 usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u user_overlays=sun8i-h3-I2S-out ---------------------------------------------------------------------------------------------------------------------------------- now REBOOT (on NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- root@npi-neo( lsmod|grep i2s sun4i_i2s 16384 0 snd_soc_core 118784 2 sun4i_i2s,sun8i_codec_analog snd_pcm 69632 3 sun4i_i2s,snd_pcm_dmaengine,snd_soc_core ---------------------------------------------------------------------------------------------------------------------------------- EDIT config-default.conf (on armbian-BuildSystem) ---------------------------------------------------------------------------------------------------------------------------------- cd /home/guido/build nano ./config-default.conf replace content /home/guido/build/config-default.conf with attached config-default.conf_nanopineo ./compile -> With this conf, script compilation will stop to overwrite kernel source to build patch -> At that time, overwrite original Kconfig with the one you modified above (at "Make changes to U-Boot" press ENTER to proceed) wait for "Make your changes to /home/guido/build/cache/sources/linux-mainline/linux-4.14.y then press ENTER" BUT DONT PRESS ENTER YET ---------------------------------------------------------------------------------------------------------------------------------- EDIT/SAVE Kconfig in a 2nd shell-Window (on armbian-BuildSystem) ---------------------------------------------------------------------------------------------------------------------------------- nano /home/guido/build/cache/sources/linux-mainline/linux-4.14.y/sound/soc/codecs/Kconfig the part FROM config SND_SOC_PCM5102A tristate TO config SND_SOC_PCM5102A tristate "Texas Instruments PCM5102A CODEC - I2S" ---------------------------------------------------------------------------------------------------------------------------------- NOW PRESS ENTER in the 1st shell-Windows ( (on armbian-BuildSystem) ---------------------------------------------------------------------------------------------------------------------------------- -> Then script compilation will stop again to ask whether you want to add pcm5102a to compile -> Default is N, so you need to enter m for module compilation Texas Instruments PCM5102A CODEC - I2S (SND_SOC_PCM5102A) [N/m/?] (NEW) m = m for module compilation After compile is complete ---------------------------------------------------------------------------------------------------------------------------------- copy (via SCP/FTP?) the .deb's from /home/guido/build/output/debs (on armbian-BuildSystem) to /home/guido/ (on the NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------- INSTALL the .deb's (here only header and image - because it was already 5.67 (on NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- cd /home/guido dpkg -i ./linux-headers-next-sunxi_5.67_armhf.deb dpkg -i ./linux-image-next-sunxi_5.67_armhf.deb (image did include the .ko module for the pcm5102a) ---------------------------------------------------------------------------------------------------------------------------------- now REBOOT (on NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- ===================================================================================== ===================================================================================== !!!!!!!!!!!!!!!!!!!!!!!!!!!!! ATTENTION: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! After reboot my NanoPi Neo show the following armbian-version: ARMBIAN 5.65 stable Debian GNU/Linux 9 (stretch) 4.14.84-sunxi and 2 upgrades for headers&image (without the PCM5102A support) please keep in mind to freeze the kernel-updates in armbian-config for not to loose the support (module) for the PCM5120A! armbian-config -> system -> Freeze Disable kernel upgrades ===================================================================================== ===================================================================================== ---------------------------------------------------------------------------------------------------------------------------------- BE HAPPY about a successful i2s mapping in dmesg (on NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- root@npi-neo( dmesg|grep -i i2s [ 6.911751] asoc-simple-card sound_i2s: pcm5102a-hifi <-> 1c22000.i2s mapping ok ---------------------------------------------------------------------------------------------------------------------------------- I enabled also ananlog-Codec (on NanoPi Neo) ---------------------------------------------------------------------------------------------------------------------------------- root@npi-neo( aplay -l **** Liste der Hardware-Geräte (PLAYBACK) **** Karte 0: Codec [H3 Audio Codec], Gerät 0: CDC PCM Codec-0 [] Sub-Geräte: 1/1 Sub-Gerät #0: subdevice #0 Karte 1: I2Smaster [I2S-master], Gerät 0: 1c22000.i2s-pcm5102a-hifi pcm5102a-hifi-0 [] Sub-Geräte: 1/1 Sub-Gerät #0: subdevice #0 ---------------------------------------------------------------------------------------------------------------------------------- /etc/asound.conf (on NanoPi Neo) - later I2S did switch automatically to card 0 ---------------------------------------------------------------------------------------------------------------------------------- pcm.!default { type hw card 1 device 0 } ctl.!default { type hw card 1 } ---------------------------------------------------------------------------------------------------------------------------------- Reference-Threads ---------------------------------------------------------------------------------------------------------------------------------- config-default.conf.mod_nanopineo sun8i-h3-I2S-out.dts
  6. Panfrost instructions Armbian !!!! I made a script that does all this, check a few posts later for the script !!!!! This tutorial explains how to build an Armbian image with panfrost. And what else you need to make it work. These are early drivers. Many things don't work yet. Only OpenGL 2.1 works now. You need to build an image with kernel 5.2 or later. For this you need an x86 pc with Ubuntu 18.04 or a virtual Ubuntu 18.04 x86 image. First install git, then clone the build folder from Armbian, and enter the build directory. apt-get -y -qq install git git clone --depth 1 cd build Now run the script with EXPERT=yes so you can choose to build a dev image. sudo ./compile EXPERT=yes Choose "Full OS image for flashing" Then "Show a kernel configuration menu before compilation" Choose your board. If it's not in the regular list, look in "Show SCS/WIP/EOS/TVB". Choose Development version kernel configuration -> device drivers -> graphic drivers -> panfrost Let it run until it's finished. The image will be in the /build/output/images Burn it to an SD-card/eMMC/... Now we need to install all the needed software sudo apt install flex bison python3-mako libwayland-egl-backend-dev libxcb-dri3-dev libxcb-dri2-0-dev libxcb-glx0-dev libx11-xcb-dev libxcb-present-dev libxcb-sync-dev libxxf86vm-dev libxshmfence-dev libxrandr-dev libwayland-dev libxdamage-dev libxext-dev libxfixes-dev x11proto-dri2-dev x11proto-dri3-dev x11proto-present-dev x11proto-gl-dev x11proto-xf86vidmode-dev libexpat1-dev libudev-dev gettext glmark2 glmark2-es2 mesa-utils xutils-dev libpthread-stubs0-dev ninja-build bc python-pip flex bison cmake git valgrind llvm llvm-8-dev python3-pip pkg-config zlib1g-dev wayland-protocols Download and install meson wget sudo dpkg -i meson_0.52.0-2_all.deb Download and install mesa DRM git clone git:// cd drm meson build --prefix=/usr ninja -C build sudo -E ninja -C build install cd .. Download and install mesa graphics git clone git:// cd mesa meson -Ddri-drivers= -Dvulkan-drivers= -Dgallium-drivers=panfrost,kmsro -Dlibunwind=false -Dprefix=/usr build/ ninja -C build/ sudo ninja -C build/ install REBOOT Optionally, update sdl (recommended) git clone cd SDL mkdir build cd build cmake ../ make -j6 sudo make install REBOOT Only thing that works ok with it is supertuxkart, to install it. sudo apt install supertuxkart Panfrost - Linux games working from repo SuperTuxKart - Works well ExtremeTuxRacer - lots of glitches AssaultCube - lots of glitches Instructions by Salvador Liébana & NicoD
  7. I've used Zabbix professionally and at home to monitor servers, IoT, and IP devices. I've built scripts for the server and client to automate the install process including moving the MySQL database, so you can locate it to a NFS mount instead of serving the database from the slower SD card. The deb packages do not work for ARM, so you have to build it from source using my scripts. Install Zabbix
  8. If you know the movie "Wargames" then you may know the computer of "David Lightman" a IMSAI 8080 Udo Munk did create the software z80pack (last version from 2017 v1.36 at ) which does include - IMSAI 8080 - Altair - Cromemco Z1 and - cpmsim Emulation. Against the text based cpmsim emulation the other features a graphical frontpanel with "blinken lights" Yesterday I did try to compile/start my favourite IMSAI 8080. I did follow the instructions - which I collect and wrote for me - see attached to this message. But yesterdy I only got limited success (after many "bad" compiles with missing dependencies) in starting the IMSAI 8080 emulation. I did get the graphical frontend *yeah* - but after POWERON/RUN the computer I didnt get any terminal-output After MANY retries I did give up Today I did the same compile-session on a PC with Ubuntu MATE 20.04LTS and it did work in the first try At first I got no idea what wasnt working....but then I discovered that - when moving the graphical frontpanel - the terminal-output was written VERY SLOWLY to the terminal-screen *Aha* Because the garphical frontpanel seem to work perfectly (and did also compile very well) I searched inside the directorys of imsaisim and found in the "conf"-directory the file system.conf There in system.conf is a line where the FPS-rate of the frontpanel as default is configured to 60 FPS (Frames per second). While taking a look at htop the NanoPi A64 (where my armbian buster Desktop does run) the cpu-utilization is near 90% So my gut instinct did tell me thats to much and the NanoPi has to much work with the frontpanel than writing to the terminal. I changed the framerate in - for the IMSAI 8080: ~/z80pack-1.36/imsaisim/conf/systemconf - for the Altair: ~/z80pack-1.36/altairsim/conf/systemconf - for the Cromemco Z1: ~/z80pack-1.36/cromemcosim/conf/systemconf to # front panel framerate fp_fps 10 After that change all 3 emulators with graphical frontend did startup and give output on the terminal I contacted Udo Munk via email about this topic and he already knew it He wrote that he had implemented the FPS option, because some lower-spec systems had problems to achieve the power for producing a framerate of 60 FPS for the frontpanel. Here my write-up / documentation how I did compile / successfully start the IMSAI 8080 emulation: (many thanks to John Kennedy from the FB-Group Altair 8800 for double-checking my instructions!) ====================================================================== My normal evironment for compiling source: ====================================================================== apt install gcc libncurses5-dev liblua5.3-dev git make zip unzip -y ====================================================================== Getting z80pack-source: ====================================================================== cd ~ wget tar -xvf z80pack-1.36.tgz cd ~/z80pack-1.36/ ====================================================================== Dependencies named by z80pack: ====================================================================== libjpeg X11 OpenGL c++ compiler (g++) libpthread ====================================================================== Packages for the z80pack-dpendencies: ------------------------------------- apt install libjpeg-dev x11-common libpthread-stubs0-dev libxmu-dev apt install mesa-common-dev z80asm libglu1-mesa-dev freeglut3-dev ====================================================================== ==> <== ==> I built all packages of z80pack in the following order: <== ==> <== ==> ATTENTION: for some commands you may have to use sudo <== ====================================================================== 1.) FRONTPANEL ====================================================================== cd ~/z80pack-1.36/frontpanel/ make -f Makefile.linux NOTE: Be sure to copy to a shared library path! NOTE: cp ~/z80pack-1.36/frontpanel/ /usr/lib make -f Makefile.linux clean ====================================================================== 2.) CPMSIM ====================================================================== cd ~/z80pack-1.36/cpmsim/srcsim/ make -f Makefile.linux make -f Makefile.linux clean ====================================================================== 3.) CPMSIM-TOOLS ====================================================================== if you are user root: mkdir /root/bin if you are user pi: mkdir /home/pi/bin cd ~/z80pack-1.36/cpmsim/srctools make make install NOTE: (does install in /root/bin/) NOTE: Tools installed in /root/bin, make sure it is NOTE: included in the systems search PATH NOTE: export PATH=$PATH:/root/bin NOTE: or NOTE: export PATH=$PATH:/home/pi/bin make clean ====================================================================== 4.) ALTAIRSIM ====================================================================== cd ~/z80pack-1.36/altairsim/srcsim/ make -f Makefile.linux make -f Makefile.linux clean NOTE: change framerate to "fp_fps 10" in NOTE: ~/z80pack-1.36/altairsim/conf/system.conf ====================================================================== 5.) CROMEMCOSIM ====================================================================== cd ~/z80pack-1.36/cromemcosim/srcsim/ make -f Makefile.linux make -f Makefile.linux clean NOTE: change framerate to "fp_fps 10" in NOTE: ~/z80pack-1.36/cromemcosim/conf/system.conf ====================================================================== 6.) IMSAISIM ====================================================================== cd ~/z80pack-1.36/imsaisim/srcsim/ make -f Makefile.linux make -f Makefile.linux clean NOTE: change framerate to "fp_fps 10" in NOTE: ~/z80pack-1.36/imsaisim/conf/system.conf ====================================================================== PREPARE 1st start of imsaisim; ====================================================================== cp ~/z80pack-1.36/frontpanel/ /usr/lib cd ~/z80pack-1.36/imsaisim rm conf ln -s conf_2d conf export PATH=$PATH:/root/bin NOTE: maybe add the export-command to your ~/.bashrc ====================================================================== START of IMSAI 8080 CPM v2.2 from the x-terminal on the desktop (needs to be a "x-terminal) for connecting to the X-Server for creating the graphical frontpanel: ====================================================================== ./cpm22 NOTE: maybe root has to give access-rights: NOTE: chmod -R 666 ~/z80pack-1.36/imsaisim/disks NOTE: on the x-terminal root and the to the desktop logged in user can NOTE :start the application and connect to the X-server on a NOTE: SSH-terminal ONLY the to the desktop logged in user can start the NOTE: application and connect to the X-server to give root access to NOTE: the X-server from a SSH-terminal the he to the desktop logged NOTE: in user has to give root access via the xhost command: NOTE: xhost SI:localuser:root ====================================================================== POWER-UP the IMSAI 8080 in the graphical frontpanel ====================================================================== Press "POWER ON " upper part on the first switch on the right side (POWER ON / POWER OFF) Press "RUN" upper part of the third (red) switch (RUN/STOP) ====================================================================== Exit the IMSAI 8080 ====================================================================== Enter "bye" on the CP/M-commandline OR press "POWER OFF " lower part on the first switch on the right side (POWER ON / POWER OFF) OR close the graphical frontpanel with the close button X (Window-Manager-close) Pictures (screenshots are done with Mirage as you can see) of my "success"
  9. Yesterday i did install Armbian_5.86_Aml-s905_Debian_buster_default_5.1.0_20190514.img from @balbes150 on my Sunvell T95KPro (S912). While installing Pihole the Installation does break when trying to start lighttpd. After checking with journalctl -u lighttpd it turns out that the file /usr/share/lighttpd/ is missing, because in the newer lighttpd-version of debian buster the file has be renamed to /usr/share/lighttpd/ (see also ) Pihole doesnt know/use the new name with debian buster, so it fails to start the lighttpd So I did find 2 ways to resolve the problem. First (quick and dirty?) way: cp /usr/share/lighttpd/ /usr/share/lighttpd/ or ln -s /usr/share/lighttpd/ /usr/share/lighttpd/ read also: Pihole breaks lighttpd on Debian Buster #2557 the second way (found it at ) is to edit /etc/lighttpd/lighttpd.conf and search for the 2 following lines and comment them out (found the 2nd one at the end of the file): #include_shell "/usr/share/lighttpd/" #include_shell "cat external.conf 2>/dev/null" and add the follwoing line to the file: include_shell "/usr/share/lighttpd/" After saving the file you should be able to restart lighttpd via sudo /etc/init.d/lighttpd restart or sudo service lighttpd restart or sudo service lighttpd stop sudo service lighttpd start BUT second way does not work good with updating or repair-install of pihole, because I think this will set the config-file to the old state (also for server.error-handler-404) So maybe the first way will work better while pihole doenst know the new file-name - or you also can do both ways BTW: If you are experience a 400 Bad Request while only using the IP for getting to the Pihole-Webpage (and the redirect should ask you if you want to use the /admin page - but it doenst) then try the follwing small resolution - edit a line in the file /etc/lighttpd/lighttpd.conf from: server.error-handler-404 = "pihole/index.php" to: server.error-handler-404 = "/pihole/index.php" lighttpd.conf
  11. For "retro-reasons" I would like to SSH from my old Windows 98SE PC via putty 0.63 ( which is the last known to work under Windows98SE ) into armbian. This did work fine until armbian bullseye dev with kernel 5.6.8, because here we get the "new" openssh-serve 8.2p1: armbian bullseye kernel 5.6.8 openssh-server 1:8.2p1-4 arm64 secure shell (SSH) server, for secure access from remote machines before bullseye we had with armbian buster and so on the "older" open-ssh-server <=7.9p1 (where we didnt got this problem) armbian buster kernel 5.6.8 openssh-server 1:7.9p1-10+deb10u2 arm64 secure shell (SSH) server, for secure access from remote machines with open-ssh-server 8.2p1 there was a "little" change: OpenSSH 8.2/8.2p1 (2020-02-14) Potentially-incompatible changes ================================ * ssh(1), sshd(8): this release removes diffie-hellman-group14-sha1 from the default key exchange proposal for both the client and server. So the old putty 0.63 ( which is the last known to work under Windows 98 ) does produce the error-message: couldn't agree a key exchange algorithm After comparing many many configs and commands (also ssh -Q kex) the solution "only" was nano /etc/ssh/sshd_config # put at the end of /etc/sshd_config KexAlgorithms +diffie-hellman-group14-sha1 /etc/init.d/ssh restart Maybe this will help someone also using a older putty or other SSH-Client. With a newer version of putty on newer Windows there was no problem with that
  12. All, Don´t know if anybody else did it... but I got Bluetooth running by modifying the device tree and adding support for communication between the RTL8723BS and UART1 and loading the needed RTL8723B firmware. Distro: Armbian Buster Kernel version: 5.4.30-sunxi64 This is how I did it: 1) Create a patch (xx.patch) with the next content and place it in ~/build/userpatches/kernel/sunxi-current/ --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts 2020-04-06 12:37:45.584912094 +0200 +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts 2020-04-06 12:37:45.584912094 +0200 @@ -498,6 +498,21 @@ status = "okay"; }; +/* On Wifi/BT connector, with RTS/CTS */ +&uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; + status = "okay"; + + bluetooth { + compatible = "realtek,rtl8723bs-bt"; + device-wake-gpios = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */ + host-wake-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */ + reset-gpios = <&r_pio 1 4 GPIO_ACTIVE_LOW>; /* PM4 */ + post-power-on-delay-ms = <200>; + }; +}; + &usb2otg { dr_mode = "host"; status = "okay"; 2) Run sudo ./compile with your favorite config (Desktop/server/blablabla) 3) Flash the image to an SD card or eMMC module. 4) Start your Pine64 H64 model-B 4) Connect to a network and run the firmware update/upgrades (armbian-config) and install the Bluetooth tools. 5) DO NOT ENABLE SERIAL 1 !!!! in armbian-config 6) Download the next git repo to your board: 7) Unpack the archive, run make 8) Copy the next firmware files to /lib/firmwares/rtl_bt: sudo cp rtlbt_fw_new /lib/firmware/rtl_bt/rtl8723bs_fw.bin sudo cp rtlbt_config /lib/firmware/rtl_bt/rtl8723bs_config.bin 9) Reboot Expected dmesg output: [ 45.107273] Bluetooth: HCI UART driver ver 2.3 [ 45.107279] Bluetooth: HCI UART protocol H4 registered [ 45.107281] Bluetooth: HCI UART protocol BCSP registered [ 45.107329] Bluetooth: HCI UART protocol LL registered [ 45.107331] Bluetooth: HCI UART protocol ATH3K registered [ 45.107375] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 45.107509] Bluetooth: HCI UART protocol Intel registered [ 45.107592] Bluetooth: HCI UART protocol Broadcom registered [ 45.107614] Bluetooth: HCI UART protocol QCA registered [ 45.107616] Bluetooth: HCI UART protocol AG6XX registered [ 45.107642] Bluetooth: HCI UART protocol Marvell registered [ 45.845446] Bluetooth: hci0: RTL: examining hci_ver=06 hci_rev=000b lmp_ver=06 lmp_subver=8723 [ 45.849521] Bluetooth: hci0: RTL: rom_version status=0 version=1 [ 45.849529] Bluetooth: hci0: RTL: loading rtl_bt/rtl8723bs_fw.bin [ 46.055000] Bluetooth: hci0: RTL: loading rtl_bt/rtl8723bs_config.bin [ 46.096579] Bluetooth: hci0: RTL: cfg_sz 55, total sz 23699 [ 46.929071] Bluetooth: hci0: RTL: fw version 0x373e6962 'hciconfig list' output: hci0: Type: Primary Bus: UART BD Address: 48:46:C1:3A:6B:5F ACL MTU: 820:8 SCO MTU: 255:16 UP RUNNING PSCAN ISCAN RX bytes:1982677 acl:3028 sco:0 events:491 errors:0 TX bytes:91688 acl:232 sco:0 commands:225 errors:0 File transfer from Pine to Samsung is working... haven't tested anything else.. Regards, __Dirk__
  13. Tested this on clearfog base, banana pi m64, banana pi m2+ ## Building and providing The elastic team doesn't provide deb packages for ARM devices. But together with docker, we're able to build the main executable for it. We will create a build directory which includes anything to install filebeat on a ARM device. So please stay inside the build directory the whole time you are using this tutorial. mkdir build && cd $_ ## Prepare source code First we will download, check and extract the source code of filebeat. Source: wget wget sha512sum filebeat-7.6.0-linux-x86.tar.gz Extract and prepare tar xfz filebeat-7.6.0-linux-x86.tar.gz --transform 's/filebeat-7.6.0-linux-x86/filebeat-latest/' ## Using docker Install docker on any machine you want. We use a host with Debian Buster installed. ### Install docker on a Debian Buster x64 machine sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common wget -q -O - | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] stretch stable apt update sudo apt install docker-ce Instantiate a go container for cross-compilation (Debian Buster x64) Using latest docker go image docker run -it --rm -v `pwd`:/build golang:1.14 /bin/bash Inside the "go" docker container create filebeat for arm modules.listand arm64 go get cd /go/src/ git checkout v7.6.0 GOARCH=arm go build cp filebeat /build/filebeat-arm GOARCH=arm64 go build cp filebeat /build/filebeat-arm64 exit You can find the filebeat executeable inside your build directory. Leave it there for the moment. ## Download installation scripts I wrote an install script and collected a few files from other filebeat installations and uploaded them to You can find any information on the github repository itself. So we will clone the repository to the build directory. git clone ## Filebeat configuration Now you have to copy the filebeat.yml so that that the we'll use later on can move it to the right place. cp filebeat-latest/filebeat.yml my-filebeat.yml and change it to your needs vi my-filebeat.yml ## Other configurations There are other configurations that might interests you. cp filebeat-latest/modules.d/YOUR_MODULE.yml.disabled my-YOUR_MODULE.yml Change this files too vi my-YOUR_MODULE.yml The install script will loop through all .yml files starting with my- and will copy them to the right direction ## Ready for installation The build directory is ready to use. You are able to upload the build directory to a ARM server of your choice and execute the there. rsync -av --exclude={".git","*.tar.gz","*.tar.gz.sha512"} ../build/ server-of-your-choice:/opt/build/ ssh server-of-your-choice cd /opt/build/ bash /opt/build/RT-Blog-elastic/ rm -rf /opt/build/ ## Modules You're able to enable modules with the installation script. Create a file called modules.list inside the build directory and write the modules separated by whitespaces like iptables system apache
  14. Hi, There's been a few guides around on how to get RDP working with Armbian so you can login from your Windows or other PC. Some solutions mentioned in various threads here were: Install tightvncserver instead + x2go bloat (i.e. use VNC) Only login as root - didn't seem to make any difference for me Change some permissions of a log file in your home directory. Well, this is what I did on my Orange PI PC running Buster desktop with Kernel 5.4, as of April 2020. sudo apt install xrdp xorgxrdp sudo systemctl enable xrdp sudo reboot ... and that was it. The missing piece of the puzzel appeared to be the install of xorgxrdp, this isn't installed automatically by 'xrdp' package, and it's useless without it. Update June 2020: Also works with RetroOrangePi 4.3 super quickly (given this is based on Armbian Bionic 18.04). Can RDP in and use Armbian Desktop whilst Kodi plays a 4k movie on the TV from the same device... Awesome!
  15. Maybe someone does know the old/historical SAM (Software Automatic Mouth) speech synthesizer for the Commodore 64? Today I did found the github-page with the source-code and compiled it on my Orange Pi R1 - using armbian For compiling the default SDL-version I had to install the 2 additional packages with apt - libsdl1.2-dev - libsdl1.2debian before SAM did compile on armbian. I also did try libsdl2-2.0.0 (and -dev), but this didnt worked well while compiling The souce-code could be found at: Hear here, how this OLD speech synthesizer sounds Test him ONLINE: Or read about him in the Wikipedia:
  16. Hi all. I wrote a small guide on enabling pps-gpio by modifying the device tree. With a PPS signal it's possible to setup your board as a Stratum 1 time server for your local network or the NTP pool. I used this method on a Rock64 but it should be applicable on most board. PPS-GPIO on Rock64 with Armbian legacy (4.4.X) kernel Cheers.
  17. EDIT: 04.01.2020 - Fixed patches to work with latest armbian sources. (references have changed) Hi everybody, Here is a tutorial to enable the Lemaker 7" Touchscreen on BananaPi Pro with Debian Buster and Mainline-Kernel 5.XX.XX. Kernel: Mainline 5.4.6 / Buster Board: BananaPi Pro WebLinks: • • • • • To make the 7"LCD and the Touchscreen working with BananaPi Pro we need to patch some files and change the kernel config to build the driver for the touchscreen. To do this we need a working setup of the Armbian build tool chain ( /home/<USER>/build/cache/sources/u-boot/v201X.XX/configs/Bananapro_defconfig /home/<USER>/build/cache/sources/u-boot/v201X.XX/arch/arm/dts/sun7i-a20-bananapro.dts /home/<USER>/build/cache/sources/linux-mainline/linux-4.XX.y/arch/arm/boot/dts/sun7i-a20-bananapro.dts 1. U-Boot ( u-boot version that supports the LCD - must be compiled) Start the build process with ./ CREATE_PATCHES=yes When asked for: [ warn ] Applying existing u-boot patch [ /home/[USER]/build/output/patch/u-boot-sunxi-current.patch ] [ warn ] Make your changes in this directory: [ /home/[USER]/build/cache/sources/u-boot/v201X.XX ] [ warn ] Press <Enter> after you are done [ waiting ] a) edit /home/<USER>/build/cache/sources/u-boot/v201X.XX/configs/Bananapro_defconfig add the following: #7" LVDS LCD CONFIG_VIDEO_LCD_MODE="x:1024,y:600,depth:24,pclk_khz:55000,le:100,ri:170,up:10,lo:15,hs:50,vs:10,sync:3,vmode:0" CONFIG_VIDEO_LCD_PANEL_LVDS=y CONFIG_VIDEO_LCD_POWER="PH12" CONFIG_VIDEO_LCD_BL_EN="PH8" CONFIG_VIDEO_LCD_BL_PWM="PB2" b) edit /home/<user>/build/cache/sources/u-boot/v201X.XX/arch/arm/dts/sun7i-a20-bananapro.dts add after: &i2c2 { ... }; the following: &i2c3 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&i2c3_pins>; edt: edt-ft5x06@38 { compatible = "edt,edt-ft5x06", "edt,edt-ft5206"; reg = <0x38>; pinctrl-names = "default"; pinctrl-0 = <&edt_ft5x06_pins_a &edt_ft5x06_pins_b>; interrupt-parent = <&pio>; interrupts = <7 9 IRQ_TYPE_EDGE_FALLING>; touchscreen-size-x = <1024>; touchscreen-size-y = <600>; }; }; Add these two new sections to the end of the file: &pio { edt_ft5x06_pins_a: ft5@0 { pins = "PH9"; function = "irq"; drive-strength = <20>; bias-pull-up; }; edt_ft5x06_pins_b: ft5@1 { pins = "PH7"; function = "gpio_out"; drive-strength = <20>; bias-pull-up; output-high; }; }; &pwm { pinctrl-names = "default"; pinctrl-0 = <&pwm0_pin>, <&pwm1_pin>; status = "okay"; }; Then save and press <Enter> to continue. 2. Kernel patches - DTB (Device Tree Blob) file that fits to your Kernel and supports pwm When asked for: [ warn ] Applying existing kernel patch [ /home/<USER>/build/output/patch/kernel-sunxi-current.patch ] [ warn ] Make your changes in this directory: [ /home/<USER>/build/cache/sources/linux-mainline/orange-pi-5.XX ] [ warn ] Press <Enter> after you are done [ waiting ] c) edit /home/<USER>/build/cache/sources/linux-mainline/orange-pi-5.XX/arch/arm/boot/dts/sun7i-a20-bananapro.dts add the same lines like section b) Then save and press <Enter> to continue. 3. Compile Touchdriver menuconfig > Device Drivers > Input Device Support > Touchscreens > EDT FocalTech FT5x06 I2C Touchscreen support Exit and save the Kernel configuration. This is the outcome. You probably have a newer version than 19.11.4: Now you can flash the image to a SD-Card or you have to install the new DEBs. dpkg -i linux-u-boot-current-bananapipro_19.11.4_armhf.deb dpkg -i linux-dtb-current-sunxi_19.11.4_armhf.deb dpkg -i linux-image-current-sunxi_19.11.4_armhf.deb reboot The result: The LCD and the touchscreen are working. Attention! There is still the problem with the shutdown. When the patches were made for the LCD, the board did not shut down completely during a shutdown (LCD still had voltage and the red LED on the board did not go out). Workaround: We need to disable the LCD before the shutdown is finished. Therfore we have to create a script in the folder /lib/systemd/system-shutdown e.g. (as root) touch /lib/systemd/system-shutdown/ chmod +x /lib/systemd/system-shutdown/ nano /lib/systemd/system-shutdown/ add these lines: #!/bin/bash # LCD Power PH12 H=8 (8-1)*32+12 = 236 # Backlight enable PH8 H=8 (8-1)*32+8 = 232 # Backlight PWM PB2 B=2 (2-1)*32+2 = 34 if [ ! -d "/sys/class/gpio/gpio34" ] then sudo sh -c 'echo "34" > /sys/class/gpio/export' sudo sh -c 'echo "out" > /sys/class/gpio/gpio34/direction' sudo sh -c 'echo "1" > /sys/class/gpio/gpio34/value' fi if [ ! -d "/sys/class/gpio/gpio232" ] then sudo sh -c 'echo "232" > /sys/class/gpio/export' sudo sh -c 'echo "out" > /sys/class/gpio/gpio232/direction' sudo sh -c 'echo "1" > /sys/class/gpio/gpio232/value' fi if [ ! -d "/sys/class/gpio/gpio236" ] then sudo sh -c 'echo "236" > /sys/class/gpio/export' sudo sh -c 'echo "out" > /sys/class/gpio/gpio236/direction' sudo sh -c 'echo "1" > /sys/class/gpio/gpio236/value' fi # LCD on/off sudo sh -c 'echo "0" > /sys/class/gpio/gpio34/value' sudo sh -c 'echo "0" > /sys/class/gpio/gpio232/value' sudo sh -c 'echo "0" > /sys/class/gpio/gpio236/value' The script will be executed right before the board powers off. Measured power consumption: PowerON (booting / lcd still off) = 0.4A - 0.5A LCD turns on (still booting) = 0.85A - 1.05A Boot process ended (LCD on) = 0.75A Board on, LCD off = 0.35A - 0.45A ( -> LCD needs around 0.4A power ) shutdown -h now = 0.00A 4. Control the Power of the Backlight: The backlight PWM is on PIN CON2 PB2. Following the instructions on we have to export GPIO-PIN 34. (position of letter in alphabet - 1) * 32 + pin number position of letter in alphabet: B = 2 pin number: 2 ( 2 - 1 ) * 32 + 2 = 34 echo 34 > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio34/direction Power on the Backlight: echo "1" > /sys/class/gpio/gpio34/value Power off the Backlight: echo "0" > /sys/class/gpio/gpio34/value Now we could use a switch connected to a GPIO-IN to control the backlight. Steffen
  18. So this guy made a simple yet brilliant inquiry into his thoughts on how to hack the at&t restrictions. I hope theres a status update soon cause, Id love to know how his progress has gone so far.
  19. For enabling - to use stockfish/armfish-chess-engine - as a TCP service we need to configure (add the lines at the end of the file) /etc/inetd.conf #:OTHER: Other services stockfish08 stream tcp nowait guido /usr/games/stockfish stockfish10 stream tcp nowait guido /usr/games/stockfish_10_64 armfish stream tcp nowait guido /usr/games/armfish_aarch64 and add the TCP-Port - we want to use - to the /etc/services (for optical reasons after pop3s port 995/tcp) pop3s 995/tcp # POP-3 over SSL # # stockfish08 1024/tcp # stockfish 8 chess engine stockfish10 1025/tcp # stockfish 10 chess engine armfish 1026/tcp # armfish chess engine at the end we have to restart inetd (or reboot) systemctl restart inetd Additional (important?) informations: - guido is a local user on my system - you need to change the name for the /etc/inetd.conf to a local user of your system - /usr/games/stockfish is the stockfish-binary installes by apt install stockfish - the stockfish-binary we compiled for stockfish v10 64Bit in another thread from ./Stockfish-master/src/stockfish (directory of the cloned github-repository) to /usr/games/stockfish_10_64 - /usr/games/armfish_aarch64 is the (on a 64Bit PC-Linux compiled with fasmg) assembler-version of stockfish which could run twice as fast see precompiled aarch64-binary as attachment (think about the chmod 755 armfish_aarch64 after the transfer ) Binary-Overview in /usr/games/ root@t95k-pro( ls -l insgesamt 644 -rwxr-xr-x 1 root root 128050 Mär 14 22:08 armfish_aarch64 -rwxr-xr-x 1 root root 216216 Nov 12 2016 stockfish -rwxr-xr-x 1 root root 308896 Mär 14 13:57 stockfish_10_64 armfish_aarch64
  20. I've posted in the Armbian forums in the past about video surveillance software. For some reasons it was (at the time) not always that easy or impossible to compile or get it up and running. But: Times have changed (for the good this time!) and I've tried it again on a H3 1GB memory OrangePi plus with kernel 5.4 using a *FRESH and CLEAN* Ubuntu Bionic Server image. I was able to get the Kerberos software 2.8.0 up and running straight away, just by *EXACT* following the instructions on the website of (Generic installation Instructions page). It takes some time to compile ffmpeg and the machinery module, but it is certainly worth the effort! Go grab a drink, or do something else that's useful. Performance is ok, even though I think the hardware acceleration is not working. Just lower the FPS and/or resolution a bit. Performance is still great for everyday video surveillance with this excellent piece of software. I've tested successfully two different Logitech USB cams and two el-cheapo Chinese IP cameras using the RTSP stream. Other information can also be found on the website to get the software up and running. Please take care of defining exact camera type and resolution!
  21. There have been several disjointed tutorials on making a raspberrypi or orangepi into a surveillance camera. So I threw this together to maybe help someone out there with any issues. I used the orangepipc+ but any orangepi board should work as long as it has the basics, internet connectivity, storage, and a camera. (I highly suggest heatsinks as well) any feedback or enhancements to this tutorial are greatly appreciated. ------------------------------------------------------------------ ORANGEPI IPCAMERA ------------------------------------------------------------------ su root apt-get update apt-get upgrade apt-get install wget dpkg -i ffmpeg_3.1.1-1_armhf.deb apt-get remove libavcodec-extra-56 libavformat56 libavresample2 libavutil54 apt-get install python-pip python-dev curl libssl-dev libcurl4-openssl-dev libjpeg-dev libx264-142 libavcodec56 libavformat56 libmysqlclient18 libswscale3 libpq5 wget dpkg -i pi_jessie_motion_4.0.1-1_armhf.deb pip install motioneye mkdir -p /etc/motioneye cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf mkdir -p /var/lib/motioneye cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service systemctl daemon-reload systemctl enable motioneye systemctl start motioneye sudo modprobe gc2035 sudo modprobe vfe_v4l2 systemctl restart motioneye Accessing The Frontend After having successfully followed the installation instructions, the motionEye server should be running on your system and listening on port 8765. Fire up your favorite web browser and visit the following URL (replacing [your_ip] with... well, your system's IP address): http://[your_ip]:8765/ Use admin with empty password when prompted for credentials. For further details on how to configure motionEye, see Configuration. ------------------------------------------------------------------ FOR UPDATES; ------------------------------------------------------------------ pip install motioneye --upgrade systemctl restart motioneye sudo nano /etc/motioneye/motioneye.conf ctrl+x then y (nano) Modifiy the motion.config file to turnoff localhost; stream_localhost off change the port to 80 from 8765 if desired by; systemctl enable motion systemctl start motion Tutorial sources; (some resources for motion) OLD) WIP tutorial, I want to add a version with facial recognition using openface and a version using ALPR (automatic license plate recognition, as the orangepi systems can have 2GB of ram) Update 1 09/30/16; seems there is a issue with motioneye and being unable to find the csi camera. I'm trying to find a work around, any help is appreciated. Update 2 11/05/2016 Updated motioneye installation added information on motion and basic setup (incomplete) the editor seems to be breaking my wget addresses I forgot to add the login information and frontend... *DOH*
  22. Lately, I started writing a few articles on the OrangePi Zero, as I am trying to use it as part of a conference recording tool and to reference what I know about this board on the OrangePi Community docs website. Of course, I have to show my command lines, and their results. I used to post my commands on gist, then use Carbon to generate an image with the commands and their outputs… But that’s quite a lot of boring work… I then discovered asciinema and the recording that can be transformed into a GIF file thanks to asciicast2gif. It worked pretty well under Ubuntu for my previous projects, but it was not really practical to launch it, issue an ssh command, and then exit twice before having the recording… and modifying it to get rid of the SSH command. Furthermore, GIF are not usable for visually impaired people, so using something like SVG where they could copy and paste would be better in my opinion… Unfortunately, SVG is not handled by medium, so it will have to be used on other media, like my Ghost instance (not available yet). Enters termtosvg. That’s a wonderful tool aimed at producing animated SVG after recording terminal sessions. It compiled like a breeze (well, a strong, smelly and cold breeze) on the Zero, so I used it quite intensively (before discovering it could not be used on Medium). I then searched for tools able to transform an animated SVG to GIF, so that I would not have to redo all my terminal recordings… and was not able to do so. There is one library called librsvg that could be used by ffmpeg, but I have not been able to compile it on the Zero, and it’s just an hypothesis, there is no guarantee at all that it could be used to produce GIF files from animated SVG files. termtosvg can produce files than can be used by asciinema and then asciicast2gif to produce gif files, but the process is cumbersome and does not work on the Zero. I had to use a X86 Linux machine to do it. Anyway, with this post, you won’t be able to produce GIF images starting from a terminal recording if you’re using exclusively a Zero, but beautiful animated SVG that you will be able to use on your blog, or anywhere else where animated SVG is supported. If you’re brave enough to also use an X86 machine, go to the end of this post, and take time to get old before getting your first GIF file. TermToSVG installation TL;DR git config --global http.proxy http://proxy-machine:proxy-port sudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile sudo nano /etc/fstab git clone sudo apt-get install python3-setuptools libxml2-dev libxslt-dev python3-dev python3-pip cd termtosvg echo "Let's modify the Makefile so that we use python3 and pip3 as I can't get rid of Python2.7.x on this machine..." echo "See at" make build pip3 install dist/termtosvg-0.9.0-py3-none-any.whl The real installation process Let’s try to install termtosvg on the Zero. First of all, let’s configure the proxy if needed and then get the source code: poddingue@orangepizero:~$ git clone Cloning into 'termtosvg'... remote: Enumerating objects: 99, done. remote: Counting objects: 100% (99/99), done. remote: Compressing objects: 100% (59/59), done. remote: Total 1592 (delta 59), reused 68 (delta 40), pack-reused 1493 Receiving objects: 100% (1592/1592), 1.37 MiB | 2.08 MiB/s, done. Resolving deltas: 100% (930/930), done. poddingue@orangepizero:~$ cd termtosvg/ poddingue@orangepizero:~/termtosvg$ make build rm -rf dist && \ python sdist bdist_wheel usage: [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: --help [cmd1 cmd2 ...] or: --help-commands or: cmd --help error: invalid command 'bdist_wheel' make: *** [Makefile:31: build] Error 1 Of course, the setuptools module can’t be found. I have not installed/configured Python2 setup tools. But as I had already done if for Python3, I modified the Makefile so that python is now python3, and pip is now pip3: PIP=pip3 PYTHON=python3 If I had not done it yet, it would have looked that way: poddingue@orangepizero:~/termtosvg$ sudo apt-get install python3-setuptools Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: python-setuptools-doc The following NEW packages will be installed: python3-setuptools 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 306 kB of archives. After this operation, 1,353 kB of additional disk space will be used. Get:1 buster/main armhf python3-setuptools all 40.8.0-1 [306 kB] Fetched 306 kB in 0s (1,225 kB/s) Selecting previously unselected package python3-setuptools. (Reading database ... 66711 files and directories currently installed.) Preparing to unpack .../python3-setuptools_40.8.0-1_all.deb ... Unpacking python3-setuptools (40.8.0-1) ... Setting up python3-setuptools (40.8.0-1) ... Now that Python setup tools are installed, let’s try it again: poddingue@orangepizero:~/termtosvg$ make build rm -rf dist && \ python3 sdist bdist_wheel usage: [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: --help [cmd1 cmd2 ...] or: --help-commands or: cmd --help error: invalid command 'bdist_wheel' make: *** [Makefile:31: build] Error 1 Ok, fair enough, I’ll install wheel thanks to pip. pip3 install wheel Collecting wheel Using cached Installing collected packages: wheel The script wheel is installed in '/home/poddingue/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed wheel-0.33.6 And then, as gently suggested by pip3: export PATH=/home/poddingue/.local/bin:$PATH Ok, let’s try it again: poddingue@orangepizero:~/termtosvg$ make build rm -rf dist && \ python3 sdist bdist_wheel running sdist running egg_info creating termtosvg.egg-info writing termtosvg.egg-info/PKG-INFO writing dependency_links to termtosvg.egg-info/dependency_links.txt writing requirements to termtosvg.egg-info/requires.txt writing top-level names to termtosvg.egg-info/top_level.txt writing manifest file 'termtosvg.egg-info/SOURCES.txt' reading manifest file 'termtosvg.egg-info/SOURCES.txt' reading manifest template '' warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.pyc' found anywhere in distribution warning: no files found matching 'man/*.man.?' writing manifest file 'termtosvg.egg-info/SOURCES.txt' running check [...] Creating tar archive removing 'termtosvg-1.0.0' (and everything under it) [...] running build_scripts [...] installing to build/bdist.linux-armv7l/wheel running install running install_lib [...] Copying termtosvg.egg-info to build/bdist.linux-armv7l/wheel/termtosvg-1.0.0-py3.7.egg-info [...] adding 'termtosvg-1.0.0.dist-info/RECORD' removing build/bdist.linux-armv7l/wheel Happy? Not really… poddingue@orangepizero:~/termtosvg$ pip3 install dist/termtosvg-1.0.0-py3-none-any.whl Processing ./dist/termtosvg-1.0.0-py3-none-any.whl Collecting pyte (from termtosvg==1.0.0) Downloading (50kB) 100% |████████████████████████████████| 51kB 768kB/s Collecting lxml (from termtosvg==1.0.0) Downloading (2.6MB) 100% |████████████████████████████████| 2.6MB 74kB/s Collecting wcwidth (from termtosvg==1.0.0) Downloading Building wheels for collected packages: pyte, lxml Running bdist_wheel for pyte ... done Stored in directory: /home/poddingue/.cache/pip/wheels/c0/dd/4a/d0ec26b9d07a3b48e25ba3456dc9bcab875686af6da9e23fcd Running bdist_wheel for lxml ... error Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-4whala87/lxml/';f=getattr(tokenize, 'open', open)(__file__);'\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-w27wrikj --python-tag cp37: Building lxml version 4.4.2. Building without Cython. ERROR: b'/bin/sh: 1: xslt-config: not found\n' ** make sure the development packages of libxml2 and libxslt are installed ** Using build configuration of libxslt running bdist_wheel running build running build_py [...] arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -Isrc -Isrc/lxml/includes -I/usr/include/python3.7m -c src/lxml/etree.c -o build/temp.linux-armv7l-3.7/src/lxml/etree.o -w In file included from src/lxml/etree.c:692: src/lxml/includes/etree_defs.h:14:10: fatal error: libxml/xmlversion.h: No such file or directory #include "libxml/xmlversion.h" ^~~~~~~~~~~~~~~~~~~~~ compilation terminated. Compile failed: command 'arm-linux-gnueabihf-gcc' failed with exit status 1 creating tmp cc -I/usr/include/libxml2 -c /tmp/xmlXPathInitp1a2wq_x.c -o tmp/xmlXPathInitp1a2wq_x.o /tmp/xmlXPathInitp1a2wq_x.c:1:10: fatal error: libxml/xpath.h: No such file or directory #include "libxml/xpath.h" ^~~~~~~~~~~~~~~~ compilation terminated. ********************************************************************************* Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed? ********************************************************************************* error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1 [...] Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-4whala87/lxml/';f=getattr(tokenize, 'open', open)(__file__);'\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-5dypr5tk/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-install-4whala87/lxml/ Damn! poddingue@orangepizero:~/termtosvg$ sudo apt install libxml2-dev libxslt-dev python3-dev Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'libxslt1-dev' instead of 'libxslt-dev' python3-dev is already the newest version (3.7.3-1). The following additional packages will be installed: icu-devtools libicu-dev libxslt1.1 Suggested packages: icu-doc The following NEW packages will be installed: icu-devtools libicu-dev libxml2-dev libxslt1-dev libxslt1.1 0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. Need to get 10.5 MB of archives. After this operation, 44.6 MB of additional disk space will be used. Do you want to continue? [Y/n] Get:1 buster/main armhf icu-devtools armhf 63.1-6 [168 kB] Get:2 buster/main armhf libicu-dev armhf 63.1-6 [8,934 kB] Get:3 buster/main armhf libxml2-dev armhf 2.9.4+dfsg1-7+b3 [718 kB] Get:4 buster/main armhf libxslt1.1 armhf 1.1.32-2.2~deb10u1 [217 kB] Get:5 buster/main armhf libxslt1-dev armhf 1.1.32-2.2~deb10u1 [507 kB] Fetched 10.5 MB in 5s (2,318 kB/s) Selecting previously unselected package icu-devtools. (Reading database ... 66802 files and directories currently installed.) Preparing to unpack .../icu-devtools_63.1-6_armhf.deb ... Unpacking icu-devtools (63.1-6) ... Selecting previously unselected package libicu-dev:armhf. Preparing to unpack .../libicu-dev_63.1-6_armhf.deb ... Unpacking libicu-dev:armhf (63.1-6) ... Selecting previously unselected package libxml2-dev:armhf. Preparing to unpack .../libxml2-dev_2.9.4+dfsg1-7+b3_armhf.deb ... Unpacking libxml2-dev:armhf (2.9.4+dfsg1-7+b3) ... Selecting previously unselected package libxslt1.1:armhf. Preparing to unpack .../libxslt1.1_1.1.32-2.2~deb10u1_armhf.deb ... Unpacking libxslt1.1:armhf (1.1.32-2.2~deb10u1) ... Selecting previously unselected package libxslt1-dev:armhf. Preparing to unpack .../libxslt1-dev_1.1.32-2.2~deb10u1_armhf.deb ... Unpacking libxslt1-dev:armhf (1.1.32-2.2~deb10u1) ... Setting up icu-devtools (63.1-6) ... Setting up libxslt1.1:armhf (1.1.32-2.2~deb10u1) ... Setting up libicu-dev:armhf (63.1-6) ... Setting up libxml2-dev:armhf (2.9.4+dfsg1-7+b3) ... Setting up libxslt1-dev:armhf (1.1.32-2.2~deb10u1) ... Processing triggers for man-db (2.8.5-2) ... Processing triggers for libc-bin (2.28-10) ... All set? Not so sure… Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-9lgddbtt/lxml/';f=getattr(tokenize, 'open', open)(__file__);'\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-ghyj96g8/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-install-9lgddbtt/lxml/ The error may have happened because of low memory. Let’s this machine breathe a little better by giving it more swap: sudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile sudo nano /etc/fstab Now, let’s add this line in /etc/fstab. /swapfile swap swap defaults 0 0 Let’s try to install it once again. Go and have a coffee, or go for a walk… You could maybe even take time to marry and start a family before the build finishes. Anyway, after some time, you’ll have your beautiful termtosvg package ready to rock! pip3 install dist/termtosvg-1.0.0-py3-none-any.whl Processing ./dist/termtosvg-1.0.0-py3-none-any.whl Collecting lxml (from termtosvg==1.0.0) Using cached Requirement already satisfied: pyte in /home/poddingue/.local/lib/python3.7/site-packages (from termtosvg==1.0.0) (0.8.0) Requirement already satisfied: wcwidth in /home/poddingue/.local/lib/python3.7/site-packages (from termtosvg==1.0.0) (0.1.8) Building wheels for collected packages: lxml Running bdist_wheel for lxml ... - done Stored in directory: /home/poddingue/.cache/pip/wheels/73/52/7c/5cd696851d3e5e31a05023dd402b04659a6ec695ecc566c9d3 Successfully built lxml Installing collected packages: lxml, termtosvg Successfully installed lxml-4.4.2 termtosvg-1.0.0 This time, it looks like our installation has been successful. Let’s try it for real now. Testing Just enter termtosvg, do your stuff, and then do exit. You will have a message that will tell you where your newly created file lies. That’s cool, but can we do any better? The man page tells us we can record a terminal session with a specific screen geometry: termtosvg -g 80x24 animation.svg Recording started, enter "exit" command or Control-D to end poddingue@orangepizero:~$ echo "Hello, World!" Hello, World! poddingue@orangepizero:~$ exit Rendering ended, SVG animation is animation.svg Pretty handy! I am recording my casts with a 200x60 geometry, exporting them in the SVG format. The first step is to record them: termtosvg record -g 200x60 whatever-name-I-choose.cast I then ask termtosvg to render the cast as SVG, so that I can use them in websites that can handle them: termtosvg render whatever-name-I-choose.cast whatever-name-I-choose.svg Rendering started Rendering ended, SVG animation is whatever-name-I-choose.svg Want more? You’re GIF hungry? Ok I resign myself to give you my process, which is not pretty, and requires an X86 machine. As we have seen before, we can record a terminal session in asciicast v2 format. The cast file we have produced during the previous step to generate SVG, can then be used by asciinema (using phantomjs in the background) to produce a GIF file. docker pull asciinema/asciicast2gif alias asciicast2gif='docker run --rm -v $PWD:/data asciinema/asciicast2gif' asciicast2gif -s 2 -t solarized-dark whatever-name-I-choose.cast demo.gif And here is the final result (see attachment or here). And in GIF for the CMS that can’t display properly SVG. whatever-name-I-choose[1].svg
  23. Had a bit of a success with HDMI audio and also video acceleration on OrangePi 3. What was needed was to apply some patches from LibreELEC, namely ones from projects/Allwinner/patches/linux/ . For HDMI audio to work you need 0004-sun4i-i2s-improvements.patch , which contains support for I2S on H6. When done right you should see in dmesg: asoc-simple-card sound: i2s-hifi <-> 5091000.i2s mapping ok Also what helped was an IRC chat that Jernej had with mirko some time ago: For video acceleration you need 0005-cedrus-improvements.patch and compile Cedrus driver. When done right you should see in dmesg: cedrus Device registered as /dev/video0 For a good measure I applied other patches in that directory as well, some needed modifications to apply to 5.5 kernel (LibreELEC uses 5.4) . Then FFMPEG needs to be compiled with v4l2_request to actually do the acceleration To get Kodi GUI acceleration working you need to compile mesa 20.0.0-devel from Mesa GIT. Kodi then needs to be compiled as GBM version. I also applied patches that LibreELEC has for Kodi into my Kodi tree. @jernej sounds the above about right?
  24. Hi all. For a new video I've made a list with my most used/useful terminal commands. Please let me know what I've missed, or which commands you use most. Useful Linux commands for Ubuntu/Debian --------------------------------------- Update/Install -------------- sudo apt update Update repolists sudo apt upgrade Upgrade system/programs sudo apt autoremove Remove obsolete programs sudo apt install programName Install program sudo apt remove programName Remove program sudo aptitude install When having issue's with apt, aptitude can help to solve this sudo apt update && sudo apt upgrade Update and upgrade together/You can run multiple commands with && sudo dpkg -i packageName.deb Install .deb file Root user --------- sudo passwd Change root password su Super User/Enter root user Debug/Monitor ------------- dmesg Shows debug messages uname -a Shows basic system information env Shows the environment information htop Hardware monitor Switch terminal --------------- ctrl + ALT + F4 (F1 - F6) Open new terminal 4 ctrl + ALT + F1 Go back to terminal 1 ctrl + ALT + F7 Go back to desktop Reboot/Shutdown --------------- sudo reboot Reboot sudo shutdown now Shutdown CPU Tools --------- cpufreq-set -g performance Set governor to performance cpufreq-set -u 2Ghz Set max frequency for all cores cpufreq-set -c 0-1 -u 1.8Ghz Set max frequency for specific cores lscpu | grep MHz Show cpu frequency taskset -c 3 programName Use a specific core for an application Files/Directories ----------------- nano /home/fileToRemove.txt Create a txt file with Nano. You could use any other texteditor. touch filename Create an empty file, no matter what kind cat /home/fileToRemove.txt Shows the content of a file cp /home/fileToRemove.txt /home/copy.txt Copy file find /home/ -iname "*.txt" Search files that end with .txt comm /home/fileToRemove.txt /home/copy.txt Compare files rm /home/fileToRemove.txt Remove file mv /home/copy.txt ~/Documents/ Move file mkdir /home/directoryToGoTo/ Create directory cd /home/directoryToGoTo/ Go to directory ls List directory ls -l Gives more information about every file/directory ls -l filename.txt Gives file information pwd Show current working directory cd .. Go to the above directory rmdir /home/directoryToGoTo/ Remove directory wget Download file Zip/Tar/GunZip -------------- zip myzip file1 file2 file3 Create zip file unzip Unzip file tar xvf filename.tar gunzip filename_tar.gz Mount drives/USB Devices ------------ lsusb List USB devices lsblb List attached drives mount /mount/mountedDisk /dev/sda2 Mount drive sudo chmod -R 777 /mount/mountedDisk Give user read/write permissions df -a List all filesystems Swap file/ZRam -------------- sudo apt install zram-config Install zram script sudo fallocate -l 8G /swapfile Allocate 8GB for swapfile sudo chmod 600 /swapfile Give the correct rights for the swapfile sudo mkswap /swapfile Make it a swapfile sudo swapon /swapfile Turn on the swapfile sudo nano /etc/fstab Open fstab and add the line ... |_ /swapfile swap swap defaults 0 0 Wifi ---- sudo nano /etc/network/interfaces and write: auto wlan0 iface wlan0 inet dhcp wpa-ssid {ssid} wpa-psk {password} OR nmcli device wifi rescan Scan for available wifi networks nmcli device wifi list Show available wifi networks nmcli device wifi connect SSID-Name password wireless-password Connect wifi ip a Show ip ifconfig iwconfig Change Keyboard Layout ---------------------- sudo dpkg-reconfigure keyboard-configuration Set keyboard layout Add display resolution ---------------------- cvt 2560 1440 60 Select the display resolution you want # 2560x1440 59.96 Hz (CVT 3.69M9) hsync: 89.52 kHz; pclk: 312.25 MHz Modeline "2560x1440_60.00" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync xrandr --newmode "2560x1440_60.00" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync Add resolution, everything after Modeline from cvt is copied after newmode xrandr --addmode HDMI-1 2560x1440_60.00 Add the new resolution to your display xrandr --newmode "2560x1440_60.00" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync && xrandr --addmode HDMI-1 2560x1440_60.00 Others ------ reset Clear terminal shift + page up Scroll up shift + page down Scroll down tab Autocomplete ctrl + c Quit for many programs date Show date/time cal Show calender Funny commands -------------- sl First need to install "sudo apt install sl", then try it out. It's great :) sl -alF cmatrix fortune/fortune-mod cowsay figlet toilet ponysay inxi cat /dev/urandom :(){ :|:& };: Endless loop (useful to test CPU maximized temperatures) Armbian ------- sudo armbianmonitor -m sudo armbian-config change cpu settings sudo nano /etc/default/cpufrequtils Made by NicoD
  25. Hereby a tutorial to connect an MCP2515 based CAN bus interface to an OrangePi 3 running successfull with Buster minimal nightly with 5.3 kernel. It uses the attached user overlay only and doesn’t need any other overlay. Connections CAN module OPi3 26 pin header Raspberry CAN interface 40 pin header Vcc 3.3 CON12-P01 1 Gnd CON12-P06 6 MOSI CON12-P19 19 MISO CON12-P21 21 CLK CON12-P23 23 CS CON12-P24 24 INT CON12-P26 22 Optional 5V for Transceiver on cheap Chinese modules CON12-P02 Not used when equiped with a 3.3V transceiver Add the attached overlay with the command: sudo armbian-add-overlay spi-h6-mcp2515.dts The file /boot/armbianEnv.txt now contains a line: user_overlays=spi-h6-mcp2515 Reboot the OrangePi 3 Check if the MCP2515 is recognized: pi@orangepi3:~$ dmesg | grep mcp If properly connected it should return a line containing: mcp251x spi1.0 can0: MCP2515 successfully initialized. As stated a can0 interface should be generated check it with: pi@orangepi3:~$ sudo ifconfig -a Bring up the network: sudo ip link set can0 up type can bitrate 250000 Check if the interrupt is hooked: cat /proc/interrupts should return a line like this 46: 1 0 0 0 sunxi_pio_edge 8 Edge mcp251x Check for traffic on the CAN bus with candump from can-utils (sudo apt-get install can-utils) candump can0 spi-h6-mcp2515.dts