• Linux

    Menjalankan VirtualBox dari Console

    Untuk mengetahui daftar virtual machine yang ada pada VirtualBox, dapat dilihat dengan menggunakan command berikut:

    vboxmanage list vms

    Untuk menjalankan VirtualBox dapat menggunakan command berikut:

     /usr/bin/vboxheadless -s NamaVirtualBox

    Agar VirtualBox dapat jalan secara otomatis, dapat dibuat service.

    sudo nano /etc/systemd/system/vm.service 

    Tambahkan code berikut:

    [Unit]
    Description=VM service
    After=network.target vboxdrv.service

    [Service]
    ExecStart=/usr/bin/vboxheadless -s NamaVirtualBox
    ExecStop=/usr/bin/vboxmanage controlvm NamaVirtualBox acpipowerbutton

    [Install]
    WantedBy=multi-user.target
  • RaspberryPi

    Raspberry Pi Print Server

    Instalasi CUPS

    Update ke package terbaru.

    sudo apt-get update
    sudo apt-get upgrade

    Install package untuk server printer.

    sudo apt-get install cups 

    Setelah selesai, selanjutnya menambahkan user kedalam “lpadmin”. Group ini mengizinkan user untuk mengakses fungsi administration pada cups tanpa harus menggunakan super user.

  • Linux

    Qt for Linux/X11

    Requirements for Development Host

    Debian/Ubuntu (apt-get)

    sudo apt-get install build-essential libgl1-mesa-dev

    Fedora/RHEL/CentOS (yum)

    sudo yum groupinstall "C Development Tools and Libraries"
    sudo yum install mesa-libGL-devel

    openSUSE (zypper)

    sudo zypper install -t pattern devel_basis

    Downloading and Installing Qt

    Untuk file installer Qt, dapat diunduh disini.

  • other

    M.2 Family of Form Factors

    Key Card measurements Interfaces Common uses
    A 1630, 2230, 3030 PCIe x2, USB 2.0, I2C, DisplayPort x4 Wi-Fi/Bluetooth, cellular cards
    B 3042, 2230, 2242, 2260, 2280, 22110 PCIe x2, SATA, USB 2.0, USB 3.0, audio, PCM, IUM, SSIC, I2C SATA and PCIe x2 SSDs
    E 1630, 2230, 3030 PCIe x2, USB 2.0, I2C, SDIO, UART, PCM Wi-Fi/Bluetooth, cellular cards
    M 2242, 2260, 2280, 22110 PCIe x4, SATA PCIe x4 SSDs
  • Git

    Export local subversion to git repository

    Karena “git svn clone” tidak dapat digunakan melalui “file:///”, perlu menggunakan “svnserve” agar svn repository dapat diakses melalui “svn://”.

    svnserve -d --listen-port 4444-r T:\temp\svn-repository

    sehingga repositorynya dapat diakses melalui “svn://localhost:4444”.

    Langkah selanjutnya clone repository dengan menggunakan git svn clone.

    git svn clone "svn://localhost:4444"
  • Arduino

    Arduino Function

    void setup() {
      Serial.begin(9600);
    }
    
    void loop() {
      byte cData[18];
      byte  cLen;
      QFunction(cData, &cLen);
      for(int i=0; i<cLen;i++) {
      Serial.println(cData[i]);
      }
      Serial.println("");
      delay(1000);        
    }
    
    void QFunction(byte *data, byte *len) {
      byte mLen = 10;
      for(int i=0; i< mLen; i++) {
        data[i] = (byte) i+5;
      }
      *len = mLen;
    }
    
  • Android

    ListView on ScrollView

    Buat custom ListView tanpa fitur scroll.

    package al.akh.example.testing.view;
    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.ViewGroup;
    import android.widget.ListView;
    
    public class ListViewNonScroll extends ListView {
    
        public ListViewNonScroll(Context context) {
            super(context);
        }
        public ListViewNonScroll(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
        public ListViewNonScroll(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }
        @Override
        public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec(
                    Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
            super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom);
            ViewGroup.LayoutParams params = getLayoutParams();
            params.height = getMeasuredHeight();
        }
    }

     

    Pada layout resource file, gunakan custom ListView yang telah dibuat di atas.

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fadingEdgeLength="0dp"
        android:fillViewport="true"
        android:overScrollMode="never"
        android:scrollbars="none" >
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
    
            <al.akh.example.testing.view.ListViewNonScroll
                android:id="@+id/list_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/ >
    
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/list_view" >
                ...
            </RelativeLayout>
        </RelativeLayout>
    
    </ScrollView>
  • Linux

    Mount raw file

    Katakanlah kita mempunyai raw file hasil dari dd command.

    dd if=/dev/sda of=/mnt/data/backup/akhalos.img

    Langkah pertama adalah membuat folder untuk mount file image.

    sudo mkdir /mnt/akhalos

    Langkah selanjutnya adalah mencari nilai offset sector yang ada pada file image yang nantinya akan digunakan sebagai parameter offset pada perintah mount.

    fdisk -l /mnt/data/backup/akhalos.img
    Device       Boot Start      End  Sectors Size Id Type
    akhalos.img1 *     2048 16777182 16775135   8G 83 Linux
    

    Dari data diatas, didaptkan offset sebesar 2048. Karena nilai setiap sector adalah 512 bytes, maka nilai offset yang didapatkan untuk parameter mount adalah 2048*512 = 1048576. Sehingga, perintah mountnya menjadi:

    sudo mount -o loop,offset=1048576 /mnt/data/backup/akhalos.img /mnt/akhalos
  • RaspberryPi

    3.5inch RPi Display

    Features

    • 320×480 resolution
    • Resistive touch control
    • Supports any revision of Raspberry Pi (directly-pluggable)
    • Compatible with Raspberry Pi A, B, A+, B+, 2B, 3B, 3B+versions
    • Drivers provided (works with your own Raspbian/Ubuntu directly)
    • Size perfectly fits the Pi
    • High quality immersion gold surface plating
    • Supports Raspbian system, ubuntu system ,kali Linux system

    Key Parameters

    SKU MPI3501
    LCD Type TFT
    LCD Interface SPI
    Touch Screen Type Resistive
    Touch Screen Controller XPT2046
    Colors 65536
    Backlight LED
    Resolution 320*240 (Pixel)
    Aspect Ratio 8:5
    Backlight Current TBD
    Operating Temp. (℃) TBD

    Interface

    PIN NO. SYMBOL DESCRIPTION
    1, 17 3.3V Power positive (3.3V power input)
    2, 4 5V Power positive (5V power input)
    3, 5, 7, 8, 10, 22 NC NC
    6, 9, 14, 20, 25 GND Ground
    11 TP_IRQ Touch Panel interrupt, low level while the Touch Panel detects touching
    12 KEY1 Key
    13 RST Reset
    15 LCD_RS LCD instruction control, Instruction/Data Register selection
    16 KEY2 KEY
    18 KEY3 KEY
    19 LCD_SI / TP_SI SPI data input of LCD/Touch Panel
    21 TP_SO SPI data output of Touch Panel
    23 LCD_SCK / TP_SCK SPI clock of LCD/Touch Panel
    24 LCD_CS LCD chip selection, low active
    26 TP_CS Touch Panel chip selection, low active

    Driver Installation

    • Download raspbian image.
      https://www.raspberrypi.org/downloads/raspbian/
    • Tulis raspberry image ke sdcard.
    • Buka terminal, install driver lcd pada Raspberry Pi.
      git clone https://github.com/goodtft/LCD-show.git
      chmod -R 755 LCD-show
      cd LCD-show/
      sudo ./LCD35-show
    • Tunggu beberapa saat, Raspberry Pi akan reboot dengan sendirinya.

    Touch screen calibration

    Touchscreen dapat dikalibrasi dengan menggunakan program xinput_calibrator.

    cd LCD-show/
    sudo dpkg -i -B xinput-calibrator_0.7.5-1_armhf.deb

    Setelah instalasi selesai, buka Preference->Calibrate Touchscreen. Ikuti perintah yang muncul pada layar. Jika kalibrasi selesai, copy parameter yang dihasilkan pada file 99-calibration.conf, kemudian simpan di folder /ect/X11/xorg.conf.d/.

    /ect/X11/xorg.conf.d/99-calibration.conf

    Problem Solving

    • Jika touchsreen antara x dan y tertukar, dapat diatasi dengan solusi berikut ini:
      sudo nano /boot/config.txt
      dtoverlay=piscreen,speed=16000000,rotate=90
      reboot
    • Jika x axis posisinya dalam keaadan mirror, dapat diatasi dengan solusi memasang evdev.
      apt-get install xserver-xorg-input-evdev

      Ganti urutan file pada folder /usr/share/X11/xorg.conf.d. Hal ini dilakukan agar konfigurasi evdev tidak tertimpa (overide) dengan konfigurasi libinput. Ganti angka evdev.conf lebih tinggi dari pada libinput.conf.

      cd /usr/share/X11/xorg.conf.d
      sudo mv 10-evdev.conf 45-evdev.conf
      reboot

    Download

    Jika kesulitan untuk memasang drivernya, dapat langsung mengunduh image yang sudah disediakan.

     

     

    Image Name Version Support Password Download
    Raspbian 2018-06-29 PI3B+/A/A+/
    B/B+/PI2/PI3/
    ZERO/ZERO W
    user:pi
    password:raspberry
    MPI3501-Raspbian-20180629.7z
    Ubuntu Mate:16.04 PI3,PI2 user:pi
    password:raspberry
    3.5inch-RPI3-RPI2-ubuntu-mate-16.04-beta2.7z
    Kali-linux 2018.2(nexmon) PI3B+,PI3,PI2 user:root
    password:toor
    3.5SPI-kali-linux-2018.2-rpi3B+-nexmon.7z