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
    • Armada A388, A3700
    • Amlogic S905(x)
    • NXP (Freescale)
    • Rockchip 3288 & 3328
    • Other supported boards
  • Development
    • Allwinner H6
    • Rockchip 3399
    • Development

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL







Found 65 results

  1. 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__
  2. 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
  3. 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.
  4. 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
  5. 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
  7. 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.
  8. 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
  9. 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!
  10. 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
  11. 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
  12. 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*
  13. 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
  14. 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?
  15. 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
  16. 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
  17. For now there's one downloadable Armbian Buster image for the M4V2 from pask. Also the patch needed to prepare your own image : Yon build or download any other M4 image and apply the patch from pask For wifi use this patch from MartinAyotte Download both files Copy these to /lib/firmware/brcm/ Reboot. That's it. Official Armbian for M4V2 comming soon.
  18. Over a year (or two?) I used a PS1-line in my ~/-bashrc with many cryptic ANSI-Escape-codes which were hard to read and edit export PS1='\[\033[1;36m\]\u\[\033[1;37m\]@\[\033[1;33m\]\h\[\033[1;37m\](\[\033[1;32m\]$THEIP\[\033[1;37m\])\[\033[1;31m\]:\[\033[1;36m\]\w\[\033[1;31m\]\$\[\033[0m\] ' Today I did installed Linux Lite 4.6 on a PC (a former Chromebox) and did see the nice Powerline prompt and did try to use that on a nanoPi Neo2. I installed the packages fonts-powerline & powerline and copied the powerline-script /usr/share/powerline/bindings/bash/ from the pc to the NanoPi Neo2. It did work after I used UTF8 translation in pUTTY, but it wasnt very perfomant So I decided to cleanup my PS1 line for better reading, I had to define some variables and then I did put these in my PS1 export line in ~/.bashrc: export THEIP="$(/sbin/ifconfig | grep "inet " | grep -v 127.0.0. | awk '{print $2}')" BRed='\[\033[31;1m\]' BGreen='\[\033[32;1m\]' BYellow='\[\033[33;1m\]' BCyan='\[\033[36;1m\]' BWhite='\[\033[37;1m\]' Reset='\[\033[0m\]' UserPromptPS1='\$' export PS1="${BCyan}\u${BWhite}@${BYellow}\h${BWhite}(${BGreen}${THEIP}${BWhite})${BRed}:${BCyan}\w${BRed}${UserPromptPS1}${Reset} " # \u = User # @ = @ # \h = Host # \w = working directory # \$ = # for root (uid=0) or $ for user That worked well and did give me the same result as my old but bad readable PS1-line Now its - for me - much more easy to edit As Information some more useable color-definition (B before the color is for Bright and colors starting with On are for the Background): Black='\[\033[30m\]' Red='\[\033[31m\]' Green='\[\033[32m\]' Yellow='\[\033[33m\]' Blue='\[\033[34m\]' Magenta='\[\033[35m\]' Cyan='\[\033[36m\]' White='\[\033[37m\]' BBlack='\[\033[30;1m\]' BRed='\[\033[31;1m\]' BGreen='\[\033[32;1m\]' BYellow='\[\033[33;1m\]' BBlue='\[\033[34;1m\]' BMagenta='\[\033[35;1m\]' BCyan='\[\033[36;1m\]' BWhite='\[\033[37;1m\]' OnBlack='\[\033[40m\]' OnRed='\[\033[41m\]' OnGreen='\[\033[42m\]' OnYellow='\[\033[43m\]' OnBlue='\[\033[44m\]' OnMagenta='\[\033[45m\]' OnCyan='\[\033[46m\]' OnWhite='\[\033[47m\]' OnBBlack='\[\033[40;1m\]' OnBRed='\[\033[41;1m\]' OnBGreen='\[\033[42;1m\]' OnBYellow='\[\033[43;1m\]' OnBBlue='\[\033[44;1m\]' OnBMagenta='\[\033[45;1m\]' OnBCyan='\[\033[46;1m\]' OnBWhite='\[\033[47;1m\]' Reset='\[\033[0m\]'
  19. Hello reader I will report here about my experience to watch Netflix as written in the title. To do so, I got a current LE image from @balbes150 (thank you). You may be asking the same question as I do (did), why using the image from balbes and not the official one from the download page ? It is actually quite simple, balbes integrates the latest Kernel for his LE builds. While on a x86 system the kernel isn't so interesting, it is on ARM systems, because a lot of the development happens 1 or 2 year later of the release of the SoC. I have asked him about the different versions he offers for Le Potato: All versions of libreElec (LE) use the common core of aarch64 (64 bits). There is only one 32-bit library (arm) for Netflix. Therefore, I am releasing two versions of LE. ARM version = core of aarch64 + the whole ARM system. aarch64 = core aarch64 + whole system aarch64, this version runs 20-30 % faster than ARM. By the way, it would be interesting to check if Netflix works on Armbian, it may be possible to run it in the environment aarch64 + 32 bit library. So I chose this image: LibreELEC-AMLGX.arm-9.1-devel-20190604084103-a41fdf1-lepotato After writing the image on the SDcard I had to walk through the basic configuration of LE (by the way no SSH - you must use a Display and Keyboard) you find more information here: YouTube A german screenshot film, that guides you through the process of installing the Netflix addon from libdev + jojo + asciidisco Netflix addons; the Kodinerds repository is already part of LE, that saves you some time, update this first. The update and install of the Netflix addon (libdev + jojo + asciidisco), which has some dependencies, is tricky. I had repeated this process several times and a reboot once, because it would only install a few, but not all of the 9 dependencies at once. After 4 or 5 times it confirmed: installed. Now, keep following the YouTube film mentioned above. Adding your credtials to get access to Netflix. WideVine for digital rights mgmnt (DRM), is extracted from ChromeOS - this will download 2Gb Load on the hardware Press the "O" key on the keyboard when playing the video and the service information about the video will be displayed on the screen. It is Software-Decoding for Netflix. 2 cores were running at around 50% and 2 cores were idle (1280 x 720). Testing it on my TV it switched to FullHD at which point it got useless audio and picture were no longer insync. SSH (Secure Shell) During configuration you will see the SSH menu item. You can turn on SSH and you should then change the password!! However, reading the Wiki I got the feeling that this implementation is a bit weird... that said, I would turn it off if you don't need it. WiFi For to me unkown reason the binaries for the USB-WiFi Sticks were removed in 2017: , luckily it is easy to add the driver. cd /storage/.config/ and here you do: mkdir -p firmware and now cd firmware/ unplug your USB-WiFi Stick, plug it in again and do: dmesg | tail -7 you can now see your stick and which binary is missing. Search the binary on this website and complete the line with your binary link: wget reboot no APT There is no working 'apt-get'. TIP: use XBMC's addon browser to enhance your LibreELEC system to be continued
  20. On newer armbian-build it seems that the codec-analog is disabled by default I activated analog-codec in armbian-config ==> System ==> Hardware like in older builds. aplay -l did show the device, but could play. So I did decompile the .dtb with: dtc -I dtb -O dts /boot/dtb/sun8i-h2-plus-orangepi-r1.dtb -o /boot/dtb/sun8i-h2-plus-orangepi-r1.dts Edited the allwinner,sun8i-h3-codec status from disabled to okay: codec@1c22c00 { #sound-dai-cells = < 0x00 >; compatible = "allwinner,sun8i-h3-codec"; reg = < 0x1c22c00 0x400 >; interrupts = < 0x00 0x1d 0x04 >; clocks = < 0x03 0x34 0x03 0x6d >; clock-names = "apb\0codec"; resets = < 0x03 0x28 >; dmas = < 0x14 0x0f 0x14 0x0f >; dma-names = "rx\0tx"; allwinner,codec-analog-controls = < 0x19 >; status = "okay"; phandle = < 0x58 >; }; Then I compiled the .dts back to .dtb: dtc -I dts -O dtb /boot/dtb/sun8i-h2-plus-orangepi-r1.dts -o /boot/dtb/sun8i-h2-plus-orangepi-r1.dtb In armbian-config ==> System ==> Hardware I enabled also usbhost2 & usbhost3 (because no USB-device was recognized at the USB-ports of the NAS-board) and I disabled cir and spi-jedec-nor which I had enabled for a test. After a reboot the soundcard Debian Buster with Armbian Linux 5.3.7-sunxi package bsp-kernel[5.98.191026] u-boot[5.98] dtb[5.98.191026] firmware[5.98] config[5.98] root@opi-r1( aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Codec [H3 Audio Codec], device 0: CDC PCM Codec-0 [CDC PCM Codec-0] Subdevices: 0/1 Subdevice #0: subdevice #0 is working again like in older builds The 2nd Ethernet Port Bus 003 Device 002: ID 0bda:8152 Realtek Semiconductor Corp. RTL8152 Fast Ethernet Adapter is also connected via USB, but is allways in the lsusb-list - even when usbhost0-usbhost3 is disabled.
  21. A while ago I did create a armbian-package-information for at the motd of the login: Now the line for the kernel does show 2 versions because there are "Version:" and "Config -Version:" root@npi-neo2-24( dpkg -s linux-image-$BRANCH-$LINUXFAMILY|grep Version Version: 5.96 Config-Version: 5.96 root@npi-neo2-24( dpkg -s linux-image-$BRANCH-$LINUXFAMILY|grep Version|cut -f 2 -d ' ' 5.96 5.96 So I had to find another way/command to get the information once I did go back from "dpkg -s" to "dpkg -l" and greped there the version-info: root@npi-neo2-24( dpkg -l | awk -v env_var="linux-image-$BRANCH-$LINUXFAMILY" '$2==env_var { print $3 }' 5.96 # end-part of /etc/update-motd.d/10-armbian-header # NEW version # =============================================================================================================== ARMBIAN_bsp=$(more /etc/armbian-release|grep VERSION|cut -f 2 -d '=') ARMBIAN_kernel=$(dpkg -l | awk -v env_var="linux-image-$BRANCH-$LINUXFAMILY" '$2==env_var { print $3 }') ARMBIAN_uboot=$(dpkg -l | awk -v env_var="linux-u-boot-$BOARD-$BRANCH" '$2==env_var { print $3 }') ARMBIAN_dtb=$(dpkg -l | awk -v env_var="linux-dtb-$BRANCH-$LINUXFAMILY" '$2==env_var { print $3 }') ARMBIAN_firmware=$(dpkg -l | awk -v env_var="armbian-firmware" '$2==env_var { print $3 }') ARMBIAN_config=$(dpkg -l | awk -v env_var="armbian-config" '$2==env_var { print $3 }') printf 'package bsp-kernel[\e[0;91m%s\x1B[0m] u-boot[\e[0;91m%s\x1B[0m] dtb[\e[0;91m%s\x1B[0m] firmware[\e[0;91m%s\x1B[0m] config[\e[0;91m%s\x1B[0m]\n' "$ARMBIAN_kernel" "$ARMBIAN_uboot" "$ARMBIAN_dtb" "$ARMBIAN_firmware" "$ARMBIAN_config" printf '\n' # =============================================================================================================== After successfully getting the kernel-version only once- I edited the other commands to the "dpkg -l" version - and the result is clear as before _ _ ____ _ _ _ ____ | \ | | _ \(_) | \ | | ___ ___ |___ \ | \| | |_) | | | \| |/ _ \/ _ \ __) | | |\ | __/| | | |\ | __/ (_) | / __/ |_| \_|_| |_| |_| \_|\___|\___/ |_____| Welcome to Debian Buster with Armbian Linux 5.3.3-sunxi64 package bsp-kernel[5.98.191003] u-boot[5.96] dtb[5.98.191003] firmware[5.96] config[5.96] The only drawback is, when you use a dev-kernel/-dtb on a next-installation (using other kernel via armbian-config) then $BRANCH is next and your kernel is dev root@npi-neo2-24( dpkg -l|grep image ii linux-image-dev-sunxi64 5.98.191003 arm64 Linux kernel, version 5.3.3-sunxi64 rc linux-image-next-sunxi64 5.96 arm64 Linux kernel, version 4.19.71-sunxi64 root@npi-neo2-24( dpkg -l|grep dtb ii linux-dtb-dev-sunxi64 5.98.191003 arm64 Linux DTB, version 5.3.3-sunxi64 # ARMBIAN_kernel=$(dpkg -l | awk -v env_var="linux-image-$BRANCH-$LINUXFAMILY" '$2==env_var { print $3 }') ARMBIAN_kernel=$(dpkg -l | awk -v env_var="linux-image-dev-$LINUXFAMILY" '$2==env_var { print $3 }') # ARMBIAN_dtb=$(dpkg -l | awk -v env_var="linux-dtb-$BRANCH-$LINUXFAMILY" '$2==env_var { print $3 }') ARMBIAN_dtb=$(dpkg -l | awk -v env_var="linux-dtb-dev-$LINUXFAMILY" '$2==env_var { print $3 }') PS: I also did try - before this - the package apt-show-versions (lists available package versions with distribution) but this takes much too long to resolve and needs this additionally package
  22. Hi all. I've made a new video on how to share your mouse and keyboard between multiple SBCs with Armbian. This is the source website where I've gotten my info. There is a lot more info to be found on it then I show in the video. Here is my video. Install Barrier sudo apt install snap snapd sudo snap install --edge barrier Run Barrier /snap/bin/barrier Greetings, NicoD
  23. If you use a SIP Voip client on your phone or computer, you can use the sip protocol and scripting to monitor your Armbian board. I'm using Ubuntu Xenial, but other versions should work as well. I have the Linphone client on my phone and I use the free Linphone SIP service. hosts a free SIP service that allows users to make audio or video calls using SIP addresses via the domain You can also send text messages. SIP requires an internet data connection, and my phone is connected via WIFI most of the time except when I'm commuting, so I set up my monitoring chron jobs on the Armbian device to run at times when I'm connected. Set up a SIP account for yourself if you don't yet have one, and set up an account for your device. You can set up free accounts at The example accounts used in this tutorial are: and Replace these with your own accounts. I suggest that you get your Voip service running and tested on your phone and another device or PC before you try and set up SIP scripting on your Armbian device. Install the Linphone console client on your Armbian device (Orange Pi Zero Plus in my case). sudo apt-get install linphone-nogtk When it has installed start the client linphonec You may get a bunch of warnings about unconfigured sound cards and etc. Unless you want to use voice or video, you can ignore these. ........ eventually you will get a linphonec prompt Warning: video is disabled in linphonec, use -V or -C or -D to enable. linphonec> If you type help, you will get a list of commands: linphonec> help Commands are: --------------------------- help Print commands help. call Call a SIP uri or number calls Show all the current calls with their id and status. chat Chat with a SIP uri terminate Terminate a call answer Answer a call pause pause a call resume resume a call transfer Transfer a call to a specified destination. conference Create and manage an audio conference. mute Mute microphone and suspend voice transmission. camera Send camera output for current call. unmute Unmute microphone and resume voice transmission. playbackga Adjust playback gain. duration Print duration in seconds of the last call. autoanswer Show/set auto-answer mode proxy Manage proxies soundcard Manage soundcards webcam Manage webcams ipv6 Use IPV6 nat Set nat address stun Set stun server address firewall Set firewall policy call-logs Calls history friend Manage friends play play a wav file record record to a wav file quit Exit linphonec --------------------------- Now you need to configure your SIP proxy. "help proxy" gives you the relevant commands linphonec> help proxy 'proxy list' : list all proxy setups. 'proxy add' : add a new proxy setup. 'proxy remove <index>' : remove proxy setup with number index. 'proxy use <index>' : use proxy with number index as default proxy. 'proxy unuse' : don't use a default proxy. 'proxy show <index>' : show configuration and status of the proxy numbered by index. 'proxy show default' : show configuration and status of the default proxy. We must use "proxy add". It will start an interactive session. Note the format of the proxy sip address enclosed with < and > linphonec> proxy add Adding new proxy setup. Hit ^D to abort. Enter proxy sip address: <;transport=tls> Your identity for this proxy: Do you want to register on this proxy (yes/no): yes Specify register expiration time in seconds (default is 600): Expiration: 0 seconds Specify route if needed: No route specified. -------------------------------------------- sip address: <;transport=tls> route: identity: register: yes expires: 0 registered: no -------------------------------------------- Accept the above proxy configuration (yes/no) ?: yes Proxy added. linphonec> Password for armdevice on "": Y0uR-pa$$word linphonec> Unregistration on <;transport=tls> done. That's it you are now configured. (not sure what "unregistration" means, perhaps it's a typo and should say registration) Send yourself a test text and quit out of linphonec. Once again "help" is useful: linphonec> linphonec> help chat chat <sip-url> "message"' : send a chat message "message" to the specified destination. linphonec> chat <> "Testing sip messaging" linphonec> terminate No active calls linphonec> quit Terminating... How can you easily send messages from a script? Create a wrapper script using expect (uses tls not bash) If you don't have expect installed then sudo apt-get install expect Create a wrapper expect script called "" #!/usr/bin/expect -f # "this is a message" set message [lindex $argv 0]; spawn linphonec expect "<;transport=tls> done." send "chat <> \"$message\"\r" expect "linphonec>" sleep 10 send "terminate\r" expect "linphonec>" send "quit\r" expect "Terminating..." exit Set execute permission on the file. I placed mine in /usr/local/bin chmod +x /path/to/file # e.g. chmod +x /usr/local/bin/ Now you can execute your wrapper from a script like this and it will send the message to your sip address. Change the path to the location of your wrapper script. /usr/local/bin/ "this is a sip message"
  24. Maybe someone here knows the 8-Bit Guy and the project of his Dream-Computer - the Commander X16 You could see the actual state of the real hardware at YT-Video from the 8-Bit Guy: (Building my Dream Computer - Part 2) Since the hardware isnt ready/completed yet there is a Emulator which uses SDL2 and can be compiled now (since r30) also on Linux ARM Github-page of the emulator: Source: or Linux-Binary for PC including the 2 ROMs: libsdl2-dev hasnt to be compiled from source for armbian, because we have already a installable package and the runtime libsdl2-2.0-0 is already installed in the desktop image. For compiling the Emulator I used on my NanoPi K1 Plus a fresh compiled (with armbian-build-system) dev-image: Armbian_5.97_Nanopik1plus_Debian_buster_dev_5.3.0-rc8_desktop For to have all programs for compiling the application I did use sudo apt install gcc git make libsdl2-dev zip unzip -y Then we do create a directory and download the source and extract it: mkdir x16 cd x16 wget tar -xvf r30.tar.gz Now we change in the newly created directory and do compile with make: cd x16-emulator-r30/ make For running the emulator we do need the 2 ROMs chargen.bin and rom.bin out of the archive in the same directory as the compile x16emu binary. Now we can run the emulator (here with german keymap): ./x16emu -keymap de Unfortunately the emulator doesnt run very fast, do use only one CPU-core and hasnt idle-support - so the CPU will get really fast very hot (70 Degree). A AMD Phenom II X4 with 4x3GHz max. is about 2 times more faster (100%+200%=300%) than the X16 on the NanoPi K1 Plus
  25. For those who like to monitor temperature. Connect SDA & SCL to pins 3 and 5, connect 3.3V and GND. Connect all address wires of the DS1621 to ground. # sudo apt install i2c-tools # echo ds1621 0x48 >/sys/class/i2c-adapter/i2c-1/new_device# cat /sys/devices/platform/ff140000.i2c/i2c-1/1-0048/hwmon/hwmon0/temp1_input Optional, use lm-sensors: # sudo apt install lm-sensors # sensors Optional, temperature logging: Create a file with the following contents: #!/bin/bash echo "`date +%Y-%m-%dT%R`;`cat /sys/devices/platform/ff140000.i2c/i2c-1/1-0048/hwmon/hwmon0/temp1_input`" >>/home/USER/temp Add an entry to /etc/crontab: 0 * * * * USER /home/USER/ And restart cron or your box for logging every hour. Thanks to Hope it's useful for someone!