Posts Tagged ‘ubuntu

01
เม.ย.
10

วิธีแก้ให้โชว์ menu ตอนบูต ของ Grub 2

ตอนนี้ผมใช้ Ubuntu 10.04 Lucid Lynx beta อยู่ ก็จะมีอัพเดทถี่ๆแทบทุกวัน เมื่อคืนอัพเดทมีอัพ kernel จาก 2.6.32-18-generic ไปเป็น 2.6.32-19-generic แต่ก็ยังไม่ได้ restart เครื่อง จะนอนแล้วก็ปิดเครื่องไป พอเมื่อเช้าเปิดมาเจอ

[ 58.593255 ] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

ทำอะไรไม่ได้เลย เพราะ default ของ grub2 ที่มากับ lucid มันไม่แสดง menu ให้เลือก มันเลือกบูตจาก kernel ตัวล่าสุดไปเลย

ทำอะไรไม่ได้ก็เลยต้องหาแผ่น Live CD มาบูต ดีมีแผ่น Suriyan ที่ได้จากงาน miniDebCamp ติดกระเป๋า ก็เลยบูตเข้าไปที่ Suriyan ตัว Suriyan เองพัฒนาต่อมาจาก 9.10 Karmic ก็เลยใช้ grub2 เหมือนกัน

ตอนแรกก็ค้นหาวิธีในเนต หายังไงก็ไม่เจอ ก็เลยคิดว่าจะลองบูตเข้าไปที่ kernel ตัวเก่า ก็เลยหาวิธีแก้ให้มันแสดง menu ตอนบูต ปัญหาคือมันเป็น grub2 ซึ่งเปลี่ยนวิธี config ไปจากเดิมอย่างสิ้นเชิง ของเก่าเคยแก้แค่ไฟล์ menu.lst แค่ไฟล์เดียว ตอนนี้เข้าไปก็ไม่เจอไฟล์ menu.lst แล้ว

ค้นไปค้นมาไปเจอ document ของมันที่ https://wiki.ubuntu.com/Grub2 บอกวิธีแก้ให้มันแสดงเมนูโดยไปแก้ที่ไฟล์ /etc/default/grub ให้คอมเม้นที่

#GRUB_HIDDEN_TIMEOUT=3

และ ปรับค่าจำนวนเวลาที่จะแสดง menu ที่

GRUB_TIMEOUT=XXX

เสร็จแล้วให้เรียกคำสั่ง update-grub

แต่ว่า เราใช้ Suriyan บูต ทำให้มันไม่มอง drive ที่เรา mount เป็น root (/) ต้องเปลี่ยนด้วยคำสั่ง chroot ก่อน

ด้านล่างของ document จะมีบอกวิธี chroot แต่ว่าก่อนจะ chroot จะทำการ –bind พวก /dev /proc และ /sys ก่อน ด้วยคำสั่ง ประมาณนี้

$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys

ข้างหลังตรง /mnt/dev ก็คือชี้ไปที่ path ของรูทที่เรา mount ไว้ก่อน
หลังจากนั้น ใช้คำสั่ง

$ sudo chroot /mnt

เพื่อเปลี่ยน root directory โดย /mnt คือ path ของ drive อื่นที่ mount ไว้ หลังจากนั้นก็แก้ตามที่บอกข้างบน แล้ว reboot คราวนี้ก็จะเห็น menu แล้ว

สุดท้ายวิธีแก้ kernel panic ก็คือ บูตไป kernel เก่า แล้วไป apt-get remove ตัว kernel ใหม่ เสร็จแล้ว apt-get install ใหม่อีกที หายเลยทีนี้

Advertisements
01
พ.ย.
07

เพิ่ม menu ให้กับ menu popup บน ubuntu

หน้า desktop ของ ubuntu นั้นถูกควบคุมด้วยโปรแกรม nautilus เมื่อเราคลิ๊กขวาจะเห็น menu popup ขึ้นมา
ถ้าลงปกติก็จะเห็นว่ามันมีเมนู
popupmenu

ต่อไปผมจะทำการเพิ่ม menu ลงไปอีกอันคือ Display Setting ซึ่งผมจะให้มันเรียกโปรแกรม displayconfig-gtk ซึ่งเป็นโปรแกรมในการ ตั้งค่าต่างๆของ จอ เริ่มแรกก็ทำการโหลด source code ของ nautilus มาก่อนด้วยคำสั่ง

sudo apt-get source nautilus

แล้วก็ทำการโหลด เครื่องมือที่จำเป็นในการ build ผ่านทางคำสั่ง

sudo apt-get build-dep nautilus

แล้วก็เข้าไปแก้โค้ดที่ nautilus-2.20.0/src/file-manager/fm-desktop-icon-view.c

โดยจะทำการเพิ่มโค้ดฟังก์ชัน ที่จะเป็น callback โดยจะถูกเรียกใช้งานเมื่อเมนูถูกคลิ๊ก ดังนี้

static void

action_display_setting_callback (GtkAction *action,

gpointer data)

{

g_assert (FM_DIRECTORY_VIEW (data));

nautilus_launch_application_from_command (gtk_widget_get_screen (GTK_WIDGET (data)),

_(“Display Setting”),

“gksudo displayconfig-gtk”,

NULL,

FALSE);

}
จากนั้นให้ทำการเพิ่ง ข้อมูลลงไปใน อาเรย์ desktop_view_entries ดังนี้

/* name, stock id */

{ “Display Setting”, NULL,

/* label, accelerator */

N_(“Display Setting”), NULL,

/* tooltip */

N_(“Setting a display properties”),

G_CALLBACK (action_display_setting_callback) },

เสร็จแล้วก็เซฟไฟล์นี้

ต่อไปจะไปแก้ที่ไฟล์ nautilus-2.20.0/src/file-manager/nautilus-desktop-icon-view-ui.xml

โดยเพิ่ม tag ต่อไปนี้ลงไปใน tag <popup name=”background”>


<placeholder name=“After Zoom Items”>

<placeholder name=“Display Items”>

                <menuitem name=“Display Setting” action=“Display Setting”/>

</placeholder>

</placeholder>

แล้วก็ เซฟไฟล์ แล้วแล้วก็ทำการ
./configure
make
sudo make install
ตามลำดับ  ก็จะได้ nautilus อันใหม่ที่มี menu popup บน desktop ที่มี menu ใหม่เพิ่มขึ้นมาดังรูป

popupmenu_after_edit

06
ต.ค.
07

Ubuntu

ใช้ลีนุกซ์มาได้แบบจริงๆจังๆ มาได้ประมาณปีนึงเต็มๆเล้ว รู้สึกว่าชอบถึงชอบมากๆ โดยเฉพาะ distro ที่ชื่อว่าubuntu นี่แหละ เนื่องจากความง่ายในการติดตั้ง และความสามารถในการ ติดตั้งโปรแกรมเพิ่มเติมผ่านทาง apt-get หรือ synaptic มีโปรแกรมมากมายเหลือเกิน ที่สามารถโหลดมาใช้ได้ฟรีๆ และยังมีการอัพเดทตัวโปรแกรมเรื่อยๆอีกต่างหาก ที่ทำได้แบบนี้ก็ต้องยอมรับด้วยว่าเรามี internet ความเร็วสูงให้เล่นไม่ว่าจากของมหาฯลัยแล้วก็ของ TOT ในช่วงที่อยู่สุรสวัสดิ์ Linux มีอะไรให้เล่นอีกเยอะเลยโดยเฉพาะสำหรับคนที่ชอบการเขียนโปรแกรมเช่นผม สภาพแวดล้อมของ Linux เหมาะกับการเขียนโปรแกรมและพัฒนามาก มีเครื่องมือต่างๆพร้อมเพียงทั้ง

editor,compiler,interpreter

อย่างเช่นตอนนี้ที่เราใช้

vi ,gcc,php,python,ruby,ghc

ได้อย่างไม่ยากนักบนลีนุกซ์ มีของสนุกๆให้ลองเยอะ แม้แต่เกมส์ที่อาจเป็นข้ออ้างให้คอเกมส์ทั้งหลาย ไม่อยากใช้ลีนุกซ์ ที่จริงแล้วเกมส์ดีๆที่เล่นได้บนลีนุกซ์มีเยอะเหมือนกันนะเช่น

fret on fire
stepmania

พอแค่นี้ก่อนครับ เอาไว้จะมาเล่าเรื่องลีนุกซ์อีกแล้วกันครับ