Cf5livecdhack
จาก OpenTLE Wiki
เนื้อหา |
การปรับแต่งลินุกซ์ทะเล 9 เพื่อทำ LiveCD
Modules
aufs
aufs module บนลินุกซ์ทะเล 9 สามารถทำการ Complile ได้โดยขั้นตอนดังนี้
- ติดตั้ง aufs-source โดยการใช้คำสั่ง
$ sudo apt-get install aufs-source
- หลังจากนั้นก็ติดตั้ง packages อื่นๆ ที่จำเป็นสำหรับการ build
$ sudo apt-get install build-essential
- source ของ aufs จะเก็บไว้ที่
/usr/src
- ให้เราเข้าไปยังที่นั้น แล้วทำการแตก source ดังกล่าว
$ cd /usr/src
ก่อนแตก source ต้องทำ link kernel header ก่อนเพราะใน Make file ของ aufs กำหนดไว้แบบนั้น
$ sudo ln -s linux-headers-2.6.22-14-generic linux
แตกต่อ
$ sudo tar vxfj aufs.tar.bz2 $ cd modules/aufs
เสร็จแล้วย้ายไฟล์ตามข้างล่าง เดียว rules จะหาไฟล์ไม่เจอ
$ mv control.modules.in control
- เมื่อแตกและเข้าไปได้แล้วก็ให้ทำการ complie ดังนี้
$ sudo debian/rules binary-modules
นั่งรอสักครู่มันเหมือนจะเสร็จ แต่ถ้าสังเกตุดีๆ มันบอกว่า error แต่จริงๆ มันได้ เอ๊ะ !! ชักงง :p มันสร้าง module ให้เราเสร็จแล้วละครับแค่นี้ก็พอใจมันจะตายก็ไม่เป็นไร เราก็เอา module ที่ได้ไปเก็บไว้ในระบบครับ
$ sudo cp -r \ debian/aufs-modules-2.6.22-14-generic/lib/modules/2.6.22-14-generic/kernel/fs/aufs \ /lib/modules/2.6.22-14-generic/kernel/fs
**หมายเหตุ: เครื่องหมาย \ ข้างบนหมายถึงพิมพ์บรรทัดเดียวไม่หมด จริงๆ พิมพ์ยาวไปเลยก็ได้
- ทดสอบว่าได้ไหมดังนี้
$ sudo depmod -a $ modinfo aufs
ถ้าใช้งานได้มันต้องเห็นคล้ายๆ แบบนี้
filename: /lib/modules/2.6.22-14-generic/kernel/fs/aufs/aufs.ko version: 20070604 description: aufs -- Another unionfs author: Junjiro Okajima license: GPL srcversion: 09DE27E3D3049E2CF3C1CE8 depends: vermagic: 2.6.22-14-generic SMP mod_unload 586 parm: nwkq:the number of workqueue thread, aufsd (short) parm: brs:use <sysfs>/fs/aufs/brs (int)
--MrChoke 17:16, 19 มกราคม 2008 (ICT)
squashfs + lzma
ปกติ LinuxTLE 9 มี squashfs อยู่แล้วแต่ไม่ support lzma เลยจำเป็นต้องนำ squashfs มาทำการ complie ใหม่บน LinuxTLE 9 ซึ่งมีคนได้ทำไว้แล้วที่ ftp://mirror.nttu.edu.tw/penk/patch/source/gutsy/ วิธีการ c--MrChoke 20:26, 19 มกราคม 2008 (ICT)omplie squashfs + lzma บน LinuxTLE 9 มีดังนี้
- files ที่จำเป็นมีดังนี้
- ftp://mirror.nttu.edu.tw/penk/patch/source/lzma443.tar.bz2 : เป็น SDK ของ LZMA
- ftp://mirror.nttu.edu.tw/penk/patch/source/sqlzma3.2-r2.tar.bz2 : Patch และ Header สำหรับ เชื่อมต่อ squashfs และ LZMA
- ftp://mirror.nttu.edu.tw/penk/patch/source/squashfs3.2-r2.tar.gz
- ftp://mirror.nttu.edu.tw/penk/patch/source/gutsy/linux-2.6.22-squashfs.tar.gz : squashfs ที่แก้ให้ใช้ LZMA แล้ว
- ftp://mirror.nttu.edu.tw/penk/patch/source/gutsy/Makefile : ไว้แทนที่ Makefile ของ sqlzma3.2-r2
- แตก lzma443.tar.bz2
$ wget ftp://mirror.nttu.edu.tw/penk/patch/source/lzma443.tar.bz2 $ mkdir lzma443 $ tar vxfj lzma443.tar.bz2 -C lzma443
- แตก squashfs3.2-r2.tar.gz
$ wget ftp://mirror.nttu.edu.tw/penk/patch/source/squashfs3.2-r2.tar.gz $ tar vxfz squashfs3.2-r2.tar.gz
- แตก linux-2.6.22-squashfs.tar.gz
$ wget ftp://mirror.nttu.edu.tw/penk/patch/source/gutsy/linux-2.6.22-squashfs.tar.gz $ tar vxfz linux-2.6.22-squashfs.tar.gz -C squashfs3.2-r2/kernel-patches/linux-2.6.22/fs
- แตก sqlzma3.2-r2.tar.bz2
$ wget ftp://mirror.nttu.edu.tw/penk/patch/source/sqlzma3.2-r2.tar.bz2 $ tar vxfj sqlzma3.2-r2.tar.bz2
- ลบ Makefile ของ sqlzma3.2-r2 ทิ้ง และ นำที่ download มาแทนที่
$ rm Makefile $ wget ftp://mirror.nttu.edu.tw/penk/patch/source/gutsy/Makefile
- apply patch sqlzma3.2-r2 ให้ squashfs และ lzma443
$ patch -p0< sqlzma2u-3.2-r2.patch $ patch -p0< sqlzma1-443.patch
- ทำการ complie squashfs module และ tools
ก่อน complie ต้องติดตั้ง zlib header ก่อน
$ sudo apt-get install zlib1g-dev
หลังจากนั้นก็ make เลย
$ make
ระหว่างนี้ก็รอจนเสร็จดูอาการว่าไปรอดหรือไม่
- เมื่อเสร็จแล้วจะมีอะไรเกิดขึ้นบ้าง ?
เราจะได้ดังนี้
หา kernel modules ว่าอยู่ตรงไหนบ้าง
$ find . -name "*.ko" ./lzma443/C/7zip/Compress/LZMA_C/kmod/unlzma.ko ./lzma443/C/7zip/Compress/LZMA_C/kmod/sqlzma.ko ./squashfs3.2-r2/kernel-patches/linux-2.6.22/fs/squashfs/squashfs.ko
นำ kernel modules ไปเก็บไว้ในระบบ ก่อนอื่นต้องลบของ ubuntu ทิ้งเสียก่อน
$ sudo rm /lib/modules/2.6.22-14-generic/ubuntu/fs/squashfs/squashfs.ko $ sudo cp -r /squashfs3.2-r2/kernel-patches/linux-2.6.22/fs/squashfs \ /lib/modules/2.6.22-14-generic/kernel/fs $ sudo cp ./lzma443/C/7zip/Compress/LZMA_C/kmod/unlzma.ko \ ./lzma443/C/7zip/Compress/LZMA_C/kmod/sqlzma.ko \ /lib/modules/2.6.22-14-generic/kernel/fs/squashfs
$ sudo depmod -a
และ squashfs tools
squashfs3.2-r2/squashfs-tools/mksquashfs squashfs3.2-r2/squashfs-tools/unsquashfs
copy ทั้งสองไปไว้ในที่ที่สามารถ run ได้ เช่น /usr/bin /usr/local/bin
$ sudo cp squashfs3.2-r2/squashfs-tools/mksquashfs \ squashfs3.2-r2/squashfs-tools/unsquashfs \ /usr/local/bin
- ถือเป็นการจบขั้นตอนนี้ต่อไปก็ให้ทดสอบว่า modules ระบบเห็นหรือยัง tools ใช้ได้ไหม
--MrChoke 20:26, 19 มกราคม 2008 (ICT)
