linux

วันนี้พอดีตัดสินใจ คอมไพล์ ลินุกซ์เคอร์เนล สำหรับการทำให้เครื่องที่ลงลินุกซ์ที่บ้าน สามารถทำงานกับ เสียง ที่ latency ลดลงได้
ก็เลยค้นคว้าหาวิธีการ คอมไพล์
พอดีที่บ้านใช้ Debian, Ubuntu เป็นลินุกซ์พื้นฐานอยู่แล้ว
เลยหาจนไปเจอคำแนะนำที่มีกระทู้ในเว็บของ Debian เขาคุยกันอยู่แล้วก็คือ

http://forums.debian.net/viewtopic.php?t=13123

คราวนี้ผมก็เลยทำตามคำแนะนำของเขา
แต่ว่าปรับให้เวอร์ชั่นใหม่กว่าหน่อยเท่านั้นเองดังนี้

ตอนแรก เริ่มจาก เป็น root ก่อน (debian ใช้ su, ubuntu ใช้ sudo su)

หลังจากนั้น ไปอยู่ที่ /usr/src ซึ่งก็เป็นที่ที่น่าจะเหมาะกับการคอมไพล์อะไรซะหน่อย ด้วยคำสั่ง
cd /usr/src/

แล้วเตรียมของที่จะเอาไว้ทำการ สร้าง linux kernel.. มีอะไรหลายๆอย่างที่ต้อง install เอาไว้ใช้
ก็ทำการ install ดังนี้เลย
apt-get install wget bzip2 binutils kernel-package module-init-tools initrd-tools yaird

ก็จะได้ของมาครบ ต่อไปก็ไปเอา source code ของ linux kernel มา
ผมแนะนำว่าปัจจุบันใช้อันนี้ก่อน
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2
เซฟไว้ที่ /usr/src นี่แหละ
และต่อไปก็ไปเอา patch สำหรับทำ real-time kernel

http://people.redhat.com/mingo/realtime-preempt/patch-2.6.21-rt1
( ในอนาคต อาจจะเปลี่ยนไปอยู่ใน http://people.redhat.com/mingo/realtime-preempt/older/patch-2.6.21-rt1 )

เสร็จแล้ว มาทำการปรับแต่งค่า config ของ kernel ที่กำลังจะสร้างใหม่กัน
สำหรับผมแนะนำให้ทำใน terminal นี่แหละ
apt-get install libncurses5-dev
make menuconfig

(แต่ถ้าอยากปรับใน graphics mode แบบ สบายๆ ก็ทำตามนี้แทน
apt-get install libqt3-mt-dev
make xconfig
)

หลังจากนั้น ปรับแต่ง kernel ตามใจชอบ แต่ให้ปรับค่าเหล่านี้ตามที่บอกนี้ครับ
เพื่อทำให้เป็น preemptive kernel อย่างแท้จริง
Processor type and features -> Preemption Mode -> Complete Preemption (Real-Time)
Processor type and features -> Timer frequency -> 1000 HZ

หลังจากนั้นก็มาคอมไพล์กันเลย
make-kpkg clean
make-kpkg --initrd kernel_image kernel_headers

เสร็จแล้วอินสตอลด้วยคำสั่งง่ายๆดังนี้
dpkg -i *.deb

ก็เป็นอันสำเร็จครับ
ตอนนี้เครื่องผมสองเครื่องกำลังคอมไพล์กันอย่างหนักหน่วง
ไม่รู้ว่าทำเสร็จแล้วอินสตอลแล้วจะรอดไหม
จะเอามาเล่าให้ฟังต่ออีกทีครับ
edit @ 2007/05/02 05:57:02
ในที่สุด ตอนนี้ก็มีระบบปฏิบัติการ linux หลายๆเจ้า ที่ปรับแต่งจนเริ่มเหมาะสมกับการทำงาน ดนตรี มากขึ้นซักที
ที่ผ่านมา linux กับงานด้านดนตรี ยังไม่ค่อยดวงสมพงษ์กันนัก
แต่ว่าตอนนี้ ผมก็ต้องทึ่งกับการพัฒนาอย่างรวดเร็วของด้านนี้
ไม่ว่าจะเป็น การปรับแต่ง linux kernel และ ALSA (sound driver)
ที่ทำให้เหมาะสมกับการทำงานเพลง (และทำงานด้าน multimedia ด้านอื่นๆได้รวดเร็วมากขึ้นด้วย)
ตั้งแต่การออก kernel ที่เป็น low-latency และ real-time มา
ช่วยให้งานเกี่ยวกับ เสียง และภาพ วีดีโอ ลื่นขึ้นเยอะ

ตอนนี้กำลังทดลองอยู่สองเจ้าครับ
ที่คนลุ้นกันมาก อยากเล่นกันมานาน แล้วก็เพิ่งเปิดตัวมา ก็คือ Ubuntu Studio
โดยตัวนี้อ้างอิงจากงานของ Ubuntu ซึ่งทำ linux ที่เป็น debian-based สำหรับผู้ใช้คอมพิวเตอร์ทั่วไปได้อย่างน่าทึ่ง
จากการที่เขาปรับแต่งมาทำให้ install และเปิดใช้งานได้อย่างสะดวก
สามารถทำงานกับ ฮาร์ดแวร์ต่างๆอย่างรวดเร็ว
ไม่ต้องมานั่งทำเองกว่าจะใช้ได้
ทาง Ubuntu Studio ก็พัฒนาจากนั้นต่อ ทำให้ linux distribution ที่ใช้งานง่าย และอำนวยความสะดวกมากขนาดนี้
ขยายความสามารถด้านงาน ดนตรี และ multimedia ไปมากขึ้นอีก
โดยการออก Ubuntu Studio ขึ้นมา

สามารถแวะชม website ได้ที่ http://ubuntustudio.com/
ปัจจุบันยังไม่ค่อยมีข้อมูลมากเลย
แต่สามารถดาวน์โหลด DVD ISO มาลอง install เล่นกันได้เลย
ได้ข่าวว่าตอนนี้ real-time linux kernel ของเขากำลังทดสอบอยู่
ก็อยากให้คนได้ลองกันเยอะๆ ดูว่าใช้งานได้ปกติไหม
- - -

อีกเจ้าหนึ่งที่กำลังลองอยู่
ก็เป็น debian-based เหมือนกัน
จุดเด่นของชื่อเขาก็บอกเลย เขาชื่อ 64studio http://www.64studio.com/

ตัวนี้แต่เดิมพัฒนาสำหรับคอมพิวเตอร์ 64-bit microprocessor architecture ของ Intel (Intel x86-64 bit)
แต่ก็ออกมาทั้งเวอร์ชั่น 64bit และ 32bit

ตัวนี้เนี่ย ดูแล้วยังไม่หน้าตาหล่อเหลาเท่าเจ้าพวก Ubuntu Studio

ตัวนี้นี่ผมลองดูแล้ว ก็เกิดความพอใจมาก
ตอนแรกดีใจมาก เพราะพอ install แล้ว
เปิดขึ้นมา มันสามารถหา Audio Interface ของผมได้ทันทีเลย
ซึ่งถ้าเป็นใน Windows XP หรือ Mac ก็ไม่เคยเจอความสะดวกขนาดนี้
ผมใช้ audio interface คือ RME Hammerfall Multiface น่ะครับ (เวอร์ชั่นแรก.. ปัจจุบัน ตัวนี้เขาออกรุ่นสองด้วย)
- - -

ส่วน Ubuntu Studio ที่กำลังดาวน์โหลด DVD ISO นั้น
ตอนนี้ยังโหลดอยู่เลย มาช้าหน่อย สงสัย อีกเกือบสิบ ชั่วโมง ฮ่าๆๆ
ไม่เป็นไรครับ
ยังไงจะเอาผลมาเล่าให้ฟัง

ผมเองเนี่ย ใช้ Ubuntu จนติดใจความสะดวกของมัน
เป็นไปได้ว่าถ้าไม่มีปัญหา
อาจจะเป็นแฟน Ubuntu Studio ต่อไปเลยนะเนี่ย!

วันนี้จะมีเขียนเรื่องลำดับการปรับแต่ง Ubuntu Linux เตรียมสำหรับการเอาไว้ทำงานดนตรีนะครับ

ในขณะนี้ Ubuntu มาถึงเวอร์ชั่น 7.04 (Feisty) แล้ว

การที่จะเตรียม Ubuntu สำหรับงานด้าน multimedia

ก็จะมีสิ่งที่แนะนำก็คือ

  • ลง Ubuntu ตามปกติ แล้วอัพเกรดเป็น Ubuntu Studio ได้เลย
    (เนื่องจากตอนนี้ มีคนโหลด DVD ISO ของ Ubuntu Studio กันมากมายล้นหลาม
    เริ่มโหลด หรือว่าเอาแผ่นของ Ubuntu 7.04 (Feisty) มาลงก่อนจะสะดวกกว่า
    แล้วค่อยเพิ่ม package ต่างๆให้กลายเป็นเซ็ตของ Ubuntu Studio

  • ลง Linux Kernel เหล่านี้ด้วย: lowlatency และ realtime
    สำหรับการทำงาน multimedia ที่ทันใจมากขึ้น

  • ปรับเพื่อให้ใช้ midi ได้ด้วยการปรับ alsa sequencer

  • นอกนั้น ปรับ ALSA ให้สามารถโหลด firmware สำหรับ soundcard พิเศษที่มีได้
    (อันนี้แล้วแต่กรณีของคนที่ใช้ soundcard หรือ audio interface พิเศษ
    ก็ลองอ่านจากเรื่อง alsa อีกที เพราะว่าผมไม่แน่ใจว่าแก้ปัญหาอย่างไรได้บ้าง
    ตอนนี้ยังงมเข็มกับ alsa อยู่เลยฮ่าๆๆ)

งั้นมาดูแต่ละขั้นตอนกันไปเลย

ลง Ubuntu

เข้า http://www.ubuntu.com/getubuntu (หรือจะเริ่มจาก ubuntu.com เลยก็ได้ เข้าไปง่ายอยู่แล้ว)
Download Ubuntu -> เลือก Release (แนะนำให้เป็น Desktop) เลือก Ubuntu 7.04 (Feisty)
เลือกคอมพิวเตอร์ที่จะเอาไปลง (x86 pc หรือ 64bit AMD and Intel หรือ Sun UltraSPARC)
เลือก mirror หรือประเทศ ที่จะโหลด ยิ่งใกล้ยิ่งสบาย
นอกนั้น ผมก็แนะนำว่า ให้เลือกเป็น alternate desktop CD ด้วย
สำหรับคนที่ชอบ Live CD เอาเป็น Live CD ไปก็ไม่มีปัญหา
แต่กว่าจะได้ install ผมรู้สึกว่ามันนานไปหน่อย เลยชอบ install จาก alternate install
ยังไงก็สามารถ install ได้แบบ debian อยู่แล้ว

หลังจากนั้นก็รอจนกว่าจะได้แผ่น Ubuntu มา..

แนะนำสำหรับคนที่โหลดอะไรหนักๆไม่ไหว:

ลองไปโหลด debian etch หรือ Debian GNU/Linux version 4.0
เอาเป็นเวอร์ชั่น netinstall CD (ขนาดเพียง 100 กว่า MB)
แล้วทำการ install เพียงแค่ base system

หลังจากนั้นเปลี่ยน repository ใน /etc/apt/sources.list ให้เป็นของ Ubuntu Feisty

deb http://th.archive.ubuntu.com/ubuntu/ feisty main restricted
deb-src http://th.archive.ubuntu.com/ubuntu/ feisty main restricted

# Major bug fix updates produced after the final release of the distribution.

deb http://th.archive.ubuntu.com/ubuntu/ feisty-updates main restricted
deb-src http://th.archive.ubuntu.com/ubuntu/ feisty-updates main restricted

# Packages from the main main debian

deb http://th.archive.ubuntu.com/ubuntu/ feisty universe
deb-src http://th.archive.ubuntu.com/ubuntu/ feisty universe

## software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence.

deb http://th.archive.ubuntu.com/ubuntu/ feisty multiverse
deb-src http://th.archive.ubuntu.com/ubuntu/ feisty multiverse

## software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
# deb http://th.archive.ubuntu.com/ubuntu/ feisty-backports main restricted universe multiverse
# deb-src http://th.archive.ubuntu.com/ubuntu/ feisty-backports main restricted universe multiverse

# Security

deb http://security.ubuntu.com/ubuntu feisty-security main restricted
deb-src http://security.ubuntu.com/ubuntu feisty-security main restricted
deb http://security.ubuntu.com/ubuntu feisty-security universe
deb-src http://security.ubuntu.com/ubuntu feisty-security universe
deb http://security.ubuntu.com/ubuntu feisty-security multiverse
deb-src http://security.ubuntu.com/ubuntu feisty-security multiverse


โอเค กลับมาที่ Ubuntu กัน
เมื่อเราลง Ubuntu เสร็จแล้ว มี desktop ให้ใช้แล้ว
ก็จะแนะนำให้ apt-get update, apt-get upgrade เพื่อเตรียมอัพไปเป็น Ubuntu Studio!
การที่จะ upgrade เป็น Ubuntu Studio นั้น

ถ้าไม่แน่ใจ ลองเข้าใน http://ubuntustudio.org/

แล้วอ่านดูก่อนก็ได้ หรือดูจาก WIKI (wiki ของ Ubuntu) ก่อนก็ได้ ในหัวข้อ Ubuntu Studio
เพื่อเช็ค repository ของ Ubuntu Studio
ส่วนของปัจจุบันนั้น
สามารถแอด repository ของ Ubuntu Studio นี้ลงใน /etc/apt/sources.list ได้เลย

deb http://archive.ubuntustudio.org/ubuntustudio feisty main

แล้วไปเอา gpg key ได้ด้วยคำสั่ง

wget -q http://archive.ubuntustudio.org/ubuntustudio.gpg -O- | sudo apt-key add -

หลังจากนั้นทำการ apt-get update เราก็พร้อมที่จะลง หลายๆอย่าง เพื่อทำให้เป็น Ubuntu Studio
ก็จะแนะนำให้ install ตัว package เหล่านี้โดยขั้นต้น

ubuntustudiolauncher ubuntustudio-desktop ubuntustudio-gdm-theme ubuntustudio-icon-theme ubuntustudio-look ubuntustudio-session-splashes ubuntustudio-theme ubuntustudio-wallpapers usplash-theme-ubuntustudioubuntustudio-default-settings ubuntustudio-sounds ubuntustudio-artwork ubuntustudio-screensaver

(ที่ผมทำ ตัวหนา ไว้ จะเป็นตัวสำคัญๆที่แนะนำให้ install เป็นหลัก
นอกนั้นจะเป็นเรื่อง หน้าตา เสียงประกอบ มากกว่า ไม่จำเป็นเท่า)

หลังจากนั้น ให้เลือก package เหล่านี้ที่จะลง
ว่าอยากจะลง application สำหรับทำงานด้านไหน

ubuntustudio-audio ubuntustudio-audio-plugins ubuntustudio-video ubuntustudio-graphics

พอทำเสร็จแล้ว (ถ้าลงทั้งหมด ก็จะต้องโหลดเพิ่มอีกประมาณ 200 กว่า MB สำหรับ Ubuntu Feisty นะครับ)

- - -

ขั้นต่อไป จะแนะนำการลง low-latency kernel
ก็ทำการ install แพคเกจชือ่ linux-lowlatency ได้เลยครับ

ขั้นต่อไป จะแนะนำการลง Realtime Kernel !!
อันนี้ เขามี Kernel ที่เขากำลังทดสอบอยู่ให้ลองใช้ครับ (เป็น Beta อยู่)
ลองเข้าไปดูได้จาก https://wiki.ubuntu.com/RealTime

ในขณะนี้ เขาบอกวิธีการลง linux-image ที่เป็น RealTime ไว้ว่า
ให้แอด repository นี้ ใน /etc/apt/sources.list

deb http://www.texware.it/ubuntu feisty/
deb-src http://www.texware.it/ubuntu feisty/

หลังจากนั้น ไปเอา gpg key มาด้วยคำสั่ง

wget -q http://www.texware.it/ubuntu/feisty/BBA3222D.gpg -O- | sudo apt-key add -

หลังจากนั้นทำการ apt-get update แล้วก็พร้อมทำการ install แพคเกจชื่อ linux-realtime
แค่นี้ก็ได้ real-time linux kernel มาเล่นสำหรับงาน multimedia ครับ

- - -

แต่แค่นี้ยังไม่พอ เหลืออีกคือ ปรับ midi ให้ใช้งานได้ตามปกติ
เช่น ใช้กับ jack ได้
ใช้คำสั่งนี้เลยครับ

sudo modprobe snd-seq
เป็นการโหลด ALSA Sequencer
แต่ถ้าต้องการให้มันโหลดทุกครั้งที่เปิดเครื่อง ก็ทำแค่นี้ก็จบเลย
sudo su -c 'echo snd-seq >> /etc/modules'
- - -

สำหรับหลายๆคน ที่ใช้ soundcard ที่ยังไม่ support โดย Ubuntu โดยดั้งเดิม
ทดลองอ่านเอาในเว็บของ ALSA ประกอบด้วย

ถ้าคิดว่า support แต่มันยังไม่ลง Firmware ให้
ก็ลองแพคเกจ alsa-firmware-loaders และ alsa-firmware ด้วย

ขอให้โชคดีครับ


กิจจาศักดิ์ ตริยานนท์
View full profile