27 April, 2006

Sun Type 6 keyboard remapping

Bàn phím Sun Type 6 và chuột CrossbowSun Ultra 20 Workstation của Sun Microsystems quả đúng tuyệt vời, chạy rất êm, thiết kế đẹp. Nhưng có một thứ chuối, chuối không chịu nổi: bàn phím của nó. Loại bàn phím Sun Type 6 và con chuột kèm theo chạy rất êm, nhưng cách sắp xếp phím thì lại là cơn ác mộng.

Bàn phím của nó được thiết kế cho Solaris nên có nhiều phím chức năng được thiết kế riêng và đặt tại các vị trí tiện dụng cho việc sử dụng Solaris. Đầu tiên, và khó chịu nhất, là vị trí của Left Control và Caps Lock bị đổi chỗ cho nhau. Thứ hai, Left Windows và Left Alt đổi chỗ cho nhau. Thứ ba, cũng khá bực mình, là phím tide (~) nằm phía trên phím Back Space. Thứ tư, phím ESC nằm ở vị trí phím tide (~). Cuối cùng, bàn phím không có Right Control, ở vị trí đó là Right Alt. Do đó việc sử dụng bàn phím này trên Windows rất khó chịu. Sử dụng lâu ngày có thể hư tay.

Những phiền phức đó có thể khắc phục bằng Keyboard Remapping. Các phím cần thay đổi chức năng và vị trí:

  • Caps Lock đổi chỗ với Left Control
  • Left Windows đổi chỗ với Left Alt
  • Phím Right Alt ít sử dụng, chuyển chức năng thành Left Control

Tại vị trí phím ESC có một phím trắng, nhưng không thể remap được do không lấy được scancode của phím đó. Vì vậy phím tide (~) và ESC không nên đổi chỗ (nếu không ESC nằm bên phải, còn ẹ hơn nữa).

Để remap bàn phím, ta cần tạo binary key Scancode Map nằm trong HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout. Nội dung của Scancode Map gồm có:

  • 4 bytes đầu: bằng 0
  • 4 bytes kế tiếp: số lượng key cần map cộng 1
  • Mỗi 4 bytes tiếp theo: chia làm 2 phần, phần 2 bytes cao và phần 2 bytes thấp. Phần 2 bytes cao chứa scancode phím cần chuyển; phần 2 bytes thấp là scancode phím cần được map vào.
  • 4 bytes cuối: bằng 0

Để map được bàn phím như yêu cầu đã nêu trên thì nội dung của Scancode Map sẽ là:

hex:00,00,00,00,00,00,00,00,07,00,00,00,38,e0,1d,e0,1d,e0,38,e0,3a,00,1d,00,1d,00,3a,00,38,00,5b,e0,5b,e0,38,00,00,00,00,00

13 April, 2006

Set host name on Solaris 10

Đặt hostname trên Solaris 10

Đây là cách đặt tên host cho máy cài Solaris 10 và dùng DHCP.

Bước 1: cài đặt DHCP

Đầu tiên ta cần phải tạo file /etc/hostname.nge0 (tùy tên interface của card mạng mà có thể tên file thay đổi, chẳng hạn như bge0 hay le0. Nội dung của file là hostname. Thí dụ, ta muốn đặt hostname là sun01 thì nội dung của file sẽ là:

sun01

Tiếp theo tạo file /etc/dhcp.nge0. File này có thể để trống nếu chấp nhận các giá trị mặc định. Ta có thể ghi nội dung như sau vào file:

wait 100
primary

Chỉ thị wait sẽ yêu cầu chờ phản hồi từ DHCP server trong khoảng thời gian định trước. Mặc định sẽ được chờ trong 30 giây. Ta cũng có thể đưa lựa chọn forever để chờ cho đến khi có phản hồi.

Chỉ thị primary cho ifconfig biết interface mạng nge0 là interface chính, nếu như chúng ta có nhiều hơn một interface.

Bước 2: Thay đổi hostname

Hầu hết các DHCP server không cung cấp hostname cho chúng ta. Đây không phải là vấn đề nếu như các script khởi động cố gắng "thông minh" đặt tên hostname là unknown.

Một trong những cách để giải quyết: tạo một script khởi động để đặt hostname. Ta tạo script /etc/init.d/set_hostname, và một liên kết mềm ở /etc/rc2.d/S70set_hostname. Nội dung của file set_hostname (set_hostname):

HOSTNAME=`cat /etc/nodename`
echo "Setting hostname to $HOSTNAME... \c"
uname -S $HOSTNAME
echo "Done."

Tên hostname muốn đặt để trong file /etc/nodename.

Sau các bước trên, khởi động lại hệ thống và xem thử kết quả

Tham khảo

  • Rite-Group website
  • 12 April, 2006

    Việt Nam thư quán - Truyện tranh

    Một trang có nhiều truyện tranh, cách trang trí cũng khá hay :)

    Read more at Việt Nam thư quán