Mengembalikan UEFI boot setelah install ulang windows

Karena suatu hal, kita perlu install ulang Windows sehingga boot Linux yang ada akan hilang. Pada boot yang menggunakan model UEFI, sebenarnya boot Linux tidaklah terhapus seluruhnya, melainkan hanya urutannya saja yang terhapus. Untuk mengembalikannya, dapat dilakukan dengan menggunakan live cd ataupun live usb Linux.

  1. Jalankan live cd atau live usb Linux. Untuk tutorial ini, digunakan Ubuntu 15.04.
  2. Buka terminal, kemudian install “efibootmgr”.
    sudo apt-get install efibootmgr
  3. Setelah “efibootmgr” berhasil diinstall, ketikkan “sudo efibootmgr -v” untuk mengetahui daftar boot yang ada pada komputer.
    ubuntu@ubuntu:~$ sudo efibootmgr -v
    BootCurrent: 0008
    Timeout: 0 seconds
    BootOrder: 000C,0006,0007,0008,0009,000A
    Boot0000  BIOS Setup        FvFile(721c8b66-426c-4e86-8e99-3457c46ab0b9)
    Boot0001  Boot Menu FvFile(86488440-41bb-42c7-93ac-450fbf7766bf)
    Boot0002  Diagnostic Screen FvFile(a7d8d9a6-6ab0-4aeb-ad9d-163e59a7a380)
    Boot0003  Recovery and Utility FvFile(0b150fda-3bdd-4406-9859-448177476993)
    Boot0004  Diagnostic Program FvFile(29f85733-2b1a-4821-8f61-2614778c0c73)
    Boot0005  Diagnostic Progrogram ROM VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,c0f527e7c05f4d498df59dc81ac2cfdd00)
    Boot0006* Floppy Disk Drive: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,6ff015a28830b543a8b8641009461e49)
    Boot0007* Drive0 HDD: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f600)
    Boot0008* USB HDD: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,33e821aaaf33bc4789bd419f88c50803)
    Boot0009* USB CD/DVD: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,d630a9056829ce41861e8c380ff2225a)
    Boot000A* NETWORK: VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)
    Boot000B* Erase Disk FvFile(43f9b080-c902-4737-b306-487050f7caa5)
    Boot000C* Windows Boot Manager HD(2,GPT,d35a43c9-1f37-4b08-a45e-e9ebff564374,0xe1800,0x31800)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
    Boot000D* ubuntu HD(2,GPT,d35a43c9-1f37-4b08-a45e-e9ebff564374,0xe1800,0x31800)/File(\EFI\ubuntu\shimx64.efi)
  4. Pada daftar diatas, boot Linux terdapat di “Boot000D*”, akan tetapi pada BootOrder tidak ada, sehingga “Boot000D*” perlu ditambahkan pada BootOrder. Untuk menambahkan BootOrder gunakan perintah sudo efibootmgr -o {list}”.
    ubuntu@ubuntu:~$ sudo efibootmgr -o 000D,000C,0006,0007,0008,0009,000A
    BootCurrent: 0008
    Timeout: 0 seconds
    BootOrder: 000D,000C,0006,0007,0008,0009,000A
    Boot0000  BIOS Setup       
    Boot0001  Boot Menu
    Boot0002  Diagnostic Screen
    Boot0003  Recovery and Utility
    Boot0004  Diagnostic Program
    Boot0005  Diagnostic Progrogram ROM
    Boot0006* Floppy Disk Drive:
    Boot0007* Drive0 HDD:
    Boot0008* USB HDD:
    Boot0009* USB CD/DVD:
    Boot000A* NETWORK:
    Boot000B* Erase Disk
    Boot000C* Windows Boot Manager
    Boot000D* ubuntu
  5. Seletah berhasil ditambahkan pada BootOrder, langkah selanjutnya adalah restart.

Bluetooth Stack untuk windows

Untuk menggunakan bluetooth stack pada windows, dapat menggunakan driver bluetooth dari Toshiba.

  1. Download disini.
  2. Edit registry di:
    HKEY_CURRENT_USER\Software\Toshiba\BluetoothStack\V1.0\Mng
  3. Tambahkan DWORD key dengan nama TestVersion dan nilainya 1.

 


Disable Hibernate pada Windows

Untuk mematikan fitur hibernate pada windows, dapat dilakukan melalui command melalui cmd.

  1. buka cmd dengan status administrator (run as administrator).
  2. ketikkan command berikut:
    powercfg -h off
  3. restart komputer.

Sedangkan untuk mengaktifkan kembali fitur hibernate dapat dilakukan dengan langkah-langkah sebagai berikut:

  1. buka cmd dengan status administrator (run as administrator).
  2. ketikkan command berikut:
    powercfg -h on
  3. restart komputer.

Proxy Authentication pada Ubuntu

  1. Buka direktori “/etc/apt”.
  2. Buat file “apt.conf”.
  3. Tambahkan kode berikut:
    Acquire::http::proxy "http://username:password@proxyserver:port/";
    Acquire::https::proxy "https://username:password@proxyserver:port/";
    Acquire::socks::proxy "socks://username:password@proxyserver:port/";
    

Automount usb drive menggunakan pmount

  1. Tambahkan file “automount.rules” pada “/etc/udev/rules.d”.
  2. Tambahkan baris kode berikut:
    ACTION=="add",KERNEL=="sda*", RUN+="/usr/bin/pmount --sync --umask 000 %k"
    ACTION=="remove", KERNEL=="sda*", RUN+="/usr/bin/pumount -l %k"
    ACTION=="add",KERNEL=="sdb*", RUN+="/usr/bin/pmount --sync --umask 000 %k"
    ACTION=="remove", KERNEL=="sdb*", RUN+="/usr/bin/pumount -l %k"
    ACTION=="add",KERNEL=="sdc*", RUN+="/usr/bin/pmount --sync --umask 000 %k"
    ACTION=="remove", KERNEL=="sdc*", RUN+="/usr/bin/pumount -l %k"
  3. Reliad udev rules dengan command:
    udevadm control --reload-rules
  4.  Mount pointnya akan berada di /media/sd**.
    sd** sesuai dengan /dev/sd**.
  5. Jika ingin menggunakan mount point sesuai dengan nama label flash drive, gunakan baris kode berikut:
    KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end"
    
    # Import FS infos
    IMPORT{program}="/sbin/blkid -o udev -p %N"
    
    # Get a label if present, otherwise specify one
    ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
    ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k"
    
    # Global mount options
    ACTION=="add", ENV{mount_options}="relatime"
    # Filesystem-specific mount options
    ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002"
    
    # Mount the device
    ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
    
    # Clean up after removal
    ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
    
    # Exit
    LABEL="media_by_label_auto_mount_end"

 

Sumber:
http://www.monperrus.net/martin/automounting+usb+flash+drives+on+linux+with+udev+and+pmount
http://unix.stackexchange.com/questions/11472/automount-usb-drives-with-no-gui-requirement-halevt-replacement


301 Redirects

Terkadang kita ingin mengalihkan laman halaman web ke halaman atau situs yang lainnya. Ini dapat dilakukan dengan menggunakan htaccess. Untuk format yang digunakan adalah sebagai berikut:

Redirect 301 /old-page http://www.yoursite.com/new-page

Contoh:

Redirect 301 /download http://download.akhal.org

Using Arduino Libraries in Atmel Studio

Pada artikel ini, akan ditunjukkan bagaimana cara menggunakan Arduino libraries untuk pemograman dengan Atmel Studio. Pemrograman yang dimaksud disini bukan pemrograman dengan ino file, melainkan dengan cpp.

Tahap awal yang harus dilakukan adalah install Atmel Studio dan Arduino IDE. Arduino IDE diperlukan untuk diambil librarynya saja. Pada artikel ini, yang digunakan adalah Arduino 1.6.4 dan Atmel Studio 6.2.

Buat project baru

Buka Atmel Studio, kemudian buat project baru.
File > New > Project.

Buat structure file

Buka Solution Explorer, kemudian lakukan langkah-langkah berikut:

Hapus Arduino.cpp

Buat folder dengan struktur sebagai berikut:

src
- arduino
- - avr
- - -  cores
- - - - arduino
- - - libraries
- - - variants
- - - - standard
- ProjectFiles

Buka folder instalasi Arduino 1.6, kemudian copy semua file yang ada di folder berikut:

“arduino-1.6.0\hardware\arduino\avr\cores\arduino” ke “src\arduino\avr\cores\arduino”
“arduino-1.6.0\hardware\arduino\avr\libraries” ke “src\arduino\avr\libraries” (opsional).
“arduino-1.6.0\hardware\arduino\avr\variants\standard” ke “src\arduino\avr\variants\standard”.

Tambahkan file-file yang sudah dicopy, ke dalam project, sehingga menjadi seperti pada gambar berikut ini:

Buat project file

Buat file “ProjectMain.cpp” dan “ProjectMain.h” di “ProjectFiles”. Berikut adalah contoh program sederhana yang dibuat.

ProjectMain.h

/*
 * ProjectMain.h
 *
 * Created: 16/06/2015 20:58:47
 *  Author: Akhal
 */ 


#ifndef PROJECTMAIN_H_
#define PROJECTMAIN_H_

#include 




#endif /* PROJECTMAIN_H_ */

ProjectMain.cpp

/*
 * ProjectMain.cpp
 *
 * Created: 16/06/2015 20:59:16
 *  Author: Akhal
 */ 

#include "ProjectMain.h"

void setup()
{
	pinMode(13, OUTPUT);
	
}

void loop()
{
	
	  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
	  delay(5000);              // wait for a second
	  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
	  delay(5000);              // wait for a second
}

Seting properties

Buka project properties dengan cara: Project > Arduino Properties (Alt+F7).

Lihat pada bagian AVR/GNU C Compiler > Symbols, kemudian tambahkan F_CPU=16000000UL.

Lihat pada bagian AVR/GNU C Compiler -> Directories, kemudian tambahkan path file yang telah dicopy sebelumnya.

../src
../src/arduino
../src/arduino/avr
../src/arduino/avr/cores
../src/arduino/avr/cores/arduino
../src/arduino/avr/libraries
../src/arduino/avr/variants
../src/arduino/avr/variants/standard
../src/ProjectFiles

Lihat pada bagian AVR/GNU C++ Compiler -> Symbols, kemudian tambahkan F_CPU=16000000UL.

Lihat pada bagian AVR/GNU C++ Compiler -> Directories, kemudian tambahkan path file yang telah dicopy sebelumnya.

../src
../src/arduino
../src/arduino/avr
../src/arduino/avr/cores
../src/arduino/avr/cores/arduino
../src/arduino/avr/libraries
../src/arduino/avr/variants
../src/arduino/avr/variants/standard
../src/ProjectFiles

Build program

Build -> Build Solution (F7), dan lihat outputnya.

........
Done executing task "RunCompilerTask".
Task "RunOutputFileVerifyTask"
Program Memory Usage 	:	3010 bytes   9,2 % Full
Data Memory Usage 		:	217 bytes   10,6 % Full
Done executing task "RunOutputFileVerifyTask".
Done building target "CoreBuild" in project "Arduino.cppproj".
Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != '').
Target "Build" in file "C:\Program Files (x86)\Atmel\Atmel Studio 6.2\Vs\Avr.common.targets" from project "Q:\KYU\Atmel\Arduino\Arduino\Arduino.cppproj" (entry point):
Done building target "Build" in project "Arduino.cppproj".
Done building project "Arduino.cppproj".

Build succeeded.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========

Kernel Driver Not Installed (rc=-1908) on OpenSUSE 13.2 1

  

Jika mengalami kesulitan untuk menjalankan VirtualBox di openSUSE karena error berikut:

 Kernel Driver Not Installed (rc=-1908)

Mungkin solusi berikut ini dapat membantu:

  • Jalankan perintah berukut:
    sudo zypper in make gcc gcc-c++ kernel-source kernel-syms
  • Lanjutkan dengan perintah berikutnya:
    sudo /etc/init.d/vboxdrv setup
  • Jalankan VirtualBox.

Simpan Layout sebagai Image

   

 

Ketika kita membuat suatu aplikasi, terkadang membutuhkan dokumentasi berupa gambar (image).

Berikut adalah salah satu cara untuk membuat image dari layout yang telah dibuat.

Buat method untuk konversi dari view ke bitmap:

private Bitmap getBitmap(View view) {
    view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
            View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
    view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
    view.buildDrawingCache(true);
    Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);

    Drawable background =view.getBackground();
    if (background!=null) {
        background.draw(canvas);
    }else{
        canvas.drawColor(Color.WHITE);
    }
    view.draw(canvas);
    
    return bitmap;
}

Buat method untuk simpan ke dalam bentuk file:

public void save(Bitmap image, String path) {
    try {
        FileOutputStream output = new FileOutputStream(path);
        image.compress(Bitmap.CompressFormat.PNG, 100, output);
        output.close();
        Toast.makeText(context,"File berhasil disimpan di: "+path+".",Toast.LENGTH_LONG).show();
    } catch (FileNotFoundException e) {
//        e.printStackTrace();
        Log.e(TAG, e.toString());
        Toast.makeText(context,"Gagal menyimpan file.",Toast.LENGTH_LONG).show();
    } catch (IOException e) {
//        e.printStackTrace();
        Log.e(TAG, e.toString());
        Toast.makeText(context,"Gagal menyimpan file.",Toast.LENGTH_LONG).show();
    }
}

Panggil method yang telah dibuat:

image = getBitmap(layout);

Buat fungsi untuk menyimpan image:

btnSave.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        String path = Environment.getExternalStorageDirectory()+"/image.png";
        save(image, path);
    }
});
 Buat fungsi untuk menampilkan image:
btnView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        bmImage.setImageBitmap(image);
    }
});

 

Source code:
download


GDM dan LightDM pada Ubuntu 14.04

Ubuntu menggunakan LightDM sebagai default display manager. Tetapi, jika ingin kembali ke GDM bawaan gnome itu sangat mudah. Buka terminal, kemudian ketikkan perintah berikut:

sudo dpkg-reconfigure gdm

Akan dijumpai tampilan seperti berikut:

Pada tampilan selanjutnya, akan muncul pilihan display manager yang dapat digunakan.

Kemudian ok.