Laporan Cuaca

Baru sadar kalau sekarang di Ubuntu saya bisa lihat laporan cuaca di pojok kanan atas layar seperti berikut ini :

Siang ini langit Jakarta katanya berawan, panas gerah 33 derajat Celcius 😀 Tentu informasi ini tidak terlalu akurat, karena data ini diambil dari internet. Datanya tidak akurat tapi memang relatif benar, sejak pagi langit Jakarta ditutup awan tapi tetap saja panas.

Fitur yang tidak terlalu penting tapi sepertinya bagus juga untuk mengkoleksi tangkapan layar seperti di atas :-”

Malam yang tetap berawan:

Pagi yang sedikit berawan :

Pagi yang berkabut & berawan :

Hujan sore hari ini disertai kilat (10 Mei 2010) :

Makin malam tinggal hujan gerimis :

Serial Console Linux

Di kamar saya ada PC server milik rekan saya yang belum selesai diutak-atik. Sayangnya tidak ada monitor yang bisa dipakai. Biasanya saya mengakses PC server tersebut lewat network dengan koneksi SSH. Oh ya PC server ini berisikan Red Hat Linux Enterprise 5.1. Tanpa monitor saya tidak bisa melihat tampilan yang keluar saat proses booting maupun proses shutdown berlangsung. Iseng saya ingin mencoba menampilkan output-nya melalui port serial. Inginnya console yang biasanya ditampilkan ke monitor saya arahkan ke serial port, mirip-mirip yang biasa dipakai di server-server beneran 😀 . Mencari tahu di Google saya menemukan referensi yang tepat di sini :

http://www.vanemery.com/Linux/Serial/serial-console.html

Segera saja saya coba mengarahkan console-nya Red Hat ke port serial. Dari serial port PC tadi saya sambungkan dengan notebook menggunakan kabel serial (kali ini saya pakai kabel rollover-nya Cisco), seperti in fotonya :

Langkah-langkah yang harus saya jalankan sesuai tutorial yang ada di web tersebut adalah sebagai berikut :

1. Mengidentifikasi port serial yang ada pada motherboard dengan perintah seperti berikut ini :

[root@aptserver ~]# dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
0000:00:09.0: ttyS1 at I/O 0xc008 (irq = 5) is a 16450
0000:00:09.0: ttyS2 at I/O 0xc010 (irq = 5) is a 8250
0000:00:09.0: ttyS3 at I/O 0xc018 (irq = 5) is a 16450

2. Mengaktifkan port serial supaya bisa dikenali oleh sistem operasi :

[root@aptserver ~]# setserial -g /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

3. Memodifikasi file /etc/inittab supaya memperbolehkan user untuk login lewat console :

[root@aptserver ~]# cp /etc/inittab /etc/inittab.orig
[root@aptserver ~]# vi /etc/inittab
#tambahkan baris berikut ini di dalam /etc/inittab
s0:2345:respawn:/sbin/agetty -L -f /etc/issueserial 9600 ttyS0 vt100
[root@aptserver ~]# init q
[root@aptserver ~]# pkill agetty

4. Memodifikasi /etc/securetty supaya root bisa login lewat console :

[root@aptserver ~]# echo "ttyS0" >> /etc/securetty

5. Mengatur GRUB supaya menampilkan console tidak lagi ke monitor tapi ke port serial (tambahkan opsi console=ttyS0,9600):

[root@aptserver ~]# cp /boot/grub/grub.conf /boot/grub/grub.conf.orig
[root@aptserver ~]# vi /boot/grub/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-53.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet acpi=off apm=on apm=power-off console=ttyS0,9600
initrd /boot/initrd-2.6.18-53.el5.img
[root@aptserver ~]#

6. Mematikan aplikasi kudzu supaya tidak memeriksa perubahan default console dari VGA ke port serial :

[root@aptserver ~]# chkconfig kudzu off

7. Reboot PC :

[root@aptserver ~]# shutdown -h now

Kira-kira seperti itu langkah-langkah konfigurasinya. Setelah reboot, PC akan menampilkan console-nya melalui port serial. Untuk mengaksesnya saya bisa menggunakan aplikasi Hyperterminal (kalau notebook saya menggunakan Windows). Dalam hal ini notebook saya berisi Ubuntu, sehingga saya harus memilih aplikasi yang bisa mengakses terminal serial. Yang umum dipakai orang adalah aplikasi  minicom tapi saya menemukan aplikasi lain yang mirip, namanya cu. Aplikasi ini tersedia di kumpulan DVD repositori Ubuntu 8.10, saya tinggal menginstalnya dengan perintah :

tedy@tedy-laptop:~$ sudo apt-get install cu

Untuk menggunakan aplikasi  cu format perintahnya seperti berikut ini :

tedy@tedy-laptop:/media/disk-1$ cu -l (serial_port) -s (baud_rate)

Karena notebook saya tidak memiliki port serial, maka saya menggunakan USB to serial adapter untuk menghubungkan kabel serial dari PC ke notebook. Fotonya seperti berikut ini :

Adapter tersebut dikenali oleh Ubuntu sebagai /dev/ttyUSB0 sehingga perintah yang saya pakai untuk mengakses console Red Hat adalah seperti berikut ini :

tedy@tedy-laptop:/media/disk-1$ cu -l /dev/ttyUSB0 -s 9600
Connected.

Red Hat nash version 5.1.19.6 starting
INIT: /etc/inittab[53]: duplicate ID field "s0"
Welcome to Red Hat Enterprise Linux Server
Press 'I' to enter interactive startup.
Setting clock  (utc): Fri Jan 30 09:29:11 WIT 2009 [  OK  ]
Starting udev: [  OK  ]
Loading default keymap (us): [  OK  ]
Setting hostname aptserver:  [  OK  ]
No devices found
Setting up Logical Volume Management:   /dev/cdrom: open failed: No medium found

Lihat pada contoh di atas saya bisa melihat proses booting yang sedang berlangsung di PC tersebut. Berikut screenshot-nya supaya lebih yakin 😀 :

Synaptic & DVD Repo Ubuntu 8.04

Di lingkungan Ubuntu, semua software disimpan dalam repository. Ada repository yang ditaruh dalam server, ada juga yang disebarkan dalam bentuk DVD. Saya kenal dengan yang namanya DVD repository Ubuntu sejak versi 7.04. Dengan menggunakan DVD repository, kita tidak perlu koneksi internet untuk mengakses software dari server repository. Walaupun kita punya akses internet, tentu akan lebih menyenangkan memiliki repository lokal (dalam bentuk DVD) karena proses instalasi akan jauh lebih cepat daripada harus mengakses server repository lewat internet.

Ubuntu Linux punya aplikasi yang namanya Synaptic, Synaptic berfungsi me-manage semua aplikasi (software) yang dapat diinstal ke dalam Ubuntu. Secara default, Syanptic akan mencoba mengakses server-server repository Ubuntu untuk membuat daftar software/aplikasi. Untuk mendaftarkan semua software yang ada di dalam DVD repository kita harus menjalankan perintah berikut ini :

$ sudo apt-cdrom add

Dengan perintah tersebut, Synaptic akan mengenali bahwa DVD yang kita gunakan adalah repository-nya Ubuntu. Perintah tersebut harus kita ulangi untuk semua DVD repository yang kita miliki. Tulisan tentang hal ini sebenarnya sudah pernah saya tulis di sini.

Beberapa hari lalu saya sudah mendapat file image dari DVD repository Ubuntu 8.04 dari teman saya Salman. Semuanya ada 5 iso image saya simpan dalam eksternal harddisk saya. Daripada repot mengkopi semuanya ke dalam kepingan DVD, saya cari cara untuk menggunakan iso image tadi. Googling sebentar saya menemukan caranya, seperti ini :

  1. Buat mount point untuk tiap iso image, misalnya seperti ini :
    tedy@tedy-laptop:/$ sudo mkdir /media/ubuntu1
    tedy@tedy-laptop:/$ sudo mkdir /media/ubuntu2
    tedy@tedy-laptop:/$ sudo mkdir /media/ubuntu3
    tedy@tedy-laptop:/$ sudo mkdir /media/ubuntu4
    tedy@tedy-laptop:/$ sudo mkdir /media/ubuntu5
    
  2. Mount satu persatu iso image ke dalam mount point yang sudah dibuat, seperti ini:
    tedy@tedy-laptop:/media/SENSE/DVD$ sudo mount -o loop ubuntu-8.04-repository-i386-1_contrib.iso /media/ubuntu1
    tedy@tedy-laptop:/media/SENSE/DVD$ sudo mount -o loop ubuntu-8.04-repository-i386-2_contrib.iso /media/ubuntu2
    tedy@tedy-laptop:/media/SENSE/DVD$ sudo mount -o loop ubuntu-8.04-repository-i386-3_contrib.iso /media/ubuntu3
    tedy@tedy-laptop:/media/SENSE/DVD$ sudo mount -o loop ubuntu-8.04-repository-i386-4_contrib.iso /media/ubuntu4
    tedy@tedy-laptop:/media/SENSE/DVD$ sudo mount -o loop ubuntu-8.04-repository-i386-5_contrib.iso /media/ubuntu5
    
    
  3. Jalankan perintah apt-cdrom dengan tambahan opsi supaya Synaptic membaca mount point file iso image tadi, karena secara default Synaptic akan mencoba membaca CDROM (Perintah ini pun saya ulangi untuk semua mount point.) :
    tedy@tedy-laptop:/$ sudo apt-cdrom -d /media/ubuntu1 -m add
    Using CD-ROM mount point /media/ubuntu1/
    Identifying.. [c1d618279cfb4e10ca09f0e1bc5dd8b4-2]
    Scanning disc for index files..
    Found 2 package indexes, 0 source indexes, 0 translation indexes and 0 signatures
    This disc is called:
    'Ubuntu 8.04 _Hardy Heron_ - i386 - DVD Repository - Disc 1 of 5'
    Reading Package Indexes... Done
    Writing new source list
    Source list entries for this disc are:
    deb cdrom:[Ubuntu 8.04 _Hardy Heron_ - i386 - DVD Repository - Disc 1 of 5]/ hardy main restricted
    Repeat this process for the rest of the CDs in your set
    
  4. Edit file /etc/apt/source.list, hapus seluruh isinya (untuk melarang Synaptic mendownload software dari server repository) dan ganti isi file dengan baris perintah berikut :
    deb file:///media/ubuntu1 hardy main restricted
    deb file:///media/ubuntu2 hardy main multiverse universe
    deb file:///media/ubuntu3 hardy universe
    deb file:///media/ubuntu4 hardy universe
    deb file:///media/ubuntu5 hardy universe
    
  5. Yang perlu diperhatikan adalah DVD repository harus dimount secara tepat sesuai isi DVD tersebut. Karena ada 3 macam repository : main restricted, main multiverse, dan universe. Pada contoh di atas, DVD main restricted saya mount ke /media/ubuntu1 , DVD multiverse saya mount ke /media/ubuntu2 , dan 3 DVD universe saya mount berurutan di /media/ubuntu3, /media/ubuntu4, dan /media/ubuntu3 . Lalu bagaimana kita tahu mana iso image yang merupakan main restricted, main multiverse, dan universe….gampang, lihat saja isinya seperti contoh berikut ini :
    tedy@tedy-laptop:/$ ls /media/ubuntu1/dists/hardy/
    main  restricted
    tedy@tedy-laptop:/$ ls /media/ubuntu2/dists/hardy/
    main  multiverse  universe
    tedy@tedy-laptop:/$ ls /media/ubuntu3/dists/hardy/
    universe
    tedy@tedy-laptop:/$ ls /media/ubuntu4/dists/hardy/
    universe
    tedy@tedy-laptop:/$ ls /media/ubuntu5/dists/hardy/
    universe
    
  6. Update Synaptic supaya mengenali semua mount point tadi bilamana nanti akan menginstal software, perintahnya adalah :
    tedy@tedy-laptop:/$ sudo apt-get update

Dengan cara ini saya tidak perlu lagi membakar iso image ke dalam kepingan DVD. Dulu waktu menggunakan Ubuntu 7.04 tiap kali ingin menginstal sesuatu dengan bantuan Synaptic, saya harus bolak-balik mengganti-ganti DVD. Dengan menggunakan iso image, saya tinggal mount saja semua file iso image tadi dari dalam eksternal harddisk ke dalam mount point yang sudah dibuat. Syanptic akan mencari sendiri di dalam DVD yang mana software yang perlu diinstal berada. Tapi resikonya adalah saya buang sekitar 20GB ruang di harddisk eksternal saya untuk menyimpan kelima file iso image repository tadi 🙂

Wget & md5sum

Ah sukses juga akhirnya semalaman titip download CD FreeBSD di server kantor :D. Lihat log-nya

tedy@pwsupport:~> tail wget-log
654250K .......... .......... .......... .......... .......... 99%   60.58 KB/s
654300K .......... .......... .......... .......... .......... 99%   58.83 KB/s
654350K .......... .......... .......... .......... .......... 99%   60.48 KB/s
654400K ..                                                    100%   82.57 KB/s

04:58:20 (31.94 KB/s) - `arsip.or.id/freebsd/ISO-IMAGES-i386/6.2/6.2-RELEASE-i386-disc2.iso' saved [670107648/670107648]

FINISHED --04:58:20--
Downloaded: 670,107,648 bytes in 1 files

Oh ya ini gara-gara iseng download ini saya jadi tahu caranya memanfaatkan wget untuk men-download sesuatu. Tepatnya saya jadi tahu caranya mengatur wget supaya bisa berjalan di background (dengan opsi -b), supaya bisa mengulang proses jika koneksi terputus (dengan opsi -r), dan supaya bisa auto resume (dengan opsi -c) tiap kali proses download gagal. Hasil download tadi diawali dengan perintah berikut ini :

tedy@pwsupport:~> wget -b -c -r 20 http://arsip.or.id/freebsd/ISO-IMAGES-i386/6.2/6.2-RELEASE-i386-disc2.iso

Untuk memeriksa keutuhan data hasil download, saya menggunakan tool yang ada di Linux yaitu md5sum. MD5 sendiri adalah algoritma untuk memeriksa keutuhan data (baca selengkapnya di sini). Lihat cara memakai md5sum seperti berikut ini :

tedy@pwsupport:~/arsip.or.id/freebsd/ISO-IMAGES-i386/6.2> md5sum 6.2-RELEASE-i386-disc2.iso
fd30bfc65ef8adaa67aeffd07c72bf21  6.2-RELEASE-i386-disc2.iso

Hasil cek md5sum tinggal saya bandingkan dengan data md5sum yang ada di web sumbernya. Tiap web yang menyediakan file untuk di-download biasanya menyertakan data md5sum untuk memudahkan pengguna memeriksa keutuhan hasil download-nya.